mirror of
https://github.com/wgtunnel/android.git
synced 2026-06-02 00:29:08 +02:00
fix: android tv hide kernel mode, ping toggle, import sheet
closes #1008 #1008
This commit is contained in:
+4
-3
@@ -1,11 +1,12 @@
|
||||
package com.zaneschepke.wireguardautotunnel.domain.events
|
||||
|
||||
import androidx.annotation.Keep
|
||||
import com.zaneschepke.wireguardautotunnel.domain.model.TunnelConfig
|
||||
|
||||
sealed class AutoTunnelEvent {
|
||||
data class Start(val tunnelConfig: TunnelConfig? = null) : AutoTunnelEvent()
|
||||
@Keep data class Start(val tunnelConfig: TunnelConfig? = null) : AutoTunnelEvent()
|
||||
|
||||
data object Stop : AutoTunnelEvent()
|
||||
@Keep data object Stop : AutoTunnelEvent()
|
||||
|
||||
data object DoNothing : AutoTunnelEvent()
|
||||
@Keep data object DoNothing : AutoTunnelEvent()
|
||||
}
|
||||
|
||||
+4
@@ -14,6 +14,7 @@ import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.zaneschepke.wireguardautotunnel.R
|
||||
import com.zaneschepke.wireguardautotunnel.ui.LocalIsAndroidTV
|
||||
|
||||
@Composable
|
||||
fun SheetOption(
|
||||
@@ -50,9 +51,12 @@ fun SheetOption(
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun CustomBottomSheet(options: List<SheetOption>, onDismiss: () -> Unit) {
|
||||
val isTv = LocalIsAndroidTV.current
|
||||
val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = isTv)
|
||||
ModalBottomSheet(
|
||||
containerColor = MaterialTheme.colorScheme.surface,
|
||||
onDismissRequest = onDismiss,
|
||||
sheetState = sheetState,
|
||||
) {
|
||||
options.forEachIndexed { index, option ->
|
||||
SheetOption(option.label, option.leadingIcon, option.onClick, option.selected)
|
||||
|
||||
+2
-1
@@ -212,11 +212,12 @@ fun SettingsScreen(viewModel: SettingsViewModel = hiltViewModel()) {
|
||||
)
|
||||
}
|
||||
} else null,
|
||||
trailing = {
|
||||
trailing = { modifier ->
|
||||
SwitchWithDivider(
|
||||
checked = uiState.monitoring.isPingEnabled,
|
||||
onClick = { viewModel.setPingEnabled(it) },
|
||||
enabled = !sharedUiState.proxyEnabled,
|
||||
modifier = modifier,
|
||||
)
|
||||
},
|
||||
onClick = { navController.push(Route.TunnelMonitoring) },
|
||||
|
||||
+17
-12
@@ -3,6 +3,7 @@ package com.zaneschepke.wireguardautotunnel.ui.screens.settings.proxy.compoents
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import com.zaneschepke.wireguardautotunnel.data.model.AppMode
|
||||
import com.zaneschepke.wireguardautotunnel.ui.LocalIsAndroidTV
|
||||
import com.zaneschepke.wireguardautotunnel.ui.common.sheet.CustomBottomSheet
|
||||
import com.zaneschepke.wireguardautotunnel.ui.common.sheet.SheetOption
|
||||
import com.zaneschepke.wireguardautotunnel.util.extensions.asIcon
|
||||
@@ -15,19 +16,23 @@ fun AppModeBottomSheet(
|
||||
onDismiss: () -> Unit,
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
val isTv = LocalIsAndroidTV.current
|
||||
|
||||
CustomBottomSheet(
|
||||
enumValues<AppMode>().map {
|
||||
val icon = it.asIcon()
|
||||
SheetOption(
|
||||
icon,
|
||||
label = it.asTitleString(context),
|
||||
onClick = {
|
||||
onDismiss()
|
||||
onAppModeChange(it)
|
||||
},
|
||||
selected = appMode == it,
|
||||
)
|
||||
}
|
||||
enumValues<AppMode>()
|
||||
.filterNot { isTv && it == AppMode.KERNEL }
|
||||
.map {
|
||||
val icon = it.asIcon()
|
||||
SheetOption(
|
||||
icon,
|
||||
label = it.asTitleString(context),
|
||||
onClick = {
|
||||
onDismiss()
|
||||
onAppModeChange(it)
|
||||
},
|
||||
selected = appMode == it,
|
||||
)
|
||||
}
|
||||
) {
|
||||
onDismiss()
|
||||
}
|
||||
|
||||
+1
-1
@@ -419,7 +419,7 @@ class AndroidNetworkMonitor(
|
||||
cellularConnected = cellularConnected,
|
||||
ethernetConnected = ethernetConnected,
|
||||
)
|
||||
.also { Timber.d("Connectivity Status: $it") }
|
||||
.also { Timber.i("Connectivity Status: $it") }
|
||||
}
|
||||
.scan(
|
||||
ConnectivityState(
|
||||
|
||||
@@ -16,7 +16,10 @@ data class WifiState(
|
||||
val securityType: WifiSecurityType? = null,
|
||||
val locationPermissionsGranted: Boolean,
|
||||
val locationServicesEnabled: Boolean,
|
||||
)
|
||||
) {
|
||||
override fun toString(): String =
|
||||
"connected=$connected, ssid=${if(ssid == AndroidNetworkMonitor.ANDROID_UNKNOWN_SSID || ssid == null) ssid else ssid.first() + "..."} securityType=$securityType, locationPermissionsGranted=$locationPermissionsGranted"
|
||||
}
|
||||
|
||||
data class Permissions(
|
||||
val locationServicesEnabled: Boolean = false,
|
||||
|
||||
Reference in New Issue
Block a user