Skip to content

Commit

Permalink
Merge pull request #1662 from Infomaniak/fix-empty-threadFragment
Browse files Browse the repository at this point in the history
Make sure open Thread survives to background app death
  • Loading branch information
KevinBoulongne authored Jan 22, 2024
2 parents bc52681 + 519888c commit 05cfddf
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 6 deletions.
2 changes: 0 additions & 2 deletions app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -349,9 +349,7 @@ class MainActivity : BaseActivity() {
override fun onResume() {
super.onResume()
playServicesUtils.checkPlayServices(this)

mainViewModel.checkAppUpdateStatus()

if (binding.drawerLayout.isOpen) colorSystemBarsWithMenuDrawer(UiUtils.FULLY_SLID)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,8 @@ abstract class TwoPaneFragment : Fragment() {
rightPaneFolderName.value = name

if (folderId != previousFolderId) {
if (isThreadOpen && previousFolderId != null) closeThread()
previousFolderId = folderId
if (isThreadOpen) closeThread()
}

doAfterFolderChanged()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@ package com.infomaniak.mail.ui.main.folder
import android.net.Uri
import android.os.Bundle
import androidx.annotation.IdRes
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import com.infomaniak.lib.core.utils.SingleLiveEvent
import com.infomaniak.mail.data.cache.mailboxContent.DraftController
Expand All @@ -34,10 +36,11 @@ import javax.inject.Inject

@HiltViewModel
class TwoPaneViewModel @Inject constructor(
private val state: SavedStateHandle,
private val draftController: DraftController,
) : ViewModel() {

val currentThreadUid = MutableLiveData<String?>()
val currentThreadUid: LiveData<String?> = state.getLiveData(CURRENT_THREAD_UID_KEY)

inline val isThreadOpen get() = currentThreadUid.value != null
val rightPaneFolderName = MutableLiveData<String>()
Expand All @@ -47,11 +50,11 @@ class TwoPaneViewModel @Inject constructor(
val navArgs = SingleLiveEvent<NavData>()

fun openThread(uid: String) {
currentThreadUid.value = uid
state[CURRENT_THREAD_UID_KEY] = uid
}

fun closeThread() {
currentThreadUid.value = null
state[CURRENT_THREAD_UID_KEY] = null
}

fun openDraft(thread: Thread) {
Expand Down Expand Up @@ -93,4 +96,8 @@ class TwoPaneViewModel @Inject constructor(
@IdRes val resId: Int,
val args: Bundle,
)

companion object {
private const val CURRENT_THREAD_UID_KEY = "currentThreadUidKey"
}
}

0 comments on commit 05cfddf

Please sign in to comment.