mirror of
https://github.com/moparisthebest/k-9
synced 2024-11-30 21:22:26 -05:00
Fix NullPointerException when saving account settings for non-IMAP accounts.
Fixes issue 2454
This commit is contained in:
parent
28c9dfdcce
commit
4be781a749
@ -126,6 +126,10 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
private ListPreference mCryptoApp;
|
private ListPreference mCryptoApp;
|
||||||
private CheckBoxPreference mCryptoAutoSignature;
|
private CheckBoxPreference mCryptoAutoSignature;
|
||||||
|
|
||||||
|
boolean mIsPushCapable = false;
|
||||||
|
boolean mIsExpungeCapable = false;
|
||||||
|
|
||||||
|
|
||||||
public static void actionSettings(Context context, Account account)
|
public static void actionSettings(Context context, Account account)
|
||||||
{
|
{
|
||||||
Intent i = new Intent(context, AccountSettings.class);
|
Intent i = new Intent(context, AccountSettings.class);
|
||||||
@ -143,13 +147,11 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
boolean isPushCapable = false;
|
|
||||||
boolean isExpungeCapable = false;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
final Store store = mAccount.getRemoteStore();
|
final Store store = mAccount.getRemoteStore();
|
||||||
isPushCapable = store.isPushCapable();
|
mIsPushCapable = store.isPushCapable();
|
||||||
isExpungeCapable = store.isExpungeCapable();
|
mIsExpungeCapable = store.isExpungeCapable();
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
@ -239,7 +241,7 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
});
|
});
|
||||||
|
|
||||||
mPushMode = (ListPreference) findPreference(PREFERENCE_PUSH_MODE);
|
mPushMode = (ListPreference) findPreference(PREFERENCE_PUSH_MODE);
|
||||||
mPushMode.setEnabled(isPushCapable);
|
mPushMode.setEnabled(mIsPushCapable);
|
||||||
mPushMode.setValue(mAccount.getFolderPushMode().name());
|
mPushMode.setValue(mAccount.getFolderPushMode().name());
|
||||||
mPushMode.setSummary(mPushMode.getEntry());
|
mPushMode.setSummary(mPushMode.getEntry());
|
||||||
mPushMode.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
|
mPushMode.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
|
||||||
@ -286,7 +288,7 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
|
|
||||||
|
|
||||||
mExpungePolicy = (ListPreference) findPreference(PREFERENCE_EXPUNGE_POLICY);
|
mExpungePolicy = (ListPreference) findPreference(PREFERENCE_EXPUNGE_POLICY);
|
||||||
mExpungePolicy.setEnabled(isExpungeCapable);
|
mExpungePolicy.setEnabled(mIsExpungeCapable);
|
||||||
mExpungePolicy.setValue(mAccount.getExpungePolicy());
|
mExpungePolicy.setValue(mAccount.getExpungePolicy());
|
||||||
mExpungePolicy.setSummary(mExpungePolicy.getEntry());
|
mExpungePolicy.setSummary(mExpungePolicy.getEntry());
|
||||||
mExpungePolicy.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
|
mExpungePolicy.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener()
|
||||||
@ -433,7 +435,7 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
mPushPollOnConnect = (CheckBoxPreference) findPreference(PREFERENCE_PUSH_POLL_ON_CONNECT);
|
mPushPollOnConnect = (CheckBoxPreference) findPreference(PREFERENCE_PUSH_POLL_ON_CONNECT);
|
||||||
mIdleRefreshPeriod = (ListPreference) findPreference(PREFERENCE_IDLE_REFRESH_PERIOD);
|
mIdleRefreshPeriod = (ListPreference) findPreference(PREFERENCE_IDLE_REFRESH_PERIOD);
|
||||||
mMaxPushFolders = (ListPreference) findPreference(PREFERENCE_MAX_PUSH_FOLDERS);
|
mMaxPushFolders = (ListPreference) findPreference(PREFERENCE_MAX_PUSH_FOLDERS);
|
||||||
if (isPushCapable)
|
if (mIsPushCapable)
|
||||||
{
|
{
|
||||||
mPushPollOnConnect.setChecked(mAccount.isPushPollOnConnect());
|
mPushPollOnConnect.setChecked(mAccount.isPushPollOnConnect());
|
||||||
|
|
||||||
@ -711,9 +713,12 @@ public class AccountSettings extends K9PreferenceActivity
|
|||||||
mAccount.setCryptoApp(mCryptoApp.getValue());
|
mAccount.setCryptoApp(mCryptoApp.getValue());
|
||||||
mAccount.setCryptoAutoSignature(mCryptoAutoSignature.isChecked());
|
mAccount.setCryptoAutoSignature(mCryptoAutoSignature.isChecked());
|
||||||
|
|
||||||
|
if (mIsPushCapable)
|
||||||
|
{
|
||||||
mAccount.setPushPollOnConnect(mPushPollOnConnect.isChecked());
|
mAccount.setPushPollOnConnect(mPushPollOnConnect.isChecked());
|
||||||
mAccount.setIdleRefreshMinutes(Integer.parseInt(mIdleRefreshPeriod.getValue()));
|
mAccount.setIdleRefreshMinutes(Integer.parseInt(mIdleRefreshPeriod.getValue()));
|
||||||
mAccount.setMaxPushFolders(Integer.parseInt(mMaxPushFolders.getValue()));
|
mAccount.setMaxPushFolders(Integer.parseInt(mMaxPushFolders.getValue()));
|
||||||
|
}
|
||||||
|
|
||||||
boolean needsRefresh = mAccount.setAutomaticCheckIntervalMinutes(Integer.parseInt(mCheckFrequency.getValue()));
|
boolean needsRefresh = mAccount.setAutomaticCheckIntervalMinutes(Integer.parseInt(mCheckFrequency.getValue()));
|
||||||
needsRefresh |= mAccount.setFolderSyncMode(Account.FolderMode.valueOf(mSyncMode.getValue()));
|
needsRefresh |= mAccount.setFolderSyncMode(Account.FolderMode.valueOf(mSyncMode.getValue()));
|
||||||
|
Loading…
Reference in New Issue
Block a user