Move Mailbox classes into right packages

MAILAND-1498,
MAILAND-2820
This commit is contained in:
Davide Farella 2022-03-31 17:44:46 +02:00 committed by Zorica Stojchevska
parent f4c4fca1ff
commit 3e9733f097
23 changed files with 55 additions and 65 deletions

View File

@ -42,8 +42,8 @@ import ch.protonmail.android.details.presentation.ui.MessageDetailsActivity
import ch.protonmail.android.events.NoResultsEvent
import ch.protonmail.android.events.SearchResultEvent
import ch.protonmail.android.jobs.SearchMessagesJob
import ch.protonmail.android.mailbox.presentation.MailboxViewModel
import ch.protonmail.android.mailbox.presentation.model.MailboxItemUiModel
import ch.protonmail.android.mailbox.presentation.viewmodel.MailboxViewModel
import ch.protonmail.android.utils.AppUtil
import com.squareup.otto.Subscribe
import dagger.hilt.android.AndroidEntryPoint

View File

@ -554,12 +554,18 @@ public class ComposeMessageActivity
composeMessageViewModel.setSender(senderName != null ? senderName : "", senderAddress != null ? senderAddress : "");
setMessageBodyInContainers(composeMessageViewModel.setMessageBody(composerContent, content, true,
setMessageBodyInContainers(
composeMessageViewModel.setMessageBody(
composerContent,
content,
true,
composeMessageViewModel.getMessageDataResult().isPGPMime(),
getString(R.string.sender_name_address),
getString(R.string.original_message_divider),
getString(R.string.reply_prefix_on),
DateUtil.formatDetailedDateTime(this, composeMessageViewModel.getMessageDataResult().getMessageTimestamp())));
DateUtil.formatDetailedDateTime(this, composeMessageViewModel.getMessageDataResult().getMessageTimestamp())
)
);
} catch (Exception exc) {
Timber.tag("588").e(exc, "Exception on initialise message body");
}

View File

@ -73,7 +73,7 @@ import ch.protonmail.android.mailbox.domain.DeleteConversations
import ch.protonmail.android.mailbox.domain.MoveConversationsToFolder
import ch.protonmail.android.mailbox.domain.model.Conversation
import ch.protonmail.android.mailbox.domain.usecase.MoveMessagesToFolder
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.repository.MessageRepository
import ch.protonmail.android.ui.model.LabelChipUiModel
import ch.protonmail.android.usecase.IsAppInDarkMode

View File

@ -44,10 +44,10 @@ import ch.protonmail.android.mailbox.domain.usecase.ObserveAllUnreadCounters
import ch.protonmail.android.mailbox.domain.usecase.ObserveConversationModeEnabled
import ch.protonmail.android.mailbox.domain.usecase.ObserveConversationsByLocation
import ch.protonmail.android.mailbox.domain.usecase.ObserveMessagesByLocation
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.MailboxViewModel
import ch.protonmail.android.notifications.presentation.usecase.ClearNotificationsForUser
import ch.protonmail.android.mailbox.presentation.mapper.MailboxItemUiModelMapper
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.viewmodel.MailboxViewModel
import ch.protonmail.android.notifications.presentation.usecase.ClearNotificationsForUser
import ch.protonmail.android.settings.domain.GetMailSettings
import ch.protonmail.android.settings.pin.viewmodel.PinFragmentViewModelFactory
import ch.protonmail.android.usecase.VerifyConnection

View File

