parent
9d32cc87ce
commit
3872d6c1df
|
@ -31,6 +31,7 @@ import androidx.lifecycle.Observer
|
|||
import androidx.lifecycle.flowWithLifecycle
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import ch.protonmail.android.BuildConfig
|
||||
import ch.protonmail.android.R
|
||||
import ch.protonmail.android.activities.dialogs.QuickSnoozeDialogFragment
|
||||
import ch.protonmail.android.activities.multiuser.AccountManagerActivity
|
||||
|
|
|
@ -22,17 +22,15 @@ import android.content.Context
|
|||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import ch.protonmail.android.core.Constants
|
||||
import ch.protonmail.android.data.local.model.ContactEmail
|
||||
import ch.protonmail.android.data.local.model.Label
|
||||
import ch.protonmail.android.data.local.model.Message
|
||||
import ch.protonmail.android.data.local.model.PendingSend
|
||||
import ch.protonmail.android.data.local.model.PendingUpload
|
||||
import ch.protonmail.android.mailbox.presentation.model.MailboxUiItem
|
||||
import ch.protonmail.android.utils.ui.selection.SelectionModeEnum
|
||||
import kotlinx.android.synthetic.main.layout_sender_initial.view.*
|
||||
import kotlinx.android.synthetic.main.list_item_mailbox.view.*
|
||||
import ch.protonmail.android.views.messagesList.MailboxItemFooterView
|
||||
import ch.protonmail.android.views.messagesList.MailboxItemView
|
||||
import kotlinx.android.synthetic.main.layout_sender_initial.view.*
|
||||
import kotlinx.android.synthetic.main.list_item_mailbox.view.*
|
||||
|
||||
class MailboxRecyclerViewAdapter(
|
||||
private val context: Context,
|
||||
|
@ -120,18 +118,18 @@ class MailboxRecyclerViewAdapter(
|
|||
}
|
||||
|
||||
private fun selectMessage(messageId: String, position: Int) {
|
||||
if (selectedMessageIds.isEmpty()) {
|
||||
if (selectedMailboxItemsIds.isEmpty()) {
|
||||
onSelectionModeChange?.invoke(SelectionModeEnum.STARTED)
|
||||
notifyDataSetChanged()
|
||||
}
|
||||
selectedMessageIds.add(messageId)
|
||||
selectedMailboxItemsIds.add(messageId)
|
||||
onItemSelectionChangedListener?.invoke()
|
||||
notifyItemChanged(position)
|
||||
}
|
||||
|
||||
private fun deselectMessage(messageId: String, position: Int) {
|
||||
selectedMessageIds.remove(messageId)
|
||||
if (selectedMessageIds.isEmpty()) {
|
||||
selectedMailboxItemsIds.remove(messageId)
|
||||
if (selectedMailboxItemsIds.isEmpty()) {
|
||||
onSelectionModeChange?.invoke(SelectionModeEnum.ENDED)
|
||||
notifyDataSetChanged()
|
||||
} else {
|
||||
|
@ -145,7 +143,7 @@ class MailboxRecyclerViewAdapter(
|
|||
return false
|
||||
}
|
||||
|
||||
if (selectedMessageIds.contains(messageId)) {
|
||||
if (selectedMailboxItemsIds.contains(messageId)) {
|
||||
deselectMessage(messageId, position)
|
||||
} else {
|
||||
selectMessage(messageId, position)
|
||||
|
@ -164,6 +162,7 @@ class MailboxRecyclerViewAdapter(
|
|||
this.view.bind(
|
||||
mailboxItem,
|
||||
itemLabels,
|
||||
selectedMailboxItemsIds.isNotEmpty(),
|
||||
mMailboxLocation,
|
||||
isBeingSent,
|
||||
isAttachmentsBeingUploaded
|
||||
|
|
|
@ -370,6 +370,9 @@ class ProtonMailApiManager @Inject constructor(var api: ProtonMailApi) :
|
|||
|
||||
override fun updateViewMode(viewMode: Int): ResponseBody? = api.updateViewMode(viewMode)
|
||||
|
||||
override suspend fun fetchConversations(params: GetConversationsParameters): ConversationsResponse =
|
||||
api.fetchConversations(params)
|
||||
|
||||
override suspend fun fetchConversation(
|
||||
conversationId: String,
|
||||
userId: Id
|
||||
|
|
|
@ -372,11 +372,7 @@ public class ProtonMailApplication extends Application implements androidx.work.
|
|||
prefs.edit().putInt(Constants.Prefs.PREF_APP_VERSION, BuildConfig.VERSION_CODE).apply();
|
||||
mUpdateOccurred = true;
|
||||
|
||||
if (userManager.isLoggedIn()) {
|
||||
userManager.setCurrentUserLoginState(LOGIN_STATE_TO_INBOX);
|
||||
}
|
||||
|
||||
if (BuildConfig.FETCH_FULL_CONTACTS && userManager.isLoggedIn()) {
|
||||
if (BuildConfig.FETCH_FULL_CONTACTS) {
|
||||
new FetchContactsEmailsWorker.Enqueuer(WorkManager.getInstance(this)).enqueue(0);
|
||||
new FetchContactsDataWorker.Enqueuer(WorkManager.getInstance(this)).enqueue();
|
||||
}
|
||||
|
|
|
@ -115,7 +115,6 @@ import ch.protonmail.android.data.local.model.Message
|
|||
import ch.protonmail.android.data.local.model.TotalLabelCounter
|
||||
import ch.protonmail.android.data.local.model.TotalLocationCounter
|
||||
import ch.protonmail.android.details.presentation.MessageDetailsActivity
|
||||
import ch.protonmail.android.domain.entity.Id
|
||||
import ch.protonmail.android.events.FetchLabelsEvent
|
||||
import ch.protonmail.android.events.FetchUpdatesEvent
|
||||
import ch.protonmail.android.events.MailboxLoadedEvent
|
||||
|
@ -233,6 +232,7 @@ class MailboxActivity :
|
|||
private val handler = Handler(Looper.getMainLooper())
|
||||
|
||||
override val currentLabelId get() = mailboxLabelId
|
||||
val currentLocation get() = mailboxLocationMain
|
||||
|
||||
override fun getLayoutId(): Int = R.layout.activity_mailbox
|
||||
|
||||
|
@ -365,14 +365,17 @@ class MailboxActivity :
|
|||
).execute()
|
||||
}
|
||||
|
||||
messagesAdapter.setOnItemSelectionChangedListener {
|
||||
val checkedItems = messagesAdapter.checkedMessages.size
|
||||
mailboxAdapter.setOnItemSelectionChangedListener {
|
||||
val checkedItems = mailboxAdapter.checkedMailboxItems.size
|
||||
actionMode?.title = "$checkedItems ${getString(R.string.selected)}"
|
||||
|
||||
mailboxActionsView.setAction(
|
||||
BottomActionsView.ActionPosition.ACTION_SECOND,
|
||||
currentLocation.value != MessageLocationType.DRAFT,
|
||||
if (MessageUtils.areAllUnRead(selectedMessages)) R.drawable.ic_envelope_open_text else R.drawable.ic_envelope_dot
|
||||
if (MessageUtils.areAllUnRead(
|
||||
selectedMessages
|
||||
)
|
||||
) R.drawable.ic_envelope_open_text else R.drawable.ic_envelope_dot
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -1235,7 +1238,7 @@ class MailboxActivity :
|
|||
undoSnack!!.show()
|
||||
// show progress bar for visual representation of work in background,
|
||||
// if all the messages inside the folder are impacted by the action
|
||||
if (messagesAdapter.itemCount == messageIds.size) {
|
||||
if (mailboxAdapter.itemCount == messageIds.size) {
|
||||
setRefreshing(true)
|
||||
}
|
||||
mJobManager.addJobInBackground(PostTrashJobV2(messageIds, mailboxLabelId))
|
||||
|
|
|
@ -22,13 +22,12 @@ import android.content.Context
|
|||
import android.content.Intent
|
||||
import ch.protonmail.android.activities.EXTRA_FIRST_LOGIN
|
||||
import ch.protonmail.android.activities.SplashActivity
|
||||
import ch.protonmail.android.activities.mailbox.MailboxActivity
|
||||
import ch.protonmail.android.core.Constants
|
||||
import ch.protonmail.android.core.ProtonMailApplication
|
||||
import ch.protonmail.android.mailbox.presentation.MailboxActivity
|
||||
import ch.protonmail.android.servers.notification.EXTRA_MAILBOX_LOCATION
|
||||
import ch.protonmail.android.servers.notification.EXTRA_USER_ID
|
||||
import me.proton.core.domain.entity.UserId
|
||||
import ch.protonmail.android.mailbox.presentation.MailboxActivity
|
||||
|
||||
fun Context.startSplashActivity() =
|
||||
startActivity(getSplashActivityIntent())
|
||||
|
|
Loading…
Reference in New Issue