Catch SecurityException from enabling backup activity
Cases where the activity is already enabled and the account is an unicorn
account.
Test: Opened activity from backup settings w/ unicorn account, verified
no crash
Bug: 74199770
Change-Id: I7dc30d22b186ff19cf7c40fda0363ff1288224d1
diff --git a/src/com/android/settings/backup/BackupSettingsActivity.java b/src/com/android/settings/backup/BackupSettingsActivity.java
index 7ffc6cd..d78af32 100644
--- a/src/com/android/settings/backup/BackupSettingsActivity.java
+++ b/src/com/android/settings/backup/BackupSettingsActivity.java
@@ -58,9 +58,17 @@
"No manufacturer settings found, launching the backup settings directly");
}
Intent intent = backupHelper.getIntentForBackupSettings();
- // enable the activity before launching it
- getPackageManager().setComponentEnabledSetting(intent.getComponent(),
- PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);
+ try {
+ // enable the activity before launching it
+ getPackageManager().setComponentEnabledSetting(
+ intent.getComponent(),
+ PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+ PackageManager.DONT_KILL_APP);
+ } catch (SecurityException e) {
+ Log.w(TAG, "Trying to enable activity " + intent.getComponent() + " but couldn't: "
+ + e.getMessage());
+ // the activity may already be enabled
+ }
// use startActivityForResult to let the activity check the caller signature
startActivityForResult(intent, 1);