Write color in JSON account, and ignore null account.settings

Change-Id: Ic78ef739b5965204595eeae7a46319eaee3e5f44
diff --git a/src/com/android/mail/providers/Account.java b/src/com/android/mail/providers/Account.java
index b0cb6ce..5a8010c 100644
--- a/src/com/android/mail/providers/Account.java
+++ b/src/com/android/mail/providers/Account.java
@@ -165,6 +165,7 @@
             json.put(UIProvider.AccountColumns.COMPOSE_URI, composeIntentUri);
             json.put(UIProvider.AccountColumns.MIME_TYPE, mimeType);
             json.put(UIProvider.AccountColumns.RECENT_FOLDER_LIST_URI, recentFolderListUri);
+            json.put(UIProvider.AccountColumns.COLOR, color);
             if (settings != null) {
                 json.put(SETTINGS_KEY, settings.toJSON());
             }
diff --git a/src/com/android/mail/ui/AbstractActivityController.java b/src/com/android/mail/ui/AbstractActivityController.java
index 5e9fac1..3f9b4d4 100644
--- a/src/com/android/mail/ui/AbstractActivityController.java
+++ b/src/com/android/mail/ui/AbstractActivityController.java
@@ -877,11 +877,14 @@
                     "AAC ignoring null (presumably invalid) account restoration");
             return;
         }
-
-        mAccount = account;
         LogUtils.d(LOG_TAG, "AbstractActivityController.setAccount(): mAccount = %s", mAccount.uri);
-        dispatchSettingsChange(mAccount.settings);
+        mAccount = account;
         mActionBarView.setAccount(mAccount);
+        if (account.settings == null) {
+            LogUtils.w(LOG_TAG, new Error(), "AAC ignoring account with null settings.");
+            return;
+        }
+        dispatchSettingsChange(mAccount.settings);
     }
 
     /**