summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2016-05-26 13:00:02 -0700
committerTony Wickham <twickham@google.com>2016-05-31 17:00:41 -0700
commitd4b28d2e1bb73fcdb1e46bb06e1666e27af2e643 (patch)
tree3f008bbe090ff455681c52a5938e6cf78c5720eb
parent85fc55a976a1f1605ad22deff74f5ceb080913e6 (diff)
downloadandroid_packages_apps_Trebuchet-d4b28d2e1bb73fcdb1e46bb06e1666e27af2e643.tar.gz
android_packages_apps_Trebuchet-d4b28d2e1bb73fcdb1e46bb06e1666e27af2e643.tar.bz2
android_packages_apps_Trebuchet-d4b28d2e1bb73fcdb1e46bb06e1666e27af2e643.zip
Only show workspace page indicator when scrolling or in spring-loaded mode.
- Stop showing indicator when resuming or ending transitions. - In spring-loaded mode, prevent page indicator from auto-hiding. Change-Id: I87070d2d8f46cf491e60380aed5540196f2fbba3
-rw-r--r--src/com/android/launcher3/Workspace.java10
-rw-r--r--src/com/android/launcher3/pageindicators/PageIndicatorLine.java25
2 files changed, 27 insertions, 8 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 6f81f59cf..44392663a 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -73,6 +73,7 @@ import com.android.launcher3.dragndrop.SpringLoadedDragController;
import com.android.launcher3.folder.Folder;
import com.android.launcher3.folder.FolderIcon;
import com.android.launcher3.logging.UserEventDispatcher;
+import com.android.launcher3.pageindicators.PageIndicatorLine;
import com.android.launcher3.userevent.nano.LauncherLogProto;
import com.android.launcher3.userevent.nano.LauncherLogProto.Target;
import com.android.launcher3.util.LongArrayMap;
@@ -803,6 +804,8 @@ public class Workspace extends PagedView
if (stripEmptyScreens) {
stripEmptyScreens();
}
+ // Update the page indicator to reflect the removed page.
+ showPageIndicatorAtCurrentScroll();
}
}
};
@@ -1642,8 +1645,6 @@ public class Workspace extends PagedView
if (listener != null) {
getPageIndicator().setOnClickListener(listener);
}
-
- showPageIndicatorAtCurrentScroll();
}
// Update wallpaper dimensions if they were changed since last onResume
@@ -2048,6 +2049,9 @@ public class Workspace extends PagedView
@Override
public void onLauncherTransitionStart(Launcher l, boolean animated, boolean toWorkspace) {
+ if (mPageIndicator instanceof PageIndicatorLine) {
+ ((PageIndicatorLine) mPageIndicator).setShouldAutoHide(mState != State.SPRING_LOADED);
+ }
}
@Override
@@ -2061,7 +2065,7 @@ public class Workspace extends PagedView
updateChildrenLayersEnabled(false);
showCustomContentIfNecessary();
mForceDrawAdjacentPages = false;
- if (mState == State.NORMAL || mState == State.SPRING_LOADED) {
+ if (mState == State.SPRING_LOADED) {
showPageIndicatorAtCurrentScroll();
}
}
diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java
index a358e7be0..bfb4f331e 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java
@@ -14,7 +14,6 @@ import android.support.v4.graphics.ColorUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.util.Property;
-import android.view.View;
import android.view.ViewConfiguration;
import com.android.launcher3.Utilities;
@@ -33,7 +32,9 @@ public class PageIndicatorLine extends PageIndicator {
public static final int WHITE_ALPHA = (int) (0.70f * 255);
public static final int BLACK_ALPHA = (int) (0.65f * 255);
- private final Handler mHandler = new Handler(Looper.getMainLooper());
+ private final Handler mDelayedLineFadeHandler = new Handler(Looper.getMainLooper());
+
+ private boolean mShouldAutoHide = true;
private ValueAnimator mLineAlphaAnimator;
private int mAlpha = 0;
@@ -97,9 +98,14 @@ public class PageIndicatorLine extends PageIndicator {
mProgress = Utilities.boundToRange(((float) currentScroll) / totalScroll, 0f, 1f);;
invalidate();
- // Hide after a brief period.
- mHandler.removeCallbacksAndMessages(null);
- mHandler.postDelayed(mHideLineRunnable, LINE_FADE_DELAY);
+ if (mShouldAutoHide) {
+ hideAfterDelay();
+ }
+ }
+
+ private void hideAfterDelay() {
+ mDelayedLineFadeHandler.removeCallbacksAndMessages(null);
+ mDelayedLineFadeHandler.postDelayed(mHideLineRunnable, LINE_FADE_DELAY);
}
@Override
@@ -111,6 +117,15 @@ public class PageIndicatorLine extends PageIndicator {
invalidate();
}
+ public void setShouldAutoHide(boolean shouldAutoHide) {
+ mShouldAutoHide = shouldAutoHide;
+ if (shouldAutoHide && mLinePaint.getAlpha() > 0) {
+ hideAfterDelay();
+ } else if (!shouldAutoHide) {
+ mDelayedLineFadeHandler.removeCallbacksAndMessages(null);
+ }
+ }
+
/**
* The line's color will be:
* - mostly opaque white if the hotseat is white (ignoring alpha)