Skip to content
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 71 files
+1 −1 core/common/src/commonMain/kotlin/com/wire/kalium/common/error/CoreFailureMappers.kt
+29 −4 core/cryptography/src/commonMain/kotlin/com/wire/kalium/cryptography/ProteusClientCoreCryptoImpl.kt
+111 −0 ...el/src/commonMain/kotlin/com/wire/kalium/network/api/authenticated/nomaddevice/NomadMessageEventsRequest.kt
+26 −0 ...work/src/commonMain/kotlin/com/wire/kalium/network/api/base/authenticated/nomaddevice/NomadDeviceSyncApi.kt
+48 −0 data/network/src/commonMain/kotlin/com/wire/kalium/network/api/v0/authenticated/NomadDeviceSyncApiV0.kt
+3 −0 ...ain/kotlin/com/wire/kalium/network/api/v0/authenticated/networkContainer/AuthenticatedNetworkContainerV0.kt
+3 −0 ...n/kotlin/com/wire/kalium/network/api/v10/authenticated/networkContainer/AuthenticatedNetworkContainerV10.kt
+3 −0 ...n/kotlin/com/wire/kalium/network/api/v11/authenticated/networkContainer/AuthenticatedNetworkContainerV11.kt
+3 −0 ...n/kotlin/com/wire/kalium/network/api/v12/authenticated/networkContainer/AuthenticatedNetworkContainerV12.kt
+3 −0 ...n/kotlin/com/wire/kalium/network/api/v13/authenticated/networkContainer/AuthenticatedNetworkContainerV13.kt
+3 −0 ...n/kotlin/com/wire/kalium/network/api/v14/authenticated/networkContainer/AuthenticatedNetworkContainerV14.kt
+3 −0 ...ain/kotlin/com/wire/kalium/network/api/v2/authenticated/networkContainer/AuthenticatedNetworkContainerV2.kt
+3 −0 ...ain/kotlin/com/wire/kalium/network/api/v3/authenticated/networkContainer/AuthenticatedNetworkContainerV3.kt
+3 −0 ...ain/kotlin/com/wire/kalium/network/api/v4/authenticated/networkContainer/AuthenticatedNetworkContainerV4.kt
+3 −0 ...ain/kotlin/com/wire/kalium/network/api/v5/authenticated/networkContainer/AuthenticatedNetworkContainerV5.kt
+3 −0 ...ain/kotlin/com/wire/kalium/network/api/v6/authenticated/networkContainer/AuthenticatedNetworkContainerV6.kt
+3 −0 ...ain/kotlin/com/wire/kalium/network/api/v7/authenticated/networkContainer/AuthenticatedNetworkContainerV7.kt
+3 −0 ...ain/kotlin/com/wire/kalium/network/api/v8/authenticated/networkContainer/AuthenticatedNetworkContainerV8.kt
+3 −0 ...ain/kotlin/com/wire/kalium/network/api/v9/authenticated/networkContainer/AuthenticatedNetworkContainerV9.kt
+3 −0 data/network/src/commonMain/kotlin/com/wire/kalium/network/networkContainer/AuthenticatedNetworkContainer.kt
+100 −0 data/network/src/commonTest/kotlin/com/wire/kalium/api/v0/nomaddevice/NomadDeviceSyncApiV0Test.kt
+142 −13 data/persistence/src/commonMain/db_user/com/wire/kalium/persistence/RemotebackupChangeLog.sq
+23 −0 data/persistence/src/commonMain/db_user/migrations/128.sqm
+4 −2 data/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/backup/ChangeLogEntry.kt
+24 −0 data/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/backup/ChangeLogSyncBatch.kt
+196 −0 data/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/backup/ChangeLogSyncEntry.kt
+26 −0 .../persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/backup/ConversationLastReadSyncEntity.kt
+14 −2 data/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/backup/RemoteBackupChangeLogDAO.kt
+33 −16 data/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/backup/RemoteBackupChangeLogDAOImpl.kt
+467 −0 data/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/backup/RemoteBackupChangeLogMapper.kt
+14 −0 data/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/reaction/ReactionsEntity.kt
+11 −0 data/persistence/src/commonMain/kotlin/com/wire/kalium/persistence/dao/receipt/DetailedReceiptEntity.kt
+81 −13 data/persistence/src/commonTest/kotlin/com/wire/kalium/persistence/dao/backup/RemoteBackupChangeLogDAOTest.kt
+32 −17 domain/messaging/hooks/src/commonMain/kotlin/com/wire/kalium/messaging/hooks/PersistMessageHook.kt
+7 −0 domain/nomaddevice/build.gradle.kts
+4 −0 domain/nomaddevice/src/commonMain/kotlin/com/wire/kalium/nomaddevice/NomadAuthenticatedNetworkAccess.kt
+2 −14 domain/nomaddevice/src/commonMain/kotlin/com/wire/kalium/nomaddevice/NomadLogger.kt
+64 −0 domain/nomaddevice/src/commonMain/kotlin/com/wire/kalium/nomaddevice/NomadPersistenceEventHookNotifier.kt
+219 −0 domain/nomaddevice/src/commonMain/kotlin/com/wire/kalium/nomaddevice/NomadRemoteBackupChangeLogCallback.kt
+74 −0 domain/nomaddevice/src/commonMain/kotlin/com/wire/kalium/nomaddevice/NomadRemoteBackupChangeLogHookNotifier.kt
+41 −0 domain/nomaddevice/src/commonMain/kotlin/com/wire/kalium/nomaddevice/NomadRemoteBackupChangeLogRepository.kt
+403 −0 ...nomaddevice/src/commonTest/kotlin/com/wire/kalium/nomaddevice/NomadRemoteBackupChangeLogHookNotifierTest.kt
+1 −1 gradle/libs.versions.toml
+1 −1 logic/src/androidMain/kotlin/com/wire/kalium/logic/CoreLogic.kt
+3 −3 logic/src/androidMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+3 −3 logic/src/androidMain/kotlin/com/wire/kalium/logic/feature/UserSessionScopeProviderImpl.kt
+1 −1 logic/src/appleMain/kotlin/com/wire/kalium/logic/CoreLogic.kt
+3 −3 logic/src/appleMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+3 −3 logic/src/appleMain/kotlin/com/wire/kalium/logic/feature/UserSessionScopeProviderImpl.kt
+11 −11 logic/src/commonMain/kotlin/com/wire/kalium/logic/CoreLogicCommon.kt
+3 −3 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/PersistMessageUseCase.kt
+11 −2 logic/src/commonMain/kotlin/com/wire/kalium/logic/data/message/PersistReactionUseCase.kt
+21 −9 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+1 −1 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/UserSessionScopeProvider.kt
+0 −58 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/MessageHookRegistry.kt
+3 −3 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/MessageScope.kt
+90 −0 logic/src/commonMain/kotlin/com/wire/kalium/logic/feature/message/PersistenceEventHookRegistry.kt
+10 −1 ...c/src/commonMain/kotlin/com/wire/kalium/logic/sync/receiver/conversation/DeletedConversationEventHandler.kt
+7 −0 logic/src/commonMain/kotlin/com/wire/kalium/logic/sync/receiver/handler/ClearConversationContentHandler.kt
+10 −3 logic/src/commonMain/kotlin/com/wire/kalium/logic/sync/receiver/handler/DeleteMessageHandler.kt
+11 −0 logic/src/commonMain/kotlin/com/wire/kalium/logic/sync/receiver/handler/ReceiptMessageHandler.kt
+3 −3 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/message/PersistMessageUseCaseTest.kt
+77 −4 logic/src/commonTest/kotlin/com/wire/kalium/logic/data/message/PersistReactionUseCaseTest.kt
+44 −2 ...c/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/conversation/ClearConversationContentHandlerTest.kt
+80 −2 ...c/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/conversation/DeletedConversationEventHandlerTest.kt
+87 −2 ...src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/conversation/message/ReceiptMessageHandlerTest.kt
+81 −4 logic/src/commonTest/kotlin/com/wire/kalium/logic/sync/receiver/handler/DeleteMessageHandlerTest.kt
+1 −1 logic/src/jvmMain/kotlin/com/wire/kalium/logic/CoreLogic.kt
+3 −3 logic/src/jvmMain/kotlin/com/wire/kalium/logic/feature/UserSessionScope.kt
+3 −3 logic/src/jvmMain/kotlin/com/wire/kalium/logic/feature/UserSessionScopeProviderImpl.kt
+112 −0 tools/protobuf-codegen/src/main/proto/nomad_device_sync.proto
Loading