Snap for 4635315 from d1e460ca091804775d96fde36ed4b020b8f154aa to pi-release

Change-Id: Ief56c3984f3b5a272e939f3bee90b3e1e8c1beb2
diff --git a/src/com/android/support/car/lenspicker/LensResolverActivity.java b/src/com/android/support/car/lenspicker/LensResolverActivity.java
index 3e737b5..2028e75 100644
--- a/src/com/android/support/car/lenspicker/LensResolverActivity.java
+++ b/src/com/android/support/car/lenspicker/LensResolverActivity.java
@@ -28,6 +28,7 @@
 import android.os.PatternMatcher;
 import android.provider.MediaStore;
 import android.support.annotation.StringRes;
+import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 import android.view.Window;
@@ -169,8 +170,17 @@
         ComponentName component = item.getLaunchIntent().getComponent();
 
         if (mAlwaysCheckbox.isChecked()) {
+            PackageManager pm = getPackageManager();
+            if (info.handleAllWebDataURI) {
+                // Set default Browser if needed
+                int userId = getUserId();
+                String packageName = pm.getDefaultBrowserPackageNameAsUser(userId);
+                if (TextUtils.isEmpty(packageName)) {
+                    pm.setDefaultBrowserPackageNameAsUser(info.activityInfo.packageName, userId);
+                }
+            }
             IntentFilter filter = buildIntentFilterForResolveInfo(info);
-            getPackageManager().addPreferredActivity(filter, info.match, mComponentSet, component);
+            pm.addPreferredActivity(filter, info.match, mComponentSet, component);
         }
 
         // Now launch the original resolve intent but correctly set the component.
diff --git a/src/com/android/support/car/lenspicker/ResolverAdapter.java b/src/com/android/support/car/lenspicker/ResolverAdapter.java
index 3773cd1..d26d159 100644
--- a/src/com/android/support/car/lenspicker/ResolverAdapter.java
+++ b/src/com/android/support/car/lenspicker/ResolverAdapter.java
@@ -15,9 +15,11 @@
  */
 package com.android.support.car.lenspicker;
 
+import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
 import android.content.SharedPreferences;
+import android.content.pm.ActivityInfo;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
@@ -93,8 +95,6 @@
 
             for (ResolveInfo info : mResolveInfos) {
                 String packageName = LensPickerUtils.getPackageName(info);
-                Intent launchIntent = LensPickerUtils.getLaunchIntent(packageName, info,
-                        packageManager);
 
                 try {
                     ApplicationInfo aInfo = packageManager.getApplicationInfo(packageName, 0);
@@ -114,6 +114,16 @@
                     if (displayName.equals("")) {
                         displayName = getComponentLabel(packageManager, aInfo);
                     }
+                    Intent launchIntent = LensPickerUtils.getLaunchIntent(packageName, info,
+                            packageManager);
+                    // If launchIntent is null, create an intent from the ResolverInfo
+                    if (launchIntent == null) {
+                        launchIntent = new Intent();
+                        ActivityInfo activity = info.activityInfo;
+                        launchIntent.setComponent(
+                                new ComponentName(activity.applicationInfo.packageName,
+                                activity.name));
+                    }
 
                     items.add(new LensPickerItem(displayName,
                             getComponentIcon(packageManager, aInfo), launchIntent,