Move thread fragment from pane

This commit is contained in:
M66B
2023-08-22 23:02:09 +02:00
parent 7cbeb531f5
commit 4852aea444
3 changed files with 40 additions and 3 deletions

View File

@@ -715,6 +715,27 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
content_pane.setVisibility(duo || open_pane ? View.INVISIBLE : View.GONE);
}
FragmentManager fm = getSupportFragmentManager();
int count = fm.getBackStackEntryCount();
if (count > 1 && "thread".equals(fm.getBackStackEntryAt(count - 1).getName())) {
Fragment fragment = fm.findFragmentByTag("thread");
if (fragment != null &&
fragment.getId() == (content_pane == null ? R.id.content_pane : R.id.content_frame)) {
Log.i("Moving pane=" + (content_pane != null) + " fragment=" + fragment);
fm.popBackStack("thread", FragmentManager.POP_BACK_STACK_INCLUSIVE);
Fragment newFragment = Helper.recreateFragment(fragment, fm);
FragmentTransaction ft = fm.beginTransaction();
ft.replace(content_pane == null ? R.id.content_frame : R.id.content_pane, newFragment, "thread")
.addToBackStack("thread");
ft.commit();
if (content_pane != null) {
content_separator.setVisibility(View.VISIBLE);
content_pane.setVisibility(View.VISIBLE);
}
}
}
if (getSupportFragmentManager().getFragments().size() == 0 &&
!getIntent().hasExtra(Intent.EXTRA_PROCESS_TEXT))
init();
@@ -2455,7 +2476,7 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB
}
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.replace(pane, fragment).addToBackStack("thread");
fragmentTransaction.replace(pane, fragment, "thread").addToBackStack("thread");
fragmentTransaction.commit();
}