Skip to content

Commit 88c963f

Browse files
committed
refactor(StoresLocalSettings): Replace SharedPrefs by DataStores
1 parent dba8442 commit 88c963f

File tree

4 files changed

+13
-15
lines changed

4 files changed

+13
-15
lines changed

app/src/main/java/com/infomaniak/mail/di/ApplicationModule.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ import android.content.Context
2222
import androidx.core.app.NotificationManagerCompat
2323
import androidx.work.WorkManager
2424
import com.infomaniak.lib.stores.AppUpdateScheduler
25-
import com.infomaniak.lib.stores.StoresLocalSettings
25+
import com.infomaniak.lib.stores.StoresSettingsRepository
2626
import com.infomaniak.mail.MainApplication
2727
import com.infomaniak.mail.data.LocalSettings
2828
import dagger.Module
@@ -66,7 +66,7 @@ object ApplicationModule {
6666

6767
@Provides
6868
@Singleton
69-
fun providesStoresLocalSettings(appContext: Context): StoresLocalSettings = StoresLocalSettings.getInstance(appContext)
69+
fun providesStoresSettingsRepository(appContext: Context): StoresSettingsRepository = StoresSettingsRepository(appContext)
7070

7171
@Provides
7272
@Singleton

app/src/main/java/com/infomaniak/mail/ui/bottomSheetDialogs/UpdateAvailableBottomSheetDialog.kt

+6-8
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,21 @@ package com.infomaniak.mail.ui.bottomSheetDialogs
1919

2020
import android.os.Bundle
2121
import android.view.View
22+
import androidx.fragment.app.activityViewModels
2223
import com.infomaniak.lib.core.utils.context
2324
import com.infomaniak.lib.core.utils.getAppName
2425
import com.infomaniak.lib.core.utils.goToPlayStore
25-
import com.infomaniak.lib.stores.StoresLocalSettings
26+
import com.infomaniak.lib.stores.StoresSettingsRepository
27+
import com.infomaniak.lib.stores.StoresViewModel
2628
import com.infomaniak.mail.MatomoMail.DISCOVER_LATER
2729
import com.infomaniak.mail.MatomoMail.DISCOVER_NOW
2830
import com.infomaniak.mail.MatomoMail.trackAppUpdateEvent
2931
import com.infomaniak.mail.R
30-
import dagger.hilt.android.AndroidEntryPoint
31-
import javax.inject.Inject
3232
import com.infomaniak.lib.core.R as RCore
3333

34-
@AndroidEntryPoint
3534
class UpdateAvailableBottomSheetDialog : InformationBottomSheetDialog() {
3635

37-
@Inject
38-
lateinit var storesLocalSettings: StoresLocalSettings
36+
private val storesViewModel: StoresViewModel by activityViewModels()
3937

4038
override fun onViewCreated(view: View, savedInstanceState: Bundle?): Unit = with(binding) {
4139
super.onViewCreated(view, savedInstanceState)
@@ -48,15 +46,15 @@ class UpdateAvailableBottomSheetDialog : InformationBottomSheetDialog() {
4846
trackAppUpdateEvent(DISCOVER_NOW)
4947
setText(RCore.string.buttonUpdate)
5048
setOnClickListener {
51-
storesLocalSettings.isUserWantingUpdates = true
49+
storesViewModel.set(StoresSettingsRepository.IS_USER_WANTING_UPDATES_KEY, true)
5250
requireContext().goToPlayStore()
5351
dismiss()
5452
}
5553
}
5654

5755
secondaryActionButton.setOnClickListener {
5856
trackAppUpdateEvent(DISCOVER_LATER)
59-
storesLocalSettings.isUserWantingUpdates = false
57+
storesViewModel.set(StoresSettingsRepository.IS_USER_WANTING_UPDATES_KEY, false)
6058
dismiss()
6159
}
6260
}

app/src/main/java/com/infomaniak/mail/utils/LogoutUser.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import androidx.work.WorkManager
2323
import com.infomaniak.lib.core.models.user.User
2424
import com.infomaniak.lib.core.networking.HttpClient
2525
import com.infomaniak.lib.core.utils.SentryLog
26-
import com.infomaniak.lib.stores.StoresLocalSettings
26+
import com.infomaniak.lib.stores.StoresSettingsRepository
2727
import com.infomaniak.mail.data.LocalSettings
2828
import com.infomaniak.mail.data.cache.RealmDatabase
2929
import com.infomaniak.mail.data.cache.appSettings.AppSettingsController
@@ -42,7 +42,7 @@ class LogoutUser @Inject constructor(
4242
private val localSettings: LocalSettings,
4343
private val mailboxController: MailboxController,
4444
private val playServicesUtils: PlayServicesUtils,
45-
private val storesLocalSettings: StoresLocalSettings,
45+
private val storesSettingsRepository: StoresSettingsRepository,
4646
@IoDispatcher private val ioDispatcher: CoroutineDispatcher,
4747
) {
4848

@@ -79,10 +79,10 @@ class LogoutUser @Inject constructor(
7979
)
8080
}
8181

82-
private fun resetSettings() {
82+
private suspend fun resetSettings() {
8383
AppSettingsController.removeAppSettings()
8484
localSettings.removeSettings()
85-
storesLocalSettings.removeSettings()
85+
storesSettingsRepository.clear()
8686
with(WorkManager.getInstance(appContext)) {
8787
cancelAllWork()
8888
pruneWork()

0 commit comments

Comments
 (0)