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

Unverified Commit 6e16e656 authored by cketti's avatar cketti Committed by GitHub
Browse files

Merge pull request #6570 from thundernest/toolbar_bottom_sheet

Message View Redesign: Add bottom sheet (1)
parents ef111af4 81245668
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ dependencies {
    implementation project(":app:autodiscovery:api")
    implementation project(":app:autodiscovery:providersxml")
    implementation project(":mail:common")
    implementation project(":ui-utils:ToolbarBottomSheet")

    //TODO: Remove AccountSetupIncoming's dependency on these
    compileOnly project(":mail:protocols:imap")
+36 −0
Original line number Diff line number Diff line
package com.fsck.k9.ui.messageview

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.core.content.ContextCompat
import app.k9mail.ui.utils.bottomsheet.ToolbarBottomSheetDialogFragment
import com.fsck.k9.ui.R

class MessageBottomSheet : ToolbarBottomSheetDialogFragment() {
    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.message_bottom_sheet, container, false)
    }

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)

        val dialog = checkNotNull(dialog)
        dialog.isDismissWithAnimation = true

        val toolbar = checkNotNull(toolbar)
        toolbar.apply {
            title = "Message details"
            navigationIcon = ContextCompat.getDrawable(requireContext(), R.drawable.ic_close)

            setNavigationOnClickListener {
                dismiss()
            }
        }
    }
}
+6 −0
Original line number Diff line number Diff line
package com.fsck.k9.ui.messageview

fun interface MessageHeaderOnMenuItemClickListener {
interface MessageHeaderClickListener {
    fun onParticipantsContainerClick()
    fun onMenuItemClick(itemId: Int)
}
+2 −2
Original line number Diff line number Diff line
@@ -228,8 +228,8 @@ public class MessageTopView extends LinearLayout {
        mHeaderContainer.setOnFlagListener(listener);
    }

    public void setOnMenuItemClickListener(MessageHeaderOnMenuItemClickListener listener) {
        mHeaderContainer.setOnMenuItemClickListener(listener);
    public void setMessageHeaderClickListener(MessageHeaderClickListener listener) {
        mHeaderContainer.setMessageHeaderClickListener(listener);
    }

    private void hideHeaderView() {
+16 −9
Original line number Diff line number Diff line
@@ -158,7 +158,7 @@ class MessageViewFragment :
            onToggleFlagged()
        }

        messageTopView.setOnMenuItemClickListener(::onReplyMenuItemClicked)
        messageTopView.setMessageHeaderClickListener(messageHeaderClickListener)

        messageTopView.setOnDownloadButtonClickListener {
            onDownloadButtonClicked()
@@ -380,7 +380,13 @@ class MessageViewFragment :
        messageTopView.setSubject(displaySubject)
    }

    private fun onReplyMenuItemClicked(itemId: Int) {
    private val messageHeaderClickListener = object : MessageHeaderClickListener {
        override fun onParticipantsContainerClick() {
            val messageBottomSheet = MessageBottomSheet()
            messageBottomSheet.show(childFragmentManager, "message_details")
        }

        override fun onMenuItemClick(itemId: Int) {
            when (itemId) {
                R.id.reply -> onReply()
                R.id.reply_all -> onReplyAll()
@@ -390,6 +396,7 @@ class MessageViewFragment :
                else -> error("Missing handler for reply menu item $itemId")
            }
        }
    }

    private fun onDownloadButtonClicked() {
        messageTopView.disableDownloadButton()
Loading