diff options
author | Erica Chang <echang@cyngn.com> | 2016-05-24 18:01:58 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-05-26 11:23:06 -0700 |
commit | f05914c85cde00a88b2a027b2fe73faa52317cb2 (patch) | |
tree | 544ffdcec408a56379491dd1255c59d67ac62f10 | |
parent | 765f3a08544cf44a145c08110e6ef5e5c741135a (diff) | |
download | packages_apps_Contacts-f05914c85cde00a88b2a027b2fe73faa52317cb2.tar.gz packages_apps_Contacts-f05914c85cde00a88b2a027b2fe73faa52317cb2.tar.bz2 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.java | 28 |
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); + } + } + } } } |