offer back/cancel button when using magic create

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java | 32 +
1 file changed, 25 insertions(+), 7 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java 🔗

@@ -235,6 +235,7 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 
 		@Override
 		public void onClick(final View v) {
+			deleteMagicCreatedAccountAndReturnIfNecessary();
 			finish();
 		}
 	};
@@ -261,6 +262,29 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 		updateSaveButton();
 	}
 
+	@Override
+	public boolean onNavigateUp() {
+		deleteMagicCreatedAccountAndReturnIfNecessary();
+		return super.onNavigateUp();
+	}
+
+	@Override
+	public void onBackPressed() {
+		deleteMagicCreatedAccountAndReturnIfNecessary();
+		super.onBackPressed();
+	}
+
+	private void deleteMagicCreatedAccountAndReturnIfNecessary() {
+		if (Config.MAGIC_CREATE_DOMAIN != null
+				&& mAccount != null
+				&& mAccount.isOptionSet(Account.OPTION_MAGIC_CREATE)
+				&& mAccount.isOptionSet(Account.OPTION_REGISTER)
+				&& xmppConnectionService.getAccounts().size() == 1) {
+			xmppConnectionService.deleteAccount(mAccount);
+			startActivity(new Intent(EditAccountActivity.this, WelcomeActivity.class));
+		}
+	}
+
 	@Override
 	public void onAccountUpdate() {
 		refreshUi();
@@ -594,13 +618,7 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
 				updateAccountInformation(true);
 			}
 		}
-		if ((Config.MAGIC_CREATE_DOMAIN == null && this.xmppConnectionService.getAccounts().size() == 0)
-				|| (this.mAccount != null && this.mAccount == xmppConnectionService.getPendingAccount())) {
-			if (getActionBar() != null) {
-				getActionBar().setDisplayHomeAsUpEnabled(false);
-				getActionBar().setDisplayShowHomeEnabled(false);
-				getActionBar().setHomeButtonEnabled(false);
-			}
+		if (Config.MAGIC_CREATE_DOMAIN == null && this.xmppConnectionService.getAccounts().size() == 0) {
 			this.mCancelButton.setEnabled(false);
 			this.mCancelButton.setTextColor(getSecondaryTextColor());
 		}