From b9e2d2dd528ef3dbd72c32d8580e1898019f4d4e Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Fri, 4 Mar 2016 17:47:07 +0300 Subject: [PATCH] up navigation logic changed --- .../navigation/AbstractBaseActivity.java | 27 +++---------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/src/main/java/ru/touchin/roboswag/components/navigation/AbstractBaseActivity.java b/src/main/java/ru/touchin/roboswag/components/navigation/AbstractBaseActivity.java index 7f8cb96..a8718c8 100644 --- a/src/main/java/ru/touchin/roboswag/components/navigation/AbstractBaseActivity.java +++ b/src/main/java/ru/touchin/roboswag/components/navigation/AbstractBaseActivity.java @@ -38,12 +38,11 @@ import android.view.MenuItem; import android.view.View; import android.view.inputmethod.InputMethodManager; -import ru.touchin.roboswag.components.utils.PermissionState; -import ru.touchin.roboswag.components.utils.UiUtils; - import java.util.HashMap; import java.util.Map; +import ru.touchin.roboswag.components.utils.PermissionState; +import ru.touchin.roboswag.components.utils.UiUtils; import rx.Observable; import rx.subjects.PublishSubject; @@ -308,16 +307,14 @@ public abstract class AbstractBaseActivity extends AppCompatActivity return true; } - final int stackSize = fragmentManager.getBackStackEntryCount(); - - switch (stackSize) { + switch (fragmentManager.getBackStackEntryCount()) { case 0: return false; case 1: getSupportFragmentManager().popBackStack(); return true; default: - findTopFragmentAndPopBackStackToIt(stackSize); + popBackStackToTopFragment(); return true; } default: @@ -331,22 +328,6 @@ public abstract class AbstractBaseActivity extends AppCompatActivity postHandler.removeCallbacksAndMessages(null); } - private void findTopFragmentAndPopBackStackToIt(final int stackSize) { - final FragmentManager fragmentManager = getSupportFragmentManager(); - String lastFragmentName = fragmentManager.getBackStackEntryAt(stackSize - 1).getName(); - for (int i = stackSize - 2; i >= 0; i--) { - final String currentFragmentName = fragmentManager.getBackStackEntryAt(i).getName(); - if (currentFragmentName == null || !currentFragmentName.equals(lastFragmentName)) { - fragmentManager.popBackStackImmediate(currentFragmentName, 0); - break; - } else if (i == 0) { - fragmentManager.popBackStackImmediate(currentFragmentName, FragmentManager.POP_BACK_STACK_INCLUSIVE); - } else { - lastFragmentName = currentFragmentName; - } - } - } - /* Hides device keyboard */ public void hideSoftInput() { if (getCurrentFocus() != null) {