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,