Moving various runtime flags into the common base class.
Caching the ststemApp status for workspace shortcuts.
Change-Id: I25663e1f04a9768afcca000294adcbb00ea1db7b
diff --git a/src/com/android/launcher3/ItemInfoWithIcon.java b/src/com/android/launcher3/ItemInfoWithIcon.java
index 1e020e2..1c4e88b 100644
--- a/src/com/android/launcher3/ItemInfoWithIcon.java
+++ b/src/com/android/launcher3/ItemInfoWithIcon.java
@@ -33,11 +33,70 @@
*/
public boolean usingLowResIcon;
+ /**
+ * Indicates that the icon is disabled due to safe mode restrictions.
+ */
+ public static final int FLAG_DISABLED_SAFEMODE = 1 << 0;
+
+ /**
+ * Indicates that the icon is disabled as the app is not available.
+ */
+ public static final int FLAG_DISABLED_NOT_AVAILABLE = 1 << 1;
+
+ /**
+ * Indicates that the icon is disabled as the app is suspended
+ */
+ public static final int FLAG_DISABLED_SUSPENDED = 1 << 2;
+
+ /**
+ * Indicates that the icon is disabled as the user is in quiet mode.
+ */
+ public static final int FLAG_DISABLED_QUIET_USER = 1 << 3;
+
+ /**
+ * Indicates that the icon is disabled as the publisher has disabled the actual shortcut.
+ */
+ public static final int FLAG_DISABLED_BY_PUBLISHER = 1 << 4;
+
+ /**
+ * Indicates that the icon is disabled as the user partition is currently locked.
+ */
+ public static final int FLAG_DISABLED_LOCKED_USER = 1 << 5;
+
+ public static final int FLAG_DISABLED_MASK = FLAG_DISABLED_SAFEMODE |
+ FLAG_DISABLED_NOT_AVAILABLE | FLAG_DISABLED_SUSPENDED |
+ FLAG_DISABLED_QUIET_USER | FLAG_DISABLED_BY_PUBLISHER | FLAG_DISABLED_LOCKED_USER;
+
+
+ /**
+ * The item points to a system app.
+ */
+ public static final int FLAG_SYSTEM_YES = 1 << 6;
+
+ /**
+ * The item points to a non system app.
+ */
+ public static final int FLAG_SYSTEM_NO = 1 << 7;
+
+ public static final int FLAG_SYSTEM_MASK = FLAG_SYSTEM_YES | FLAG_SYSTEM_NO;
+
+ /**
+ * Status associated with the system state of the underlying item. This is calculated every
+ * time a new info is created and not persisted on the disk.
+ */
+ public int runtimeStatusFlags = 0;
+
protected ItemInfoWithIcon() { }
protected ItemInfoWithIcon(ItemInfoWithIcon info) {
super(info);
iconBitmap = info.iconBitmap;
usingLowResIcon = info.usingLowResIcon;
+ runtimeStatusFlags = info.runtimeStatusFlags;
+ }
+
+ @Override
+ public boolean isDisabled() {
+ return (runtimeStatusFlags & FLAG_DISABLED_MASK) != 0;
}
}