* #36914: adjustements with navigation
diff --git a/src/org/sflphone/client/HomeActivity.java b/src/org/sflphone/client/HomeActivity.java
index 0319083..f479a61 100644
--- a/src/org/sflphone/client/HomeActivity.java
+++ b/src/org/sflphone/client/HomeActivity.java
@@ -82,6 +82,7 @@
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
+import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentManager.BackStackEntry;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
@@ -327,9 +328,11 @@
if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
BackStackEntry entry = getSupportFragmentManager().getBackStackEntryAt(getSupportFragmentManager().getBackStackEntryCount() - 1);
-
+ Log.i(TAG, "Popping:"+ getSupportFragmentManager().getBackStackEntryCount());
+ Log.i(TAG, "Name:"+ entry.getName());
fContent = getSupportFragmentManager().findFragmentByTag(entry.getName());
-
+ if(fContent == null)
+ Log.i(TAG, "Null frag");
getSupportFragmentManager().popBackStack();
return;
}
@@ -398,7 +401,8 @@
fMenu = new MenuFragment();
fContent = new HomeFragment();
- getSupportFragmentManager().beginTransaction().replace(R.id.left_drawer, fMenu).replace(R.id.main_frame, fContent).commit();
+ getSupportFragmentManager().beginTransaction().replace(R.id.left_drawer, fMenu).commit();
+ getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Home").commit();
service.destroyNotification();
} catch (RemoteException e) {
@@ -678,16 +682,27 @@
public void onSectionSelected(int pos) {
switch (pos) {
case 0:
- fContent = new HomeFragment();
- getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent).addToBackStack("HomeTransac").commit();
+
+ if (fContent instanceof HomeFragment)
+ break;
+
+ BackStackEntry entry = getSupportFragmentManager().getBackStackEntryAt(0);
+ fContent = getSupportFragmentManager().findFragmentByTag(entry.getName());
+ getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
+
break;
case 1:
+ if (fContent instanceof AccountsManagementFragment)
+ break;
+ Log.i(TAG, "BackStackEntries: " + getSupportFragmentManager().getBackStackEntryCount());
fContent = new AccountsManagementFragment();
- getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent).addToBackStack("AccountsTransac").commit();
+ getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commit();
break;
case 2:
+ if (fContent instanceof AboutFragment)
+ break;
fContent = new AboutFragment();
- getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent).addToBackStack("AboutTransac").commit();
+ getSupportFragmentManager().beginTransaction().replace(R.id.main_frame, fContent, "Home").addToBackStack("Home").commit();
break;
}