OSDN Git Service

Add user selectable Default Browser feature - part 5
authorFabrice Di Meglio <fdimeglio@google.com>
Tue, 5 May 2015 00:06:33 +0000 (17:06 -0700)
committerFabrice Di Meglio <fdimeglio@google.com>
Tue, 5 May 2015 00:06:33 +0000 (17:06 -0700)
- check and clear default Browser if its package is no more available

See bug #20144393

Change-Id: I60a1b8f11058f3a4f9dc80440027ab72fe7cce2e

services/core/java/com/android/server/pm/PackageManagerService.java

index d618963..bf8c20c 100644 (file)
@@ -2148,6 +2148,7 @@ public class PackageManagerService extends IPackageManager.Stub {
             }
 
             primeDomainVerificationsLPw(false);
+            checkDefaultBrowser();
 
             // All the changes are done during package scanning.
             mSettings.updateInternalDatabaseVersion();
@@ -2317,6 +2318,17 @@ public class PackageManagerService extends IPackageManager.Stub {
         Slog.d(TAG, "End priming domain verifications");
     }
 
+    private void checkDefaultBrowser() {
+        final int myUserId = UserHandle.myUserId();
+        final String packageName = getDefaultBrowserPackageName(myUserId);
+        PackageInfo info = getPackageInfo(packageName, 0, myUserId);
+        if (info == null) {
+            Slog.w(TAG, "Clearing default Browser as its package is no more installed: " +
+                    packageName);
+            setDefaultBrowserPackageName(null, myUserId);
+        }
+    }
+
     @Override
     public boolean onTransact(int code, Parcel data, Parcel reply, int flags)
             throws RemoteException {