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
This commit is contained in:
Paul Westbrook 2014-06-17 03:18:11 -07:00 committed by Greg Bullock
parent 57dbc3bf02
commit e817be1353
2 changed files with 17 additions and 10 deletions

View File

@ -824,4 +824,7 @@
<!-- This message indicates no quick responses exist to choose from -->
<string name="no_quick_responses">None available</string>
<!-- Activity name of the compose activity that should be reconciled -->
<string name="reconciliation_compose_activity_name" translatable="false">com.android.email.activity.ComposeActivityEmail</string>
</resources>

View File

@ -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