From e817be135332c4060b5985ff830e3ce555043a43 Mon Sep 17 00:00:00 2001 From: Paul Westbrook Date: Tue, 17 Jun 2014 03:18:11 -0700 Subject: [PATCH] Specify compose activity with resource. Allow the compose activity, that the account reconciler attempts to enabled/disable, to be able to be specified via resources. This allows the various build targets to change the activity that is enabled/disabled, or to not attempt to do this at all Change-Id: I7c91c2c179316a3aac910a38d7dd0025076b085a --- res/values/strings.xml | 3 +++ .../email/provider/AccountReconciler.java | 24 +++++++++++-------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 0717759c0..0c7709861 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -824,4 +824,7 @@ None available + + com.android.email.activity.ComposeActivityEmail + diff --git a/src/com/android/email/provider/AccountReconciler.java b/src/com/android/email/provider/AccountReconciler.java index bcfb675c7..67e3c3b08 100644 --- a/src/com/android/email/provider/AccountReconciler.java +++ b/src/com/android/email/provider/AccountReconciler.java @@ -244,16 +244,20 @@ public class AccountReconciler { } } - // If there are no accounts remaining after reconciliation, disable the compose activity - final boolean enableCompose = emailProviderAccounts.size() - accountsDeleted > 0; - final ComponentName componentName = - new ComponentName(context, ComposeActivityEmail.class.getName()); - context.getPackageManager().setComponentEnabledSetting(componentName, - enableCompose ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : - PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); - LogUtils.d(LogUtils.TAG, "Setting compose activity to " - + (enableCompose ? "enabled" : "disabled")); + final String composeActivityName = + context.getString(R.string.reconciliation_compose_activity_name); + if (!TextUtils.isEmpty(composeActivityName)) { + // If there are no accounts remaining after reconciliation, disable the compose activity + final boolean enableCompose = emailProviderAccounts.size() - accountsDeleted > 0; + final ComponentName componentName = new ComponentName(context, composeActivityName); + context.getPackageManager().setComponentEnabledSetting(componentName, + enableCompose ? PackageManager.COMPONENT_ENABLED_STATE_ENABLED : + PackageManager.COMPONENT_ENABLED_STATE_DISABLED, + PackageManager.DONT_KILL_APP); + LogUtils.d(LogUtils.TAG, "Setting compose activity to " + + (enableCompose ? "enabled" : "disabled")); + } + // If an account has been deleted, the simplest thing is just to kill our process. // Otherwise we might have a service running trying to do something for the account