Compare commits

..

5 Commits

Author SHA1 Message Date
dependabot[bot] e15a7c5627 build(deps): bump androidGradlePlugin from 8.6.0-rc01 to 8.7.0-alpha06
Bumps `androidGradlePlugin` from 8.6.0-rc01 to 8.7.0-alpha06.

Updates `com.android.application` from 8.6.0-rc01 to 8.7.0-alpha06

Updates `com.android.library` from 8.6.0-rc01 to 8.7.0-alpha06

---
updated-dependencies:
- dependency-name: com.android.application
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: com.android.library
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 13:35:03 +00:00
Zane Schepke 1af474c449 bump version code 2024-08-13 17:07:30 -04:00
Zane Schepke 7e3405f3fd fix: location disclosure missing 2024-08-13 16:55:14 -04:00
Zane Schepke ffeb089aa7 Merge branch 'main' of https://github.com/zaneschepke/wgtunnel 2024-08-11 00:32:39 -04:00
Zane Schepke 3838c32ddf remove duplicate language 2024-08-11 00:32:08 -04:00
9 changed files with 60 additions and 85 deletions
@@ -269,17 +269,19 @@ fun SettingsScreen(
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
checkFineLocationGranted()
}
if(!uiState.isLocationDisclosureShown) {
BackgroundLocationDisclosure(
onDismiss = { viewModel.setLocationDisclosureShown() },
onAttest = {
context.launchAppSettings()
viewModel.setLocationDisclosureShown()
},
scrollState,
focusRequester,
)
return
}
BackgroundLocationDisclosure(
!uiState.isLocationDisclosureShown,
onDismiss = { viewModel.setLocationDisclosureShown() },
onAttest = {
context.launchAppSettings()
viewModel.setLocationDisclosureShown()
},
scrollState,
focusRequester,
)
BackgroundLocationDialog(
showLocationDialog,
@@ -29,67 +29,64 @@ import com.zaneschepke.wireguardautotunnel.util.extensions.isRunningOnTv
@Composable
fun BackgroundLocationDisclosure(
show: Boolean,
onDismiss: () -> Unit,
onAttest: () -> Unit,
scrollState: ScrollState,
focusRequester: FocusRequester,
) {
val context = LocalContext.current
if (show) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Top,
Column(
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Top,
modifier =
Modifier
.fillMaxSize()
.verticalScroll(scrollState),
) {
Icon(
Icons.Rounded.LocationOff,
contentDescription = stringResource(id = R.string.map),
modifier =
Modifier
.fillMaxSize()
.verticalScroll(scrollState),
) {
Icon(
Icons.Rounded.LocationOff,
contentDescription = stringResource(id = R.string.map),
modifier =
.padding(30.dp)
.size(128.dp),
)
Text(
stringResource(R.string.prominent_background_location_title),
textAlign = TextAlign.Center,
modifier = Modifier.padding(30.dp),
fontSize = 20.sp,
)
Text(
stringResource(R.string.prominent_background_location_message),
textAlign = TextAlign.Center,
modifier = Modifier.padding(30.dp),
fontSize = 15.sp,
)
Row(
modifier =
if (context.isRunningOnTv()) {
Modifier
.fillMaxWidth()
.padding(10.dp)
} else {
Modifier
.fillMaxWidth()
.padding(30.dp)
.size(128.dp),
)
Text(
stringResource(R.string.prominent_background_location_title),
textAlign = TextAlign.Center,
modifier = Modifier.padding(30.dp),
fontSize = 20.sp,
)
Text(
stringResource(R.string.prominent_background_location_message),
textAlign = TextAlign.Center,
modifier = Modifier.padding(30.dp),
fontSize = 15.sp,
)
Row(
modifier =
if (context.isRunningOnTv()) {
Modifier
.fillMaxWidth()
.padding(10.dp)
} else {
Modifier
.fillMaxWidth()
.padding(30.dp)
},
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceEvenly,
) {
TextButton(onClick = { onDismiss() }) {
Text(stringResource(id = R.string.no_thanks))
}
TextButton(
modifier = Modifier.focusRequester(focusRequester),
onClick = {
onAttest()
},
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceEvenly,
) {
TextButton(onClick = { onDismiss() }) {
Text(stringResource(id = R.string.no_thanks))
}
TextButton(
modifier = Modifier.focusRequester(focusRequester),
onClick = {
onAttest()
},
) {
Text(stringResource(id = R.string.turn_on))
}
Text(stringResource(id = R.string.turn_on))
}
}
}
+1 -1
View File
@@ -1,7 +1,7 @@
object Constants {
const val VERSION_NAME = "3.5.0"
const val JVM_TARGET = "17"
const val VERSION_CODE = 35000
const val VERSION_CODE = 35001
const val TARGET_SDK = 34
const val MIN_SDK = 26
const val APP_ID = "com.zaneschepke.wireguardautotunnel"
@@ -1,3 +0,0 @@
Melhorias:
- Corrige o bug de permissões do Android 9
- Outras otimizações
@@ -1,5 +0,0 @@
Melhorias:
- Adicionada estatísticas do túnel na tela principal
- Melhoria de navegação de configurações na tela do AndroidTV
- Removida a vibração nas notificações
- Outras correções de bugs
@@ -1,14 +0,0 @@
Recursos
- Adiciona túneis por arquivos .conf, zip, manualmente ou por código QR
- Auto connecta à VPN baseado no nome (SSID) do Wi-Fi, ethernet ou dados móveis
- Túnel dividido por aplicativo com busca
- Suporte à WireGuard em modo kernel ou usuário
- Suporte à Amnezia em modo usuário para proteção contra censura e DPI (Inspeção Profunda de Pacote)
- Suporte à VPN sempre ligada
- Exportação de túneis Amnezia e WireGuard em arquivos zip
- Suporte à quick tile para ligar e desligar a VPN
- Atalhos para o túnel principal para integração com automações
- Intent automation para todos os túneis
- Início automático depois de reiniciar o aparelho
- Medidas para economia de bateria
@@ -1 +0,0 @@
Um cliente de VPN alternativo para WireGuard com recursos adicionais
-1
View File
@@ -1 +0,0 @@
WG Tunnel
+1 -1
View File
@@ -22,7 +22,7 @@ pinLockCompose = "1.0.3"
roomVersion = "2.6.1"
timber = "5.0.1"
tunnel = "1.2.1"
androidGradlePlugin = "8.6.0-rc01"
androidGradlePlugin = "8.7.0-alpha06"
kotlin = "2.0.10"
ksp = "2.0.10-1.0.24"
composeBom = "2024.06.00"