Loading app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +4 −0 Original line number Diff line number Diff line Loading @@ -1672,6 +1672,10 @@ public class MessagingController { return getBackend(account).getSupportsUpload(); } public boolean supportsFolderSubscriptions(Account account) { return getBackend(account).getSupportsFolderSubscriptions(); } public void checkIncomingServerSettings(Account account) throws MessagingException { getBackend(account).checkIncomingServerSettings(); } Loading app/ui/legacy/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java +0 −10 Original line number Diff line number Diff line Loading @@ -82,7 +82,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener private boolean mMakeDefault; private CheckBox useCompressionCheckBox; private CheckBox isSendClientIdEnabledCheckBox; private CheckBox mSubscribedFoldersOnly; private AuthTypeAdapter mAuthTypeAdapter; private ConnectionSecurity[] mConnectionSecurityChoices = ConnectionSecurity.values(); private boolean editSettings; Loading Loading @@ -128,7 +127,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener mNextButton = findViewById(R.id.next); useCompressionCheckBox = findViewById(R.id.use_compression); isSendClientIdEnabledCheckBox = findViewById(R.id.is_send_client_id_enabled); mSubscribedFoldersOnly = findViewById(R.id.subscribed_folders_only); mAllowClientCertificateView = findViewById(R.id.account_allow_client_certificate); TextInputLayout serverLayoutView = findViewById(R.id.account_server_layout); Loading Loading @@ -204,7 +202,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener findViewById(R.id.imap_path_prefix_section).setVisibility(View.GONE); useCompressionCheckBox.setVisibility(View.GONE); isSendClientIdEnabledCheckBox.setVisibility(View.GONE); mSubscribedFoldersOnly.setVisibility(View.GONE); } else if (settings.type.equals(Protocols.IMAP)) { serverLayoutView.setHint(getString(R.string.account_setup_incoming_imap_server_label)); Loading @@ -215,10 +212,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener if (pathPrefix != null) { mImapPathPrefixView.setText(pathPrefix); } if (!editSettings) { findViewById(R.id.imap_folder_setup_section).setVisibility(View.GONE); } } else { throw new Exception("Unknown account type: " + settings.type); } Loading Loading @@ -265,8 +258,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener updatePortFromSecurityType(); } mCurrentPortViewSetting = mPortView.getText().toString(); mSubscribedFoldersOnly.setChecked(mAccount.isSubscribedFoldersOnly()); } catch (Exception e) { failure(e); } Loading Loading @@ -579,7 +570,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener mAccount.setUseCompression(useCompressionCheckBox.isChecked()); mAccount.setSendClientIdEnabled(isSendClientIdEnabledCheckBox.isChecked()); mAccount.setSubscribedFoldersOnly(mSubscribedFoldersOnly.isChecked()); AccountSetupCheckSettings.actionCheckSettings(this, mAccount, CheckDirection.INCOMING); } catch (Exception e) { Loading app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/KoinModule.kt +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ val settingsUiModule = module { executorService = get(named("SaveSettingsExecutorService")), notificationChannelManager = get(), notificationController = get(), messagingController = get(), ) } factory { getSystemVibrator(context = get()) } Loading app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/account/AccountSettingsDataStore.kt +12 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import com.fsck.k9.Account.SpecialFolderSelection import com.fsck.k9.NotificationLight import com.fsck.k9.NotificationVibration import com.fsck.k9.Preferences import com.fsck.k9.controller.MessagingController import com.fsck.k9.job.K9JobManager import com.fsck.k9.notification.NotificationChannelManager import com.fsck.k9.notification.NotificationController Loading @@ -18,6 +19,7 @@ class AccountSettingsDataStore( private val jobManager: K9JobManager, private val notificationChannelManager: NotificationChannelManager, private val notificationController: NotificationController, private val messagingController: MessagingController, ) : PreferenceDataStore() { private var notificationSettingsChanged = false Loading @@ -41,6 +43,7 @@ class AccountSettingsDataStore( "autocrypt_prefer_encrypt" -> account.autocryptPreferEncryptMutual "upload_sent_messages" -> account.isUploadSentMessages "ignore_chat_messages" -> account.isIgnoreChatMessages "subscribed_folders_only" -> account.isSubscribedFoldersOnly else -> defValue } } Loading @@ -65,6 +68,7 @@ class AccountSettingsDataStore( "autocrypt_prefer_encrypt" -> account.autocryptPreferEncryptMutual = value "upload_sent_messages" -> account.isUploadSentMessages = value "ignore_chat_messages" -> account.isIgnoreChatMessages = value "subscribed_folders_only" -> updateSubscribedFoldersOnly(value) else -> return } Loading Loading @@ -286,4 +290,12 @@ class AccountSettingsDataStore( } notificationSettingsChanged = true } private fun updateSubscribedFoldersOnly(value: Boolean) { if (account.isSubscribedFoldersOnly != value) { account.isSubscribedFoldersOnly = value messagingController.refreshFolderList(account) } } } app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/account/AccountSettingsDataStoreFactory.kt +3 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package com.fsck.k9.ui.settings.account import com.fsck.k9.Account import com.fsck.k9.Preferences import com.fsck.k9.controller.MessagingController import com.fsck.k9.job.K9JobManager import com.fsck.k9.notification.NotificationChannelManager import com.fsck.k9.notification.NotificationController Loading @@ -13,6 +14,7 @@ class AccountSettingsDataStoreFactory( private val executorService: ExecutorService, private val notificationChannelManager: NotificationChannelManager, private val notificationController: NotificationController, private val messagingController: MessagingController, ) { fun create(account: Account): AccountSettingsDataStore { return AccountSettingsDataStore( Loading @@ -22,6 +24,7 @@ class AccountSettingsDataStoreFactory( jobManager, notificationChannelManager, notificationController, messagingController, ) } } Loading
app/core/src/main/java/com/fsck/k9/controller/MessagingController.java +4 −0 Original line number Diff line number Diff line Loading @@ -1672,6 +1672,10 @@ public class MessagingController { return getBackend(account).getSupportsUpload(); } public boolean supportsFolderSubscriptions(Account account) { return getBackend(account).getSupportsFolderSubscriptions(); } public void checkIncomingServerSettings(Account account) throws MessagingException { getBackend(account).checkIncomingServerSettings(); } Loading
app/ui/legacy/src/main/java/com/fsck/k9/activity/setup/AccountSetupIncoming.java +0 −10 Original line number Diff line number Diff line Loading @@ -82,7 +82,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener private boolean mMakeDefault; private CheckBox useCompressionCheckBox; private CheckBox isSendClientIdEnabledCheckBox; private CheckBox mSubscribedFoldersOnly; private AuthTypeAdapter mAuthTypeAdapter; private ConnectionSecurity[] mConnectionSecurityChoices = ConnectionSecurity.values(); private boolean editSettings; Loading Loading @@ -128,7 +127,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener mNextButton = findViewById(R.id.next); useCompressionCheckBox = findViewById(R.id.use_compression); isSendClientIdEnabledCheckBox = findViewById(R.id.is_send_client_id_enabled); mSubscribedFoldersOnly = findViewById(R.id.subscribed_folders_only); mAllowClientCertificateView = findViewById(R.id.account_allow_client_certificate); TextInputLayout serverLayoutView = findViewById(R.id.account_server_layout); Loading Loading @@ -204,7 +202,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener findViewById(R.id.imap_path_prefix_section).setVisibility(View.GONE); useCompressionCheckBox.setVisibility(View.GONE); isSendClientIdEnabledCheckBox.setVisibility(View.GONE); mSubscribedFoldersOnly.setVisibility(View.GONE); } else if (settings.type.equals(Protocols.IMAP)) { serverLayoutView.setHint(getString(R.string.account_setup_incoming_imap_server_label)); Loading @@ -215,10 +212,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener if (pathPrefix != null) { mImapPathPrefixView.setText(pathPrefix); } if (!editSettings) { findViewById(R.id.imap_folder_setup_section).setVisibility(View.GONE); } } else { throw new Exception("Unknown account type: " + settings.type); } Loading Loading @@ -265,8 +258,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener updatePortFromSecurityType(); } mCurrentPortViewSetting = mPortView.getText().toString(); mSubscribedFoldersOnly.setChecked(mAccount.isSubscribedFoldersOnly()); } catch (Exception e) { failure(e); } Loading Loading @@ -579,7 +570,6 @@ public class AccountSetupIncoming extends K9Activity implements OnClickListener mAccount.setUseCompression(useCompressionCheckBox.isChecked()); mAccount.setSendClientIdEnabled(isSendClientIdEnabledCheckBox.isChecked()); mAccount.setSubscribedFoldersOnly(mSubscribedFoldersOnly.isChecked()); AccountSetupCheckSettings.actionCheckSettings(this, mAccount, CheckDirection.INCOMING); } catch (Exception e) { Loading
app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/KoinModule.kt +1 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ val settingsUiModule = module { executorService = get(named("SaveSettingsExecutorService")), notificationChannelManager = get(), notificationController = get(), messagingController = get(), ) } factory { getSystemVibrator(context = get()) } Loading
app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/account/AccountSettingsDataStore.kt +12 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,7 @@ import com.fsck.k9.Account.SpecialFolderSelection import com.fsck.k9.NotificationLight import com.fsck.k9.NotificationVibration import com.fsck.k9.Preferences import com.fsck.k9.controller.MessagingController import com.fsck.k9.job.K9JobManager import com.fsck.k9.notification.NotificationChannelManager import com.fsck.k9.notification.NotificationController Loading @@ -18,6 +19,7 @@ class AccountSettingsDataStore( private val jobManager: K9JobManager, private val notificationChannelManager: NotificationChannelManager, private val notificationController: NotificationController, private val messagingController: MessagingController, ) : PreferenceDataStore() { private var notificationSettingsChanged = false Loading @@ -41,6 +43,7 @@ class AccountSettingsDataStore( "autocrypt_prefer_encrypt" -> account.autocryptPreferEncryptMutual "upload_sent_messages" -> account.isUploadSentMessages "ignore_chat_messages" -> account.isIgnoreChatMessages "subscribed_folders_only" -> account.isSubscribedFoldersOnly else -> defValue } } Loading @@ -65,6 +68,7 @@ class AccountSettingsDataStore( "autocrypt_prefer_encrypt" -> account.autocryptPreferEncryptMutual = value "upload_sent_messages" -> account.isUploadSentMessages = value "ignore_chat_messages" -> account.isIgnoreChatMessages = value "subscribed_folders_only" -> updateSubscribedFoldersOnly(value) else -> return } Loading Loading @@ -286,4 +290,12 @@ class AccountSettingsDataStore( } notificationSettingsChanged = true } private fun updateSubscribedFoldersOnly(value: Boolean) { if (account.isSubscribedFoldersOnly != value) { account.isSubscribedFoldersOnly = value messagingController.refreshFolderList(account) } } }
app/ui/legacy/src/main/java/com/fsck/k9/ui/settings/account/AccountSettingsDataStoreFactory.kt +3 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,7 @@ package com.fsck.k9.ui.settings.account import com.fsck.k9.Account import com.fsck.k9.Preferences import com.fsck.k9.controller.MessagingController import com.fsck.k9.job.K9JobManager import com.fsck.k9.notification.NotificationChannelManager import com.fsck.k9.notification.NotificationController Loading @@ -13,6 +14,7 @@ class AccountSettingsDataStoreFactory( private val executorService: ExecutorService, private val notificationChannelManager: NotificationChannelManager, private val notificationController: NotificationController, private val messagingController: MessagingController, ) { fun create(account: Account): AccountSettingsDataStore { return AccountSettingsDataStore( Loading @@ -22,6 +24,7 @@ class AccountSettingsDataStoreFactory( jobManager, notificationChannelManager, notificationController, messagingController, ) } }