diff options
Diffstat (limited to 'src/com/android/contacts/quickcontact/QuickContactActivity.java')
-rw-r--r-- | src/com/android/contacts/quickcontact/QuickContactActivity.java | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java index f0885273c..a655329f2 100644 --- a/src/com/android/contacts/quickcontact/QuickContactActivity.java +++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java @@ -1292,10 +1292,17 @@ public class QuickContactActivity extends ContactsActivity implements @Override protected void onResume() { super.onResume(); - if (ContactsDataSubscription.get(this) - .subscribe(CALL_METHOD_SUBSCRIBER_ID, pluginsUpdatedReceiver)) { + ContactsDataSubscription dataSubscription = ContactsDataSubscription.get(this); + if (dataSubscription.subscribe(CALL_METHOD_SUBSCRIBER_ID, pluginsUpdatedReceiver)) { if (DEBUG) Log.d(TAG, "ContactsDataSubscription infoReady"); - ContactsDataSubscription.get(this).refreshDynamicItems(); + if (CallMethodFilters.getAllEnabledCallMethods(dataSubscription).size() > 0) { + // only refresh if there are ENABLED plugins + dataSubscription.refreshDynamicItems(); + } else { + // double check if UI needs update in case plugin status changes between + // ENABLED and DISABLED or ENABLED and HIDDEN or DISABLED and HIDDEN + updatePlugins(null); + } } else { if (DEBUG) Log.d(TAG, "ContactsDataSubscription info NOT Ready"); } @@ -1503,13 +1510,11 @@ public class QuickContactActivity extends ContactsActivity implements final ResolveCache cache = ResolveCache.getInstance(this); Set<String> pluginMimeExcluded; Set<String> pluginMimeIncluded; + ContactsDataSubscription subscription = ContactsDataSubscription.get(this); if (ContactsDataSubscription.infoReady()) { - mCallMethodMap = CallMethodFilters.getAllEnabledAndHiddenCallMethods( - ContactsDataSubscription.get(this)); - pluginMimeExcluded = MimeTypeUtils.getAllEnabledVideoImMimeSet( - ContactsDataSubscription.get(this)); - pluginMimeIncluded = MimeTypeUtils.getAllEnabledVoiceMimeSet( - ContactsDataSubscription.get(this)); + mCallMethodMap = CallMethodFilters.getAllEnabledAndHiddenCallMethods(subscription); + pluginMimeExcluded = MimeTypeUtils.getAllEnabledVideoImMimeSet(subscription); + pluginMimeIncluded = MimeTypeUtils.getAllEnabledVoiceMimeSet(subscription); if (DEBUG) { Log.d(TAG, "plugins size:" + mCallMethodMap.size()); @@ -3782,7 +3787,8 @@ public class QuickContactActivity extends ContactsActivity implements if (newCmMap.containsKey(cn)) { // Check if update needed CallMethodInfo newCmi = newCmMap.remove(cn); - if (newCmi.mIsAuthenticated != cmi.mIsAuthenticated) { + if (newCmi.mStatus != cmi.mStatus || + newCmi.mIsAuthenticated != cmi.mIsAuthenticated) { updateNeeded = true; } } else { |