mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2025-01-09 23:59:24 +01:00
Add setting to disable extension updated notification
it jumps to the notification setting
This commit is contained in:
parent
a5fbd4dade
commit
e24686f0cf
@ -7,6 +7,7 @@ import android.content.Context
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.util.system.notificationManager
|
import eu.kanade.tachiyomi.util.system.notificationManager
|
||||||
|
import androidx.core.app.NotificationManagerCompat
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to manage the basic information of all the notifications used in the app.
|
* Class to manage the basic information of all the notifications used in the app.
|
||||||
@ -175,4 +176,18 @@ object Notifications {
|
|||||||
context.notificationManager.createNotificationChannels(newChannels)
|
context.notificationManager.createNotificationChannels(newChannels)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun isNotificationChannelEnabled(context: Context, channelId: String?): Boolean {
|
||||||
|
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||||
|
if (!channelId.isNullOrBlank()) {
|
||||||
|
val manager =
|
||||||
|
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||||
|
val channel = manager.getNotificationChannel(channelId)
|
||||||
|
return channel.importance != NotificationManager.IMPORTANCE_NONE
|
||||||
|
}
|
||||||
|
false
|
||||||
|
} else {
|
||||||
|
NotificationManagerCompat.from(context).areNotificationsEnabled()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,14 @@
|
|||||||
package eu.kanade.tachiyomi.ui.setting
|
package eu.kanade.tachiyomi.ui.setting
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.provider.Settings
|
||||||
import androidx.preference.PreferenceScreen
|
import androidx.preference.PreferenceScreen
|
||||||
|
import androidx.preference.SwitchPreferenceCompat
|
||||||
|
import eu.kanade.tachiyomi.BuildConfig
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
|
import eu.kanade.tachiyomi.data.notification.Notifications
|
||||||
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
|
import eu.kanade.tachiyomi.data.preference.PreferenceKeys
|
||||||
import eu.kanade.tachiyomi.data.preference.asImmediateFlow
|
import eu.kanade.tachiyomi.data.preference.asImmediateFlow
|
||||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||||
@ -19,6 +25,7 @@ import uy.kohesive.injekt.injectLazy
|
|||||||
class SettingsBrowseController : SettingsController() {
|
class SettingsBrowseController : SettingsController() {
|
||||||
|
|
||||||
val sourceManager: SourceManager by injectLazy()
|
val sourceManager: SourceManager by injectLazy()
|
||||||
|
var updatedExtNotifPref: SwitchPreferenceCompat? = null
|
||||||
|
|
||||||
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
|
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
|
||||||
titleRes = R.string.sources
|
titleRes = R.string.sources
|
||||||
@ -49,6 +56,23 @@ class SettingsBrowseController : SettingsController() {
|
|||||||
defaultValue = AutoUpdaterJob.ONLY_ON_UNMETERED
|
defaultValue = AutoUpdaterJob.ONLY_ON_UNMETERED
|
||||||
}
|
}
|
||||||
infoPreference(R.string.some_extensions_may_not_update)
|
infoPreference(R.string.some_extensions_may_not_update)
|
||||||
|
switchPreference {
|
||||||
|
key = "notify_ext_updated"
|
||||||
|
isPersistent = false
|
||||||
|
titleRes = R.string.notify_extension_updated
|
||||||
|
isChecked = Notifications.isNotificationChannelEnabled(context, Notifications.CHANNEL_EXT_UPDATED)
|
||||||
|
updatedExtNotifPref = this
|
||||||
|
onChange {
|
||||||
|
false
|
||||||
|
}
|
||||||
|
onClick {
|
||||||
|
val intent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS).apply {
|
||||||
|
putExtra(Settings.EXTRA_APP_PACKAGE, BuildConfig.APPLICATION_ID)
|
||||||
|
putExtra(Settings.EXTRA_CHANNEL_ID, Notifications.CHANNEL_EXT_UPDATED)
|
||||||
|
}
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,4 +177,9 @@ class SettingsBrowseController : SettingsController() {
|
|||||||
infoPreference(R.string.does_not_prevent_unofficial_nsfw)
|
infoPreference(R.string.does_not_prevent_unofficial_nsfw)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onActivityResumed(activity: Activity) {
|
||||||
|
super.onActivityResumed(activity)
|
||||||
|
updatedExtNotifPref?.isChecked = Notifications.isNotificationChannelEnabled(activity, Notifications.CHANNEL_EXT_UPDATED)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -291,8 +291,8 @@
|
|||||||
|
|
||||||
<!-- Extensions -->
|
<!-- Extensions -->
|
||||||
<string name="extensions">Extensions</string>
|
<string name="extensions">Extensions</string>
|
||||||
<string name="extension_updates">Extension Updates</string>
|
<string name="extension_updates">Extension updates</string>
|
||||||
<string name="extension_updates_pending">Extension Updates pending</string>
|
<string name="extension_updates_pending">Extension updates pending</string>
|
||||||
<string name="extension_info">Extension info</string>
|
<string name="extension_info">Extension info</string>
|
||||||
<string name="filter_languages">Filter Languages</string>
|
<string name="filter_languages">Filter Languages</string>
|
||||||
<string name="obsolete">Obsolete</string>
|
<string name="obsolete">Obsolete</string>
|
||||||
@ -777,6 +777,7 @@
|
|||||||
<string name="pref_global_search">Global search</string>
|
<string name="pref_global_search">Global search</string>
|
||||||
<string name="check_for_extension_updates">Check for extension updates</string>
|
<string name="check_for_extension_updates">Check for extension updates</string>
|
||||||
<string name="auto_update_extensions">Auto-update extensions</string>
|
<string name="auto_update_extensions">Auto-update extensions</string>
|
||||||
|
<string name="notify_extension_updated">Notify extension has been updated</string>
|
||||||
<string name="some_extensions_may_not_update">Some extensions may not be auto-updated if they were installed outside this app</string>
|
<string name="some_extensions_may_not_update">Some extensions may not be auto-updated if they were installed outside this app</string>
|
||||||
<string name="only_search_pinned_when">Only search pinned sources</string>
|
<string name="only_search_pinned_when">Only search pinned sources</string>
|
||||||
<string name="match_pinned_sources">Match pinned sources</string>
|
<string name="match_pinned_sources">Match pinned sources</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user