Merge "Make sure notification listener stays unbound on reboot when badging disabled" into ub-launcher3-edmonton
diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java
index 4f0187c..57f46b8 100644
--- a/quickstep/src/com/android/quickstep/TouchInteractionService.java
+++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java
@@ -39,13 +39,12 @@
import android.view.Choreographer;
import android.view.MotionEvent;
import android.view.VelocityTracker;
-import android.view.View;
import android.view.ViewConfiguration;
import com.android.launcher3.BaseDraggingActivity;
import com.android.launcher3.MainThreadExecutor;
-import com.android.launcher3.R;
import com.android.launcher3.util.TraceHelper;
+import com.android.launcher3.views.BaseDragLayer;
import com.android.quickstep.views.RecentsView;
import com.android.systemui.shared.recents.IOverviewProxy;
import com.android.systemui.shared.recents.ISystemUiProxy;
@@ -248,7 +247,7 @@
private final ActivityControlHelper<T> mActivityHelper;
private final T mActivity;
- private final View mTarget;
+ private final BaseDragLayer mTarget;
private final int[] mLocationOnScreen = new int[2];
private final PointF mDownPos = new PointF();
private final int mTouchSlop;
@@ -293,7 +292,6 @@
case ACTION_MOVE: {
float displacement = ev.getY() - mDownPos.y;
if (Math.abs(displacement) >= mTouchSlop) {
- mTrackingStarted = true;
mTarget.getLocationOnScreen(mLocationOnScreen);
// Send a down event only when mTouchSlop is crossed.
@@ -301,6 +299,7 @@
down.setAction(ACTION_DOWN);
sendEvent(down);
down.recycle();
+ mTrackingStarted = true;
}
}
}
@@ -319,7 +318,10 @@
int flags = ev.getEdgeFlags();
ev.setEdgeFlags(flags | EDGE_NAV_BAR);
ev.offsetLocation(-mLocationOnScreen[0], -mLocationOnScreen[1]);
- mTarget.dispatchTouchEvent(ev);
+ if (!mTrackingStarted) {
+ mTarget.onInterceptTouchEvent(ev);
+ }
+ mTarget.onTouchEvent(ev);
ev.offsetLocation(mLocationOnScreen[0], mLocationOnScreen[1]);
ev.setEdgeFlags(flags);
}
diff --git a/src/com/android/launcher3/BaseActivity.java b/src/com/android/launcher3/BaseActivity.java
index f197921..a41edc0 100644
--- a/src/com/android/launcher3/BaseActivity.java
+++ b/src/com/android/launcher3/BaseActivity.java
@@ -144,7 +144,7 @@
@Override
protected void onStop() {
- mActivityFlags &= ~ACTIVITY_STATE_STARTED;
+ mActivityFlags &= ~ACTIVITY_STATE_STARTED & ~ACTIVITY_STATE_USER_ACTIVE;
mForceInvisible = 0;
super.onStop();
}
diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java
index 41bfcb7..fb7c0ce 100644
--- a/src/com/android/launcher3/BubbleTextView.java
+++ b/src/com/android/launcher3/BubbleTextView.java
@@ -65,27 +65,6 @@
private static final int[] STATE_PRESSED = new int[] {android.R.attr.state_pressed};
- private final BaseDraggingActivity mActivity;
- private Drawable mIcon;
- private final boolean mCenterVertically;
-
- private final CheckLongPressHelper mLongPressHelper;
- private final StylusEventHelper mStylusEventHelper;
- private final float mSlop;
-
- private final boolean mLayoutHorizontal;
- private final int mIconSize;
- @ViewDebug.ExportedProperty(category = "launcher")
- private int mTextColor;
- private boolean mIsIconVisible = true;
-
- private BadgeInfo mBadgeInfo;
- private BadgeRenderer mBadgeRenderer;
- private int mBadgeColor;
- private float mBadgeScale;
- private boolean mForceHideBadge;
- private Point mTempSpaceForBadgeOffset = new Point();
- private Rect mTempIconBounds = new Rect();
private static final Property<BubbleTextView, Float> BADGE_SCALE_PROPERTY
= new Property<BubbleTextView, Float>(Float.TYPE, "badgeScale") {
@@ -101,19 +80,45 @@
}
};
- public static final Property<BubbleTextView, Integer> TEXT_ALPHA_PROPERTY
- = new Property<BubbleTextView, Integer>(Integer.class, "textAlpha") {
+ public static final Property<BubbleTextView, Float> TEXT_ALPHA_PROPERTY
+ = new Property<BubbleTextView, Float>(Float.class, "textAlpha") {
@Override
- public Integer get(BubbleTextView bubbleTextView) {
- return bubbleTextView.getTextAlpha();
+ public Float get(BubbleTextView bubbleTextView) {
+ return bubbleTextView.mTextAlpha;
}
@Override
- public void set(BubbleTextView bubbleTextView, Integer alpha) {
+ public void set(BubbleTextView bubbleTextView, Float alpha) {
bubbleTextView.setTextAlpha(alpha);
}
};
+ private final BaseDraggingActivity mActivity;
+ private Drawable mIcon;
+ private final boolean mCenterVertically;
+
+ private final CheckLongPressHelper mLongPressHelper;
+ private final StylusEventHelper mStylusEventHelper;
+ private final float mSlop;
+
+ private final boolean mLayoutHorizontal;
+ private final int mIconSize;
+
+ @ViewDebug.ExportedProperty(category = "launcher")
+ private boolean mIsIconVisible = true;
+ @ViewDebug.ExportedProperty(category = "launcher")
+ private int mTextColor;
+ @ViewDebug.ExportedProperty(category = "launcher")
+ private float mTextAlpha = 1;
+
+ private BadgeInfo mBadgeInfo;
+ private BadgeRenderer mBadgeRenderer;
+ private int mBadgeColor;
+ private float mBadgeScale;
+ private boolean mForceHideBadge;
+ private Point mTempSpaceForBadgeOffset = new Point();
+ private Rect mTempIconBounds = new Rect();
+
@ViewDebug.ExportedProperty(category = "launcher")
private boolean mStayPressed;
@ViewDebug.ExportedProperty(category = "launcher")
@@ -166,7 +171,7 @@
setEllipsize(TruncateAt.END);
setAccessibilityDelegate(mActivity.getAccessibilityDelegate());
-
+ setTextAlpha(1f);
}
@Override
@@ -404,13 +409,17 @@
@Override
public void setTextColor(int color) {
mTextColor = color;
- super.setTextColor(color);
+ super.setTextColor(getModifiedColor());
}
@Override
public void setTextColor(ColorStateList colors) {
mTextColor = colors.getDefaultColor();
- super.setTextColor(colors);
+ if (Float.compare(mTextAlpha, 1) == 0) {
+ super.setTextColor(colors);
+ } else {
+ super.setTextColor(getModifiedColor());
+ }
}
public boolean shouldTextBeVisible() {
@@ -421,19 +430,21 @@
}
public void setTextVisibility(boolean visible) {
- if (visible) {
- super.setTextColor(mTextColor);
- } else {
- setTextAlpha(0);
+ setTextAlpha(visible ? 1 : 0);
+ }
+
+ private void setTextAlpha(float alpha) {
+ mTextAlpha = alpha;
+ super.setTextColor(getModifiedColor());
+ }
+
+ private int getModifiedColor() {
+ if (mTextAlpha == 0) {
+ // Special case to prevent text shadows in high contrast mode
+ return Color.TRANSPARENT;
}
- }
-
- public void setTextAlpha(int alpha) {
- super.setTextColor(ColorUtils.setAlphaComponent(mTextColor, alpha));
- }
-
- private int getTextAlpha() {
- return Color.alpha(getCurrentTextColor());
+ return ColorUtils.setAlphaComponent(
+ mTextColor, Math.round(Color.alpha(mTextColor) * mTextAlpha));
}
/**
@@ -441,8 +452,8 @@
* @param fadeIn Whether the text should fade in or fade out.
*/
public ObjectAnimator createTextAlphaAnimator(boolean fadeIn) {
- int toAlpha = shouldTextBeVisible() && fadeIn ? Color.alpha(mTextColor) : 0;
- return ObjectAnimator.ofInt(this, TEXT_ALPHA_PROPERTY, toAlpha);
+ float toAlpha = shouldTextBeVisible() && fadeIn ? 1 : 0;
+ return ObjectAnimator.ofFloat(this, TEXT_ALPHA_PROPERTY, toAlpha);
}
@Override
diff --git a/src/com/android/launcher3/folder/FolderAnimationManager.java b/src/com/android/launcher3/folder/FolderAnimationManager.java
index ec448e9..9ae3775 100644
--- a/src/com/android/launcher3/folder/FolderAnimationManager.java
+++ b/src/com/android/launcher3/folder/FolderAnimationManager.java
@@ -16,6 +16,7 @@
package com.android.launcher3.folder;
+import static com.android.launcher3.BubbleTextView.TEXT_ALPHA_PROPERTY;
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
import static com.android.launcher3.folder.ClippedFolderIconLayoutRule.MAX_NUM_ITEMS_IN_PREVIEW;
@@ -172,9 +173,8 @@
AnimatorSet a = LauncherAnimUtils.createAnimatorSet();
// Initialize the Folder items' text.
- PropertyResetListener colorResetListener = new PropertyResetListener<>(
- BubbleTextView.TEXT_ALPHA_PROPERTY,
- Color.alpha(Themes.getAttrColor(mContext, android.R.attr.textColorSecondary)));
+ PropertyResetListener colorResetListener =
+ new PropertyResetListener<>(TEXT_ALPHA_PROPERTY, 1f);
for (BubbleTextView icon : mFolder.getItemsOnPage(mFolder.mContent.getCurrentPage())) {
if (mIsOpening) {
icon.setTextVisibility(false);