diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/disk/SettingsDiskSourceImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/disk/SettingsDiskSourceImpl.kt index b34b4d81f6..e17541e88d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/disk/SettingsDiskSourceImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/platform/datasource/disk/SettingsDiskSourceImpl.kt @@ -148,9 +148,12 @@ class SettingsDiskSourceImpl( isApprovePasswordlessLoginsEnabled = null, ) storeLastSyncTime(userId = userId, lastSyncTime = null) - storeScreenCaptureAllowed(userId = userId, isScreenCaptureAllowed = null) storeClearClipboardFrequencySeconds(userId = userId, frequency = null) removeWithPrefix(prefix = "${ACCOUNT_BIOMETRIC_INTEGRITY_VALID_KEY}_$userId") + + // The following are intentionally not cleared so they can be + // restored after logging out and back in: + // - screen capture allowed } override fun getAccountBiometricIntegrityValidity( diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/SettingsRepositoryImpl.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/SettingsRepositoryImpl.kt index 930743f2a6..eeb9866fbd 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/SettingsRepositoryImpl.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/platform/repository/SettingsRepositoryImpl.kt @@ -262,9 +262,9 @@ class SettingsRepositoryImpl( autofillEnabledManager.isAutofillEnabledStateFlow override var isScreenCaptureAllowed: Boolean - get() = activeUserId?.let { - settingsDiskSource.getScreenCaptureAllowed(it) - } ?: DEFAULT_IS_SCREEN_CAPTURE_ALLOWED + get() = activeUserId + ?.let { settingsDiskSource.getScreenCaptureAllowed(it) } + ?: DEFAULT_IS_SCREEN_CAPTURE_ALLOWED set(value) { val userId = activeUserId ?: return settingsDiskSource.storeScreenCaptureAllowed( diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/SettingsDiskSourceTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/SettingsDiskSourceTest.kt index ab2daa0344..f5568d25ca 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/SettingsDiskSourceTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/SettingsDiskSourceTest.kt @@ -158,7 +158,8 @@ class SettingsDiskSourceTest { assertNull(settingsDiskSource.getBlockedAutofillUris(userId = userId)) assertNull(settingsDiskSource.getApprovePasswordlessLoginsEnabled(userId = userId)) assertNull(settingsDiskSource.getLastSyncTime(userId = userId)) - assertNull(settingsDiskSource.getScreenCaptureAllowed(userId = userId)) + // We don't actually clear this setting, so it's still here + assertEquals(true, settingsDiskSource.getScreenCaptureAllowed(userId = userId)) assertNull( settingsDiskSource.getAccountBiometricIntegrityValidity( userId = userId, diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/util/FakeSettingsDiskSource.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/util/FakeSettingsDiskSource.kt index ab23124c86..040516710f 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/util/FakeSettingsDiskSource.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/datasource/disk/util/FakeSettingsDiskSource.kt @@ -130,7 +130,6 @@ class FakeSettingsDiskSource : SettingsDiskSource { storedPullToRefreshEnabled.remove(userId) storedInlineAutofillEnabled.remove(userId) storedBlockedAutofillUris.remove(userId) - storedScreenCaptureAllowed.remove(userId) storedClearClipboardFrequency.remove(userId) mutableVaultTimeoutActionsFlowMap.remove(userId)