diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt index 9bb2a051ececdf804b0c55bac04e73f399d6f79a..1f4b2e043009a398f464eee1f695614212500895 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt @@ -93,10 +93,9 @@ class QuasselService : DaggerLifecycleService(), val connectionSettings = Settings.connection(this) if (this.connectionSettings.showNotification != connectionSettings.showNotification) { - this.connectionSettings = connectionSettings - updateNotificationStatus(this.progress) } + this.connectionSettings = connectionSettings val (accountId, reconnect) = this.sharedPreferences(Keys.Status.NAME, Context.MODE_PRIVATE) { Pair( @@ -415,13 +414,15 @@ class QuasselService : DaggerLifecycleService(), .observeNetworkConnectivity(applicationContext) .toLiveData() .observe(this, Observer { connectivity -> - log(INFO, "QuasselService", "Connectivity changed: $connectivity") - handlerService.backend { - log(INFO, "QuasselService", "Reconnect triggered: Network changed") - sessionManager.autoConnect( - ignoreConnectionState = true, - ignoreSetting = true - ) + if (!connectionSettings.ignoreNetworkChanges) { + log(INFO, "QuasselService", "Connectivity changed: $connectivity") + handlerService.backend { + log(INFO, "QuasselService", "Reconnect triggered: Network changed") + sessionManager.autoConnect( + ignoreConnectionState = true, + ignoreSetting = true + ) + } } }) diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt index 1e4c4b3cfeac9ed8fe00962c5155010923313722..c59985a259399f378ba9f56076db273fdd1e2184 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt @@ -20,7 +20,8 @@ package de.kuschku.quasseldroid.settings data class ConnectionSettings( - val showNotification: Boolean = true + val showNotification: Boolean = true, + val ignoreNetworkChanges: Boolean = false ) { companion object { val DEFAULT = ConnectionSettings() diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt index cb243d1da8e40ca1bcbff907dfd7ac44f7b154bf..a59c26b9fbb140ef0e1a17cacc4850dead5c8fb4 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt @@ -263,6 +263,10 @@ object Settings { showNotification = getBoolean( context.getString(R.string.preference_show_notification_key), ConnectionSettings.DEFAULT.showNotification + ), + ignoreNetworkChanges = getBoolean( + context.getString(R.string.preference_ignore_network_changes_key), + ConnectionSettings.DEFAULT.ignoreNetworkChanges ) ) } diff --git a/app/src/main/res/values/strings_preferences.xml b/app/src/main/res/values/strings_preferences.xml index cbd5b4766e3d6cd112e867280b677a018d39d59e..06e772b8a9133dcd79329a9e38047af24155f914 100644 --- a/app/src/main/res/values/strings_preferences.xml +++ b/app/src/main/res/values/strings_preferences.xml @@ -333,5 +333,9 @@ <string name="preference_show_notification_title">Show notification</string> <string name="preference_show_notification_summary">Keeps Quasseldroid always connected by showing a persistent notification</string> + <string name="preference_ignore_network_changes_key" translatable="false">ignore_network_changes</string> + <string name="preference_ignore_network_changes_title">Ignore network changes</string> + <string name="preference_ignore_network_changes_summary">Stops Quasseldroid from reconnecting automatically if the network changes</string> + <string name="preference_notification_id_key" translatable="false">notification_id</string> </resources> diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 00fa6b304e859ad4edddd8c362c53446610b74f6..46c3d5e73231319349e91d1b5cd670e024ebe47c 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -348,5 +348,10 @@ android:key="@string/preference_show_notification_key" android:summary="@string/preference_show_notification_summary" android:title="@string/preference_show_notification_title" /> + <SwitchPreference + android:defaultValue="true" + android:key="@string/preference_ignore_network_changes_key" + android:summary="@string/preference_ignore_network_changes_summary" + android:title="@string/preference_ignore_network_changes_title" /> </PreferenceCategory> </PreferenceScreen>