NekoX/TMessagesProj/src/main/java/org/telegram/ui/Cells/ArchiveHintCell.java

136 lines
4.4 KiB
Java

package org.telegram.ui.Cells;
import android.content.Context;
import android.database.DataSetObserver;
import android.os.Parcelable;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import org.telegram.messenger.AndroidUtilities;
import org.telegram.messenger.FileLog;
import org.telegram.ui.ActionBar.Theme;
import org.telegram.ui.Components.BottomPagesView;
import org.telegram.ui.Components.LayoutHelper;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
public class ArchiveHintCell extends FrameLayout {
private BottomPagesView bottomPages;
private ViewPager viewPager;
public ArchiveHintCell(Context context) {
super(context);
viewPager = new ViewPager(context) {
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (getParent() != null) {
getParent().requestDisallowInterceptTouchEvent(true);
}
return super.onInterceptTouchEvent(ev);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
requestLayout();
}
};
AndroidUtilities.setViewPagerEdgeEffectColor(viewPager, Theme.getColor(Theme.key_actionBarDefaultArchived));
viewPager.setAdapter(new Adapter());
viewPager.setPageMargin(0);
viewPager.setOffscreenPageLimit(1);
addView(viewPager, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.MATCH_PARENT));
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
bottomPages.setPageOffset(position, positionOffset);
}
@Override
public void onPageSelected(int i) {
FileLog.d("test1");
}
@Override
public void onPageScrollStateChanged(int i) {
FileLog.d("test1");
}
});
bottomPages = new BottomPagesView(context, viewPager, 3);
bottomPages.setColor(Theme.key_chats_unreadCounterMuted, Theme.key_chats_actionBackground);
addView(bottomPages, LayoutHelper.createFrame(33, 5, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0, 0, 19));
}
@Override
public void invalidate() {
super.invalidate();
bottomPages.invalidate();
}
public ViewPager getViewPager() {
return viewPager;
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(MeasureSpec.makeMeasureSpec(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(AndroidUtilities.dp(204), MeasureSpec.EXACTLY));
}
private class Adapter extends PagerAdapter {
@Override
public int getCount() {
return 3;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ArchiveHintInnerCell innerCell = new ArchiveHintInnerCell(container.getContext(), position);
if (innerCell.getParent() != null) {
ViewGroup parent = (ViewGroup) innerCell.getParent();
parent.removeView(innerCell);
}
container.addView(innerCell, 0);
return innerCell;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public void setPrimaryItem(ViewGroup container, int position, Object object) {
super.setPrimaryItem(container, position, object);
bottomPages.setCurrentPage(position);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
if (observer != null) {
super.unregisterDataSetObserver(observer);
}
}
}
}