diff options
| -rw-r--r-- | core/java/com/android/internal/app/ResolverActivity.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/core/java/com/android/internal/app/ResolverActivity.java b/core/java/com/android/internal/app/ResolverActivity.java index 091991130391..2c2f69585956 100644 --- a/core/java/com/android/internal/app/ResolverActivity.java +++ b/core/java/com/android/internal/app/ResolverActivity.java @@ -28,6 +28,7 @@ import android.app.ActivityThread; import android.app.VoiceInteractor.PickOptionRequest; import android.app.VoiceInteractor.PickOptionRequest.Option; import android.app.VoiceInteractor.Prompt; +import android.app.role.RoleManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -645,10 +646,18 @@ public class ResolverActivity extends Activity { private void showSettingsForSelected(int which, boolean hasIndexBeenFiltered) { ResolveInfo ri = mAdapter.resolveInfoForPosition(which, hasIndexBeenFiltered); - Intent in = new Intent().setAction(Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS) - .setData(Uri.fromParts("package", ri.activityInfo.packageName, null)) - .addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); - startActivity(in); + Intent intent = new Intent(); + // For browsers, we open the Default Browser page + // For regular apps, we open the Open by Default page + if (ri.handleAllWebDataURI) { + intent.setAction(Intent.ACTION_MANAGE_DEFAULT_APP) + .putExtra(Intent.EXTRA_ROLE_NAME, RoleManager.ROLE_BROWSER); + } else { + intent.setAction(Settings.ACTION_APP_OPEN_BY_DEFAULT_SETTINGS) + .setData(Uri.fromParts("package", ri.activityInfo.packageName, null)) + .addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT); + } + startActivity(intent); } public void startSelected(int which, boolean always, boolean hasIndexBeenFiltered) { |