Merge "Don't crash in EmailActivity if no accounts exist" into ics-mr1

This commit is contained in:
Marc Blank 2011-11-10 15:27:48 -08:00 committed by Android (Google) Code Review
commit de6b6db995
2 changed files with 15 additions and 9 deletions

View File

@ -78,6 +78,9 @@ public class MessageListContext implements Parcelable {
} else { } else {
if (accountId == Account.NO_ACCOUNT) { if (accountId == Account.NO_ACCOUNT) {
accountId = Account.getDefaultAccountId(context); accountId = Account.getDefaultAccountId(context);
if (accountId == Account.NO_ACCOUNT) {
return null;
}
} }
if (mailboxId == Mailbox.NO_MAILBOX) { if (mailboxId == Mailbox.NO_MAILBOX) {
mailboxId = (accountId == Account.ACCOUNT_ID_COMBINED_VIEW) mailboxId = (accountId == Account.ACCOUNT_ID_COMBINED_VIEW)

View File

@ -199,19 +199,22 @@ public class EmailActivity extends Activity implements View.OnClickListener, Fra
if (savedInstanceState != null) { if (savedInstanceState != null) {
mUIController.onRestoreInstanceState(savedInstanceState); mUIController.onRestoreInstanceState(savedInstanceState);
} else { } else {
initFromIntent(); final Intent intent = getIntent();
final MessageListContext viewContext = MessageListContext.forIntent(this, intent);
if (viewContext == null) {
// This might happen if accounts were deleted on another thread, and there aren't
// any remaining
Welcome.actionStart(this);
finish();
return;
} else {
final long messageId = intent.getLongExtra(EXTRA_MESSAGE_ID, Message.NO_MESSAGE);
mUIController.open(viewContext, messageId);
}
} }
mUIController.onActivityCreated(); mUIController.onActivityCreated();
} }
private void initFromIntent() {
final Intent intent = getIntent();
final MessageListContext viewContext = MessageListContext.forIntent(this, intent);
final long messageId = intent.getLongExtra(EXTRA_MESSAGE_ID, Message.NO_MESSAGE);
mUIController.open(viewContext, messageId);
}
@Override @Override
protected void onSaveInstanceState(Bundle outState) { protected void onSaveInstanceState(Bundle outState) {
if (Logging.DEBUG_LIFECYCLE && Email.DEBUG) { if (Logging.DEBUG_LIFECYCLE && Email.DEBUG) {