Loading src/com/android/launcher3/ButtonDropTarget.java +11 −1 Original line number Diff line number Diff line Loading @@ -179,7 +179,12 @@ public abstract class ButtonDropTarget extends TextView @Override public void onDragStart(DropTarget.DragObject dragObject, DragOptions options) { mActive = !options.isKeyboardDrag && supportsDrop(dragObject.dragInfo); if (options.isKeyboardDrag) { mActive = false; } else { setupItemInfo(dragObject.dragInfo); mActive = supportsDrop(dragObject.dragInfo); } setVisibility(mActive ? View.VISIBLE : View.GONE); mAccessibleDrag = options.isAccessibleDrag; Loading @@ -191,6 +196,11 @@ public abstract class ButtonDropTarget extends TextView return supportsDrop(dragObject.dragInfo); } /** * Setups button for the specified ItemInfo. */ protected abstract void setupItemInfo(ItemInfo info); protected abstract boolean supportsDrop(ItemInfo info); public abstract boolean supportsAccessibilityDrop(ItemInfo info, View view); Loading src/com/android/launcher3/DeleteDropTarget.java +3 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,9 @@ public class DeleteDropTarget extends ButtonDropTarget { return LauncherAccessibilityDelegate.REMOVE; } @Override protected void setupItemInfo(ItemInfo info) {} @Override protected boolean supportsDrop(ItemInfo info) { return true; Loading src/com/android/launcher3/SecondaryDropTarget.java +26 −11 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import static android.appwidget.AppWidgetProviderInfo.WIDGET_FEATURE_RECONFIGURA import static com.android.launcher3.Launcher.REQUEST_RECONFIGURE_APPWIDGET; import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP; import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.DISMISS_PREDICTION; import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.INVALID; import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.RECONFIGURE; import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.UNINSTALL; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_DISMISS_PREDICTION_UNDO; Loading Loading @@ -69,6 +70,7 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList private boolean mHadPendingAlarm; protected int mCurrentAccessibilityAction = -1; public SecondaryDropTarget(Context context, AttributeSet attrs) { this(context, attrs, 0); } Loading Loading @@ -133,25 +135,34 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList return mCurrentAccessibilityAction; } @Override protected void setupItemInfo(ItemInfo info) { int buttonType = getButtonType(info, getViewUnderDrag(info)); if (buttonType != INVALID) { setupUi(buttonType); } } @Override protected boolean supportsDrop(ItemInfo info) { return supportsAccessibilityDrop(info, getViewUnderDrag(info)); return getButtonType(info, getViewUnderDrag(info)) != INVALID; } @Override public boolean supportsAccessibilityDrop(ItemInfo info, View view) { return getButtonType(info, view) != INVALID; } private int getButtonType(ItemInfo info, View view) { if (view instanceof AppWidgetHostView) { if (getReconfigurableWidgetId(view) != INVALID_APPWIDGET_ID) { setupUi(RECONFIGURE); return true; return RECONFIGURE; } return false; return INVALID; } else if (FeatureFlags.ENABLE_PREDICTION_DISMISS.get() && info.isPredictedItem()) { setupUi(DISMISS_PREDICTION); return true; return DISMISS_PREDICTION; } setupUi(UNINSTALL); Boolean uninstallDisabled = mUninstallDisabledCache.get(info.user); if (uninstallDisabled == null) { UserManager userManager = Loading @@ -165,16 +176,20 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList mCacheExpireAlarm.setAlarm(CACHE_EXPIRE_TIMEOUT); mCacheExpireAlarm.setOnAlarmListener(this); if (uninstallDisabled) { return false; return INVALID; } if (info instanceof ItemInfoWithIcon) { ItemInfoWithIcon iconInfo = (ItemInfoWithIcon) info; if ((iconInfo.runtimeStatusFlags & FLAG_SYSTEM_MASK) != 0) { return (iconInfo.runtimeStatusFlags & FLAG_SYSTEM_NO) != 0; if ((iconInfo.runtimeStatusFlags & FLAG_SYSTEM_MASK) != 0 && (iconInfo.runtimeStatusFlags & FLAG_SYSTEM_NO) == 0) { return INVALID; } } if (getUninstallTarget(info) == null) { return INVALID; } return getUninstallTarget(info) != null; return UNINSTALL; } /** Loading src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java +1 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ public class LauncherAccessibilityDelegate extends BaseAccessibilityDelegate<Lau public static final int DISMISS_PREDICTION = R.id.action_dismiss_prediction; public static final int PIN_PREDICTION = R.id.action_pin_prediction; public static final int RECONFIGURE = R.id.action_reconfigure; public static final int INVALID = -1; protected static final int ADD_TO_WORKSPACE = R.id.action_add_to_workspace; protected static final int MOVE = R.id.action_move; protected static final int MOVE_TO_WORKSPACE = R.id.action_move_to_workspace; Loading Loading
src/com/android/launcher3/ButtonDropTarget.java +11 −1 Original line number Diff line number Diff line Loading @@ -179,7 +179,12 @@ public abstract class ButtonDropTarget extends TextView @Override public void onDragStart(DropTarget.DragObject dragObject, DragOptions options) { mActive = !options.isKeyboardDrag && supportsDrop(dragObject.dragInfo); if (options.isKeyboardDrag) { mActive = false; } else { setupItemInfo(dragObject.dragInfo); mActive = supportsDrop(dragObject.dragInfo); } setVisibility(mActive ? View.VISIBLE : View.GONE); mAccessibleDrag = options.isAccessibleDrag; Loading @@ -191,6 +196,11 @@ public abstract class ButtonDropTarget extends TextView return supportsDrop(dragObject.dragInfo); } /** * Setups button for the specified ItemInfo. */ protected abstract void setupItemInfo(ItemInfo info); protected abstract boolean supportsDrop(ItemInfo info); public abstract boolean supportsAccessibilityDrop(ItemInfo info, View view); Loading
src/com/android/launcher3/DeleteDropTarget.java +3 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,9 @@ public class DeleteDropTarget extends ButtonDropTarget { return LauncherAccessibilityDelegate.REMOVE; } @Override protected void setupItemInfo(ItemInfo info) {} @Override protected boolean supportsDrop(ItemInfo info) { return true; Loading
src/com/android/launcher3/SecondaryDropTarget.java +26 −11 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import static android.appwidget.AppWidgetProviderInfo.WIDGET_FEATURE_RECONFIGURA import static com.android.launcher3.Launcher.REQUEST_RECONFIGURE_APPWIDGET; import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER_DESKTOP; import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.DISMISS_PREDICTION; import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.INVALID; import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.RECONFIGURE; import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.UNINSTALL; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_DISMISS_PREDICTION_UNDO; Loading Loading @@ -69,6 +70,7 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList private boolean mHadPendingAlarm; protected int mCurrentAccessibilityAction = -1; public SecondaryDropTarget(Context context, AttributeSet attrs) { this(context, attrs, 0); } Loading Loading @@ -133,25 +135,34 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList return mCurrentAccessibilityAction; } @Override protected void setupItemInfo(ItemInfo info) { int buttonType = getButtonType(info, getViewUnderDrag(info)); if (buttonType != INVALID) { setupUi(buttonType); } } @Override protected boolean supportsDrop(ItemInfo info) { return supportsAccessibilityDrop(info, getViewUnderDrag(info)); return getButtonType(info, getViewUnderDrag(info)) != INVALID; } @Override public boolean supportsAccessibilityDrop(ItemInfo info, View view) { return getButtonType(info, view) != INVALID; } private int getButtonType(ItemInfo info, View view) { if (view instanceof AppWidgetHostView) { if (getReconfigurableWidgetId(view) != INVALID_APPWIDGET_ID) { setupUi(RECONFIGURE); return true; return RECONFIGURE; } return false; return INVALID; } else if (FeatureFlags.ENABLE_PREDICTION_DISMISS.get() && info.isPredictedItem()) { setupUi(DISMISS_PREDICTION); return true; return DISMISS_PREDICTION; } setupUi(UNINSTALL); Boolean uninstallDisabled = mUninstallDisabledCache.get(info.user); if (uninstallDisabled == null) { UserManager userManager = Loading @@ -165,16 +176,20 @@ public class SecondaryDropTarget extends ButtonDropTarget implements OnAlarmList mCacheExpireAlarm.setAlarm(CACHE_EXPIRE_TIMEOUT); mCacheExpireAlarm.setOnAlarmListener(this); if (uninstallDisabled) { return false; return INVALID; } if (info instanceof ItemInfoWithIcon) { ItemInfoWithIcon iconInfo = (ItemInfoWithIcon) info; if ((iconInfo.runtimeStatusFlags & FLAG_SYSTEM_MASK) != 0) { return (iconInfo.runtimeStatusFlags & FLAG_SYSTEM_NO) != 0; if ((iconInfo.runtimeStatusFlags & FLAG_SYSTEM_MASK) != 0 && (iconInfo.runtimeStatusFlags & FLAG_SYSTEM_NO) == 0) { return INVALID; } } if (getUninstallTarget(info) == null) { return INVALID; } return getUninstallTarget(info) != null; return UNINSTALL; } /** Loading
src/com/android/launcher3/accessibility/LauncherAccessibilityDelegate.java +1 −0 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ public class LauncherAccessibilityDelegate extends BaseAccessibilityDelegate<Lau public static final int DISMISS_PREDICTION = R.id.action_dismiss_prediction; public static final int PIN_PREDICTION = R.id.action_pin_prediction; public static final int RECONFIGURE = R.id.action_reconfigure; public static final int INVALID = -1; protected static final int ADD_TO_WORKSPACE = R.id.action_add_to_workspace; protected static final int MOVE = R.id.action_move; protected static final int MOVE_TO_WORKSPACE = R.id.action_move_to_workspace; Loading