@ -38,7 +38,7 @@ import ch.protonmail.android.labels.domain.model.LabelType
import ch.protonmail.android.labels.domain.model.ManageLabelActionResult
import ch.protonmail.android.labels.presentation.model.LabelActonItemUiModel
import ch.protonmail.android.labels.presentation.viewmodel.LabelsActionSheetViewModel
import ch.protonmail.android.mailbox.presentation.MailboxViewModel
import ch.protonmail.android.mailbox.presentation.viewmodel.MailboxViewModel
import ch.protonmail.android.ui.actionsheet.model.ActionSheetTarget
import ch.protonmail.android.utils.AppUtil
import com.google.android.material.bottomsheet.BottomSheetDialogFragment

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2020 Proton Technologies AG
* Copyright (c) 2022 Proton Technologies AG
*
* This file is part of ProtonMail.
*
@ -39,7 +39,7 @@ import ch.protonmail.android.mailbox.domain.ConversationsRepository
import ch.protonmail.android.mailbox.domain.MoveConversationsToFolder
import ch.protonmail.android.mailbox.domain.model.ConversationsActionResult
import ch.protonmail.android.mailbox.domain.usecase.MoveMessagesToFolder
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.repository.MessageRepository
import ch.protonmail.android.ui.actionsheet.model.ActionSheetTarget
import dagger.hilt.android.lifecycle.HiltViewModel

View File

