diff --git a/mobile/src/main/AndroidManifest.xml b/mobile/src/main/AndroidManifest.xml index ac1f33ba..b1c09697 100644 --- a/mobile/src/main/AndroidManifest.xml +++ b/mobile/src/main/AndroidManifest.xml @@ -28,6 +28,7 @@ + @@ -75,6 +76,16 @@ + + + + + + + started = true + else -> return + } + ContextCompat.startForegroundService(context, Intent(context, RepeaterService::class.java)) + } +} diff --git a/mobile/src/main/java/be/mygod/vpnhotspot/SettingsPreferenceFragment.kt b/mobile/src/main/java/be/mygod/vpnhotspot/SettingsPreferenceFragment.kt index d8ec6bb8..5b51ba0d 100644 --- a/mobile/src/main/java/be/mygod/vpnhotspot/SettingsPreferenceFragment.kt +++ b/mobile/src/main/java/be/mygod/vpnhotspot/SettingsPreferenceFragment.kt @@ -8,6 +8,7 @@ import androidx.core.content.FileProvider import androidx.core.net.toUri import androidx.core.os.bundleOf import androidx.preference.Preference +import androidx.preference.SwitchPreference import be.mygod.vpnhotspot.App.Companion.app import be.mygod.vpnhotspot.net.Routing import be.mygod.vpnhotspot.net.UpstreamMonitor @@ -27,6 +28,12 @@ class SettingsPreferenceFragment : PreferenceFragmentCompat() { preferenceManager.preferenceDataStore = SharedPreferenceDataStore(app.pref) addPreferencesFromResource(R.xml.pref_settings) val mainActivity = activity as MainActivity + val boot = findPreference("service.repeater.startOnBoot") as SwitchPreference + boot.setOnPreferenceChangeListener { _, value -> + BootReceiver.enabled = value as Boolean + true + } + boot.isChecked = BootReceiver.enabled findPreference("service.clean").setOnPreferenceClickListener { if (Routing.clean() == null) mainActivity.snackbar().setText(R.string.root_unavailable).show() else app.cleanRoutings() diff --git a/mobile/src/main/res/drawable/ic_action_autorenew.xml b/mobile/src/main/res/drawable/ic_action_autorenew.xml new file mode 100644 index 00000000..17486792 --- /dev/null +++ b/mobile/src/main/res/drawable/ic_action_autorenew.xml @@ -0,0 +1,6 @@ + + + diff --git a/mobile/src/main/res/values-zh-rCN/strings.xml b/mobile/src/main/res/values-zh-rCN/strings.xml index 27db152e..4e456417 100644 --- a/mobile/src/main/res/values-zh-rCN/strings.xml +++ b/mobile/src/main/res/values-zh-rCN/strings.xml @@ -65,6 +65,7 @@ 只允许通过 VPN 隧道的包通过,不适用于系统共享 禁用 IPv6 共享 防止 IPv6 VPN 泄漏。 + 开机自启动中继 备用 DNS 服务器[:端口] 上游网络接口 自动检测系统 VPN diff --git a/mobile/src/main/res/values/strings.xml b/mobile/src/main/res/values/strings.xml index 8569f556..3402fe4f 100644 --- a/mobile/src/main/res/values/strings.xml +++ b/mobile/src/main/res/values/strings.xml @@ -70,6 +70,7 @@ apply to system tethering. Disable IPv6 tethering Enabling this option will prevent VPN leaks via IPv6. + Start repeater on boot Fallback DNS server[:port] Upstream network interface Auto detect system VPN diff --git a/mobile/src/main/res/xml/pref_settings.xml b/mobile/src/main/res/xml/pref_settings.xml index a81fcb6d..1af81c44 100644 --- a/mobile/src/main/res/xml/pref_settings.xml +++ b/mobile/src/main/res/xml/pref_settings.xml @@ -28,6 +28,10 @@ android:title="@string/settings_service_dns" android:singleLine="true" android:defaultValue="8.8.8.8"/> +