Merge \"Use reflection to call LauncherApps.startShortcut().\" into ub-launcher3-calgary
am: c9e71b8876

Change-Id: I57f1d7eadd32239891edc2dd15ba4acde2882220
diff --git a/src/com/android/launcher3/shortcuts/DeepShortcutManager.java b/src/com/android/launcher3/shortcuts/DeepShortcutManager.java
index 0d5102f..8bceda7 100644
--- a/src/com/android/launcher3/shortcuts/DeepShortcutManager.java
+++ b/src/com/android/launcher3/shortcuts/DeepShortcutManager.java
@@ -25,6 +25,7 @@
 import android.graphics.Rect;
 import android.graphics.drawable.Drawable;
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.util.Log;
 
 import com.android.launcher3.ItemInfo;
@@ -32,6 +33,7 @@
 import com.android.launcher3.Utilities;
 import com.android.launcher3.compat.UserHandleCompat;
 
+import java.lang.reflect.InvocationTargetException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -129,10 +131,16 @@
           Bundle startActivityOptions, UserHandleCompat user) {
         if (Utilities.isNycMR1OrAbove()) {
             try {
-                mLauncherApps.startShortcut(packageName, id, sourceBounds,
-                        startActivityOptions, user.getUser());
+                // TODO: remove reflection once updated SDK is ready.
+                // mLauncherApps.startShortcut(packageName, id, sourceBounds,
+                //        startActivityOptions, user.getUser());
+                mLauncherApps.getClass().getMethod("startShortcut", String.class, String.class,
+                        Rect.class, Bundle.class, UserHandle.class).invoke(mLauncherApps,
+                        packageName, id, sourceBounds, startActivityOptions, user.getUser());
             } catch (SecurityException e) {
                 Log.e(TAG, Log.getStackTraceString(e));
+            } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
+                e.printStackTrace();
             }
         }
     }