@ -17,9 +17,8 @@
* along with ProtonMail. If not, see https://www.gnu.org/licenses/.
*/
package ch.protonmail.android.mailbox.presentation
package ch.protonmail.android.mailbox.presentation.model
import ch.protonmail.android.mailbox.presentation.model.MailboxItemUiModel
import me.proton.core.util.kotlin.EMPTY_STRING
sealed class MailboxItemsState {

View File

@ -16,7 +16,7 @@
* You should have received a copy of the GNU General Public License
* along with ProtonMail. If not, see https://www.gnu.org/licenses/.
*/
package ch.protonmail.android.mailbox.presentation
package ch.protonmail.android.mailbox.presentation.ui
import android.app.AlertDialog
import android.content.BroadcastReceiver
@ -95,10 +95,16 @@ import ch.protonmail.android.labels.domain.model.LabelId
import ch.protonmail.android.labels.domain.model.LabelType
import ch.protonmail.android.labels.presentation.ui.LabelsActionSheet
import ch.protonmail.android.mailbox.domain.model.UnreadCounter
import ch.protonmail.android.mailbox.presentation.MailboxViewModel.MaxLabelsReached
import ch.protonmail.android.mailbox.presentation.model.EmptyMailboxUiModel
import ch.protonmail.android.mailbox.presentation.model.MailboxItemUiModel
import ch.protonmail.android.mailbox.presentation.model.MailboxItemsState
import ch.protonmail.android.mailbox.presentation.model.UnreadChipUiModel
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.viewmodel.FLOW_START_ACTIVITY
import ch.protonmail.android.mailbox.presentation.viewmodel.FLOW_TRY_COMPOSE
import ch.protonmail.android.mailbox.presentation.viewmodel.FLOW_USED_SPACE_CHANGED
import ch.protonmail.android.mailbox.presentation.viewmodel.MailboxViewModel
import ch.protonmail.android.mailbox.presentation.viewmodel.MailboxViewModel.MaxLabelsReached
import ch.protonmail.android.navigation.presentation.EXTRA_FIRST_LOGIN
import ch.protonmail.android.navigation.presentation.NavigationActivity
import ch.protonmail.android.notifications.data.remote.fcm.MultiUserFcmTokenManager

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2020 Proton Technologies AG
* Copyright (c) 2022 Proton Technologies AG
*
* This file is part of ProtonMail.
*
@ -17,7 +17,7 @@
* along with ProtonMail. If not, see https://www.gnu.org/licenses/.
*/
package ch.protonmail.android.mailbox.presentation
package ch.protonmail.android.mailbox.presentation.util
import ch.protonmail.android.core.Constants.MessageLocationType
import ch.protonmail.android.core.UserManager

View File

@ -16,7 +16,7 @@
* You should have received a copy of the GNU General Public License
* along with ProtonMail. If not, see https://www.gnu.org/licenses/.
*/
package ch.protonmail.android.mailbox.presentation
package ch.protonmail.android.mailbox.presentation.viewmodel
import android.os.Build
import android.os.VibrationEffect
@ -60,6 +60,8 @@ import ch.protonmail.android.mailbox.domain.usecase.ObserveConversationsByLocati
import ch.protonmail.android.mailbox.domain.usecase.ObserveMessagesByLocation
import ch.protonmail.android.mailbox.presentation.mapper.MailboxItemUiModelMapper
import ch.protonmail.android.mailbox.presentation.model.MailboxItemUiModel
import ch.protonmail.android.mailbox.presentation.model.MailboxItemsState
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.notifications.presentation.usecase.ClearNotificationsForUser
import ch.protonmail.android.settings.domain.GetMailSettings
import ch.protonmail.android.usecase.VerifyConnection

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2020 Proton Technologies AG
* Copyright (c) 2022 Proton Technologies AG
*
* This file is part of ProtonMail.
*
@ -36,7 +36,7 @@ import ch.protonmail.android.api.segments.event.FetchEventsAndReschedule
import ch.protonmail.android.core.QueueNetworkUtil
import ch.protonmail.android.core.UserManager
import ch.protonmail.android.crypto.UserCrypto
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.notifications.data.remote.model.NotificationAction
import ch.protonmail.android.notifications.data.remote.model.PushNotification
import ch.protonmail.android.notifications.data.remote.model.PushNotificationData

View File

@ -44,7 +44,7 @@ import ch.protonmail.android.data.local.model.Message
import ch.protonmail.android.details.presentation.ui.SwitchUserAndOpenMessageDetailsActivity
import ch.protonmail.android.domain.entity.Name
import ch.protonmail.android.domain.entity.user.User
import ch.protonmail.android.mailbox.presentation.MailboxActivity
import ch.protonmail.android.mailbox.presentation.ui.MailboxActivity
import ch.protonmail.android.utils.MessageUtils
import ch.protonmail.android.utils.buildArchiveIntent
import ch.protonmail.android.utils.buildDismissGroupIntent

View File

@ -42,7 +42,7 @@ import ch.protonmail.android.databinding.LayoutMessageDetailsActionsSheetButtons
import ch.protonmail.android.details.presentation.ui.MessageDetailsActivity
import ch.protonmail.android.labels.domain.model.LabelType
import ch.protonmail.android.labels.presentation.ui.LabelsActionSheet
import ch.protonmail.android.mailbox.presentation.MailboxViewModel
import ch.protonmail.android.mailbox.presentation.viewmodel.MailboxViewModel
import ch.protonmail.android.ui.actionsheet.model.ActionSheetTarget
import ch.protonmail.android.utils.AppUtil
import ch.protonmail.android.utils.ui.dialogs.DialogUtils.Companion.showDeleteConfirmationDialog

View File

@ -34,7 +34,7 @@ import ch.protonmail.android.mailbox.domain.DeleteConversations
import ch.protonmail.android.mailbox.domain.MoveConversationsToFolder
import ch.protonmail.android.mailbox.domain.model.ConversationsActionResult
import ch.protonmail.android.mailbox.domain.usecase.MoveMessagesToFolder
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.metrics.domain.SendMetricsForViewInDarkModePreference
import ch.protonmail.android.repository.MessageRepository
import ch.protonmail.android.ui.actionsheet.model.ActionSheetTarget

View File

@ -20,11 +20,8 @@ package ch.protonmail.android.utils
import android.content.Context
import android.content.Intent
import ch.protonmail.android.navigation.presentation.EXTRA_FIRST_LOGIN
import ch.protonmail.android.core.Constants
import ch.protonmail.android.core.ProtonMailApplication
import ch.protonmail.android.mailbox.presentation.MailboxActivity
import ch.protonmail.android.navigation.presentation.EXTRA_FIRST_LOGIN
import ch.protonmail.android.mailbox.presentation.ui.MailboxActivity
import ch.protonmail.android.navigation.presentation.EXTRA_FIRST_LOGIN
import ch.protonmail.android.notifications.presentation.utils.EXTRA_MAILBOX_LOCATION
import ch.protonmail.android.notifications.presentation.utils.EXTRA_USER_ID

View File

@ -58,7 +58,7 @@ import ch.protonmail.android.mailbox.domain.model.Correspondent
import ch.protonmail.android.mailbox.domain.model.LabelContext
import ch.protonmail.android.mailbox.domain.model.MessageDomainModel
import ch.protonmail.android.mailbox.domain.usecase.MoveMessagesToFolder
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.repository.MessageRepository
import ch.protonmail.android.testAndroid.lifecycle.testObserver
import ch.protonmail.android.ui.model.LabelChipUiModel

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2020 Proton Technologies AG
* Copyright (c) 2022 Proton Technologies AG
*
* This file is part of ProtonMail.
*
@ -40,7 +40,7 @@ import ch.protonmail.android.mailbox.domain.ConversationsRepository
import ch.protonmail.android.mailbox.domain.MoveConversationsToFolder
import ch.protonmail.android.mailbox.domain.model.ConversationsActionResult
import ch.protonmail.android.mailbox.domain.usecase.MoveMessagesToFolder
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.repository.MessageRepository
import ch.protonmail.android.ui.actionsheet.model.ActionSheetTarget
import io.mockk.Called

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2020 Proton Technologies AG
* Copyright (c) 2022 Proton Technologies AG
*
* This file is part of ProtonMail.
*
@ -23,6 +23,7 @@ import ch.protonmail.android.core.Constants
import ch.protonmail.android.core.UserManager
import ch.protonmail.android.featureflags.FeatureFlagsManager
import ch.protonmail.android.mailbox.domain.usecase.ObserveConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import io.mockk.coEvery
import io.mockk.every
import io.mockk.mockk

View File

@ -17,7 +17,7 @@
* along with ProtonMail. If not, see https://www.gnu.org/licenses/.
*/
package ch.protonmail.android.activities
package ch.protonmail.android.mailbox.presentation.viewmodel
import android.graphics.Color
import androidx.lifecycle.liveData
@ -53,11 +53,10 @@ import ch.protonmail.android.mailbox.domain.model.GetMessagesResult
import ch.protonmail.android.mailbox.domain.usecase.MoveMessagesToFolder
import ch.protonmail.android.mailbox.domain.usecase.ObserveConversationsByLocation
import ch.protonmail.android.mailbox.domain.usecase.ObserveMessagesByLocation
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.MailboxItemsState
import ch.protonmail.android.mailbox.presentation.MailboxViewModel
import ch.protonmail.android.mailbox.presentation.mapper.MailboxItemUiModelMapper
import ch.protonmail.android.mailbox.presentation.model.MailboxItemUiModel
import ch.protonmail.android.mailbox.presentation.model.MailboxItemsState
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.notifications.presentation.usecase.ClearNotificationsForUser
import ch.protonmail.android.pendingaction.data.model.PendingSend
import ch.protonmail.android.pendingaction.data.model.PendingUpload

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2020 Proton Technologies AG
* Copyright (c) 2022 Proton Technologies AG
*
* This file is part of ProtonMail.
*
@ -32,7 +32,7 @@ import ch.protonmail.android.core.QueueNetworkUtil
import ch.protonmail.android.core.UserManager
import ch.protonmail.android.crypto.UserCrypto
import ch.protonmail.android.data.local.model.Message
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.notifications.data.remote.model.NotificationAction
import ch.protonmail.android.notifications.data.remote.model.PushNotification
import ch.protonmail.android.notifications.data.remote.model.PushNotificationData

View File

@ -32,7 +32,7 @@ import ch.protonmail.android.mailbox.domain.DeleteConversations
import ch.protonmail.android.mailbox.domain.MoveConversationsToFolder
import ch.protonmail.android.mailbox.domain.model.ConversationsActionResult
import ch.protonmail.android.mailbox.domain.usecase.MoveMessagesToFolder
import ch.protonmail.android.mailbox.presentation.ConversationModeEnabled
import ch.protonmail.android.mailbox.presentation.util.ConversationModeEnabled
import ch.protonmail.android.metrics.domain.SendMetricsForViewInDarkModePreference
import ch.protonmail.android.repository.MessageRepository
import ch.protonmail.android.ui.actionsheet.MessageActionSheet.Companion.EXTRA_ARG_IS_STARRED

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2020 Proton Technologies AG
* Copyright (c) 2022 Proton Technologies AG
*
* This file is part of ProtonMail.
*
@ -18,35 +18,17 @@
*/
package ch.protonmail.android.uitests.robots.mailbox.composer
import android.util.Log
import android.widget.EditText
import androidx.appcompat.widget.AppCompatImageButton
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.assertion.ViewAssertions.doesNotExist
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.RootMatchers
import androidx.test.espresso.matcher.RootMatchers.isPlatformPopup
import androidx.test.espresso.matcher.RootMatchers.withDecorView
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.rule.ActivityTestRule
import ch.protonmail.android.R
import ch.protonmail.android.compose.presentation.model.MessagePasswordUiModel
import ch.protonmail.android.mailbox.presentation.MailboxActivity
import ch.protonmail.android.mailbox.presentation.ui.MailboxActivity
import ch.protonmail.android.uitests.robots.contacts.ContactsRobot
import ch.protonmail.android.uitests.robots.mailbox.drafts.DraftsRobot
import ch.protonmail.android.uitests.robots.mailbox.inbox.InboxRobot
import ch.protonmail.android.uitests.robots.mailbox.messagedetail.MessageRobot
import ch.protonmail.android.uitests.robots.mailbox.sent.SentRobot
import ch.protonmail.android.uitests.testsHelper.TestData
import ch.protonmail.android.uitests.testsHelper.UICustomViewActions.TIMEOUT_15S
import ch.protonmail.android.uitests.testsHelper.UICustomViewActions.TIMEOUT_30S
import me.proton.core.test.android.instrumented.ProtonTest
import me.proton.core.test.android.instrumented.Robot
import me.proton.core.test.android.instrumented.utils.ActivityProvider.currentActivity
import me.proton.core.test.android.instrumented.utils.FileUtils
import org.hamcrest.core.IsNot.not
import java.util.concurrent.TimeoutException
/**
* [ComposerRobot] class contains actions and verifications for email composer functionality.

View File

@ -1,18 +1,18 @@
/*
* Copyright (c) 2020 Proton Technologies AG
*
* Copyright (c) 2022 Proton Technologies AG
*
* This file is part of ProtonMail.
*
*
* ProtonMail is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
*
* ProtonMail is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* along with ProtonMail. If not, see https://www.gnu.org/licenses/.
*/
@ -24,19 +24,17 @@ import android.Manifest.permission.WRITE_EXTERNAL_STORAGE
import android.content.Context
import android.widget.Toast
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.internal.runner.junit4.AndroidJUnit4ClassRunner
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.ActivityTestRule
import androidx.test.rule.GrantPermissionRule
import androidx.test.uiautomator.UiDevice
import ch.protonmail.android.mailbox.presentation.MailboxActivity
import ch.protonmail.android.mailbox.presentation.ui.MailboxActivity
import ch.protonmail.android.uitests.testsHelper.TestExecutionWatcher
import ch.protonmail.android.uitests.testsHelper.TestUser.populateUsers
import ch.protonmail.android.uitests.testsHelper.testRail.TestRailService
import me.proton.core.test.android.instrumented.ProtonTest.Companion.testName
import me.proton.core.test.android.instrumented.utils.FileUtils
import me.proton.core.test.android.instrumented.utils.FileUtils.prepareArtifactsDir
import me.proton.core.test.android.instrumented.utils.Shell
import me.proton.core.test.android.instrumented.utils.Shell.deleteDownloadArtifactsFolder
import me.proton.core.test.android.plugins.data.User
import org.junit.After