00d727da4137
test: Pin secure secret surfaces (v2.3.53)
- time
- 2026-06-26 14:24 UTC · 4 months ago
- machine
- koh2
- parent
- cfd8359d1612
↓ peach-android-00d727da.tar.gzatlas at this save
files changed3 files
app/build.gradle+2 −2app/src/main/java/com/peachpasswords/ui/vault/EntryEditScreen.kt+2 −0app/src/test/java/com/peachpasswords/security/SecureFlagCoverageTest.kt+28 −0app/build.gradle+2 −2
@@ -16,8 +16,8 @@1616 applicationId "com.peachpasswords"1717 minSdk 261818 targetSdk 3519- versionCode 23520020- versionName "2.3.52"19+ versionCode 23530020+ versionName "2.3.53"2121 2222 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"2323 vectorDrawables {app/src/main/java/com/peachpasswords/ui/vault/EntryEditScreen.kt+2 −0
@@ -45,6 +45,7 @@4545 import androidx.compose.runtime.collectAsState4646 import androidx.hilt.navigation.compose.hiltViewModel4747 import com.peachpasswords.ui.components.CopyButton48+import com.peachpasswords.ui.components.SecureFlagEffect4849 import com.peachpasswords.ui.theme.LocalPeachAccent4950 import com.peachpasswords.ui.theme.peachColors5051 import com.peachpasswords.ui.theme.PeachMotion@@ -59,6 +60,7 @@5960 onOpenNote: (String) -> Unit = {},6061 vm: EntryEditViewModel = hiltViewModel(),6162 ) {63+ SecureFlagEffect()6264 val f by vm.form.collectAsState()6365 val usernameSuggestions by vm.usernameSuggestions.collectAsState()6466 val emailSuggestions by vm.emailSuggestions.collectAsState()app/src/test/java/com/peachpasswords/security/SecureFlagCoverageTest.kt+28 −0
@@ -0,0 +1,28 @@1+package com.peachpasswords.security2+3+import java.io.File4+import org.junit.Assert.assertTrue5+import org.junit.Test6+7+class SecureFlagCoverageTest {8+ @Test fun secret_surfaces_keep_flag_secure_coverage() {9+ val protectedScreens = listOf(10+ "app/src/main/java/com/peachpasswords/ui/vault/EntryDetailScreen.kt",11+ "app/src/main/java/com/peachpasswords/ui/vault/EntryEditScreen.kt",12+ "app/src/main/java/com/peachpasswords/ui/vault/NotesModeScreen.kt",13+ "app/src/main/java/com/peachpasswords/ui/vault/ExportScreen.kt",14+ "app/src/main/java/com/peachpasswords/ui/vault/RecoveryWordsScreen.kt",15+ "app/src/main/java/com/peachpasswords/ui/recovery/RecoveryWordEntryScreen.kt",16+ "app/src/main/java/com/peachpasswords/ui/codex/CodexGenerateScreen.kt",17+ )18+19+ protectedScreens.forEach { relativePath ->20+ val file = File(relativePath).takeIf { it.exists() } ?: File("../$relativePath")21+ val source = file.readText()22+ assertTrue(23+ "$relativePath must protect screenshots while visible",24+ source.contains("SecureFlagEffect()") || source.contains("WindowManager.LayoutParams.FLAG_SECURE"),25+ )26+ }27+ }28+}