diff options
-rw-r--r-- | java/com/android/dialer/main/impl/OldMainActivityPeer.java | 6 | ||||
-rw-r--r-- | java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/java/com/android/dialer/main/impl/OldMainActivityPeer.java b/java/com/android/dialer/main/impl/OldMainActivityPeer.java index 2ea36ea20..03afef4b4 100644 --- a/java/com/android/dialer/main/impl/OldMainActivityPeer.java +++ b/java/com/android/dialer/main/impl/OldMainActivityPeer.java @@ -1186,8 +1186,12 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen * * <p>Executes all fragment shows/hides in one transaction with no conflicting transactions * (like showing and hiding the same fragment in the same transaction). See a bug. + * + * <p>Special care should be taken to avoid calling this method several times in a short window + * as it can lead to fragments overlapping. */ private void showFragment(@NonNull Fragment fragment, String tag) { + LogUtil.enterBlock("MainBottomNavBarBottomNavTabListener.showFragment"); Fragment speedDial = fragmentManager.findFragmentByTag(SPEED_DIAL_TAG); Fragment callLog = fragmentManager.findFragmentByTag(CALL_LOG_TAG); Fragment contacts = fragmentManager.findFragmentByTag(CONTACTS_TAG); @@ -1200,6 +1204,8 @@ public class OldMainActivityPeer implements MainActivityPeer, FragmentUtilListen fragmentShown |= showIfEqualElseHide(transaction, fragment, voicemail); if (!fragmentShown) { + LogUtil.i( + "MainBottomNavBarBottomNavTabListener.showFragment", "Not added yet: " + fragment); transaction.add(R.id.fragment_container, fragment, tag); } transaction.commit(); diff --git a/java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java b/java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java index 903f51fd2..80aa38b3e 100644 --- a/java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java +++ b/java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java @@ -155,7 +155,8 @@ public final class BottomNavBar extends LinearLayout { int voicemailcurrentVisibility = voicemail.getVisibility(); if (voicemailpreviousVisibility != voicemailcurrentVisibility - && voicemailpreviousVisibility == View.VISIBLE) { + && voicemailpreviousVisibility == View.VISIBLE + && getSelectedTab() == TabIndex.VOICEMAIL) { LogUtil.i("OldMainActivityPeer.showVoicemail", "hid VM tab and moved to speed dial tab"); selectTab(TabIndex.SPEED_DIAL); } |