summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2018-02-01 09:53:35 -0800
committerSunny Goyal <sunnygoyal@google.com>2018-02-13 09:55:29 -0800
commit0bd7f4f2dc5a24a10262b1e8bd61b4466123f84d (patch)
tree6e014e3f56685e27efa93ba01f44b588b73a1564 /src/com/android/launcher3/allapps/PersonalWorkSlidingTabStrip.java
parentba747b6f19e2d810cf8bdedde2a0f88e47860ebe (diff)
downloadandroid_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.java44
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.
+ }
}