Loading services/core/java/com/android/server/pm/PackageManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -7416,6 +7416,11 @@ public class PackageManagerService implements PackageSender, TestUtilityService callback); } @Nullable String getDefaultBrowser(@UserIdInt int userId) { return mDefaultAppProvider.getDefaultBrowser(userId); } void setDefaultBrowser(@Nullable String packageName, boolean async, @UserIdInt int userId) { mDefaultAppProvider.setDefaultBrowser(packageName, async, userId); } Loading services/core/java/com/android/server/pm/PreferredActivityHelper.java +3 −9 Original line number Diff line number Diff line Loading @@ -557,9 +557,8 @@ final class PreferredActivityHelper { serializer.startDocument(null, true); serializer.startTag(null, TAG_DEFAULT_APPS); synchronized (mPm.mLock) { mPm.mSettings.writeDefaultAppsLPr(serializer, userId); } final String defaultBrowser = mPm.getDefaultBrowser(userId); Settings.writeDefaultApps(serializer, defaultBrowser); serializer.endTag(null, TAG_DEFAULT_APPS); serializer.endDocument(); Loading @@ -584,12 +583,7 @@ final class PreferredActivityHelper { parser.setInput(new ByteArrayInputStream(backup), StandardCharsets.UTF_8.name()); restoreFromXml(parser, userId, TAG_DEFAULT_APPS, (parser1, userId1) -> { final String defaultBrowser; synchronized (mPm.mLock) { mPm.mSettings.readDefaultAppsLPw(parser1, userId1); defaultBrowser = mPm.mSettings.removeDefaultBrowserPackageNameLPw( userId1); } final String defaultBrowser = Settings.readDefaultApps(parser1); if (defaultBrowser != null) { mPm.setDefaultBrowser(defaultBrowser, false, userId1); } Loading services/core/java/com/android/server/pm/Settings.java +21 −3 Original line number Diff line number Diff line Loading @@ -1691,6 +1691,19 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile void readDefaultAppsLPw(XmlPullParser parser, int userId) throws XmlPullParserException, IOException { String defaultBrowser = readDefaultApps(parser); if (defaultBrowser != null) { mDefaultBrowserApp.put(userId, defaultBrowser); } } /** * @return the package name for the default browser app, or {@code null} if none. */ @Nullable static String readDefaultApps(@NonNull XmlPullParser parser) throws XmlPullParserException, IOException { String defaultBrowser = null; int outerDepth = parser.getDepth(); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT Loading @@ -1700,8 +1713,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile } String tagName = parser.getName(); if (tagName.equals(TAG_DEFAULT_BROWSER)) { String packageName = parser.getAttributeValue(null, ATTR_PACKAGE_NAME); mDefaultBrowserApp.put(userId, packageName); defaultBrowser = parser.getAttributeValue(null, ATTR_PACKAGE_NAME); } else if (tagName.equals(TAG_DEFAULT_DIALER)) { // Ignored. } else { Loading @@ -1711,6 +1723,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile XmlUtils.skipCurrentTag(parser); } } return defaultBrowser; } void readBlockUninstallPackagesLPw(TypedXmlPullParser parser, int userId) Loading Loading @@ -2085,8 +2098,13 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile void writeDefaultAppsLPr(XmlSerializer serializer, int userId) throws IllegalArgumentException, IllegalStateException, IOException { serializer.startTag(null, TAG_DEFAULT_APPS); String defaultBrowser = mDefaultBrowserApp.get(userId); writeDefaultApps(serializer, defaultBrowser); } static void writeDefaultApps(@NonNull XmlSerializer serializer, @Nullable String defaultBrowser) throws IllegalArgumentException, IllegalStateException, IOException { serializer.startTag(null, TAG_DEFAULT_APPS); if (!TextUtils.isEmpty(defaultBrowser)) { serializer.startTag(null, TAG_DEFAULT_BROWSER); serializer.attribute(null, ATTR_PACKAGE_NAME, defaultBrowser); Loading Loading
services/core/java/com/android/server/pm/PackageManagerService.java +5 −0 Original line number Diff line number Diff line Loading @@ -7416,6 +7416,11 @@ public class PackageManagerService implements PackageSender, TestUtilityService callback); } @Nullable String getDefaultBrowser(@UserIdInt int userId) { return mDefaultAppProvider.getDefaultBrowser(userId); } void setDefaultBrowser(@Nullable String packageName, boolean async, @UserIdInt int userId) { mDefaultAppProvider.setDefaultBrowser(packageName, async, userId); } Loading
services/core/java/com/android/server/pm/PreferredActivityHelper.java +3 −9 Original line number Diff line number Diff line Loading @@ -557,9 +557,8 @@ final class PreferredActivityHelper { serializer.startDocument(null, true); serializer.startTag(null, TAG_DEFAULT_APPS); synchronized (mPm.mLock) { mPm.mSettings.writeDefaultAppsLPr(serializer, userId); } final String defaultBrowser = mPm.getDefaultBrowser(userId); Settings.writeDefaultApps(serializer, defaultBrowser); serializer.endTag(null, TAG_DEFAULT_APPS); serializer.endDocument(); Loading @@ -584,12 +583,7 @@ final class PreferredActivityHelper { parser.setInput(new ByteArrayInputStream(backup), StandardCharsets.UTF_8.name()); restoreFromXml(parser, userId, TAG_DEFAULT_APPS, (parser1, userId1) -> { final String defaultBrowser; synchronized (mPm.mLock) { mPm.mSettings.readDefaultAppsLPw(parser1, userId1); defaultBrowser = mPm.mSettings.removeDefaultBrowserPackageNameLPw( userId1); } final String defaultBrowser = Settings.readDefaultApps(parser1); if (defaultBrowser != null) { mPm.setDefaultBrowser(defaultBrowser, false, userId1); } Loading
services/core/java/com/android/server/pm/Settings.java +21 −3 Original line number Diff line number Diff line Loading @@ -1691,6 +1691,19 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile void readDefaultAppsLPw(XmlPullParser parser, int userId) throws XmlPullParserException, IOException { String defaultBrowser = readDefaultApps(parser); if (defaultBrowser != null) { mDefaultBrowserApp.put(userId, defaultBrowser); } } /** * @return the package name for the default browser app, or {@code null} if none. */ @Nullable static String readDefaultApps(@NonNull XmlPullParser parser) throws XmlPullParserException, IOException { String defaultBrowser = null; int outerDepth = parser.getDepth(); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT Loading @@ -1700,8 +1713,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile } String tagName = parser.getName(); if (tagName.equals(TAG_DEFAULT_BROWSER)) { String packageName = parser.getAttributeValue(null, ATTR_PACKAGE_NAME); mDefaultBrowserApp.put(userId, packageName); defaultBrowser = parser.getAttributeValue(null, ATTR_PACKAGE_NAME); } else if (tagName.equals(TAG_DEFAULT_DIALER)) { // Ignored. } else { Loading @@ -1711,6 +1723,7 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile XmlUtils.skipCurrentTag(parser); } } return defaultBrowser; } void readBlockUninstallPackagesLPw(TypedXmlPullParser parser, int userId) Loading Loading @@ -2085,8 +2098,13 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile void writeDefaultAppsLPr(XmlSerializer serializer, int userId) throws IllegalArgumentException, IllegalStateException, IOException { serializer.startTag(null, TAG_DEFAULT_APPS); String defaultBrowser = mDefaultBrowserApp.get(userId); writeDefaultApps(serializer, defaultBrowser); } static void writeDefaultApps(@NonNull XmlSerializer serializer, @Nullable String defaultBrowser) throws IllegalArgumentException, IllegalStateException, IOException { serializer.startTag(null, TAG_DEFAULT_APPS); if (!TextUtils.isEmpty(defaultBrowser)) { serializer.startTag(null, TAG_DEFAULT_BROWSER); serializer.attribute(null, ATTR_PACKAGE_NAME, defaultBrowser); Loading