Updated on 2026-08-14

This commit is contained in:
Tangem 2025-06-03 21:07:28 +04:00
parent 5aff097e3e
commit 84802cb6e2
14 changed files with 132 additions and 18 deletions

View file

@ -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
}
}

View file

@ -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,
)
}
}