Removing support for legacy shortcuts from default layouts

Launcher will only allow deep shortcuts to be pinned on homescreen.

Bug: 275875209
Test: Updated tests
Flag: N/A
Change-Id: I4f2674deb9cd81dd07d5d537f35a51b030a183da
diff --git a/src/com/android/launcher3/DefaultLayoutParser.java b/src/com/android/launcher3/DefaultLayoutParser.java
index c69ae4d..c748693 100644
--- a/src/com/android/launcher3/DefaultLayoutParser.java
+++ b/src/com/android/launcher3/DefaultLayoutParser.java
@@ -6,19 +6,15 @@
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
-import android.content.pm.LauncherApps;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
 import android.os.Bundle;
-import android.os.Process;
 import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.Log;
 
 import com.android.launcher3.LauncherSettings.Favorites;
-import com.android.launcher3.model.data.WorkspaceItemInfo;
-import com.android.launcher3.shortcuts.ShortcutKey;
 import com.android.launcher3.util.Partner;
 import com.android.launcher3.util.Thunk;
 import com.android.launcher3.widget.LauncherWidgetHolder;
@@ -28,7 +24,6 @@
 
 import java.io.IOException;
 import java.net.URISyntaxException;
-import java.util.Collections;
 import java.util.List;
 
 /**
@@ -49,8 +44,6 @@
     private static final String ATTR_CONTAINER = "container";
     private static final String ATTR_SCREEN = "screen";
     private static final String ATTR_FOLDER_ITEMS = "folderItems";
-    private static final String ATTR_SHORTCUT_ID = "shortcutId";
-    private static final String ATTR_PACKAGE_NAME = "packageName";
 
     public static final String RES_PARTNER_FOLDER = "partner_folder";
     public static final String RES_PARTNER_DEFAULT_LAYOUT = "partner_default_layout";
@@ -66,14 +59,9 @@
 
     @Override
     protected ArrayMap<String, TagParser> getFolderElementsMap() {
-        return getFolderElementsMap(mSourceRes);
-    }
-
-    @Thunk
-    ArrayMap<String, TagParser> getFolderElementsMap(Resources res) {
         ArrayMap<String, TagParser> parsers = new ArrayMap<>();
         parsers.put(TAG_FAVORITE, new AppShortcutWithUriParser());
-        parsers.put(TAG_SHORTCUT, new UriShortcutParser(res));
+        parsers.put(TAG_SHORTCUT, new ShortcutParser());
         return parsers;
     }
 
@@ -83,7 +71,7 @@
         parsers.put(TAG_FAVORITE, new AppShortcutWithUriParser());
         parsers.put(TAG_APPWIDGET, new AppWidgetParser());
         parsers.put(TAG_SEARCH_WIDGET, new SearchWidgetParser());
-        parsers.put(TAG_SHORTCUT, new UriShortcutParser(mSourceRes));
+        parsers.put(TAG_SHORTCUT, new ShortcutParser());
         parsers.put(TAG_RESOLVE, new ResolveParser());
         parsers.put(TAG_FOLDER, new MyFolderParser());
         parsers.put(TAG_PARTNER_FOLDER, new PartnerFolderParser());
@@ -190,57 +178,6 @@
     }
 
     /**
-     * Shortcut parser which allows any uri and not just web urls.
-     */
-    public class UriShortcutParser extends ShortcutParser {
-
-        public UriShortcutParser(Resources iconRes) {
-            super(iconRes);
-        }
-
-        @Override
-        public int parseAndAdd(XmlPullParser parser) {
-            final String packageName = getAttributeValue(parser, ATTR_PACKAGE_NAME);
-            final String shortcutId = getAttributeValue(parser, ATTR_SHORTCUT_ID);
-            if (!TextUtils.isEmpty(packageName) && !TextUtils.isEmpty(shortcutId)) {
-                return parseAndAddDeepShortcut(shortcutId, packageName);
-            }
-            return super.parseAndAdd(parser);
-        }
-
-        /**
-         * This method parses and adds a deep shortcut.
-         * @return item id if the shortcut is successfully added else -1
-         */
-        private int parseAndAddDeepShortcut(String shortcutId, String packageName) {
-            try {
-                LauncherApps launcherApps = mContext.getSystemService(LauncherApps.class);
-                launcherApps.pinShortcuts(packageName, Collections.singletonList(shortcutId),
-                        Process.myUserHandle());
-                Intent intent = ShortcutKey.makeIntent(shortcutId, packageName);
-                mValues.put(Favorites.RESTORED, WorkspaceItemInfo.FLAG_RESTORED_ICON);
-                return addShortcut(null, intent, Favorites.ITEM_TYPE_DEEP_SHORTCUT);
-            } catch (Exception e) {
-                Log.e(TAG, "Unable to pin the shortcut for shortcut id = " + shortcutId
-                        + " and package name = " + packageName);
-            }
-            return -1;
-        }
-
-        @Override
-        protected Intent parseIntent(XmlPullParser parser) {
-            String uri = null;
-            try {
-                uri = getAttributeValue(parser, ATTR_URI);
-                return Intent.parseUri(uri, 0);
-            } catch (URISyntaxException e) {
-                Log.w(TAG, "Shortcut has malformed uri: " + uri);
-                return null; // Oh well
-            }
-        }
-    }
-
-    /**
      * Contains a list of <favorite> nodes, and accepts the first successfully parsed node.
      */
     public class ResolveParser implements TagParser {
@@ -284,11 +221,9 @@
             if (partner != null) {
                 final int resId = partner.getXmlResId(RES_PARTNER_FOLDER);
                 if (resId != 0) {
-                    final Resources partnerRes = partner.getResources();
-                    final XmlPullParser partnerParser = partnerRes.getXml(resId);
+                    final XmlPullParser partnerParser = partner.getResources().getXml(resId);
                     beginDocument(partnerParser, TAG_FOLDER);
-
-                    FolderParser folderParser = new FolderParser(getFolderElementsMap(partnerRes));
+                    FolderParser folderParser = new FolderParser(getFolderElementsMap());
                     return folderParser.parseAndAdd(partnerParser);
                 }
             }