mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-27 11:42:16 -05:00
Disable "download by date range" for webdav and pop3.
The previous behavior caused catastrophic network abuse, downloading messages outside the date range over and over.
This commit is contained in:
parent
b85c9b7b0e
commit
87640719dd
@ -977,6 +977,18 @@ public class Account implements BaseAccount {
|
||||
return Store.getRemoteInstance(this);
|
||||
}
|
||||
|
||||
// It'd be great if this actually went into the store implementation
|
||||
// to get this, but that's expensive and not easilly accessible
|
||||
// during initialization
|
||||
public boolean isSearchByDateCapable() {
|
||||
if (getStoreUri().startsWith("imap")) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public synchronized String toString() {
|
||||
return mDescription;
|
||||
|
@ -385,7 +385,13 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
mMessageAge = (ListPreference) findPreference(PREFERENCE_MESSAGE_AGE);
|
||||
|
||||
if (!mAccount.isSearchByDateCapable()) {
|
||||
mMessageAge.setEnabled(false);
|
||||
} else {
|
||||
mMessageAge.setValue(String.valueOf(mAccount.getMaximumPolledMessageAge()));
|
||||
mMessageAge.setSummary(mMessageAge.getEntry());
|
||||
mMessageAge.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
|
||||
@ -398,6 +404,8 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
mMessageSize = (ListPreference) findPreference(PREFERENCE_MESSAGE_SIZE);
|
||||
mMessageSize.setValue(String.valueOf(mAccount.getMaximumAutoDownloadMessageSize()));
|
||||
mMessageSize.setSummary(mMessageSize.getEntry());
|
||||
@ -683,8 +691,10 @@ public class AccountSettings extends K9PreferenceActivity {
|
||||
mAccount.setNotifySelfNewMail(mAccountNotifySelf.isChecked());
|
||||
mAccount.setShowOngoing(mAccountNotifySync.isChecked());
|
||||
mAccount.setDisplayCount(Integer.parseInt(mDisplayCount.getValue()));
|
||||
mAccount.setMaximumPolledMessageAge(Integer.parseInt(mMessageAge.getValue()));
|
||||
mAccount.setMaximumAutoDownloadMessageSize(Integer.parseInt(mMessageSize.getValue()));
|
||||
if (mAccount.isSearchByDateCapable()) {
|
||||
mAccount.setMaximumPolledMessageAge(Integer.parseInt(mMessageAge.getValue()));
|
||||
}
|
||||
mAccount.getNotificationSetting().setVibrate(mAccountVibrate.isChecked());
|
||||
mAccount.getNotificationSetting().setVibratePattern(Integer.parseInt(mAccountVibratePattern.getValue()));
|
||||
mAccount.getNotificationSetting().setVibrateTimes(Integer.parseInt(mAccountVibrateTimes.getValue()));
|
||||
|
@ -1534,7 +1534,7 @@ public class MessagingController implements Runnable {
|
||||
return false;
|
||||
|
||||
}
|
||||
if (message.olderThan(earliestDate)) {
|
||||
if (account.isSearchByDateCapable() && message.olderThan(earliestDate)) {
|
||||
if (K9.DEBUG) {
|
||||
Log.d(K9.LOG_TAG, "Message " + message.getUid() + " is older than "
|
||||
+ earliestDate + ", hence not saving");
|
||||
|
Loading…
Reference in New Issue
Block a user