Use shortcut disabled message if available.

Bug: 30681210
Change-Id: Ibb5fd58e5fc9557b63730bc1e3c3977133769466
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index d76d3e2..adf07a1 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -2668,6 +2668,12 @@
                 // If the app is only disabled because of the above flags, launch activity anyway.
                 // Framework will tell the user why the app is suspended.
             } else {
+                if (!TextUtils.isEmpty(shortcut.disabledMessage)) {
+                    // Use a message specific to this shortcut, if it has one.
+                    Toast.makeText(this, shortcut.disabledMessage, Toast.LENGTH_SHORT).show();
+                    return;
+                }
+                // Otherwise just use a generic error message.
                 int error = R.string.activity_not_available;
                 if ((shortcut.isDisabled & ShortcutInfo.FLAG_DISABLED_SAFEMODE) != 0) {
                     error = R.string.safemode_shortcut_error;
diff --git a/src/com/android/launcher3/ShortcutInfo.java b/src/com/android/launcher3/ShortcutInfo.java
index a2182e8..8c466b2 100644
--- a/src/com/android/launcher3/ShortcutInfo.java
+++ b/src/com/android/launcher3/ShortcutInfo.java
@@ -133,6 +133,12 @@
      */
     int isDisabled = DEFAULT;
 
+    /**
+     * A message to display when the user tries to start a disabled shortcut.
+     * This is currently only used for deep shortcuts.
+     */
+    CharSequence disabledMessage;
+
     int status;
 
     /**
@@ -309,6 +315,7 @@
         } else {
             isDisabled |= FLAG_DISABLED_BY_PUBLISHER;
         }
+        disabledMessage = shortcutInfo.getDisabledMessage();
 
         // TODO: Use cache for this
         LauncherAppState launcherAppState = LauncherAppState.getInstance();
diff --git a/src/com/android/launcher3/shortcuts/ShortcutInfoCompat.java b/src/com/android/launcher3/shortcuts/ShortcutInfoCompat.java
index 410693a..a6da668 100644
--- a/src/com/android/launcher3/shortcuts/ShortcutInfoCompat.java
+++ b/src/com/android/launcher3/shortcuts/ShortcutInfoCompat.java
@@ -114,6 +114,10 @@
         return mShortcutInfo.getRank();
     }
 
+    public CharSequence getDisabledMessage() {
+        return mShortcutInfo.getDisabledMessage();
+    }
+
     @Override
     public String toString() {
         return mShortcutInfo.toString();