Skip to content

Commit 3c8d214

Browse files
committed
fix app
1 parent 1576bcb commit 3c8d214

File tree

17 files changed

+1148
-525
lines changed

17 files changed

+1148
-525
lines changed

app/build.gradle.kts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ plugins {
77
alias(libs.plugins.kotlin.compose)
88
alias(libs.plugins.hilt)
99
id("kotlin-kapt")
10+
alias(libs.plugins.kotlin.serialization) version "2.0.21"
1011
}
1112

1213
android {
@@ -17,8 +18,8 @@ android {
1718
applicationId = "com.pira.gnetp"
1819
minSdk = 23
1920
targetSdk = 36
20-
versionCode = 4
21-
versionName = "1.0.3"
21+
versionCode = 5
22+
versionName = "1.0.4"
2223

2324
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2425
}
@@ -99,6 +100,16 @@ dependencies {
99100
implementation(libs.hilt.android)
100101
implementation(libs.androidx.hilt.navigation.compose)
101102
implementation(libs.coil.compose)
103+
104+
// Ktor
105+
implementation(libs.ktor.client.core)
106+
implementation(libs.ktor.client.cio)
107+
implementation(libs.ktor.client.content.negotiation)
108+
implementation(libs.ktor.serialization.kotlinx.json)
109+
110+
// Kotlinx Serialization
111+
implementation(libs.kotlinx.serialization.json)
112+
102113
kapt(libs.hilt.android.compiler)
103114
testImplementation(libs.junit)
104115
androidTestImplementation(libs.androidx.junit)

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
1212
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
1313
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
14+
<uses-permission android:name="android.permission.VIBRATE" />
1415

1516
<application
1617
android:name=".GNetApplication"

app/src/main/java/com/pira/gnetp/MainActivity.kt

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.fillMaxSize
99
import androidx.compose.foundation.layout.padding
1010
import androidx.compose.material.icons.Icons
1111
import androidx.compose.material.icons.automirrored.filled.List
12+
import androidx.compose.material.icons.filled.FormatColorFill
1213
import androidx.compose.material.icons.filled.Home
1314
import androidx.compose.material.icons.filled.Info
1415
import androidx.compose.material.icons.filled.Settings
@@ -43,6 +44,8 @@ import com.pira.gnetp.ui.home.HomeViewModel
4344
import com.pira.gnetp.ui.hotspot.HotspotScreen
4445
import com.pira.gnetp.ui.logs.LogsScreen
4546
import com.pira.gnetp.ui.settings.SettingsScreen
47+
import com.pira.gnetp.ui.settings.ThemeSettingsScreen
48+
import com.pira.gnetp.ui.settings.ProxySettingsScreen
4649
import com.pira.gnetp.ui.theme.GNetTheme
4750
import com.pira.gnetp.ui.theme.ThemeManager
4851
import com.pira.gnetp.ui.theme.ThemeSettings
@@ -104,11 +107,14 @@ fun MainNavHost(
104107
val navBackStackEntry by navController.currentBackStackEntryAsState()
105108
val currentDestination = navBackStackEntry?.destination
106109
val isAboutScreen = currentDestination?.route == Screen.About.route
110+
val isProxySettingsScreen = currentDestination?.route == Screen.ProxySettings.route
111+
val isThemeSettingsScreen = currentDestination?.route == Screen.ThemeSettings.route
112+
val shouldHideBottomBar = isAboutScreen || isProxySettingsScreen || isThemeSettingsScreen
107113

108114
Scaffold(
109115
topBar = {},
110116
bottomBar = {
111-
if (!isAboutScreen) {
117+
if (!shouldHideBottomBar) {
112118
BottomNavigationBar(navController)
113119
}
114120
}
@@ -121,8 +127,8 @@ fun MainNavHost(
121127
composable(Screen.Home.route) {
122128
HomeScreen(
123129
uiState = homeUiState,
124-
onStartProxy = { homeViewModel.startProxy() },
125-
onStopProxy = { homeViewModel.stopProxy() },
130+
onStartBothProxies = { homeViewModel.startBothProxies() },
131+
onStopBothProxies = { homeViewModel.stopBothProxies() },
126132
onNavigateToSettings = { navController.navigate(Screen.Settings.route) },
127133
onNavigateToHotspot = { navController.navigate(Screen.Hotspot.route) },
128134
onNavigateToLogs = { navController.navigate(Screen.Logs.route) },
@@ -135,6 +141,8 @@ fun MainNavHost(
135141
SettingsScreen(
136142
onNavigateBack = { navController.popBackStack() },
137143
onNavigateToAbout = { navController.navigate(Screen.About.route) },
144+
onNavigateToProxySettings = { navController.navigate(Screen.ProxySettings.route) },
145+
onNavigateToThemeSettings = { navController.navigate(Screen.ThemeSettings.route) },
138146
onThemeSettingsChanged = onThemeSettingsChanged
139147
)
140148
}
@@ -158,6 +166,19 @@ fun MainNavHost(
158166
onNavigateBack = { navController.popBackStack() }
159167
)
160168
}
169+
170+
composable(Screen.ProxySettings.route) {
171+
ProxySettingsScreen(
172+
onNavigateBack = { navController.popBackStack() }
173+
)
174+
}
175+
176+
composable(Screen.ThemeSettings.route) {
177+
ThemeSettingsScreen(
178+
onNavigateBack = { navController.popBackStack() },
179+
onThemeSettingsChanged = onThemeSettingsChanged
180+
)
181+
}
161182
}
162183
}
163184
}
@@ -185,6 +206,8 @@ fun BottomNavigationBar(navController: NavHostController) {
185206
Screen.Hotspot -> Icons.Default.Info
186207
Screen.Logs -> Icons.AutoMirrored.Filled.List
187208
Screen.About -> Icons.Default.Info
209+
Screen.ProxySettings -> Icons.Default.Settings
210+
Screen.ThemeSettings -> Icons.Default.FormatColorFill
188211
},
189212
contentDescription = null
190213
)

app/src/main/java/com/pira/gnetp/data/ProxyConfig.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package com.pira.gnetp.data
22

33
data class ProxyConfig(
4-
val proxyType: ProxyType = ProxyType.HTTP,
5-
val port: Int = 8080,
6-
val isActive: Boolean = false
4+
val httpPort: Int = 8080,
5+
val socks5Port: Int = 1080,
6+
val isHttpEnabled: Boolean = true,
7+
val isSocks5Enabled: Boolean = true,
8+
val isHttpActive: Boolean = false,
9+
val isSocks5Active: Boolean = false
710
)
811

912
enum class ProxyType {

app/src/main/java/com/pira/gnetp/navigation/Screen.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,7 @@ sealed class Screen(val route: String, @StringRes val resourceId: Int) {
88
object Hotspot : Screen("hotspot", R.string.hotspot)
99
object Logs : Screen("logs", R.string.logs)
1010
object Settings : Screen("settings", R.string.settings)
11+
object ThemeSettings : Screen("theme_settings", R.string.theme_settings)
12+
object ProxySettings : Screen("proxy_settings", R.string.proxy_settings)
1113
object About : Screen("about", R.string.about)
1214
}

0 commit comments

Comments
 (0)