diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java index 4e79011ca0..f7e6ee645e 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarDragController.java @@ -159,7 +159,7 @@ public class TaskbarDragController extends DragController im if (iconShift != null) { dragView.animateShift(-iconShift.x, -iconShift.y); } - btv.getIcon().setIsDisabled(true); + btv.setIconDisabled(true); mControllers.taskbarAutohideSuspendController.updateFlag( TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING, true); }); @@ -453,7 +453,7 @@ public class TaskbarDragController extends DragController im private void maybeOnDragEnd() { if (!isDragging()) { - ((BubbleTextView) mDragObject.originalView).getIcon().setIsDisabled(false); + ((BubbleTextView) mDragObject.originalView).setIconDisabled(false); mControllers.taskbarAutohideSuspendController.updateFlag( TaskbarAutohideSuspendController.FLAG_AUTOHIDE_SUSPEND_DRAGGING, false); mActivity.onDragEnd(); diff --git a/quickstep/src/com/android/launcher3/uioverrides/PredictedAppIcon.java b/quickstep/src/com/android/launcher3/uioverrides/PredictedAppIcon.java index 25207d4382..3990dade70 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/PredictedAppIcon.java +++ b/quickstep/src/com/android/launcher3/uioverrides/PredictedAppIcon.java @@ -17,6 +17,7 @@ package com.android.launcher3.uioverrides; import static com.android.launcher3.anim.Interpolators.ACCEL_DEACCEL; import static com.android.launcher3.icons.BitmapInfo.FLAG_THEMED; +import static com.android.launcher3.icons.FastBitmapDrawable.getDisabledColorFilter; import android.animation.Animator; import android.animation.AnimatorSet; @@ -54,6 +55,7 @@ import com.android.launcher3.icons.BitmapInfo; import com.android.launcher3.icons.GraphicsUtils; import com.android.launcher3.icons.IconNormalizer; import com.android.launcher3.icons.LauncherIcons; +import com.android.launcher3.model.data.ItemInfoWithIcon; import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.touch.ItemClickHandler; import com.android.launcher3.touch.ItemLongClickListener; @@ -360,6 +362,19 @@ public class PredictedAppIcon extends DoubleShadowBubbleTextView { canvas.drawPath(mRingPath, mIconRingPaint); } + @Override + public void setIconDisabled(boolean isDisabled) { + super.setIconDisabled(isDisabled); + mIconRingPaint.setColorFilter(isDisabled ? getDisabledColorFilter() : null); + invalidate(); + } + + @Override + protected void setItemInfo(ItemInfoWithIcon itemInfo) { + super.setItemInfo(itemInfo); + setIconDisabled(itemInfo.isDisabled()); + } + @Override public void getSourceVisualDragBounds(Rect bounds) { super.getSourceVisualDragBounds(bounds); diff --git a/src/com/android/launcher3/BubbleTextView.java b/src/com/android/launcher3/BubbleTextView.java index ea79c5584d..14f4b30625 100644 --- a/src/com/android/launcher3/BubbleTextView.java +++ b/src/com/android/launcher3/BubbleTextView.java @@ -72,9 +72,9 @@ import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.ItemInfoWithIcon; import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.popup.PopupContainerWithArrow; -import com.android.launcher3.util.MultiTranslateDelegate; import com.android.launcher3.search.StringMatcherUtility; import com.android.launcher3.util.IntArray; +import com.android.launcher3.util.MultiTranslateDelegate; import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.util.ShortcutUtil; import com.android.launcher3.views.ActivityContext; @@ -978,6 +978,13 @@ public class BubbleTextView extends TextView implements ItemInfoUpdateReceiver, applyCompoundDrawables(icon); } + /** Sets the icon visual state to disabled or not. */ + public void setIconDisabled(boolean isDisabled) { + if (mIcon != null) { + mIcon.setIsDisabled(isDisabled); + } + } + protected boolean iconUpdateAnimationEnabled() { return mEnableIconUpdateAnimation; }