summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErica Chang <echang@cyngn.com>2016-05-24 18:01:58 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-05-26 11:23:06 -0700
commitf05914c85cde00a88b2a027b2fe73faa52317cb2 (patch)
tree544ffdcec408a56379491dd1255c59d67ac62f10
parent765f3a08544cf44a145c08110e6ef5e5c741135a (diff)
downloadandroid_packages_apps_Contacts-f05914c85cde00a88b2a027b2fe73faa52317cb2.tar.gz
android_packages_apps_Contacts-f05914c85cde00a88b2a027b2fe73faa52317cb2.tar.bz2
android_packages_apps_Contacts-f05914c85cde00a88b2a027b2fe73faa52317cb2.zip
Contacts : fix FAB when an InCall plugin tab is in focus
There was an issue where the FAB was not updated onResume right after an InCall plugin auth state change. onPrepareOptionsMenu is always called upon onResume to update the InCall plugin FAB, but it's always called before the plugin update callback and was checking stale plugin auth info. This fix ensures updatePluginFab is always called -a plugin tab is in focus -in the end of updatePlugins (to check against the latest plugin auth info) Issue-id: FEIJ-691 Change-Id: I0e09eb7149c70a0eb16b5b3ad23c7032d94d64da
-rw-r--r--src/com/android/contacts/activities/PeopleActivity.java28
1 files changed, 19 insertions, 9 deletions
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index e405f8064..909de7700 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -1371,15 +1371,7 @@ public class PeopleActivity extends ContactsActivity implements
clearFrequentsMenu.setVisible(false);
} else if (mPluginLength > 0 && tabPosition >= TabState.GROUPS){
// plugin tab
- int pluginIndex = tabPosition - TabState.GROUPS;
- InCallPluginInfo pluginInfo = mPluginTabInfo.get(pluginIndex);
- // floating button state
- if (pluginInfo.mCallMethodInfo.mIsAuthenticated ||
- CallMethodUtils.isSoftLoggedOut(this, pluginInfo.mCallMethodInfo)) {
- mFloatingActionButtonContainer.setVisibility(View.VISIBLE);
- } else {
- mFloatingActionButtonContainer.setVisibility(View.GONE);
- }
+ updatePluginFab(tabPosition);
// menu
addGroupMenu.setVisible(false);
contactsFilterMenu.setVisible(false);
@@ -1988,5 +1980,23 @@ public class PeopleActivity extends ContactsActivity implements
mViewPagerTabs.onPageScrolled(mActionBarAdapter.getCurrentTab(), 0, 0);
onResumeInit();
}
+ updatePluginFab(getTabPositionForTextDirection(mActionBarAdapter.getCurrentTab()));
+ }
+
+ private void updatePluginFab(int tabPosition) {
+ if (mPluginLength > 0 && tabPosition >= TabState.GROUPS && tabPosition < mTabStateGroup) {
+ // it's a plugin tab, update the FAB
+ int pluginIndex = tabPosition - TabState.GROUPS;
+ if (pluginIndex < mPluginTabInfo.size()) {
+ InCallPluginInfo pluginInfo = mPluginTabInfo.get(pluginIndex);
+ // floating button state
+ if (pluginInfo.mCallMethodInfo.mIsAuthenticated ||
+ CallMethodUtils.isSoftLoggedOut(this, pluginInfo.mCallMethodInfo)) {
+ mFloatingActionButtonContainer.setVisibility(View.VISIBLE);
+ } else {
+ mFloatingActionButtonContainer.setVisibility(View.GONE);
+ }
+ }
+ }
}
}