Adding support for <include> tag in AutoInstall layout

Bug: 19121893
Change-Id: I760fa76d6e63c1aa0152e8cd710aba0d6ef4462a
diff --git a/src/com/android/launcher3/AutoInstallsLayout.java b/src/com/android/launcher3/AutoInstallsLayout.java
index a5d2228..3820660 100644
--- a/src/com/android/launcher3/AutoInstallsLayout.java
+++ b/src/com/android/launcher3/AutoInstallsLayout.java
@@ -78,6 +78,7 @@
     }
 
     // Object Tags
+    private static final String TAG_INCLUDE = "include";
     private static final String TAG_WORKSPACE = "workspace";
     private static final String TAG_APP_ICON = "appicon";
     private static final String TAG_AUTO_INSTALL = "autoinstall";
@@ -100,6 +101,9 @@
     private static final String ATTR_ICON = "icon";
     private static final String ATTR_URL = "url";
 
+    // Attrs for "Include"
+    private static final String ATTR_WORKSPACE = "workspace";
+
     // Style attrs -- "Extra"
     private static final String ATTR_KEY = "key";
     private static final String ATTR_VALUE = "value";
@@ -202,6 +206,17 @@
             HashMap<String, TagParser> tagParserMap,
             ArrayList<Long> screenIds)
                     throws XmlPullParserException, IOException {
+
+        if (TAG_INCLUDE.equals(parser.getName())) {
+            final int resId = getAttributeResourceValue(parser, ATTR_WORKSPACE, 0);
+            if (resId != 0) {
+                // recursively load some more favorites, why not?
+                return parseLayout(resId, screenIds);
+            } else {
+                return 0;
+            }
+        }
+
         mValues.clear();
         parseContainerAndScreen(parser, mTemp);
         final long container = mTemp[0];
diff --git a/src/com/android/launcher3/DefaultLayoutParser.java b/src/com/android/launcher3/DefaultLayoutParser.java
index e3ea40e..986ae81 100644
--- a/src/com/android/launcher3/DefaultLayoutParser.java
+++ b/src/com/android/launcher3/DefaultLayoutParser.java
@@ -19,7 +19,6 @@
 
 import java.io.IOException;
 import java.net.URISyntaxException;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
@@ -36,10 +35,8 @@
     private static final String TAG_SHORTCUT = "shortcut";
     private static final String TAG_FOLDER = "folder";
     private static final String TAG_PARTNER_FOLDER = "partner-folder";
-    private static final String TAG_INCLUDE = "include";
 
     private static final String ATTR_URI = "uri";
-    private static final String ATTR_WORKSPACE = "workspace";
     private static final String ATTR_CONTAINER = "container";
     private static final String ATTR_SCREEN = "screen";
     private static final String ATTR_FOLDER_ITEMS = "folderItems";
@@ -84,25 +81,6 @@
         out[1] = Long.parseLong(getAttributeValue(parser, ATTR_SCREEN));
     }
 
-    @Override
-    protected int parseAndAddNode(
-            XmlResourceParser parser,
-            HashMap<String, TagParser> tagParserMap,
-            ArrayList<Long> screenIds)
-                    throws XmlPullParserException, IOException {
-        if (TAG_INCLUDE.equals(parser.getName())) {
-            final int resId = getAttributeResourceValue(parser, ATTR_WORKSPACE, 0);
-            if (resId != 0) {
-                // recursively load some more favorites, why not?
-                return parseLayout(resId, screenIds);
-            } else {
-                return 0;
-            }
-        } else {
-            return super.parseAndAddNode(parser, tagParserMap, screenIds);
-        }
-    }
-
     /**
      * AppShortcutParser which also supports adding URI based intents
      */