diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-04-08 20:18:50 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-04-08 20:18:50 +0200 |
commit | 8886fade18b64d128aaa4b4bc0600f6afe964bd2 (patch) | |
tree | b7a2951232c2137d0222b7892b70adcaef741b6e /src/main/java/de/pixart/messenger/ui/StartConversationActivity.java | |
parent | eb773489d6c08ca336095688a8deda039c09c080 (diff) |
add data binding and check in back stack for dialogs
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/StartConversationActivity.java | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java b/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java index d3d6d2d2a..ed1612044 100644 --- a/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java +++ b/src/main/java/de/pixart/messenger/ui/StartConversationActivity.java @@ -432,6 +432,12 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU @SuppressLint("InflateParams") protected void showCreateContactDialog(final String prefilledJid, final Invite invite) { + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); + Fragment prev = getSupportFragmentManager().findFragmentByTag("dialog"); + if (prev != null) { + ft.remove(prev); + } + ft.addToBackStack(null); EnterJidDialog dialog = EnterJidDialog.newInstance( mKnownHosts, mActivatedAccounts, getString(R.string.create_contact), getString(R.string.create), @@ -467,18 +473,30 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU } }); - dialog.show(getSupportFragmentManager(), "create_contact_dialog"); + dialog.show(ft, "dialog"); } @SuppressLint("InflateParams") protected void showJoinConferenceDialog(final String prefilledJid) { - JoinConferenceDialog dialog = JoinConferenceDialog.newInstance(prefilledJid, mActivatedAccounts, mKnownConferenceHosts); - dialog.show(getSupportFragmentManager(), "join_conference_dialog"); + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); + Fragment prev = getSupportFragmentManager().findFragmentByTag("dialog"); + if (prev != null) { + ft.remove(prev); + } + ft.addToBackStack(null); + JoinConferenceDialog joinConferenceFragment = JoinConferenceDialog.newInstance(prefilledJid, mActivatedAccounts, mKnownConferenceHosts); + joinConferenceFragment.show(ft, "dialog"); } private void showCreateConferenceDialog() { - CreateConferenceDialog dialog = CreateConferenceDialog.newInstance(mActivatedAccounts); - dialog.show(getSupportFragmentManager(), "create_conference_dialog"); + FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); + Fragment prev = getSupportFragmentManager().findFragmentByTag("dialog"); + if (prev != null) { + ft.remove(prev); + } + ft.addToBackStack(null); + CreateConferenceDialog createConferenceFragment = CreateConferenceDialog.newInstance(mActivatedAccounts); + createConferenceFragment.show(ft, "dialog"); } private Account getSelectedAccount(Spinner spinner) { |