Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.hilt.navigation.compose.hiltViewModel
Expand All @@ -48,7 +47,6 @@ fun NetworkSettingsScreen(
onBackPressed = navigator::navigateBack,
isWebSocketEnabled = networkSettingsViewModel.networkSettingsState.isPersistentWebSocketConnectionEnabled,
isEnforcedByMDM = networkSettingsViewModel.networkSettingsState.isEnforcedByMDM,
isWebSocketEnforcedByDefault = networkSettingsViewModel.networkSettingsState.isWebSocketEnforcedByDefault,
setWebSocketState = { networkSettingsViewModel.setWebSocketState(it) },
)
}
Expand All @@ -58,7 +56,6 @@ fun NetworkSettingsScreenContent(
onBackPressed: () -> Unit,
isWebSocketEnabled: Boolean,
isEnforcedByMDM: Boolean,
isWebSocketEnforcedByDefault: Boolean,
setWebSocketState: (Boolean) -> Unit,
modifier: Modifier = Modifier
) {
Expand All @@ -77,15 +74,12 @@ fun NetworkSettingsScreenContent(
.fillMaxSize()
.padding(internalPadding)
) {
val switchState = remember(isWebSocketEnabled, isEnforcedByMDM, isWebSocketEnforcedByDefault) {
when {
isEnforcedByMDM -> SwitchState.TextOnly(true)
isWebSocketEnforcedByDefault -> SwitchState.TextOnly(true)
else -> SwitchState.Enabled(
value = isWebSocketEnabled,
onCheckedChange = setWebSocketState
)
}
val switchState = when {
isEnforcedByMDM -> SwitchState.TextOnly(true)
else -> SwitchState.Enabled(
value = isWebSocketEnabled,
onCheckedChange = setWebSocketState
)
}

val subtitle = if (isEnforcedByMDM) {
Expand All @@ -111,7 +105,6 @@ fun PreviewNetworkSettingsScreenWebSocketEnabled() = WireTheme {
onBackPressed = {},
isWebSocketEnabled = true,
isEnforcedByMDM = false,
isWebSocketEnforcedByDefault = false,
setWebSocketState = {},
)
}
Expand All @@ -123,7 +116,6 @@ fun PreviewNetworkSettingsScreenWebSocketDisabled() = WireTheme {
onBackPressed = {},
isWebSocketEnabled = false,
isEnforcedByMDM = false,
isWebSocketEnforcedByDefault = false,
setWebSocketState = {},
)
}
Expand All @@ -135,7 +127,6 @@ fun PreviewNetworkSettingsScreenEnforcedByMDM() = WireTheme {
onBackPressed = {},
isWebSocketEnabled = true,
isEnforcedByMDM = true,
isWebSocketEnforcedByDefault = false,
setWebSocketState = {},
)
}
Expand All @@ -147,7 +138,6 @@ fun PreviewNetworkSettingsScreenEnforcedByDefault() = WireTheme {
onBackPressed = {},
isWebSocketEnabled = true,
isEnforcedByMDM = false,
isWebSocketEnforcedByDefault = true,
setWebSocketState = {},
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,4 @@ package com.wire.android.ui.home.settings.appsettings.networkSettings
data class NetworkSettingsState(
val isPersistentWebSocketConnectionEnabled: Boolean = false,
val isEnforcedByMDM: Boolean = false,
val isWebSocketEnforcedByDefault: Boolean = false
)
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,18 @@

package com.wire.android.ui.home.settings.appsettings.networkSettings

import android.content.Context
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.wire.android.appLogger
import com.wire.android.emm.ManagedConfigurationsManager
import com.wire.android.util.isWebsocketEnabledByDefault
import com.wire.kalium.logic.feature.session.CurrentSessionResult
import com.wire.kalium.logic.feature.session.CurrentSessionUseCase
import com.wire.kalium.logic.feature.user.webSocketStatus.ObservePersistentWebSocketConnectionStatusUseCase
import com.wire.kalium.logic.feature.user.webSocketStatus.PersistPersistentWebSocketConnectionStatusUseCase
import dagger.hilt.android.lifecycle.HiltViewModel
import dagger.hilt.android.qualifiers.ApplicationContext
import kotlinx.coroutines.launch
import javax.inject.Inject

Expand All @@ -43,22 +40,14 @@ class NetworkSettingsViewModel
private val observePersistentWebSocketConnectionStatus: ObservePersistentWebSocketConnectionStatusUseCase,
private val currentSession: CurrentSessionUseCase,
private val managedConfigurationsManager: ManagedConfigurationsManager,
@ApplicationContext private val context: Context
) : ViewModel() {
var networkSettingsState by mutableStateOf(NetworkSettingsState())

init {
checkWebSocketEnforcedByDefault()
observePersistentWebSocketConnection()
observeMDMEnforcement()
}

private fun checkWebSocketEnforcedByDefault() {
networkSettingsState = networkSettingsState.copy(
isWebSocketEnforcedByDefault = isWebsocketEnabledByDefault(context)
)
}

private fun observeMDMEnforcement() {
viewModelScope.launch {
managedConfigurationsManager.persistentWebSocketEnforcedByMDM.collect { isEnforced ->
Expand Down
2 changes: 1 addition & 1 deletion kalium
Submodule kalium updated 64 files
+1 −1 .github/workflows/publish-testservice.yml
+11 −1 CLAUDE.md
+28 −0 README.md
+81 −0 buildSrc/src/main/kotlin/ProjectExtensions.kt
+7 −0 data/persistence/src/commonMain/db_global/com/wire/kalium/persistence/ServerConfiguration.sq
+4 −0 data/persistence/src/commonMain/db_global/migrations/8.sqm
+17 −2 data/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/daokaliumdb/ServerConfigurationDAO.kt
+128 −0 ...tence/src/jvmTest/kotlin/com/wire/kalium/persistence/daokaliumdb/ServerConfigurationDAONativePushJvmTest.kt
+27 −2 domain/messaging/hooks/build.gradle.kts
+8 −41 domain/messaging/hooks/src/commonMain/kotlin/com/wire/kalium/messaging/hooks/PersistMessageHook.kt
+3 −0 domain/nomaddevice/build.gradle.kts
+35 −0 domain/nomaddevice/src/commonMain/kotlin/com/wire/kalium/nomaddevice/NomadAuthenticatedNetworkAccess.kt
+35 −0 domain/nomaddevice/src/commonMain/kotlin/com/wire/kalium/nomaddevice/NomadPersistMessageHookNotifier.kt
+85 −0 domain/usernetwork/build.gradle.kts
+57 −0 domain/usernetwork/src/commonMain/kotlin/com/wire/kalium/usernetwork/di/UserAuthenticatedNetworkProvider.kt
+157 −0 domain/usernetwork/src/jvmTest/kotlin/com/wire/kalium/usernetwork/di/UserAuthenticatedNetworkProviderTest.kt
+101 −0 domain/userstorage/build.gradle.kts
+6 −5 domain/userstorage/src/androidMain/kotlin/com/wire/kalium/userstorage/di/PlatformUserStorageProperties.kt
+5 −5 domain/userstorage/src/androidMain/kotlin/com/wire/kalium/userstorage/di/PlatformUserStorageProvider.kt
+4 −4 domain/userstorage/src/appleMain/kotlin/com/wire/kalium/userstorage/di/PlatformUserStorageProperties.kt
+4 −4 domain/userstorage/src/appleMain/kotlin/com/wire/kalium/userstorage/di/PlatformUserStorageProvider.kt
+2 −2 domain/userstorage/src/commonMain/kotlin/com/wire/kalium/userstorage/di/PlatformUserStorageProvider.kt
+28 −9 domain/userstorage/src/commonMain/kotlin/com/wire/kalium/userstorage/di/UserStorageProvider.kt
+7 −7 domain/userstorage/src/jvmMain/kotlin/com/wire/kalium/userstorage/di/PlatformUserStorageProperties.kt
+4 −4 domain/userstorage/src/jvmMain/kotlin/com/wire/kalium/userstorage/di/PlatformUserStorageProvider.kt
+157 −0 domain/userstorage/src/jvmTest/kotlin/com/wire/kalium/userstorage/di/UserStorageProviderTest.kt
+9 −0 gradle.properties
+3 −0 logic/build.gradle.kts
+6 −1 logic/src/androidMain/kotlin/com/wire/kalium/logic/CoreLogic.kt
+1 −0 logic/src/androidMain/kotlin/com/wire/kalium/logic/di/UserConfigStorageFactory.kt
+12 −3 logic/src/androidMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+15 −2 logic/src/androidMain/kotlin/com/wire/kalium/logic/feature/UserSessionScopeProviderImpl.kt
+5 −0 logic/src/appleMain/kotlin/com/wire/kalium/logic/CoreLogic.kt
+1 −0 logic/src/appleMain/kotlin/com/wire/kalium/logic/di/UserConfigStorageFactory.kt
+8 −2 logic/src/appleMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+17 −4 logic/src/appleMain/kotlin/com/wire/kalium/logic/feature/UserSessionScopeProviderImpl.kt
+24 −2 logic/src/commonMain/kotlin/com/wire/kalium/logic/CoreLogicCommon.kt
+8 −2 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/PersistMessageUseCase.kt
+1 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/notification/PushTokenRepository.kt
+12 −0 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/session/SessionRepository.kt
+1 −0 logic/src/commonMain/kotlin/com/wire/kalium/logic/di/UserConfigStorageFactory.kt
+35 −28 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+4 −2 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScopeProvider.kt
+1 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/auth/ClearUserDataUseCase.kt
+1 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/backup/BackupScope.kt
+1 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/ConversationScope.kt
+23 −0 ...src/commonMain/kotlin/com/wire/kalium/logic/feature/conversation/UpdateConversationArchivedStatusUseCase.kt
+1 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/debug/ChangeProfilingUseCase.kt
+1 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/debug/DebugScope.kt
+1 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/debug/ObserveDatabaseLoggerStateUseCase.kt
+58 −0 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/MessageHookRegistry.kt
+8 −3 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/MessageScope.kt
+53 −0 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/notificationToken/PushTokenUpdater.kt
+0 −73 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/message/PersistMessageCallbackManagerTest.kt
+14 −12 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/message/PersistMessageUseCaseTest.kt
+59 −51 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/session/SessionRepositoryTest.kt
+44 −0 ...commonTest/kotlin/com/wire/kalium/logic/feature/conversation/UpdateConversationArchivedStatusUseCaseTest.kt
+118 −40 logic/src/commonTest/kotlin/com/wire/kalium/logic/feature/notificationToken/PushTokenUpdaterTest.kt
+1 −0 logic/src/jsMain/kotlin/com.wire.kalium.logic/di/UserConfigStorageFactory.kt
+5 −0 logic/src/jvmMain/kotlin/com/wire/kalium/logic/CoreLogic.kt
+1 −0 logic/src/jvmMain/kotlin/com/wire/kalium/logic/di/UserConfigStorageFactory.kt
+8 −2 logic/src/jvmMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+17 −4 logic/src/jvmMain/kotlin/com/wire/kalium/logic/feature/UserSessionScopeProviderImpl.kt
+2 −1 tools/testservice/Dockerfile
Loading