summaryrefslogtreecommitdiffstats
path: root/src_shortcuts_overrides
diff options
context:
space:
mode:
authorPinyao Ting <pinyaoting@google.com>2019-07-25 20:26:54 -0700
committerPinyao Ting <pinyaoting@google.com>2019-07-29 16:53:52 -0700
commit559dd806d7899dc384ad9f6d95915755cefbb13f (patch)
tree086a8cd8108a6f9ddf5941f94c960df622cda926 /src_shortcuts_overrides
parentd1ca8f4e5e72eac54eb9f76fee6316bc87ae3537 (diff)
downloadandroid_packages_apps_Trebuchet-559dd806d7899dc384ad9f6d95915755cefbb13f.tar.gz
android_packages_apps_Trebuchet-559dd806d7899dc384ad9f6d95915755cefbb13f.tar.bz2
android_packages_apps_Trebuchet-559dd806d7899dc384ad9f6d95915755cefbb13f.zip
show dot on shortcut when incoming notification contains exactly the
same shortcut id Bug: 132336512 Change-Id: Iddf4cfe8ad60c12e8de8b171bed392f1bb0a6761
Diffstat (limited to 'src_shortcuts_overrides')
-rw-r--r--src_shortcuts_overrides/com/android/launcher3/shortcuts/DeepShortcutManager.java45
1 files changed, 41 insertions, 4 deletions
diff --git a/src_shortcuts_overrides/com/android/launcher3/shortcuts/DeepShortcutManager.java b/src_shortcuts_overrides/com/android/launcher3/shortcuts/DeepShortcutManager.java
index 84a59b228..4e71b23c8 100644
--- a/src_shortcuts_overrides/com/android/launcher3/shortcuts/DeepShortcutManager.java
+++ b/src_shortcuts_overrides/com/android/launcher3/shortcuts/DeepShortcutManager.java
@@ -30,6 +30,7 @@ import android.util.Log;
import com.android.launcher3.ItemInfo;
import com.android.launcher3.LauncherSettings;
import com.android.launcher3.WorkspaceItemInfo;
+import com.android.launcher3.notification.NotificationKeyData;
import java.util.ArrayList;
import java.util.Collections;
@@ -60,10 +61,40 @@ public class DeepShortcutManager {
}
public static boolean supportsShortcuts(ItemInfo info) {
- boolean isItemPromise = info instanceof WorkspaceItemInfo
- && ((WorkspaceItemInfo) info).hasPromiseIconUi();
- return info.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION
- && !info.isDisabled() && !isItemPromise;
+ return isActive(info) && isApp(info);
+ }
+
+ public static boolean supportsNotificationDots(
+ ItemInfo info, List<NotificationKeyData> notifications) {
+ if (!isActive(info)) {
+ return false;
+ }
+ return isApp(info) || (isPinnedShortcut(info)
+ && shouldShowNotificationDotForPinnedShortcut(info, notifications));
+ }
+
+ private static boolean isApp(ItemInfo info) {
+ return info.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION;
+ }
+
+ private static boolean isPinnedShortcut(ItemInfo info) {
+ return info.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT
+ && info.container != ItemInfo.NO_ID
+ && info instanceof WorkspaceItemInfo;
+ }
+
+ private static boolean shouldShowNotificationDotForPinnedShortcut(
+ ItemInfo info, List<NotificationKeyData> notifications) {
+ String shortcutId = ((WorkspaceItemInfo) info).getDeepShortcutId();
+ if (shortcutId == null) {
+ return false;
+ }
+ for (NotificationKeyData notification : notifications) {
+ if (shortcutId.equals(notification.shortcutId)) {
+ return true;
+ }
+ }
+ return false;
}
/**
@@ -166,6 +197,12 @@ public class DeepShortcutManager {
return shortcutIds;
}
+ private static boolean isActive(ItemInfo info) {
+ boolean isLoading = info instanceof WorkspaceItemInfo
+ && ((WorkspaceItemInfo) info).hasPromiseIconUi();
+ return !isLoading && !info.isDisabled();
+ }
+
/**
* Query the system server for all the shortcuts matching the given parameters.
* If packageName == null, we query for all shortcuts with the passed flags, regardless of app.