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

Commit 9f45fe1d authored by cketti's avatar cketti
Browse files

Refactor `MessageListFragment.onOptionsItemSelected()`

parent 44867821
Loading
Loading
Loading
Loading
+13 −42
Original line number Diff line number Diff line
@@ -745,50 +745,21 @@ class MessageListFragment :
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        val id = item.itemId
        if (id == R.id.set_sort_date) {
            changeSort(SortType.SORT_DATE)
            return true
        } else if (id == R.id.set_sort_arrival) {
            changeSort(SortType.SORT_ARRIVAL)
            return true
        } else if (id == R.id.set_sort_subject) {
            changeSort(SortType.SORT_SUBJECT)
            return true
        } else if (id == R.id.set_sort_sender) {
            changeSort(SortType.SORT_SENDER)
            return true
        } else if (id == R.id.set_sort_flag) {
            changeSort(SortType.SORT_FLAGGED)
            return true
        } else if (id == R.id.set_sort_unread) {
            changeSort(SortType.SORT_UNREAD)
            return true
        } else if (id == R.id.set_sort_attach) {
            changeSort(SortType.SORT_ATTACHMENT)
            return true
        } else if (id == R.id.select_all) {
            selectAll()
            return true
        }

        if (!isSingleAccountMode) {
            // None of the options after this point are "safe" for search results
            // TODO: This is not true for "unread" and "starred" searches in regular folders
            return false
        when (item.itemId) {
            R.id.set_sort_date -> changeSort(SortType.SORT_DATE)
            R.id.set_sort_arrival -> changeSort(SortType.SORT_ARRIVAL)
            R.id.set_sort_subject -> changeSort(SortType.SORT_SUBJECT)
            R.id.set_sort_sender -> changeSort(SortType.SORT_SENDER)
            R.id.set_sort_flag -> changeSort(SortType.SORT_FLAGGED)
            R.id.set_sort_unread -> changeSort(SortType.SORT_UNREAD)
            R.id.set_sort_attach -> changeSort(SortType.SORT_ATTACHMENT)
            R.id.select_all -> selectAll()
            R.id.send_messages -> onSendPendingMessages()
            R.id.expunge -> onExpunge()
            else -> return super.onOptionsItemSelected(item)
        }

        if (id == R.id.send_messages) {
            onSendPendingMessages()
            return true
        } else if (id == R.id.expunge) {
            currentFolder?.let { folderInfoHolder ->
                onExpunge(account, folderInfoHolder.databaseId)
            }
        return true
        } else {
            return super.onOptionsItemSelected(item)
        }
    }

    fun onSendPendingMessages() {