From 9ff7b08a8610a07b7cbf913f2948f84bee7eae12 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 31 Jul 2022 14:36:39 +0200 Subject: [PATCH] network type for notifcations option --- .../github/libretube/preferences/PreferenceHelper.kt | 2 +- .../github/libretube/preferences/PreferenceKeys.kt | 1 + .../com/github/libretube/util/NotificationHelper.kt | 12 +++++++++++- app/src/main/res/drawable/ic_signal.xml | 10 ++++++++++ app/src/main/res/values/array.xml | 12 ++++++++++++ app/src/main/res/values/strings.xml | 4 ++++ app/src/main/res/xml/notification_settings.xml | 9 +++++++++ 7 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/ic_signal.xml diff --git a/app/src/main/java/com/github/libretube/preferences/PreferenceHelper.kt b/app/src/main/java/com/github/libretube/preferences/PreferenceHelper.kt index 950753649..a28ebc603 100644 --- a/app/src/main/java/com/github/libretube/preferences/PreferenceHelper.kt +++ b/app/src/main/java/com/github/libretube/preferences/PreferenceHelper.kt @@ -88,7 +88,7 @@ object PreferenceHelper { fun getSearchHistory(): List { return try { val json = settings.getString("search_history", "")!! - val type = object : TypeReference>(){} + val type = object : TypeReference>() {} return mapper.readValue(json, type) } catch (e: Exception) { emptyList() diff --git a/app/src/main/java/com/github/libretube/preferences/PreferenceKeys.kt b/app/src/main/java/com/github/libretube/preferences/PreferenceKeys.kt index 2dd315501..4220f29ac 100644 --- a/app/src/main/java/com/github/libretube/preferences/PreferenceKeys.kt +++ b/app/src/main/java/com/github/libretube/preferences/PreferenceKeys.kt @@ -70,6 +70,7 @@ object PreferenceKeys { */ const val NOTIFICATION_ENABLED = "notification_toggle" const val CHECKING_FREQUENCY = "checking_frequency" + const val REQUIRED_NETWORK = "required_network" const val LAST_STREAM_VIDEO_ID = "last_stream_video_id" /** diff --git a/app/src/main/java/com/github/libretube/util/NotificationHelper.kt b/app/src/main/java/com/github/libretube/util/NotificationHelper.kt index df62c436c..cd8f65584 100644 --- a/app/src/main/java/com/github/libretube/util/NotificationHelper.kt +++ b/app/src/main/java/com/github/libretube/util/NotificationHelper.kt @@ -41,10 +41,20 @@ object NotificationHelper { // schedule the work manager request if logged in and notifications enabled if (notificationsEnabled && PreferenceHelper.getToken() != "") { + // required network type for the work + val networkType = when ( + PreferenceHelper.getString(PreferenceKeys.REQUIRED_NETWORK, "all") + ) { + "all" -> NetworkType.CONNECTED + "wifi" -> NetworkType.UNMETERED + "metered" -> NetworkType.METERED + else -> NetworkType.CONNECTED + } + // requirements for the work // here: network needed to run the task val constraints = Constraints.Builder() - .setRequiredNetworkType(NetworkType.CONNECTED) + .setRequiredNetworkType(networkType) .build() // create the worker diff --git a/app/src/main/res/drawable/ic_signal.xml b/app/src/main/res/drawable/ic_signal.xml new file mode 100644 index 000000000..477174f77 --- /dev/null +++ b/app/src/main/res/drawable/ic_signal.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index d9dd4d565..e399c1838 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -796,4 +796,16 @@ channel_name_za + + @string/network_all + @string/network_wifi + @string/network_metered + + + + all + wifi + metered + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a350650cf..274820fc6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -280,4 +280,8 @@ Channel Name (A-Z) Channel Name (Z-A) Sort + Required network type + All networks + Metered + WiFi only \ No newline at end of file diff --git a/app/src/main/res/xml/notification_settings.xml b/app/src/main/res/xml/notification_settings.xml index 9bd0e37f6..964e25a97 100644 --- a/app/src/main/res/xml/notification_settings.xml +++ b/app/src/main/res/xml/notification_settings.xml @@ -20,6 +20,15 @@ app:title="@string/checking_frequency" app:useSimpleSummaryProvider="true" /> + + \ No newline at end of file