1
0
mirror of https://github.com/moparisthebest/k-9 synced 2025-02-15 06:30:17 -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); saveIdentities(preferences.getPreferences(), editor);
editor.commit(); 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() { public void resetVisibleLimits() {

View File

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