diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2018-02-01 09:53:35 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2018-02-13 09:55:29 -0800 |
commit | 0bd7f4f2dc5a24a10262b1e8bd61b4466123f84d (patch) | |
tree | 6e014e3f56685e27efa93ba01f44b588b73a1564 /src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java | |
parent | ba747b6f19e2d810cf8bdedde2a0f88e47860ebe (diff) | |
download | android_packages_apps_Trebuchet-0bd7f4f2dc5a24a10262b1e8bd61b4466123f84d.tar.gz android_packages_apps_Trebuchet-0bd7f4f2dc5a24a10262b1e8bd61b4466123f84d.tar.bz2 android_packages_apps_Trebuchet-0bd7f4f2dc5a24a10262b1e8bd61b4466123f84d.zip |
Using paged view for all-apps tabs
Bug: 72811152
Change-Id: I0cca426d935f079c923b93fe3d4399f87778fe95
Diffstat (limited to 'src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java')
-rw-r--r-- | src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java | 44 |
1 files changed, 38 insertions, 6 deletions
diff --git a/src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java b/src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java index 05cd655de..b42d4cd14 100644 --- a/src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java +++ b/src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java @@ -28,13 +28,13 @@ import android.widget.LinearLayout; import com.android.launcher3.Launcher; import com.android.launcher3.R; -import com.android.launcher3.Utilities; +import com.android.launcher3.pageindicators.PageIndicator; import com.android.launcher3.util.Themes; /** * Supports two indicator colors, dedicated for personal and work tabs. */ -public class PersonalWorkSlidingTabStrip extends LinearLayout { +public class PersonalWorkSlidingTabStrip extends LinearLayout implements PageIndicator { private static final int POSITION_PERSONAL = 0; private static final int POSITION_WORK = 1; @@ -51,6 +51,9 @@ public class PersonalWorkSlidingTabStrip extends LinearLayout { private float mIndicatorOffset; private int mSelectedPosition = 0; + private AllAppsContainerView mContainerView; + private int mLastActivePage = 0; + public PersonalWorkSlidingTabStrip(@NonNull Context context, @Nullable AttributeSet attrs) { super(context, attrs); setOrientation(HORIZONTAL); @@ -71,13 +74,13 @@ public class PersonalWorkSlidingTabStrip extends LinearLayout { mSharedPreferences = Launcher.getLauncher(getContext()).getSharedPrefs(); } - public void updateIndicatorPosition(int position, float positionOffset) { + private void updateIndicatorPosition(int position, float positionOffset) { mIndicatorPosition = position; mIndicatorOffset = positionOffset; updateIndicatorPosition(); } - public void updateTabTextColor(int pos) { + private void updateTabTextColor(int pos) { mSelectedPosition = pos; for (int i = 0; i < getChildCount(); i++) { Button tab = (Button) getChildAt(i); @@ -129,8 +132,6 @@ public class PersonalWorkSlidingTabStrip extends LinearLayout { float y = getHeight() - mDividerPaint.getStrokeWidth(); canvas.drawLine(getPaddingLeft(), y, getWidth() - getPaddingRight(), y, mDividerPaint); - - final float middleX = getWidth() / 2.0f; canvas.drawRect(mIndicatorLeft, getHeight() - mSelectedIndicatorHeight, mIndicatorRight, getHeight(), mSelectedIndicatorPaint); } @@ -153,4 +154,35 @@ public class PersonalWorkSlidingTabStrip extends LinearLayout { v.setPressed(false); }); } + + @Override + public void setScroll(int currentScroll, int totalScroll) { + if (currentScroll == totalScroll) { + updateIndicatorPosition(1, 0); + } else if (totalScroll > 0) { + updateIndicatorPosition(0, ((float) currentScroll) / totalScroll); + } + } + + @Override + public void setActiveMarker(int activePage) { + updateTabTextColor(activePage); + if (mContainerView != null && mLastActivePage != activePage) { + mContainerView.onTabChanged(activePage); + } + mLastActivePage = activePage; + } + + public void setContainerView(AllAppsContainerView containerView) { + mContainerView = containerView; + } + + @Override + public void setMarkersCount(int numMarkers) { } + + @Override + public void setPageDescription(CharSequence description) { + // We don't want custom page description as the tab-bar already has two tabs with their + // own descriptions. + } } |