1
0
mirror of https://github.com/moparisthebest/k-9 synced 2025-02-25 23:21:50 -05:00

Always save all headers. Not doing so is kind of a crazy space microoptimization and can get a little messy

This commit is contained in:
Jesse Vincent 2012-09-10 12:05:52 -04:00
parent 20a608e1a0
commit d5f739030a
4 changed files with 8 additions and 52 deletions

View File

@ -152,7 +152,6 @@ public class Account implements BaseAccount {
private FolderMode mFolderPushMode; private FolderMode mFolderPushMode;
private FolderMode mFolderTargetMode; private FolderMode mFolderTargetMode;
private int mAccountNumber; private int mAccountNumber;
private boolean mSaveAllHeaders;
private boolean mPushPollOnConnect; private boolean mPushPollOnConnect;
private boolean mNotifySync; private boolean mNotifySync;
private SortType mSortType; private SortType mSortType;
@ -240,7 +239,6 @@ public class Account implements BaseAccount {
mLocalStorageProviderId = StorageManager.getInstance(K9.app).getDefaultProviderId(); mLocalStorageProviderId = StorageManager.getInstance(K9.app).getDefaultProviderId();
mAutomaticCheckIntervalMinutes = -1; mAutomaticCheckIntervalMinutes = -1;
mIdleRefreshMinutes = 24; mIdleRefreshMinutes = 24;
mSaveAllHeaders = true;
mPushPollOnConnect = true; mPushPollOnConnect = true;
mDisplayCount = K9.DEFAULT_VISIBLE_LIMIT; mDisplayCount = K9.DEFAULT_VISIBLE_LIMIT;
mAccountNumber = -1; mAccountNumber = -1;
@ -320,7 +318,6 @@ public class Account implements BaseAccount {
mAlwaysBcc = prefs.getString(mUuid + ".alwaysBcc", mAlwaysBcc); mAlwaysBcc = prefs.getString(mUuid + ".alwaysBcc", mAlwaysBcc);
mAutomaticCheckIntervalMinutes = prefs.getInt(mUuid + ".automaticCheckIntervalMinutes", -1); mAutomaticCheckIntervalMinutes = prefs.getInt(mUuid + ".automaticCheckIntervalMinutes", -1);
mIdleRefreshMinutes = prefs.getInt(mUuid + ".idleRefreshMinutes", 24); mIdleRefreshMinutes = prefs.getInt(mUuid + ".idleRefreshMinutes", 24);
mSaveAllHeaders = prefs.getBoolean(mUuid + ".saveAllHeaders", true);
mPushPollOnConnect = prefs.getBoolean(mUuid + ".pushPollOnConnect", true); mPushPollOnConnect = prefs.getBoolean(mUuid + ".pushPollOnConnect", true);
mDisplayCount = prefs.getInt(mUuid + ".displayCount", K9.DEFAULT_VISIBLE_LIMIT); mDisplayCount = prefs.getInt(mUuid + ".displayCount", K9.DEFAULT_VISIBLE_LIMIT);
if (mDisplayCount < 0) { if (mDisplayCount < 0) {
@ -478,7 +475,6 @@ public class Account implements BaseAccount {
editor.remove(mUuid + ".alwaysBcc"); editor.remove(mUuid + ".alwaysBcc");
editor.remove(mUuid + ".automaticCheckIntervalMinutes"); editor.remove(mUuid + ".automaticCheckIntervalMinutes");
editor.remove(mUuid + ".pushPollOnConnect"); editor.remove(mUuid + ".pushPollOnConnect");
editor.remove(mUuid + ".saveAllHeaders");
editor.remove(mUuid + ".idleRefreshMinutes"); editor.remove(mUuid + ".idleRefreshMinutes");
editor.remove(mUuid + ".lastAutomaticCheckTime"); editor.remove(mUuid + ".lastAutomaticCheckTime");
editor.remove(mUuid + ".latestOldMessageSeenTime"); editor.remove(mUuid + ".latestOldMessageSeenTime");
@ -638,7 +634,6 @@ public class Account implements BaseAccount {
editor.putString(mUuid + ".alwaysBcc", mAlwaysBcc); editor.putString(mUuid + ".alwaysBcc", mAlwaysBcc);
editor.putInt(mUuid + ".automaticCheckIntervalMinutes", mAutomaticCheckIntervalMinutes); editor.putInt(mUuid + ".automaticCheckIntervalMinutes", mAutomaticCheckIntervalMinutes);
editor.putInt(mUuid + ".idleRefreshMinutes", mIdleRefreshMinutes); editor.putInt(mUuid + ".idleRefreshMinutes", mIdleRefreshMinutes);
editor.putBoolean(mUuid + ".saveAllHeaders", mSaveAllHeaders);
editor.putBoolean(mUuid + ".pushPollOnConnect", mPushPollOnConnect); editor.putBoolean(mUuid + ".pushPollOnConnect", mPushPollOnConnect);
editor.putInt(mUuid + ".displayCount", mDisplayCount); editor.putInt(mUuid + ".displayCount", mDisplayCount);
editor.putLong(mUuid + ".lastAutomaticCheckTime", mLastAutomaticCheckTime); editor.putLong(mUuid + ".lastAutomaticCheckTime", mLastAutomaticCheckTime);
@ -1397,14 +1392,6 @@ public class Account implements BaseAccount {
mPushPollOnConnect = pushPollOnConnect; mPushPollOnConnect = pushPollOnConnect;
} }
public synchronized boolean saveAllHeaders() {
return mSaveAllHeaders;
}
public synchronized void setSaveAllHeaders(boolean saveAllHeaders) {
mSaveAllHeaders = saveAllHeaders;
}
/** /**
* Are we storing out localStore on the SD-card instead of the local device * Are we storing out localStore on the SD-card instead of the local device
* memory?<br/> * memory?<br/>

View File

@ -156,7 +156,6 @@ public class AccountSettings extends K9PreferenceActivity {
private CheckBoxPreference mReplyAfterQuote; private CheckBoxPreference mReplyAfterQuote;
private CheckBoxPreference mStripSignature; private CheckBoxPreference mStripSignature;
private CheckBoxPreference mSyncRemoteDeletions; private CheckBoxPreference mSyncRemoteDeletions;
private CheckBoxPreference mSaveAllHeaders;
private CheckBoxPreference mPushPollOnConnect; private CheckBoxPreference mPushPollOnConnect;
private ListPreference mIdleRefreshPeriod; private ListPreference mIdleRefreshPeriod;
private ListPreference mMaxPushFolders; private ListPreference mMaxPushFolders;
@ -366,9 +365,6 @@ public class AccountSettings extends K9PreferenceActivity {
mSyncRemoteDeletions = (CheckBoxPreference) findPreference(PREFERENCE_SYNC_REMOTE_DELETIONS); mSyncRemoteDeletions = (CheckBoxPreference) findPreference(PREFERENCE_SYNC_REMOTE_DELETIONS);
mSyncRemoteDeletions.setChecked(mAccount.syncRemoteDeletions()); mSyncRemoteDeletions.setChecked(mAccount.syncRemoteDeletions());
mSaveAllHeaders = (CheckBoxPreference) findPreference(PREFERENCE_SAVE_ALL_HEADERS);
mSaveAllHeaders.setChecked(mAccount.saveAllHeaders());
mSearchableFolders = (ListPreference) findPreference(PREFERENCE_SEARCHABLE_FOLDERS); mSearchableFolders = (ListPreference) findPreference(PREFERENCE_SEARCHABLE_FOLDERS);
mSearchableFolders.setValue(mAccount.getSearchableFolders().name()); mSearchableFolders.setValue(mAccount.getSearchableFolders().name());
mSearchableFolders.setSummary(mSearchableFolders.getEntry()); mSearchableFolders.setSummary(mSearchableFolders.getEntry());
@ -720,7 +716,6 @@ public class AccountSettings extends K9PreferenceActivity {
mAccount.setExpungePolicy(mExpungePolicy.getValue()); mAccount.setExpungePolicy(mExpungePolicy.getValue());
} }
mAccount.setSyncRemoteDeletions(mSyncRemoteDeletions.isChecked()); mAccount.setSyncRemoteDeletions(mSyncRemoteDeletions.isChecked());
mAccount.setSaveAllHeaders(mSaveAllHeaders.isChecked());
mAccount.setSearchableFolders(Account.Searchable.valueOf(mSearchableFolders.getValue())); mAccount.setSearchableFolders(Account.Searchable.valueOf(mSearchableFolders.getValue()));
mAccount.setMessageFormat(Account.MessageFormat.valueOf(mMessageFormat.getValue())); mAccount.setMessageFormat(Account.MessageFormat.valueOf(mMessageFormat.getValue()));
mAccount.setAlwaysShowCcBcc(mAlwaysShowCcBcc.isChecked()); mAccount.setAlwaysShowCcBcc(mAlwaysShowCcBcc.isChecked());

View File

@ -81,21 +81,6 @@ public class LocalStore extends Store implements Serializable {
private static final Flag[] PERMANENT_FLAGS = { Flag.DELETED, Flag.X_DESTROYED, Flag.SEEN, Flag.FLAGGED }; private static final Flag[] PERMANENT_FLAGS = { Flag.DELETED, Flag.X_DESTROYED, Flag.SEEN, Flag.FLAGGED };
private static final Set<String> HEADERS_TO_SAVE;
static {
Set<String> set = new HashSet<String>();
set.add(K9.IDENTITY_HEADER);
set.add("To");
set.add("Cc");
set.add("From");
set.add("In-Reply-To");
set.add("References");
set.add(MimeHeader.HEADER_CONTENT_ID);
set.add(MimeHeader.HEADER_CONTENT_DISPOSITION);
set.add("User-Agent");
HEADERS_TO_SAVE = Collections.unmodifiableSet(set);
}
/* /*
* a String containing the columns getMessages expects to work with * a String containing the columns getMessages expects to work with
* in the correct order. * in the correct order.
@ -2314,12 +2299,9 @@ public class LocalStore extends Store implements Serializable {
database.execute(true, new DbCallback<Void>() { database.execute(true, new DbCallback<Void>() {
@Override @Override
public Void doDbWork(final SQLiteDatabase db) throws WrappedException, UnavailableStorageException { public Void doDbWork(final SQLiteDatabase db) throws WrappedException, UnavailableStorageException {
boolean saveAllHeaders = mAccount.saveAllHeaders();
boolean gotAdditionalHeaders = false;
deleteHeaders(id); deleteHeaders(id);
for (String name : message.getHeaderNames()) { for (String name : message.getHeaderNames()) {
if (saveAllHeaders || HEADERS_TO_SAVE.contains(name)) {
String[] values = message.getHeader(name); String[] values = message.getHeader(name);
for (String value : values) { for (String value : values) {
ContentValues cv = new ContentValues(); ContentValues cv = new ContentValues();
@ -2328,12 +2310,8 @@ public class LocalStore extends Store implements Serializable {
cv.put("value", value); cv.put("value", value);
db.insert("headers", "name", cv); db.insert("headers", "name", cv);
} }
} else {
gotAdditionalHeaders = true;
}
} }
if (!gotAdditionalHeaders) {
// Remember that all headers for this message have been saved, so it is // Remember that all headers for this message have been saved, so it is
// not necessary to download them again in case the user wants to see all headers. // not necessary to download them again in case the user wants to see all headers.
List<Flag> appendedFlags = new ArrayList<Flag>(); List<Flag> appendedFlags = new ArrayList<Flag>();
@ -2343,7 +2321,6 @@ public class LocalStore extends Store implements Serializable {
db.execSQL("UPDATE messages " + "SET flags = ? " + " WHERE id = ?", db.execSQL("UPDATE messages " + "SET flags = ? " + " WHERE id = ?",
new Object[] new Object[]
{ Utility.combine(appendedFlags.toArray(), ',').toUpperCase(Locale.US), id }); { Utility.combine(appendedFlags.toArray(), ',').toUpperCase(Locale.US), id });
}
return null; return null;
} }
}); });

View File

@ -162,9 +162,6 @@ public class AccountSettings {
s.put("ringtone", Settings.versions( s.put("ringtone", Settings.versions(
new V(1, new RingtoneSetting("content://settings/system/notification_sound")) new V(1, new RingtoneSetting("content://settings/system/notification_sound"))
)); ));
s.put("saveAllHeaders", Settings.versions(
new V(1, new BooleanSetting(true))
));
s.put("searchableFolders", Settings.versions( s.put("searchableFolders", Settings.versions(
new V(1, new EnumSetting(Account.Searchable.class, Account.Searchable.ALL)) new V(1, new EnumSetting(Account.Searchable.class, Account.Searchable.ALL))
)); ));