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"/>
+