summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--java/com/android/dialer/main/impl/OldMainActivityPeer.java6
-rw-r--r--java/com/android/dialer/main/impl/bottomnav/BottomNavBar.java3
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);
}