Loading feature/navigation/drawer/src/main/res/layout/navigation_drawer_folder_list_item.xml→feature/navigation/drawer/src/main/res/layout/navigation_drawer_legacy_list_folder_item.xml +0 −0 File moved. View file feature/navigation/drawer/src/main/res/values/ids.xml +1 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <resources> <item name="navigation_drawer_list_folder_item" type="id" /> <item name="navigation_drawer_legacy_list_folder_item" type="id" /> </resources> legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +14 −4 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import com.fsck.k9.ui.messageview.MessageViewContainerFragment import com.fsck.k9.ui.messageview.MessageViewContainerFragment.MessageViewContainerListener import com.fsck.k9.ui.messageview.MessageViewFragment.MessageViewFragmentListener import com.fsck.k9.ui.messageview.PlaceholderFragment import com.fsck.k9.ui.settings.SettingsActivity import com.fsck.k9.view.ViewSwitcher import com.fsck.k9.view.ViewSwitcher.OnSwitchCompleteListener import com.google.android.material.textview.MaterialTextView Loading Loading @@ -577,10 +578,19 @@ open class MessageList : return } drawer = LegacyDrawer(this, savedInstanceState) drawer = LegacyDrawer( parent = this, savedInstanceState = savedInstanceState, openFolders = { launchManageFoldersScreen() }, openUnifiedInbox = { openUnifiedInbox() }, openFolder = { folderId -> openFolder(folderId) }, openAccount = { account -> openRealAccount(account) }, openSettings = { SettingsActivity.launch(this) }, createDrawerListener = { createDrawerListener() }, ) } fun createDrawerListener(): DrawerListener { private fun createDrawerListener(): DrawerListener { return object : DrawerListener { override fun onDrawerClosed(drawerView: View) { if (openFolderTransaction != null) { Loading Loading @@ -626,7 +636,7 @@ open class MessageList : onMessageListDisplayed() } fun openUnifiedInbox() { private fun openUnifiedInbox() { actionDisplaySearch( this, createSearchAccount().relatedSearch, Loading @@ -635,7 +645,7 @@ open class MessageList : ) } fun launchManageFoldersScreen() { private fun launchManageFoldersScreen() { if (account == null) { Timber.e("Tried to open \"Manage folders\", but no account selected!") return Loading legacy/ui/legacy/src/main/java/com/fsck/k9/ui/LegacyDrawer.kt +21 −12 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ import android.graphics.drawable.Drawable import android.net.Uri import android.os.Bundle import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.core.view.GravityCompat import androidx.drawerlayout.widget.DrawerLayout import androidx.swiperefreshlayout.widget.SwipeRefreshLayout Loading @@ -28,9 +29,7 @@ import app.k9mail.legacy.ui.folder.FoldersViewModel import app.k9mail.legacy.ui.theme.Theme import app.k9mail.legacy.ui.theme.ThemeManager import com.fsck.k9.K9 import com.fsck.k9.activity.MessageList import com.fsck.k9.ui.base.livedata.observeNotNull import com.fsck.k9.ui.settings.SettingsActivity import com.mikepenz.materialdrawer.holder.BadgeStyle import com.mikepenz.materialdrawer.holder.ImageHolder import com.mikepenz.materialdrawer.model.DividerDrawerItem Loading @@ -55,7 +54,6 @@ import com.mikepenz.materialdrawer.widget.MaterialDrawerSliderView import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.component.KoinComponent import org.koin.core.component.inject import app.k9mail.feature.navigation.drawer.R as DrawerR import com.fsck.k9.core.R as CoreR import com.mikepenz.materialdrawer.R as MaterialDrawerR Loading @@ -64,7 +62,17 @@ private const val STARRED_SYMBOL = "\u2605" private const val THIN_SPACE = "\u2009" private const val EN_SPACE = "\u2000" class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) : KoinComponent { @Suppress("MagicNumber", "TooManyFunctions", "LongParameterList") class LegacyDrawer( savedInstanceState: Bundle?, parent: AppCompatActivity, private val openFolders: () -> Unit, private val openUnifiedInbox: () -> Unit, private val openFolder: (folderId: Long) -> Unit, private val openAccount: (account: Account) -> Boolean, private val openSettings: () -> Unit, createDrawerListener: () -> DrawerLayout.DrawerListener, ) : KoinComponent { private val foldersViewModel: FoldersViewModel by parent.viewModel() private val accountsViewModel: AccountsViewModel by parent.viewModel() private val folderNameFormatter: FolderNameFormatter by inject() Loading Loading @@ -105,7 +113,7 @@ class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) initializeImageLoader() configureAccountHeader() drawer.addDrawerListener(parent.createDrawerListener()) drawer.addDrawerListener(createDrawerListener()) sliderView.tintStatusBar = true sliderView.onDrawerItemClickListener = { _, item, _ -> handleItemClickListener(item) Loading Loading @@ -167,7 +175,7 @@ class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) headerView.onAccountHeaderListener = { _, profile, _ -> val account = (profile as ProfileDrawerItem).tag as Account openedAccountUuid = account.uuid val eventHandled = !parent.openRealAccount(account) val eventHandled = openAccount(account) updateUserAccountsAndFolders(account) eventHandled Loading Loading @@ -220,6 +228,7 @@ class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) return if (unreadCount > 0) unreadCount.toString() else null } @Suppress("SpreadOperator") private fun setAccounts(displayAccounts: List<DisplayAccount>) { val oldSelectedBackgroundColor = selectedBackgroundColor Loading Loading @@ -340,12 +349,12 @@ class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) private fun handleItemClickListener(drawerItem: IDrawerItem<*>) { when (drawerItem.identifier) { DRAWER_ID_PREFERENCES -> SettingsActivity.launch(parent) DRAWER_ID_FOLDERS -> parent.launchManageFoldersScreen() DRAWER_ID_UNIFIED_INBOX -> parent.openUnifiedInbox() DRAWER_ID_PREFERENCES -> openSettings() DRAWER_ID_FOLDERS -> openFolders() DRAWER_ID_UNIFIED_INBOX -> openUnifiedInbox() else -> { val folder = drawerItem.tag as Folder parent.openFolder(folder.id) openFolder(folder.id) } } } Loading Loading @@ -555,6 +564,6 @@ private class FixedDividerDrawerItem(override var identifier: Long) : DividerDra // We ellipsize long folder names in the middle for better readability private class FolderDrawerItem : PrimaryDrawerItem() { override val type: Int = DrawerR.id.navigation_drawer_list_folder_item override val layoutRes: Int = DrawerR.layout.navigation_drawer_folder_list_item override val type: Int = R.id.navigation_drawer_legacy_list_folder_item override val layoutRes: Int = R.layout.navigation_drawer_legacy_list_folder_item } Loading
feature/navigation/drawer/src/main/res/layout/navigation_drawer_folder_list_item.xml→feature/navigation/drawer/src/main/res/layout/navigation_drawer_legacy_list_folder_item.xml +0 −0 File moved. View file
feature/navigation/drawer/src/main/res/values/ids.xml +1 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <resources> <item name="navigation_drawer_list_folder_item" type="id" /> <item name="navigation_drawer_legacy_list_folder_item" type="id" /> </resources>
legacy/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +14 −4 Original line number Diff line number Diff line Loading @@ -60,6 +60,7 @@ import com.fsck.k9.ui.messageview.MessageViewContainerFragment import com.fsck.k9.ui.messageview.MessageViewContainerFragment.MessageViewContainerListener import com.fsck.k9.ui.messageview.MessageViewFragment.MessageViewFragmentListener import com.fsck.k9.ui.messageview.PlaceholderFragment import com.fsck.k9.ui.settings.SettingsActivity import com.fsck.k9.view.ViewSwitcher import com.fsck.k9.view.ViewSwitcher.OnSwitchCompleteListener import com.google.android.material.textview.MaterialTextView Loading Loading @@ -577,10 +578,19 @@ open class MessageList : return } drawer = LegacyDrawer(this, savedInstanceState) drawer = LegacyDrawer( parent = this, savedInstanceState = savedInstanceState, openFolders = { launchManageFoldersScreen() }, openUnifiedInbox = { openUnifiedInbox() }, openFolder = { folderId -> openFolder(folderId) }, openAccount = { account -> openRealAccount(account) }, openSettings = { SettingsActivity.launch(this) }, createDrawerListener = { createDrawerListener() }, ) } fun createDrawerListener(): DrawerListener { private fun createDrawerListener(): DrawerListener { return object : DrawerListener { override fun onDrawerClosed(drawerView: View) { if (openFolderTransaction != null) { Loading Loading @@ -626,7 +636,7 @@ open class MessageList : onMessageListDisplayed() } fun openUnifiedInbox() { private fun openUnifiedInbox() { actionDisplaySearch( this, createSearchAccount().relatedSearch, Loading @@ -635,7 +645,7 @@ open class MessageList : ) } fun launchManageFoldersScreen() { private fun launchManageFoldersScreen() { if (account == null) { Timber.e("Tried to open \"Manage folders\", but no account selected!") return Loading
legacy/ui/legacy/src/main/java/com/fsck/k9/ui/LegacyDrawer.kt +21 −12 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ import android.graphics.drawable.Drawable import android.net.Uri import android.os.Bundle import android.widget.ImageView import androidx.appcompat.app.AppCompatActivity import androidx.core.view.GravityCompat import androidx.drawerlayout.widget.DrawerLayout import androidx.swiperefreshlayout.widget.SwipeRefreshLayout Loading @@ -28,9 +29,7 @@ import app.k9mail.legacy.ui.folder.FoldersViewModel import app.k9mail.legacy.ui.theme.Theme import app.k9mail.legacy.ui.theme.ThemeManager import com.fsck.k9.K9 import com.fsck.k9.activity.MessageList import com.fsck.k9.ui.base.livedata.observeNotNull import com.fsck.k9.ui.settings.SettingsActivity import com.mikepenz.materialdrawer.holder.BadgeStyle import com.mikepenz.materialdrawer.holder.ImageHolder import com.mikepenz.materialdrawer.model.DividerDrawerItem Loading @@ -55,7 +54,6 @@ import com.mikepenz.materialdrawer.widget.MaterialDrawerSliderView import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.component.KoinComponent import org.koin.core.component.inject import app.k9mail.feature.navigation.drawer.R as DrawerR import com.fsck.k9.core.R as CoreR import com.mikepenz.materialdrawer.R as MaterialDrawerR Loading @@ -64,7 +62,17 @@ private const val STARRED_SYMBOL = "\u2605" private const val THIN_SPACE = "\u2009" private const val EN_SPACE = "\u2000" class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) : KoinComponent { @Suppress("MagicNumber", "TooManyFunctions", "LongParameterList") class LegacyDrawer( savedInstanceState: Bundle?, parent: AppCompatActivity, private val openFolders: () -> Unit, private val openUnifiedInbox: () -> Unit, private val openFolder: (folderId: Long) -> Unit, private val openAccount: (account: Account) -> Boolean, private val openSettings: () -> Unit, createDrawerListener: () -> DrawerLayout.DrawerListener, ) : KoinComponent { private val foldersViewModel: FoldersViewModel by parent.viewModel() private val accountsViewModel: AccountsViewModel by parent.viewModel() private val folderNameFormatter: FolderNameFormatter by inject() Loading Loading @@ -105,7 +113,7 @@ class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) initializeImageLoader() configureAccountHeader() drawer.addDrawerListener(parent.createDrawerListener()) drawer.addDrawerListener(createDrawerListener()) sliderView.tintStatusBar = true sliderView.onDrawerItemClickListener = { _, item, _ -> handleItemClickListener(item) Loading Loading @@ -167,7 +175,7 @@ class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) headerView.onAccountHeaderListener = { _, profile, _ -> val account = (profile as ProfileDrawerItem).tag as Account openedAccountUuid = account.uuid val eventHandled = !parent.openRealAccount(account) val eventHandled = openAccount(account) updateUserAccountsAndFolders(account) eventHandled Loading Loading @@ -220,6 +228,7 @@ class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) return if (unreadCount > 0) unreadCount.toString() else null } @Suppress("SpreadOperator") private fun setAccounts(displayAccounts: List<DisplayAccount>) { val oldSelectedBackgroundColor = selectedBackgroundColor Loading Loading @@ -340,12 +349,12 @@ class LegacyDrawer(private val parent: MessageList, savedInstanceState: Bundle?) private fun handleItemClickListener(drawerItem: IDrawerItem<*>) { when (drawerItem.identifier) { DRAWER_ID_PREFERENCES -> SettingsActivity.launch(parent) DRAWER_ID_FOLDERS -> parent.launchManageFoldersScreen() DRAWER_ID_UNIFIED_INBOX -> parent.openUnifiedInbox() DRAWER_ID_PREFERENCES -> openSettings() DRAWER_ID_FOLDERS -> openFolders() DRAWER_ID_UNIFIED_INBOX -> openUnifiedInbox() else -> { val folder = drawerItem.tag as Folder parent.openFolder(folder.id) openFolder(folder.id) } } } Loading Loading @@ -555,6 +564,6 @@ private class FixedDividerDrawerItem(override var identifier: Long) : DividerDra // We ellipsize long folder names in the middle for better readability private class FolderDrawerItem : PrimaryDrawerItem() { override val type: Int = DrawerR.id.navigation_drawer_list_folder_item override val layoutRes: Int = DrawerR.layout.navigation_drawer_folder_list_item override val type: Int = R.id.navigation_drawer_legacy_list_folder_item override val layoutRes: Int = R.layout.navigation_drawer_legacy_list_folder_item }