@@ -398,18 +398,31 @@ public class ManageAccountActivity extends XmppActivity {
case R.id.action_add_account:
addAccount();
break;
- case android.R.id.home:- if (xmppConnectionService.getConversations().size() == 0) {- startActivity(new Intent(getApplicationContext(),- ContactsActivity.class));- }- break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
+ @Override
+ public boolean onNavigateUp() {
+ if (xmppConnectionService.getConversations().size() == 0) {
+ Intent contactsIntent = new Intent(this, ContactsActivity.class);
+ contactsIntent.setFlags(
+ // if activity exists in stack, pop the stack and go back to it
+ Intent.FLAG_ACTIVITY_CLEAR_TOP |
+ // otherwise, make a new task for it
+ Intent.FLAG_ACTIVITY_NEW_TASK |
+ // don't use the new activity animation; finish animation runs instead
+ Intent.FLAG_ACTIVITY_NO_ANIMATION);
+ startActivity(contactsIntent);
+ finish();
+ return true;
+ } else {
+ return super.onNavigateUp();
+ }
+ }
+
private void editAccount(Account account) {
EditAccount dialog = new EditAccount();
dialog.setAccount(account);