Updated on 2026-08-14
This commit is contained in:
parent
5aff097e3e
commit
84802cb6e2
14 changed files with 132 additions and 18 deletions
|
|
@ -1,5 +1,8 @@
|
|||
package com.tangem.data.settings
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.tangem.datasource.local.preferences.AppPreferencesStore
|
||||
import com.tangem.datasource.local.preferences.PreferencesKeys.getShouldShowInitialPermissionScreen
|
||||
import com.tangem.datasource.local.preferences.PreferencesKeys.getShouldShowPermission
|
||||
|
|
@ -9,6 +12,7 @@ import com.tangem.domain.settings.repositories.PermissionRepository
|
|||
|
||||
internal class DefaultPermissionRepository(
|
||||
private val appPreferencesStore: AppPreferencesStore,
|
||||
private val context: Context,
|
||||
) : PermissionRepository {
|
||||
|
||||
override suspend fun shouldInitiallyShowPermissionScreen(permission: String): Boolean {
|
||||
|
|
@ -32,4 +36,12 @@ internal class DefaultPermissionRepository(
|
|||
override suspend fun neverAskPermission(permission: String) {
|
||||
appPreferencesStore.store(key = getShouldShowPermission(permission), value = false)
|
||||
}
|
||||
|
||||
override fun hasRuntimePermission(permission: String): Boolean {
|
||||
return context.isPermissionGranted(permission)
|
||||
}
|
||||
|
||||
private fun Context.isPermissionGranted(permission: String): Boolean {
|
||||
return ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_GRANTED
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
package com.tangem.data.settings.di
|
||||
|
||||
import android.content.Context
|
||||
import com.tangem.data.settings.DefaultAppRatingRepository
|
||||
import com.tangem.data.settings.DefaultPermissionRepository
|
||||
import com.tangem.data.settings.DefaultSettingsRepository
|
||||
|
|
@ -13,6 +14,7 @@ import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
|||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
|
|
@ -44,7 +46,13 @@ internal object SettingsDataModule {
|
|||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providePushPermissionRepository(appPreferencesStore: AppPreferencesStore): PermissionRepository {
|
||||
return DefaultPermissionRepository(appPreferencesStore = appPreferencesStore)
|
||||
fun providePushPermissionRepository(
|
||||
appPreferencesStore: AppPreferencesStore,
|
||||
@ApplicationContext context: Context,
|
||||
): PermissionRepository {
|
||||
return DefaultPermissionRepository(
|
||||
appPreferencesStore = appPreferencesStore,
|
||||
context = context,
|
||||
)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue