mirror of
https://github.com/bitwarden/android.git
synced 2025-02-17 12:30:00 +03:00
Add support for a localPermissionsManager (#628)
This commit is contained in:
parent
f0e2548f65
commit
ff9c4ecb67
9 changed files with 22 additions and 16 deletions
|
@ -1,4 +1,4 @@
|
||||||
package com.x8bit.bitwarden.ui.platform.base.util
|
package com.x8bit.bitwarden.ui.platform.manager.permissions
|
||||||
|
|
||||||
import androidx.activity.compose.ManagedActivityResultLauncher
|
import androidx.activity.compose.ManagedActivityResultLauncher
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
|
@ -1,4 +1,4 @@
|
||||||
package com.x8bit.bitwarden.ui.platform.base.util
|
package com.x8bit.bitwarden.ui.platform.manager.permissions
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
|
@ -22,6 +22,8 @@ import androidx.compose.ui.platform.LocalContext
|
||||||
import androidx.compose.ui.platform.LocalView
|
import androidx.compose.ui.platform.LocalView
|
||||||
import androidx.core.view.WindowCompat
|
import androidx.core.view.WindowCompat
|
||||||
import com.x8bit.bitwarden.R
|
import com.x8bit.bitwarden.R
|
||||||
|
import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager
|
||||||
|
import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManagerImpl
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The overall application theme. This can be configured to support a [darkTheme] and
|
* The overall application theme. This can be configured to support a [darkTheme] and
|
||||||
|
@ -66,6 +68,7 @@ fun BitwardenTheme(
|
||||||
CompositionLocalProvider(
|
CompositionLocalProvider(
|
||||||
LocalNonMaterialColors provides nonMaterialColors,
|
LocalNonMaterialColors provides nonMaterialColors,
|
||||||
LocalNonMaterialTypography provides nonMaterialTypography,
|
LocalNonMaterialTypography provides nonMaterialTypography,
|
||||||
|
LocalPermissionsManager provides PermissionsManagerImpl(context as Activity),
|
||||||
) {
|
) {
|
||||||
// Set overall theme based on color scheme and typography settings
|
// Set overall theme based on color scheme and typography settings
|
||||||
MaterialTheme(
|
MaterialTheme(
|
||||||
|
@ -152,6 +155,13 @@ private fun lightColorScheme(context: Context): ColorScheme =
|
||||||
private fun Int.toColor(context: Context): Color =
|
private fun Int.toColor(context: Context): Color =
|
||||||
Color(context.getColor(this))
|
Color(context.getColor(this))
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides access to non material theme typography throughout the app.
|
||||||
|
*/
|
||||||
|
val LocalPermissionsManager: ProvidableCompositionLocal<PermissionsManager> = compositionLocalOf {
|
||||||
|
error("CompositionLocal LocalPermissionsManager not present")
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Provides access to non material theme typography throughout the app.
|
* Provides access to non material theme typography throughout the app.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -12,7 +12,7 @@ import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import com.x8bit.bitwarden.R
|
import com.x8bit.bitwarden.R
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.PermissionsManager
|
import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenListHeaderText
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenListHeaderText
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenMultiSelectButton
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenMultiSelectButton
|
||||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCardTypeHandlers
|
import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCardTypeHandlers
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.x8bit.bitwarden.ui.vault.feature.addedit
|
package com.x8bit.bitwarden.ui.vault.feature.addedit
|
||||||
|
|
||||||
import android.app.Activity
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.imePadding
|
import androidx.compose.foundation.layout.imePadding
|
||||||
|
@ -20,8 +19,6 @@ import androidx.hilt.navigation.compose.hiltViewModel
|
||||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.x8bit.bitwarden.R
|
import com.x8bit.bitwarden.R
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect
|
import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.PermissionsManager
|
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.PermissionsManagerImpl
|
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.asText
|
import com.x8bit.bitwarden.ui.platform.base.util.asText
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BasicDialogState
|
import com.x8bit.bitwarden.ui.platform.components.BasicDialogState
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenBasicDialog
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenBasicDialog
|
||||||
|
@ -32,6 +29,8 @@ import com.x8bit.bitwarden.ui.platform.components.BitwardenScaffold
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenTextButton
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenTextButton
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenTopAppBar
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenTopAppBar
|
||||||
import com.x8bit.bitwarden.ui.platform.components.LoadingDialogState
|
import com.x8bit.bitwarden.ui.platform.components.LoadingDialogState
|
||||||
|
import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager
|
||||||
|
import com.x8bit.bitwarden.ui.platform.theme.LocalPermissionsManager
|
||||||
import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode
|
import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode
|
||||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCardTypeHandlers
|
import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCardTypeHandlers
|
||||||
import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCommonHandlers
|
import com.x8bit.bitwarden.ui.vault.feature.addedit.handlers.VaultAddEditCommonHandlers
|
||||||
|
@ -48,8 +47,7 @@ fun VaultAddEditScreen(
|
||||||
onNavigateBack: () -> Unit,
|
onNavigateBack: () -> Unit,
|
||||||
onNavigateToQrCodeScanScreen: () -> Unit,
|
onNavigateToQrCodeScanScreen: () -> Unit,
|
||||||
viewModel: VaultAddEditViewModel = hiltViewModel(),
|
viewModel: VaultAddEditViewModel = hiltViewModel(),
|
||||||
permissionsManager: PermissionsManager =
|
permissionsManager: PermissionsManager = LocalPermissionsManager.current,
|
||||||
PermissionsManagerImpl(LocalContext.current as Activity),
|
|
||||||
onNavigateToManualCodeEntryScreen: () -> Unit,
|
onNavigateToManualCodeEntryScreen: () -> Unit,
|
||||||
onNavigateToGeneratorModal: (GeneratorMode.Modal) -> Unit,
|
onNavigateToGeneratorModal: (GeneratorMode.Modal) -> Unit,
|
||||||
) {
|
) {
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.x8bit.bitwarden.ui.vault.feature.manualcodeentry
|
package com.x8bit.bitwarden.ui.vault.feature.manualcodeentry
|
||||||
|
|
||||||
import android.Manifest
|
import android.Manifest
|
||||||
import android.app.Activity
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
|
@ -34,14 +33,14 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||||
import com.x8bit.bitwarden.R
|
import com.x8bit.bitwarden.R
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect
|
import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.IntentHandler
|
import com.x8bit.bitwarden.ui.platform.base.util.IntentHandler
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.PermissionsManager
|
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.PermissionsManagerImpl
|
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString
|
import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenFilledTonalButton
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenFilledTonalButton
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenScaffold
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenScaffold
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenTextField
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenTextField
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenTopAppBar
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenTopAppBar
|
||||||
import com.x8bit.bitwarden.ui.platform.components.BitwardenTwoButtonDialog
|
import com.x8bit.bitwarden.ui.platform.components.BitwardenTwoButtonDialog
|
||||||
|
import com.x8bit.bitwarden.ui.platform.manager.permissions.PermissionsManager
|
||||||
|
import com.x8bit.bitwarden.ui.platform.theme.LocalPermissionsManager
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The screen to manually add a totp code.
|
* The screen to manually add a totp code.
|
||||||
|
@ -54,8 +53,7 @@ fun ManualCodeEntryScreen(
|
||||||
onNavigateToQrCodeScreen: () -> Unit,
|
onNavigateToQrCodeScreen: () -> Unit,
|
||||||
viewModel: ManualCodeEntryViewModel = hiltViewModel(),
|
viewModel: ManualCodeEntryViewModel = hiltViewModel(),
|
||||||
intentHandler: IntentHandler = IntentHandler(LocalContext.current),
|
intentHandler: IntentHandler = IntentHandler(LocalContext.current),
|
||||||
permissionsManager: PermissionsManager =
|
permissionsManager: PermissionsManager = LocalPermissionsManager.current,
|
||||||
PermissionsManagerImpl(LocalContext.current as Activity),
|
|
||||||
) {
|
) {
|
||||||
var shouldShowPermissionDialog by rememberSaveable { mutableStateOf(false) }
|
var shouldShowPermissionDialog by rememberSaveable { mutableStateOf(false) }
|
||||||
val state by viewModel.stateFlow.collectAsStateWithLifecycle()
|
val state by viewModel.stateFlow.collectAsStateWithLifecycle()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package com.x8bit.bitwarden.ui.platform.base.util
|
package com.x8bit.bitwarden.ui.platform.manager.permissions
|
||||||
|
|
||||||
import androidx.activity.compose.ManagedActivityResultLauncher
|
import androidx.activity.compose.ManagedActivityResultLauncher
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
|
@ -29,8 +29,8 @@ import androidx.compose.ui.test.performTextInput
|
||||||
import androidx.compose.ui.test.performTouchInput
|
import androidx.compose.ui.test.performTouchInput
|
||||||
import com.x8bit.bitwarden.data.platform.repository.util.bufferedMutableSharedFlow
|
import com.x8bit.bitwarden.data.platform.repository.util.bufferedMutableSharedFlow
|
||||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.FakePermissionManager
|
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.asText
|
import com.x8bit.bitwarden.ui.platform.base.util.asText
|
||||||
|
import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager
|
||||||
import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode
|
import com.x8bit.bitwarden.ui.tools.feature.generator.model.GeneratorMode
|
||||||
import com.x8bit.bitwarden.ui.util.isProgressBar
|
import com.x8bit.bitwarden.ui.util.isProgressBar
|
||||||
import com.x8bit.bitwarden.ui.util.onAllNodesWithContentDescriptionAfterScroll
|
import com.x8bit.bitwarden.ui.util.onAllNodesWithContentDescriptionAfterScroll
|
||||||
|
|
|
@ -17,8 +17,8 @@ import androidx.compose.ui.test.performTextInput
|
||||||
import androidx.test.core.app.ApplicationProvider
|
import androidx.test.core.app.ApplicationProvider
|
||||||
import com.x8bit.bitwarden.data.platform.repository.util.bufferedMutableSharedFlow
|
import com.x8bit.bitwarden.data.platform.repository.util.bufferedMutableSharedFlow
|
||||||
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
import com.x8bit.bitwarden.ui.platform.base.BaseComposeTest
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.FakePermissionManager
|
|
||||||
import com.x8bit.bitwarden.ui.platform.base.util.IntentHandler
|
import com.x8bit.bitwarden.ui.platform.base.util.IntentHandler
|
||||||
|
import com.x8bit.bitwarden.ui.platform.manager.permissions.FakePermissionManager
|
||||||
import io.mockk.every
|
import io.mockk.every
|
||||||
import io.mockk.mockk
|
import io.mockk.mockk
|
||||||
import io.mockk.slot
|
import io.mockk.slot
|
||||||
|
|
Loading…
Add table
Reference in a new issue