mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-12 05:29:57 +02:00
fix(android): unblock protected-core startup on Android
Use flock for profile locks, hash secret record filenames under NAME_MAX, and dismiss the starting overlay after the first init attempt. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -255,7 +255,7 @@ fun App(
|
||||
windowChrome?.invoke()
|
||||
val startingLabel = stringResource(Res.string.app_starting)
|
||||
AnimatedVisibility(
|
||||
visible = !sendCoreState.isInitialized,
|
||||
visible = !sendCoreState.isInitialized && !appState.startupSettled,
|
||||
enter = fadeIn(),
|
||||
exit = fadeOut(),
|
||||
) {
|
||||
|
||||
@@ -21,6 +21,8 @@ import kotlinx.coroutines.launch
|
||||
data class AppState(
|
||||
val destination: AppDestination = AppDestination.Send,
|
||||
val themeMode: ThemeMode = ThemeMode.System,
|
||||
/** True after the first core initialize attempt finishes (success or failure). */
|
||||
val startupSettled: Boolean = false,
|
||||
)
|
||||
|
||||
class AppGraphViewModel(dependencies: AppDependencies) : ViewModel() {
|
||||
@@ -46,6 +48,7 @@ class AppViewModel(
|
||||
viewModelScope.launch {
|
||||
val relaySettings = preferencesRepository.preferences.first().relaySettings
|
||||
repository.initialize(environment.defaultCoreDataDir, relaySettings).onFailure(messages::error)
|
||||
_state.update { it.copy(startupSettled = true) }
|
||||
}
|
||||
viewModelScope.launch {
|
||||
preferencesRepository.preferences.collect { preferences ->
|
||||
|
||||
@@ -80,6 +80,7 @@ class ViewModelsTest {
|
||||
val viewModel = AppViewModel(environment(), core, preferences(), UiMessageController())
|
||||
advanceUntilIdle()
|
||||
assertTrue(core.state.value.isInitialized)
|
||||
assertTrue(viewModel.state.value.startupSettled)
|
||||
assertEquals(listOf(RelaySettings()), core.initializedRelaySettings)
|
||||
viewModel.selectDestination(AppDestination.Settings)
|
||||
assertEquals(AppDestination.Settings, viewModel.state.value.destination)
|
||||
|
||||
Reference in New Issue
Block a user