Skip to content

Commit 450d38d

Browse files
authored
Merge pull request #1714 from Infomaniak/clean-code
Simplify error-prone usage of `canRefreshThreads`
2 parents dae53af + 4e51695 commit 450d38d

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

app/src/main/java/com/infomaniak/mail/ui/MainActivity.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,8 @@ class MainActivity : BaseActivity() {
241241

242242
private fun observeDraftWorkerResults() {
243243
WorkerUtils.flushWorkersBefore(context = this, lifecycleOwner = this) {
244-
val treatedWorkInfoUuids = mutableSetOf<UUID>()
245244

245+
val treatedWorkInfoUuids = mutableSetOf<UUID>()
246246
draftsActionsWorkerScheduler.getCompletedWorkInfoLiveData().observe(this) {
247247
it.forEach { workInfo ->
248248
if (!treatedWorkInfoUuids.add(workInfo.id)) return@forEach
@@ -255,7 +255,6 @@ class MainActivity : BaseActivity() {
255255
}
256256

257257
val treatedFailedWorkInfoUuids = mutableSetOf<UUID>()
258-
259258
draftsActionsWorkerScheduler.getFailedWorkInfoLiveData().observe(this) {
260259
it.forEach { workInfo ->
261260
if (!treatedFailedWorkInfoUuids.add(workInfo.id)) return@forEach

app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt

-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import com.infomaniak.lib.core.utils.SentryLog
2626
import com.infomaniak.lib.core.utils.SingleLiveEvent
2727
import com.infomaniak.mail.MatomoMail.trackMultiSelectionEvent
2828
import com.infomaniak.mail.R
29-
import com.infomaniak.mail.data.LocalSettings
3029
import com.infomaniak.mail.data.api.ApiRepository
3130
import com.infomaniak.mail.data.cache.RealmDatabase
3231
import com.infomaniak.mail.data.cache.mailboxContent.FolderController
@@ -80,7 +79,6 @@ class MainViewModel @Inject constructor(
8079
avatarMergedContactData: AvatarMergedContactData,
8180
private val addressBookController: AddressBookController,
8281
private val folderController: FolderController,
83-
private val localSettings: LocalSettings,
8482
private val mailboxContentRealm: RealmDatabase.MailboxContent,
8583
private val mailboxController: MailboxController,
8684
private val mergedContactController: MergedContactController,

app/src/main/java/com/infomaniak/mail/ui/main/folder/ThreadListFragment.kt

+11-7
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ class ThreadListFragment : TwoPaneFragment(), SwipeRefreshLayout.OnRefreshListen
102102

103103
private val showLoadingTimer: CountDownTimer by lazy { Utils.createRefreshTimer(onTimerFinish = ::showRefreshLayout) }
104104

105-
private var canRefreshThreads = false
105+
private var isFirstTimeRefreshingThreads = true
106106

107107
@Inject
108108
lateinit var localSettings: LocalSettings
@@ -234,16 +234,20 @@ class ThreadListFragment : TwoPaneFragment(), SwipeRefreshLayout.OnRefreshListen
234234
super.onResume()
235235
refreshThreadsIfNotificationsAreDisabled()
236236
updateSwipeActionsAccordingToSettings()
237-
canRefreshThreads = true
238237
}
239238

240239
private fun refreshThreadsIfNotificationsAreDisabled() = with(mainViewModel) {
241-
val areGoogleServicesDisabled = !playServicesUtils.areGooglePlayServicesAvailable()
242-
val areAppNotifsDisabled = !notificationManagerCompat.areNotificationsEnabled()
243-
val areMailboxNotifsDisabled = currentMailbox.value?.notificationsIsDisabled(notificationManagerCompat) == true
244-
val shouldRefreshThreads = areGoogleServicesDisabled || areAppNotifsDisabled || areMailboxNotifsDisabled
245240

246-
if (shouldRefreshThreads && canRefreshThreads) forceRefreshThreads()
241+
if (!isFirstTimeRefreshingThreads) {
242+
val areGoogleServicesDisabled = !playServicesUtils.areGooglePlayServicesAvailable()
243+
val areAppNotifsDisabled = !notificationManagerCompat.areNotificationsEnabled()
244+
val areMailboxNotifsDisabled = currentMailbox.value?.notificationsIsDisabled(notificationManagerCompat) == true
245+
val shouldRefreshThreads = areGoogleServicesDisabled || areAppNotifsDisabled || areMailboxNotifsDisabled
246+
247+
if (shouldRefreshThreads) forceRefreshThreads()
248+
}
249+
250+
isFirstTimeRefreshingThreads = false
247251
}
248252

249253
private fun updateSwipeActionsAccordingToSettings() = with(binding.threadsList) {

0 commit comments

Comments
 (0)