fix: add check if kernel supports WG (#993)

This commit is contained in:
Patryk
2025-12-18 16:25:31 +01:00
committed by GitHub
parent 5310cf17e6
commit 05b950fbb3
5 changed files with 24 additions and 1 deletions
@@ -3,7 +3,7 @@ package com.zaneschepke.wireguardautotunnel.viewmodel
import android.net.Uri
import androidx.core.net.toUri
import androidx.lifecycle.ViewModel
import com.zaneschepke.wireguardautotunnel.R
import com.wireguard.android.backend.WgQuickBackend
import com.zaneschepke.wireguardautotunnel.core.service.ServiceManager
import com.zaneschepke.wireguardautotunnel.core.tunnel.TunnelManager
import com.zaneschepke.wireguardautotunnel.data.model.AppMode
@@ -34,6 +34,7 @@ import kotlinx.coroutines.flow.map
import org.amnezia.awg.config.BadConfigException
import org.orbitmvi.orbit.ContainerHost
import org.orbitmvi.orbit.viewmodel.container
import timber.log.Timber
import xyz.teamgravity.pin_lock_compose.PinManager
@HiltViewModel
@@ -164,6 +165,19 @@ constructor(
else StringValue.StringResource(R.string.root_accepted)
postSideEffect(GlobalSideEffect.Snackbar(message))
if (!accepted) return@intent
if (WgQuickBackend.hasKernelSupport())
Timber.i("Device supports kernel backend. WireGuard module is built in, switching to kernel backend.")
else {
Timber.e("Device does not support kernel backend!")
intent {
postSideEffect(
GlobalSideEffect.Snackbar(
StringValue.StringResource(R.string.kernel_wireguard_unsupported)
)
)
}
return@intent
}
}
}
settingsRepository.upsert(state.settings.copy(appMode = appMode))