Loading app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +0 −61 Original line number Diff line number Diff line Loading @@ -49,12 +49,10 @@ import com.fsck.k9.ui.BuildConfig import com.fsck.k9.ui.K9Drawer import com.fsck.k9.ui.R import com.fsck.k9.ui.base.K9Activity import com.fsck.k9.ui.base.Theme import com.fsck.k9.ui.changelog.RecentChangesActivity import com.fsck.k9.ui.changelog.RecentChangesViewModel import com.fsck.k9.ui.managefolders.ManageFoldersActivity import com.fsck.k9.ui.messagelist.DefaultFolderProvider import com.fsck.k9.ui.messagesource.MessageSourceActivity import com.fsck.k9.ui.messageview.MessageViewFragment import com.fsck.k9.ui.messageview.MessageViewFragment.MessageViewFragmentListener import com.fsck.k9.ui.messageview.PlaceholderFragment Loading Loading @@ -916,63 +914,9 @@ open class MessageList : goBack() } return true } else if (id == R.id.toggle_message_view_theme) { onToggleTheme() return true } else if (id == R.id.search_everywhere) { searchEverywhere() return true } else if (id == R.id.next_message) { // MessageView showNextMessage() return true } else if (id == R.id.previous_message) { showPreviousMessage() return true } else if (id == R.id.delete) { messageViewFragment!!.onDelete() return true } else if (id == R.id.reply) { messageViewFragment!!.onReply() return true } else if (id == R.id.reply_all) { messageViewFragment!!.onReplyAll() return true } else if (id == R.id.forward) { messageViewFragment!!.onForward() return true } else if (id == R.id.forward_as_attachment) { messageViewFragment!!.onForwardAsAttachment() return true } else if (id == R.id.edit_as_new_message) { messageViewFragment!!.onEditAsNewMessage() return true } else if (id == R.id.share) { messageViewFragment!!.onSendAlternate() return true } else if (id == R.id.toggle_unread) { messageViewFragment!!.onToggleRead() return true } else if (id == R.id.archive || id == R.id.refile_archive) { messageViewFragment!!.onArchive() return true } else if (id == R.id.spam || id == R.id.refile_spam) { messageViewFragment!!.onSpam() return true } else if (id == R.id.move || id == R.id.refile_move) { messageViewFragment!!.onMove() return true } else if (id == R.id.copy || id == R.id.refile_copy) { messageViewFragment!!.onCopy() return true } else if (id == R.id.move_to_drafts) { messageViewFragment!!.onMoveToDrafts() return true } else if (id == R.id.unsubscribe) { messageViewFragment!!.onUnsubscribe() return true } else if (id == R.id.show_headers) { startActivity(MessageSourceActivity.createLaunchIntent(this, messageViewFragment!!.messageReference)) return true } return super.onOptionsItemSelected(item) Loading Loading @@ -1293,11 +1237,6 @@ open class MessageList : menu!!.findItem(R.id.delete).isEnabled = false } private fun onToggleTheme() { themeManager.toggleMessageViewTheme() recreateCompat() } private fun showDefaultTitleView() { if (messageListFragment != null) { messageListFragment!!.updateTitle() Loading app/ui/legacy/src/main/java/com/fsck/k9/ui/messageview/MessageViewFragment.kt +50 −24 Original line number Diff line number Diff line Loading @@ -12,18 +12,18 @@ import android.os.SystemClock import android.view.ContextThemeWrapper import android.view.LayoutInflater import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.Toast import androidx.core.app.ActivityCompat import androidx.core.content.withStyledAttributes import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import com.fsck.k9.Account import com.fsck.k9.K9 import com.fsck.k9.activity.MessageCompose import com.fsck.k9.activity.MessageList import com.fsck.k9.activity.MessageLoaderHelper import com.fsck.k9.activity.MessageLoaderHelper.MessageLoaderCallbacks import com.fsck.k9.activity.MessageLoaderHelperFactory Loading @@ -45,6 +45,7 @@ import com.fsck.k9.ui.R import com.fsck.k9.ui.base.Theme import com.fsck.k9.ui.base.ThemeManager import com.fsck.k9.ui.choosefolder.ChooseFolderActivity import com.fsck.k9.ui.messagesource.MessageSourceActivity import com.fsck.k9.ui.messageview.CryptoInfoDialog.OnClickShowCryptoKeyListener import com.fsck.k9.ui.messageview.MessageCryptoPresenter.MessageCryptoMvpView import com.fsck.k9.ui.settings.account.AccountSettingsActivity Loading Loading @@ -86,13 +87,6 @@ class MessageViewFragment : private lateinit var account: Account lateinit var messageReference: MessageReference /** * `true` after [.onCreate] has been executed. This is used by `MessageList.configureMenu()` to make sure the * fragment has been initialized before it is used. */ var isInitialized = false private set private var currentAttachmentViewInfo: AttachmentViewInfo? = null override fun onAttach(context: Context) { Loading @@ -117,8 +111,6 @@ class MessageViewFragment : fragmentManager = parentFragmentManager, callback = messageLoaderCallbacks ) isInitialized = true } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { Loading Loading @@ -264,6 +256,40 @@ class MessageViewFragment : } } override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.toggle_message_view_theme -> onToggleTheme() R.id.delete -> onDelete() R.id.reply -> onReply() R.id.reply_all -> onReplyAll() R.id.forward -> onForward() R.id.forward_as_attachment -> onForwardAsAttachment() R.id.edit_as_new_message -> onEditAsNewMessage() R.id.share -> onSendAlternate() R.id.toggle_unread -> onToggleRead() R.id.archive, R.id.refile_archive -> onArchive() R.id.spam, R.id.refile_spam -> onSpam() R.id.move, R.id.refile_move -> onMove() R.id.copy, R.id.refile_copy -> onCopy() R.id.move_to_drafts -> onMoveToDrafts() R.id.unsubscribe -> onUnsubscribe() R.id.show_headers -> onShowHeaders() else -> return false } return true } private fun onShowHeaders() { val launchIntent = MessageSourceActivity.createLaunchIntent(requireActivity(), messageReference) startActivity(launchIntent) } private fun onToggleTheme() { themeManager.toggleMessageViewTheme() ActivityCompat.recreate(requireActivity()) } private fun showMessage(messageViewInfo: MessageViewInfo) { hideKeyboard() Loading Loading @@ -403,7 +429,7 @@ class MessageViewFragment : ) } fun onForwardAsAttachment() { private fun onForwardAsAttachment() { val message = checkNotNull(this.message) fragmentListener.onForwardAsAttachment( Loading @@ -412,7 +438,7 @@ class MessageViewFragment : ) } fun onEditAsNewMessage() { private fun onEditAsNewMessage() { val message = checkNotNull(this.message) fragmentListener.onEditAsNewMessage(message.makeMessageReference()) Loading Loading @@ -442,7 +468,7 @@ class MessageViewFragment : startRefileActivity(FolderOperation.COPY, ACTIVITY_CHOOSE_FOLDER_COPY) } fun onMoveToDrafts() { private fun onMoveToDrafts() { fragmentListener.showNextMessageOrReturn() val account = account Loading @@ -455,7 +481,7 @@ class MessageViewFragment : onRefile(account.archiveFolderId) } fun onSpam() { private fun onSpam() { onRefile(account.spamFolderId) } Loading Loading @@ -533,7 +559,7 @@ class MessageViewFragment : copyMessage(messageReference, destinationFolderId) } fun onSendAlternate() { private fun onSendAlternate() { val message = checkNotNull(message) val shareIntent = shareIntentBuilder.createShareIntent(message) Loading Loading @@ -641,33 +667,33 @@ class MessageViewFragment : override fun dialogCancelled(dialogId: Int) = Unit val isOutbox: Boolean private val isOutbox: Boolean get() = messageReference.folderId == account.outboxFolderId val isMessageRead: Boolean private val isMessageRead: Boolean get() = message?.isSet(Flag.SEEN) == true val isCopyCapable: Boolean private val isCopyCapable: Boolean get() = !isOutbox && messagingController.isCopyCapable(account) val isMoveCapable: Boolean private val isMoveCapable: Boolean get() = !isOutbox && messagingController.isMoveCapable(account) fun canMessageBeArchived(): Boolean { private fun canMessageBeArchived(): Boolean { val archiveFolderId = account.archiveFolderId ?: return false return messageReference.folderId != archiveFolderId } fun canMessageBeMovedToSpam(): Boolean { private fun canMessageBeMovedToSpam(): Boolean { val spamFolderId = account.spamFolderId ?: return false return messageReference.folderId != spamFolderId } fun canMessageBeUnsubscribed(): Boolean { private fun canMessageBeUnsubscribed(): Boolean { return preferredUnsubscribeUri != null } fun onUnsubscribe() { private fun onUnsubscribe() { val intent = when (val unsubscribeUri = preferredUnsubscribeUri) { is MailtoUnsubscribeUri -> { Intent(requireContext(), MessageCompose::class.java).apply { Loading Loading
app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +0 −61 Original line number Diff line number Diff line Loading @@ -49,12 +49,10 @@ import com.fsck.k9.ui.BuildConfig import com.fsck.k9.ui.K9Drawer import com.fsck.k9.ui.R import com.fsck.k9.ui.base.K9Activity import com.fsck.k9.ui.base.Theme import com.fsck.k9.ui.changelog.RecentChangesActivity import com.fsck.k9.ui.changelog.RecentChangesViewModel import com.fsck.k9.ui.managefolders.ManageFoldersActivity import com.fsck.k9.ui.messagelist.DefaultFolderProvider import com.fsck.k9.ui.messagesource.MessageSourceActivity import com.fsck.k9.ui.messageview.MessageViewFragment import com.fsck.k9.ui.messageview.MessageViewFragment.MessageViewFragmentListener import com.fsck.k9.ui.messageview.PlaceholderFragment Loading Loading @@ -916,63 +914,9 @@ open class MessageList : goBack() } return true } else if (id == R.id.toggle_message_view_theme) { onToggleTheme() return true } else if (id == R.id.search_everywhere) { searchEverywhere() return true } else if (id == R.id.next_message) { // MessageView showNextMessage() return true } else if (id == R.id.previous_message) { showPreviousMessage() return true } else if (id == R.id.delete) { messageViewFragment!!.onDelete() return true } else if (id == R.id.reply) { messageViewFragment!!.onReply() return true } else if (id == R.id.reply_all) { messageViewFragment!!.onReplyAll() return true } else if (id == R.id.forward) { messageViewFragment!!.onForward() return true } else if (id == R.id.forward_as_attachment) { messageViewFragment!!.onForwardAsAttachment() return true } else if (id == R.id.edit_as_new_message) { messageViewFragment!!.onEditAsNewMessage() return true } else if (id == R.id.share) { messageViewFragment!!.onSendAlternate() return true } else if (id == R.id.toggle_unread) { messageViewFragment!!.onToggleRead() return true } else if (id == R.id.archive || id == R.id.refile_archive) { messageViewFragment!!.onArchive() return true } else if (id == R.id.spam || id == R.id.refile_spam) { messageViewFragment!!.onSpam() return true } else if (id == R.id.move || id == R.id.refile_move) { messageViewFragment!!.onMove() return true } else if (id == R.id.copy || id == R.id.refile_copy) { messageViewFragment!!.onCopy() return true } else if (id == R.id.move_to_drafts) { messageViewFragment!!.onMoveToDrafts() return true } else if (id == R.id.unsubscribe) { messageViewFragment!!.onUnsubscribe() return true } else if (id == R.id.show_headers) { startActivity(MessageSourceActivity.createLaunchIntent(this, messageViewFragment!!.messageReference)) return true } return super.onOptionsItemSelected(item) Loading Loading @@ -1293,11 +1237,6 @@ open class MessageList : menu!!.findItem(R.id.delete).isEnabled = false } private fun onToggleTheme() { themeManager.toggleMessageViewTheme() recreateCompat() } private fun showDefaultTitleView() { if (messageListFragment != null) { messageListFragment!!.updateTitle() Loading
app/ui/legacy/src/main/java/com/fsck/k9/ui/messageview/MessageViewFragment.kt +50 −24 Original line number Diff line number Diff line Loading @@ -12,18 +12,18 @@ import android.os.SystemClock import android.view.ContextThemeWrapper import android.view.LayoutInflater import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import android.view.View import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.Toast import androidx.core.app.ActivityCompat import androidx.core.content.withStyledAttributes import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import com.fsck.k9.Account import com.fsck.k9.K9 import com.fsck.k9.activity.MessageCompose import com.fsck.k9.activity.MessageList import com.fsck.k9.activity.MessageLoaderHelper import com.fsck.k9.activity.MessageLoaderHelper.MessageLoaderCallbacks import com.fsck.k9.activity.MessageLoaderHelperFactory Loading @@ -45,6 +45,7 @@ import com.fsck.k9.ui.R import com.fsck.k9.ui.base.Theme import com.fsck.k9.ui.base.ThemeManager import com.fsck.k9.ui.choosefolder.ChooseFolderActivity import com.fsck.k9.ui.messagesource.MessageSourceActivity import com.fsck.k9.ui.messageview.CryptoInfoDialog.OnClickShowCryptoKeyListener import com.fsck.k9.ui.messageview.MessageCryptoPresenter.MessageCryptoMvpView import com.fsck.k9.ui.settings.account.AccountSettingsActivity Loading Loading @@ -86,13 +87,6 @@ class MessageViewFragment : private lateinit var account: Account lateinit var messageReference: MessageReference /** * `true` after [.onCreate] has been executed. This is used by `MessageList.configureMenu()` to make sure the * fragment has been initialized before it is used. */ var isInitialized = false private set private var currentAttachmentViewInfo: AttachmentViewInfo? = null override fun onAttach(context: Context) { Loading @@ -117,8 +111,6 @@ class MessageViewFragment : fragmentManager = parentFragmentManager, callback = messageLoaderCallbacks ) isInitialized = true } override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { Loading Loading @@ -264,6 +256,40 @@ class MessageViewFragment : } } override fun onOptionsItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.toggle_message_view_theme -> onToggleTheme() R.id.delete -> onDelete() R.id.reply -> onReply() R.id.reply_all -> onReplyAll() R.id.forward -> onForward() R.id.forward_as_attachment -> onForwardAsAttachment() R.id.edit_as_new_message -> onEditAsNewMessage() R.id.share -> onSendAlternate() R.id.toggle_unread -> onToggleRead() R.id.archive, R.id.refile_archive -> onArchive() R.id.spam, R.id.refile_spam -> onSpam() R.id.move, R.id.refile_move -> onMove() R.id.copy, R.id.refile_copy -> onCopy() R.id.move_to_drafts -> onMoveToDrafts() R.id.unsubscribe -> onUnsubscribe() R.id.show_headers -> onShowHeaders() else -> return false } return true } private fun onShowHeaders() { val launchIntent = MessageSourceActivity.createLaunchIntent(requireActivity(), messageReference) startActivity(launchIntent) } private fun onToggleTheme() { themeManager.toggleMessageViewTheme() ActivityCompat.recreate(requireActivity()) } private fun showMessage(messageViewInfo: MessageViewInfo) { hideKeyboard() Loading Loading @@ -403,7 +429,7 @@ class MessageViewFragment : ) } fun onForwardAsAttachment() { private fun onForwardAsAttachment() { val message = checkNotNull(this.message) fragmentListener.onForwardAsAttachment( Loading @@ -412,7 +438,7 @@ class MessageViewFragment : ) } fun onEditAsNewMessage() { private fun onEditAsNewMessage() { val message = checkNotNull(this.message) fragmentListener.onEditAsNewMessage(message.makeMessageReference()) Loading Loading @@ -442,7 +468,7 @@ class MessageViewFragment : startRefileActivity(FolderOperation.COPY, ACTIVITY_CHOOSE_FOLDER_COPY) } fun onMoveToDrafts() { private fun onMoveToDrafts() { fragmentListener.showNextMessageOrReturn() val account = account Loading @@ -455,7 +481,7 @@ class MessageViewFragment : onRefile(account.archiveFolderId) } fun onSpam() { private fun onSpam() { onRefile(account.spamFolderId) } Loading Loading @@ -533,7 +559,7 @@ class MessageViewFragment : copyMessage(messageReference, destinationFolderId) } fun onSendAlternate() { private fun onSendAlternate() { val message = checkNotNull(message) val shareIntent = shareIntentBuilder.createShareIntent(message) Loading Loading @@ -641,33 +667,33 @@ class MessageViewFragment : override fun dialogCancelled(dialogId: Int) = Unit val isOutbox: Boolean private val isOutbox: Boolean get() = messageReference.folderId == account.outboxFolderId val isMessageRead: Boolean private val isMessageRead: Boolean get() = message?.isSet(Flag.SEEN) == true val isCopyCapable: Boolean private val isCopyCapable: Boolean get() = !isOutbox && messagingController.isCopyCapable(account) val isMoveCapable: Boolean private val isMoveCapable: Boolean get() = !isOutbox && messagingController.isMoveCapable(account) fun canMessageBeArchived(): Boolean { private fun canMessageBeArchived(): Boolean { val archiveFolderId = account.archiveFolderId ?: return false return messageReference.folderId != archiveFolderId } fun canMessageBeMovedToSpam(): Boolean { private fun canMessageBeMovedToSpam(): Boolean { val spamFolderId = account.spamFolderId ?: return false return messageReference.folderId != spamFolderId } fun canMessageBeUnsubscribed(): Boolean { private fun canMessageBeUnsubscribed(): Boolean { return preferredUnsubscribeUri != null } fun onUnsubscribe() { private fun onUnsubscribe() { val intent = when (val unsubscribeUri = preferredUnsubscribeUri) { is MailtoUnsubscribeUri -> { Intent(requireContext(), MessageCompose::class.java).apply { Loading