From 368b5a6b2cad48b550a23fa322efd7673f4c425b Mon Sep 17 00:00:00 2001 From: Bernardo Rufino Date: Tue, 6 Mar 2018 16:07:13 +0000 Subject: [PATCH] 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 --- .../settings/backup/BackupSettingsActivity.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/backup/BackupSettingsActivity.java b/src/com/android/settings/backup/BackupSettingsActivity.java index 7ffc6cd32f2..d78af32d36b 100644 --- a/src/com/android/settings/backup/BackupSettingsActivity.java +++ b/src/com/android/settings/backup/BackupSettingsActivity.java @@ -58,9 +58,17 @@ public class BackupSettingsActivity extends Activity implements Indexable { "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);