Removing dependency on XmlResourceParser in default layout parsing

This is allow support for generating and parsing default layout at
runtime by a different app.

Change-Id: Id3bfcf1d353417102429ab137402ccfedc4e6cc5
This commit is contained in:
Sunny Goyal
2019-03-04 20:22:26 -08:00
parent 84eb812bcd
commit 0d74231fec
2 changed files with 25 additions and 27 deletions

View File

@@ -10,7 +10,6 @@ import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.ArrayMap;
@@ -76,7 +75,7 @@ public class DefaultLayoutParser extends AutoInstallsLayout {
}
@Override
protected void parseContainerAndScreen(XmlResourceParser parser, int[] out) {
protected void parseContainerAndScreen(XmlPullParser parser, int[] out) {
out[0] = LauncherSettings.Favorites.CONTAINER_DESKTOP;
String strContainer = getAttributeValue(parser, ATTR_CONTAINER);
if (strContainer != null) {
@@ -91,7 +90,7 @@ public class DefaultLayoutParser extends AutoInstallsLayout {
public class AppShortcutWithUriParser extends AppShortcutParser {
@Override
protected int invalidPackageOrClass(XmlResourceParser parser) {
protected int invalidPackageOrClass(XmlPullParser parser) {
final String uri = getAttributeValue(parser, ATTR_URI);
if (TextUtils.isEmpty(uri)) {
Log.e(TAG, "Skipping invalid <favorite> with no component or uri");
@@ -185,7 +184,7 @@ public class DefaultLayoutParser extends AutoInstallsLayout {
}
@Override
protected Intent parseIntent(XmlResourceParser parser) {
protected Intent parseIntent(XmlPullParser parser) {
String uri = null;
try {
uri = getAttributeValue(parser, ATTR_URI);
@@ -205,7 +204,7 @@ public class DefaultLayoutParser extends AutoInstallsLayout {
private final AppShortcutWithUriParser mChildParser = new AppShortcutWithUriParser();
@Override
public int parseAndAdd(XmlResourceParser parser) throws XmlPullParserException,
public int parseAndAdd(XmlPullParser parser) throws XmlPullParserException,
IOException {
final int groupDepth = parser.getDepth();
int type;
@@ -233,7 +232,7 @@ public class DefaultLayoutParser extends AutoInstallsLayout {
@Thunk class PartnerFolderParser implements TagParser {
@Override
public int parseAndAdd(XmlResourceParser parser) throws XmlPullParserException,
public int parseAndAdd(XmlPullParser parser) throws XmlPullParserException,
IOException {
// Folder contents come from an external XML resource
final Partner partner = Partner.get(mPackageManager);
@@ -242,7 +241,7 @@ public class DefaultLayoutParser extends AutoInstallsLayout {
final int resId = partnerRes.getIdentifier(Partner.RES_FOLDER,
"xml", partner.getPackageName());
if (resId != 0) {
final XmlResourceParser partnerParser = partnerRes.getXml(resId);
final XmlPullParser partnerParser = partnerRes.getXml(resId);
beginDocument(partnerParser, TAG_FOLDER);
FolderParser folderParser = new FolderParser(getFolderElementsMap(partnerRes));
@@ -259,7 +258,7 @@ public class DefaultLayoutParser extends AutoInstallsLayout {
@Thunk class MyFolderParser extends FolderParser {
@Override
public int parseAndAdd(XmlResourceParser parser) throws XmlPullParserException,
public int parseAndAdd(XmlPullParser parser) throws XmlPullParserException,
IOException {
final int resId = getAttributeResourceValue(parser, ATTR_FOLDER_ITEMS, 0);
if (resId != 0) {