diff options
3 files changed, 25 insertions, 31 deletions
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index 01915806..2c27315e 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -1287,6 +1287,7 @@ public class XmppConnectionService extends Service { if (avatar!=null) { avatar.owner = account.getJid(); if (fileBackend.isAvatarCached(avatar)) { + account.setAvatar(avatar.getFilename()); callback.success(avatar); } else { fetchAvatar(account, avatar,callback); diff --git a/src/eu/siacs/conversations/ui/EditAccountActivity.java b/src/eu/siacs/conversations/ui/EditAccountActivity.java index 681be439..e5920cdf 100644 --- a/src/eu/siacs/conversations/ui/EditAccountActivity.java +++ b/src/eu/siacs/conversations/ui/EditAccountActivity.java @@ -31,28 +31,15 @@ public class EditAccountActivity extends XmppActivity { private String jidToEdit; private Account mAccount; - private Avatar mAvatar = null; private boolean mUserInputIsValid = false; private boolean mFetchingAvatar = false; - private boolean mFinishedInitialSetup = false; private OnClickListener mSaveButtonClickListener = new OnClickListener() { @Override public void onClick(View v) { - if (mAccount != null && mFinishedInitialSetup) { - Intent intent; - if (mAvatar!=null) { - intent = new Intent(getApplicationContext(), StartConversationActivity.class); - } else { - intent = new Intent(getApplicationContext(), PublishProfilePictureActivity.class); - intent.putExtra("account", mAccount.getJid()); - } - startActivity(intent); - finish(); - return; - } else if (mAccount != null && mAccount.errorStatus() + if (mAccount != null && mAccount.errorStatus() && !mUserInputIsValid) { xmppConnectionService.reconnectAccount(mAccount, true); return; @@ -116,11 +103,7 @@ public class EditAccountActivity extends XmppActivity { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { - if (Validator.isValidJid(mAccountJid.getText().toString())) { - mUserInputIsValid = inputDataDiffersFromAccount(); - } else { - mUserInputIsValid = false; - } + mUserInputIsValid = inputDataDiffersFromAccount() && Validator.isValidJid(mAccountJid.getText().toString()); updateSaveButton(); } @@ -171,14 +154,20 @@ public class EditAccountActivity extends XmppActivity { } }; - protected void finishInitialSetup(Avatar avatar) { - this.mFinishedInitialSetup = true; - this.mAvatar = avatar; + protected void finishInitialSetup(final Avatar avatar) { runOnUiThread(new Runnable() { @Override public void run() { - updateSaveButton(); + Intent intent; + if (avatar!=null) { + intent = new Intent(getApplicationContext(), StartConversationActivity.class); + } else { + intent = new Intent(getApplicationContext(), PublishProfilePictureActivity.class); + intent.putExtra("account", mAccount.getJid()); + } + startActivity(intent); + finish(); } }); } @@ -196,11 +185,7 @@ public class EditAccountActivity extends XmppActivity { } protected void updateSaveButton() { - if (mAccount != null && mFinishedInitialSetup) { - this.mSaveButton.setEnabled(true); - this.mSaveButton.setTextColor(getPrimaryTextColor()); - this.mSaveButton.setText(R.string.next); - } else if (mAccount != null + if (mAccount != null && mAccount.getStatus() == Account.STATUS_CONNECTING && !mUserInputIsValid) { this.mSaveButton.setEnabled(false); @@ -214,10 +199,19 @@ public class EditAccountActivity extends XmppActivity { } else if (mUserInputIsValid) { this.mSaveButton.setEnabled(true); this.mSaveButton.setTextColor(getPrimaryTextColor()); + if (jidToEdit!=null) { + this.mSaveButton.setText(R.string.save); + } else { + this.mSaveButton.setText(R.string.next); + } } else { this.mSaveButton.setEnabled(false); this.mSaveButton.setTextColor(getSecondaryTextColor()); - this.mSaveButton.setText(R.string.save); + if (jidToEdit!=null) { + this.mSaveButton.setText(R.string.save); + } else { + this.mSaveButton.setText(R.string.next); + } } } @@ -244,7 +238,7 @@ public class EditAccountActivity extends XmppActivity { } else { mPasswordConfirm.setVisibility(View.GONE); } - mUserInputIsValid = inputDataDiffersFromAccount(); + mUserInputIsValid = inputDataDiffersFromAccount() && Validator.isValidJid(mAccountJid.getText().toString()); updateSaveButton(); } }); diff --git a/src/eu/siacs/conversations/ui/ManageAccountActivity.java b/src/eu/siacs/conversations/ui/ManageAccountActivity.java index d522a733..803917b9 100644 --- a/src/eu/siacs/conversations/ui/ManageAccountActivity.java +++ b/src/eu/siacs/conversations/ui/ManageAccountActivity.java @@ -8,7 +8,6 @@ import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.services.XmppConnectionService.OnAccountUpdate; import eu.siacs.conversations.ui.adapter.AccountAdapter; import eu.siacs.conversations.xmpp.XmppConnection; -import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; |