Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8908883d authored by Fahim Salam Chowdhury's avatar Fahim Salam Chowdhury 👽
Browse files

show unread mail count on the actionBar subtitle

parent 293bb87f
Loading
Loading
Loading
Loading
Loading
+25 −2
Original line number Diff line number Diff line
@@ -44,16 +44,17 @@ import com.fsck.k9.ui.R
import com.fsck.k9.ui.choosefolder.ChooseFolderActivity
import com.fsck.k9.ui.folders.FolderNameFormatter
import com.fsck.k9.ui.folders.FolderNameFormatterFactory
import com.fsck.k9.ui.folders.FoldersViewModel
import com.fsck.k9.ui.helper.RelativeDateTimeFormatter
import com.fsck.k9.ui.messagelist.MessageListAppearance
import com.fsck.k9.ui.messagelist.MessageListConfig
import com.fsck.k9.ui.messagelist.MessageListInfo
import com.fsck.k9.ui.messagelist.MessageListItem
import com.fsck.k9.ui.messagelist.MessageListViewModel
import java.util.HashSet
import java.util.concurrent.Future
import net.jcip.annotations.GuardedBy
import org.koin.android.ext.android.inject
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
import org.koin.androidx.viewmodel.ext.android.viewModel
import timber.log.Timber

@@ -64,6 +65,7 @@ class MessageListFragment :
    ConfirmationDialogFragmentListener,
    MessageListItemActionListener {

    private val foldersViewModel: FoldersViewModel by sharedViewModel()
    private val viewModel: MessageListViewModel by viewModel()
    private val sortTypeToastProvider: SortTypeToastProvider by inject()
    private val folderNameFormatterFactory: FolderNameFormatterFactory by inject()
@@ -100,6 +102,8 @@ class MessageListFragment :
    private var actionMode: ActionMode? = null
    private var hasConnectivity: Boolean? = null

    private var unreadMessageCount : Int = 0

    /**
     * Relevant messages for the current context when we have to remember the chosen messages
     * between user interactions (e.g. selecting a folder for move operation).
@@ -153,6 +157,18 @@ class MessageListFragment :
            setMessageList(messageListInfo)
        }

        if (!isUnifiedInbox && currentFolder != null) {
            foldersViewModel.getFolderListLiveData().observe(this) { folderList ->
                folderList.folders.forEach {
                    if (it.folder.id == currentFolder?.databaseId) {
                        unreadMessageCount = it.unreadMessageCount
                        setWindowTitle()
                        return@forEach
                    }
                }
            }
        }

        isInitialized = true
    }

@@ -341,7 +357,14 @@ class MessageListFragment :
            if (account == null || isUnifiedInbox || preferences.accounts.size == 1) {
                null
            } else {
                account.displayName
                var name = account.displayName
                if (unreadMessageCount > 0) {
                    if (name.length > 10) {
                        name = name.substring(0, 10) + "..."
                    }
                    name += "[$unreadMessageCount]"
                }
                name
            }
        }