1
0
mirror of https://github.com/moparisthebest/k-9 synced 2025-02-14 22:20:12 -05:00

Persist account settings immediately after updating from EasStore.

This commit is contained in:
wongk 2012-01-05 17:09:05 -05:00
parent a212965b99
commit 0292ad2525
2 changed files with 42 additions and 8 deletions

View File

@ -676,7 +676,36 @@ public class Account implements BaseAccount {
saveIdentities(preferences.getPreferences(), editor);
editor.commit();
}
public synchronized void saveFolderNames(Preferences preferences) {
if (preferences.getPreferences().getString("accountUuids", "").contains(mUuid)) {
SharedPreferences.Editor editor = preferences.getPreferences().edit();
editor.putString(mUuid + ".inboxFolderName", mInboxFolderName);
editor.putString(mUuid + ".draftsFolderName", mDraftsFolderName);
editor.putString(mUuid + ".sentFolderName", mSentFolderName);
editor.putString(mUuid + ".trashFolderName", mTrashFolderName);
editor.putString(mUuid + ".archiveFolderName", mArchiveFolderName);
editor.putString(mUuid + ".spamFolderName", mSpamFolderName);
editor.putString(mUuid + ".autoExpandFolderName", mAutoExpandFolderName);
editor.commit();
}
}
public synchronized void saveSyncKey(Preferences preferences) {
if (preferences.getPreferences().getString("accountUuids", "").contains(mUuid)) {
SharedPreferences.Editor editor = preferences.getPreferences().edit();
editor.putString(mUuid + ".syncKey", mSyncKey);
editor.commit();
}
}
public synchronized void saveSecurityKey(Preferences preferences) {
if (preferences.getPreferences().getString("accountUuids", "").contains(mUuid)) {
SharedPreferences.Editor editor = preferences.getPreferences().edit();
editor.putString(mUuid + ".securityKey", mSecurityKey);
editor.commit();
}
}
public void resetVisibleLimits() {

View File

@ -46,6 +46,7 @@ import android.util.Log;
import com.fsck.k9.Account;
import com.fsck.k9.K9;
import com.fsck.k9.Preferences;
import com.fsck.k9.controller.MessageRetrievalListener;
import com.fsck.k9.helper.power.TracingPowerManager;
import com.fsck.k9.helper.power.TracingPowerManager.TracingWakeLock;
@ -310,7 +311,7 @@ public class EasStore extends Store {
// Set the default sync key if it has not yet been set.
if (TextUtils.isEmpty(key)) {
key = INITIAL_SYNC_KEY;
mAccount.setSyncKey(key);
setStoreSyncKey(key);
}
return key;
@ -318,6 +319,7 @@ public class EasStore extends Store {
public void setStoreSyncKey(String syncKey) {
mAccount.setSyncKey(syncKey);
mAccount.saveSyncKey(Preferences.getPreferences(K9.app.getApplicationContext()));
}
@Override
@ -814,23 +816,25 @@ public class EasStore extends Store {
switch (type) {
case FolderSyncParser.INBOX_TYPE:
String inboxFolderName = folder.getRemoteName();
this.mAccount.setAutoExpandFolderName(inboxFolderName);
this.mAccount.setInboxFolderName(inboxFolderName);
mAccount.setAutoExpandFolderName(inboxFolderName);
mAccount.setInboxFolderName(inboxFolderName);
break;
case FolderSyncParser.DRAFTS_TYPE:
this.mAccount.setDraftsFolderName(folder.getRemoteName());
mAccount.setDraftsFolderName(folder.getRemoteName());
break;
case FolderSyncParser.DELETED_TYPE:
this.mAccount.setTrashFolderName(folder.getRemoteName());
mAccount.setTrashFolderName(folder.getRemoteName());
break;
case FolderSyncParser.SENT_TYPE:
this.mAccount.setSentFolderName(folder.getRemoteName());
mAccount.setSentFolderName(folder.getRemoteName());
break;
case FolderSyncParser.OUTBOX_TYPE:
// outbox folder is not synced
// Outbox folder is not synced.
break;
}
}
mAccount.saveFolderNames(Preferences.getPreferences(K9.app.getApplicationContext()));
return folderList;
}
@ -842,6 +846,7 @@ public class EasStore extends Store {
if (pp != null) {
String policyKey = acknowledgeProvision(pp.getPolicyKey(), PROVISION_STATUS_OK);
mAccount.setSecurityKey(policyKey);
mAccount.saveSyncKey(Preferences.getPreferences(K9.app.getApplicationContext()));
return true;
} else {
return false;