Loading legacy/ui/folder/src/main/java/app/k9mail/legacy/ui/folder/DisplayFolderRepository.kt +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ class DisplayFolderRepository( } } fun getDisplayFoldersFlow(account: Account, displayMode: Account.FolderMode): Flow<List<DisplayFolder>> { private fun getDisplayFoldersFlow(account: Account, displayMode: Account.FolderMode): Flow<List<DisplayFolder>> { val messageStore = messageStoreManager.getMessageStore(account.uuid) return callbackFlow { Loading legacy/ui/legacy/src/main/java/com/fsck/k9/ui/choosefolder/ChooseFolderActivity.kt +13 −16 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ import androidx.recyclerview.widget.RecyclerView import app.k9mail.core.mail.folder.api.FolderType import app.k9mail.core.ui.legacy.designsystem.atom.icon.Icons import app.k9mail.legacy.account.Account import app.k9mail.legacy.account.Account.FolderMode import app.k9mail.legacy.message.controller.MessageReference import app.k9mail.legacy.ui.folder.DisplayFolder import app.k9mail.legacy.ui.folder.FolderIconProvider Loading Loading @@ -64,10 +63,10 @@ class ChooseFolderActivity : K9Activity() { updateFolderList(folders) } val savedDisplayMode = savedInstanceState?.getString(STATE_DISPLAY_MODE)?.let { FolderMode.valueOf(it) } val displayMode = savedDisplayMode ?: getInitialDisplayMode() val savedShowHiddenFolders = savedInstanceState?.getBoolean(STATE_SHOW_HIDDEN_FOLDERS) val showHiddenFolders = savedShowHiddenFolders ?: false viewModel.setDisplayMode(account, displayMode) viewModel.setDisplayMode(account, showHiddenFolders) } private fun decodeArguments(savedInstanceState: Bundle?): Boolean { Loading @@ -88,10 +87,6 @@ class ChooseFolderActivity : K9Activity() { return true } private fun getInitialDisplayMode(): FolderMode { return account.folderDisplayMode } private fun initializeActionBar() { val actionBar = supportActionBar ?: error("Action bar missing") actionBar.setDisplayHomeAsUpEnabled(true) Loading Loading @@ -146,7 +141,7 @@ class ChooseFolderActivity : K9Activity() { override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) scrollToFolderId?.let { folderId -> outState.putLong(STATE_SCROLL_TO_FOLDER_ID, folderId) } outState.putString(STATE_DISPLAY_MODE, viewModel.currentDisplayMode?.name) outState.putBoolean(STATE_SHOW_HIDDEN_FOLDERS, viewModel.isShowHiddenFolders) } override fun onCreateOptionsMenu(menu: Menu): Boolean { Loading @@ -156,6 +151,11 @@ class ChooseFolderActivity : K9Activity() { return true } override fun onPrepareOptionsMenu(menu: Menu?): Boolean { menu?.findItem(R.id.toggle_hidden_folders)?.setChecked(viewModel.isShowHiddenFolders) return super.onPrepareOptionsMenu(menu) } private fun configureFolderSearchView(menu: Menu) { val folderMenuItem = menu.findItem(R.id.filter_folders) val folderSearchView = folderMenuItem.actionView as SearchView Loading @@ -178,10 +178,7 @@ class ChooseFolderActivity : K9Activity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { android.R.id.home -> finish() R.id.display_1st_class -> setDisplayMode(FolderMode.FIRST_CLASS) R.id.display_1st_and_2nd_class -> setDisplayMode(FolderMode.FIRST_AND_SECOND_CLASS) R.id.display_not_second_class -> setDisplayMode(FolderMode.NOT_SECOND_CLASS) R.id.display_all -> setDisplayMode(FolderMode.ALL) R.id.toggle_hidden_folders -> setShowHiddenFolders(item.isChecked.not()) R.id.list_folders -> refreshFolderList() else -> return super.onOptionsItemSelected(item) } Loading @@ -192,8 +189,8 @@ class ChooseFolderActivity : K9Activity() { messagingController.refreshFolderList(account) } private fun setDisplayMode(displayMode: FolderMode) { viewModel.setDisplayMode(account, displayMode) private fun setShowHiddenFolders(enabled: Boolean) { viewModel.setDisplayMode(account, enabled) } private fun returnResult(folderId: Long, displayName: String) { Loading Loading @@ -239,7 +236,7 @@ class ChooseFolderActivity : K9Activity() { companion object { private const val STATE_SCROLL_TO_FOLDER_ID = "scrollToFolderId" private const val STATE_DISPLAY_MODE = "displayMode" private const val STATE_SHOW_HIDDEN_FOLDERS = "showHiddenFolders" private const val EXTRA_ACCOUNT = "accountUuid" private const val EXTRA_CURRENT_FOLDER_ID = "currentFolderId" private const val EXTRA_SCROLL_TO_FOLDER_ID = "scrollToFolderId" Loading legacy/ui/legacy/src/main/java/com/fsck/k9/ui/choosefolder/ChooseFolderViewModel.kt +7 −8 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.asLiveData import androidx.lifecycle.viewModelScope import app.k9mail.legacy.account.Account import app.k9mail.legacy.account.Account.FolderMode import app.k9mail.legacy.ui.folder.DisplayFolder import app.k9mail.legacy.ui.folder.DisplayFolderRepository import kotlinx.coroutines.ExperimentalCoroutinesApi Loading @@ -19,23 +18,23 @@ class ChooseFolderViewModel( ) : ViewModel() { private val inputFlow = MutableSharedFlow<DisplayMode>(replay = 1) private val foldersFlow = inputFlow .flatMapLatest { (account, displayMode) -> folderRepository.getDisplayFoldersFlow(account, displayMode) .flatMapLatest { (account, showHiddenFolders) -> folderRepository.getDisplayFoldersFlow(account, showHiddenFolders) } var currentDisplayMode: FolderMode? = null var isShowHiddenFolders: Boolean = false private set fun getFolders(): LiveData<List<DisplayFolder>> { return foldersFlow.asLiveData() } fun setDisplayMode(account: Account, displayMode: FolderMode) { currentDisplayMode = displayMode fun setDisplayMode(account: Account, showHiddenFolders: Boolean) { isShowHiddenFolders = showHiddenFolders viewModelScope.launch { inputFlow.emit(DisplayMode(account, displayMode)) inputFlow.emit(DisplayMode(account, showHiddenFolders)) } } } private data class DisplayMode(val account: Account, val displayMode: FolderMode) private data class DisplayMode(val account: Account, val showHiddenFolders: Boolean) legacy/ui/legacy/src/main/res/menu/choose_folder_option.xml +3 −14 Original line number Diff line number Diff line Loading @@ -12,20 +12,9 @@ app:showAsAction="collapseActionView|ifRoom" /> <item android:id="@+id/display_all" android:title="@string/folder_list_display_mode_all" /> <item android:id="@+id/display_1st_class" android:title="@string/folder_list_display_mode_first_class" /> <item android:id="@+id/display_1st_and_2nd_class" android:title="@string/folder_list_display_mode_first_and_second_class" /> <item android:id="@+id/display_not_second_class" android:title="@string/folder_list_display_mode_not_second_class" android:id="@+id/toggle_hidden_folders" android:checkable="true" android:title="@string/folder_list_show_hidden_folders" /> <item android:id="@+id/list_folders" Loading legacy/ui/legacy/src/main/res/values/strings.xml +1 −6 Original line number Diff line number Diff line Loading @@ -621,12 +621,7 @@ <string name="account_delete_dlg_title">Remove Account</string> <string name="folder_list_filter_hint">Folder name contains</string> <string name="folder_list_display_mode_label">Show folders…</string> <string name="folder_list_display_mode_all">All folders</string> <string name="folder_list_display_mode_first_class">1st Class folders</string> <string name="folder_list_display_mode_first_and_second_class">1st & 2nd Class folders</string> <string name="folder_list_display_mode_not_second_class">Hide 2nd Class folders</string> <string name="folder_list_show_hidden_folders">Show hidden folders</string> <string name="account_settings_signature__location_label">Signature position</string> <string name="account_settings_signature__location_before_quoted_text">Before quoted message</string> Loading Loading
legacy/ui/folder/src/main/java/app/k9mail/legacy/ui/folder/DisplayFolderRepository.kt +1 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ class DisplayFolderRepository( } } fun getDisplayFoldersFlow(account: Account, displayMode: Account.FolderMode): Flow<List<DisplayFolder>> { private fun getDisplayFoldersFlow(account: Account, displayMode: Account.FolderMode): Flow<List<DisplayFolder>> { val messageStore = messageStoreManager.getMessageStore(account.uuid) return callbackFlow { Loading
legacy/ui/legacy/src/main/java/com/fsck/k9/ui/choosefolder/ChooseFolderActivity.kt +13 −16 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ import androidx.recyclerview.widget.RecyclerView import app.k9mail.core.mail.folder.api.FolderType import app.k9mail.core.ui.legacy.designsystem.atom.icon.Icons import app.k9mail.legacy.account.Account import app.k9mail.legacy.account.Account.FolderMode import app.k9mail.legacy.message.controller.MessageReference import app.k9mail.legacy.ui.folder.DisplayFolder import app.k9mail.legacy.ui.folder.FolderIconProvider Loading Loading @@ -64,10 +63,10 @@ class ChooseFolderActivity : K9Activity() { updateFolderList(folders) } val savedDisplayMode = savedInstanceState?.getString(STATE_DISPLAY_MODE)?.let { FolderMode.valueOf(it) } val displayMode = savedDisplayMode ?: getInitialDisplayMode() val savedShowHiddenFolders = savedInstanceState?.getBoolean(STATE_SHOW_HIDDEN_FOLDERS) val showHiddenFolders = savedShowHiddenFolders ?: false viewModel.setDisplayMode(account, displayMode) viewModel.setDisplayMode(account, showHiddenFolders) } private fun decodeArguments(savedInstanceState: Bundle?): Boolean { Loading @@ -88,10 +87,6 @@ class ChooseFolderActivity : K9Activity() { return true } private fun getInitialDisplayMode(): FolderMode { return account.folderDisplayMode } private fun initializeActionBar() { val actionBar = supportActionBar ?: error("Action bar missing") actionBar.setDisplayHomeAsUpEnabled(true) Loading Loading @@ -146,7 +141,7 @@ class ChooseFolderActivity : K9Activity() { override fun onSaveInstanceState(outState: Bundle) { super.onSaveInstanceState(outState) scrollToFolderId?.let { folderId -> outState.putLong(STATE_SCROLL_TO_FOLDER_ID, folderId) } outState.putString(STATE_DISPLAY_MODE, viewModel.currentDisplayMode?.name) outState.putBoolean(STATE_SHOW_HIDDEN_FOLDERS, viewModel.isShowHiddenFolders) } override fun onCreateOptionsMenu(menu: Menu): Boolean { Loading @@ -156,6 +151,11 @@ class ChooseFolderActivity : K9Activity() { return true } override fun onPrepareOptionsMenu(menu: Menu?): Boolean { menu?.findItem(R.id.toggle_hidden_folders)?.setChecked(viewModel.isShowHiddenFolders) return super.onPrepareOptionsMenu(menu) } private fun configureFolderSearchView(menu: Menu) { val folderMenuItem = menu.findItem(R.id.filter_folders) val folderSearchView = folderMenuItem.actionView as SearchView Loading @@ -178,10 +178,7 @@ class ChooseFolderActivity : K9Activity() { override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { android.R.id.home -> finish() R.id.display_1st_class -> setDisplayMode(FolderMode.FIRST_CLASS) R.id.display_1st_and_2nd_class -> setDisplayMode(FolderMode.FIRST_AND_SECOND_CLASS) R.id.display_not_second_class -> setDisplayMode(FolderMode.NOT_SECOND_CLASS) R.id.display_all -> setDisplayMode(FolderMode.ALL) R.id.toggle_hidden_folders -> setShowHiddenFolders(item.isChecked.not()) R.id.list_folders -> refreshFolderList() else -> return super.onOptionsItemSelected(item) } Loading @@ -192,8 +189,8 @@ class ChooseFolderActivity : K9Activity() { messagingController.refreshFolderList(account) } private fun setDisplayMode(displayMode: FolderMode) { viewModel.setDisplayMode(account, displayMode) private fun setShowHiddenFolders(enabled: Boolean) { viewModel.setDisplayMode(account, enabled) } private fun returnResult(folderId: Long, displayName: String) { Loading Loading @@ -239,7 +236,7 @@ class ChooseFolderActivity : K9Activity() { companion object { private const val STATE_SCROLL_TO_FOLDER_ID = "scrollToFolderId" private const val STATE_DISPLAY_MODE = "displayMode" private const val STATE_SHOW_HIDDEN_FOLDERS = "showHiddenFolders" private const val EXTRA_ACCOUNT = "accountUuid" private const val EXTRA_CURRENT_FOLDER_ID = "currentFolderId" private const val EXTRA_SCROLL_TO_FOLDER_ID = "scrollToFolderId" Loading
legacy/ui/legacy/src/main/java/com/fsck/k9/ui/choosefolder/ChooseFolderViewModel.kt +7 −8 Original line number Diff line number Diff line Loading @@ -5,7 +5,6 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.asLiveData import androidx.lifecycle.viewModelScope import app.k9mail.legacy.account.Account import app.k9mail.legacy.account.Account.FolderMode import app.k9mail.legacy.ui.folder.DisplayFolder import app.k9mail.legacy.ui.folder.DisplayFolderRepository import kotlinx.coroutines.ExperimentalCoroutinesApi Loading @@ -19,23 +18,23 @@ class ChooseFolderViewModel( ) : ViewModel() { private val inputFlow = MutableSharedFlow<DisplayMode>(replay = 1) private val foldersFlow = inputFlow .flatMapLatest { (account, displayMode) -> folderRepository.getDisplayFoldersFlow(account, displayMode) .flatMapLatest { (account, showHiddenFolders) -> folderRepository.getDisplayFoldersFlow(account, showHiddenFolders) } var currentDisplayMode: FolderMode? = null var isShowHiddenFolders: Boolean = false private set fun getFolders(): LiveData<List<DisplayFolder>> { return foldersFlow.asLiveData() } fun setDisplayMode(account: Account, displayMode: FolderMode) { currentDisplayMode = displayMode fun setDisplayMode(account: Account, showHiddenFolders: Boolean) { isShowHiddenFolders = showHiddenFolders viewModelScope.launch { inputFlow.emit(DisplayMode(account, displayMode)) inputFlow.emit(DisplayMode(account, showHiddenFolders)) } } } private data class DisplayMode(val account: Account, val displayMode: FolderMode) private data class DisplayMode(val account: Account, val showHiddenFolders: Boolean)
legacy/ui/legacy/src/main/res/menu/choose_folder_option.xml +3 −14 Original line number Diff line number Diff line Loading @@ -12,20 +12,9 @@ app:showAsAction="collapseActionView|ifRoom" /> <item android:id="@+id/display_all" android:title="@string/folder_list_display_mode_all" /> <item android:id="@+id/display_1st_class" android:title="@string/folder_list_display_mode_first_class" /> <item android:id="@+id/display_1st_and_2nd_class" android:title="@string/folder_list_display_mode_first_and_second_class" /> <item android:id="@+id/display_not_second_class" android:title="@string/folder_list_display_mode_not_second_class" android:id="@+id/toggle_hidden_folders" android:checkable="true" android:title="@string/folder_list_show_hidden_folders" /> <item android:id="@+id/list_folders" Loading
legacy/ui/legacy/src/main/res/values/strings.xml +1 −6 Original line number Diff line number Diff line Loading @@ -621,12 +621,7 @@ <string name="account_delete_dlg_title">Remove Account</string> <string name="folder_list_filter_hint">Folder name contains</string> <string name="folder_list_display_mode_label">Show folders…</string> <string name="folder_list_display_mode_all">All folders</string> <string name="folder_list_display_mode_first_class">1st Class folders</string> <string name="folder_list_display_mode_first_and_second_class">1st & 2nd Class folders</string> <string name="folder_list_display_mode_not_second_class">Hide 2nd Class folders</string> <string name="folder_list_show_hidden_folders">Show hidden folders</string> <string name="account_settings_signature__location_label">Signature position</string> <string name="account_settings_signature__location_before_quoted_text">Before quoted message</string> Loading