Disabling stricty mode checks when launching an activity.
The default strict mode policy in NYC cause death penalty when when sharing file URI in intent. This causes launcher to crash for users who have shortcuts of images and documents on their homescreen. Bug: 28853579 Change-Id: If84cd5ff732713aaff5d3164edf428c8b4233ea2
This commit is contained in:
@@ -880,7 +880,7 @@ public class Launcher extends Activity
|
||||
sPendingAddItem = null;
|
||||
if (grantResults.length > 0
|
||||
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
startActivity(v, intent, null);
|
||||
startActivitySafely(v, intent, null);
|
||||
} else {
|
||||
// TODO: Show a snack bar with link to settings
|
||||
Toast.makeText(this, getString(R.string.msg_no_phone_permission,
|
||||
@@ -2873,8 +2873,18 @@ public class Launcher extends Activity
|
||||
}
|
||||
|
||||
if (user == null || user.equals(UserHandleCompat.myUserHandle())) {
|
||||
// Could be launching some bookkeeping activity
|
||||
startActivity(intent, optsBundle);
|
||||
StrictMode.VmPolicy oldPolicy = StrictMode.getVmPolicy();
|
||||
try {
|
||||
// Temporarily disable deathPenalty on all default checks. For eg, shortcuts
|
||||
// containing file Uris would cause a crash as penaltyDeathOnFileUriExposure
|
||||
// is enabled by default on NYC.
|
||||
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder().detectAll()
|
||||
.penaltyLog().build());
|
||||
// Could be launching some bookkeeping activity
|
||||
startActivity(intent, optsBundle);
|
||||
} finally {
|
||||
StrictMode.setVmPolicy(oldPolicy);
|
||||
}
|
||||
} else {
|
||||
// TODO Component can be null when shortcuts are supported for secondary user
|
||||
launcherApps.startActivityForProfile(intent.getComponent(), user,
|
||||
|
||||
Reference in New Issue
Block a user