add preference to open notification settings if enabled
This commit is contained in:
parent
522f05ed60
commit
b63e5e8bfc
5 changed files with 28 additions and 1 deletions
|
@ -413,7 +413,7 @@ class NotificationService(val context: Context) {
|
|||
}
|
||||
}
|
||||
|
||||
private fun toChannelId(scope: String, priority: Int): String {
|
||||
fun toChannelId(scope: String, priority: Int): String {
|
||||
return when (priority) {
|
||||
1 -> scope + PRIORITY_MIN
|
||||
2 -> scope + PRIORITY_LOW
|
||||
|
|
|
@ -4,8 +4,10 @@ import android.content.ContentResolver
|
|||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.provider.Settings
|
||||
import android.text.TextUtils
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
|
@ -82,6 +84,7 @@ class DetailSettingsActivity : AppCompatActivity() {
|
|||
private lateinit var subscription: Subscription
|
||||
|
||||
private lateinit var iconSetPref: Preference
|
||||
private lateinit var openChannelsPref: Preference
|
||||
private lateinit var iconSetLauncher: ActivityResultLauncher<String>
|
||||
private lateinit var iconRemovePref: Preference
|
||||
|
||||
|
@ -113,6 +116,7 @@ class DetailSettingsActivity : AppCompatActivity() {
|
|||
if (subscription.upAppId == null) {
|
||||
loadInstantPref()
|
||||
loadDedicatedChannelsPrefs()
|
||||
loadOpenChannelsPrefs()
|
||||
loadMutedUntilPref()
|
||||
loadMinPriorityPref()
|
||||
loadAutoDeletePref()
|
||||
|
@ -165,6 +169,8 @@ class DetailSettingsActivity : AppCompatActivity() {
|
|||
notificationService.deleteSubscriptionNotificationChannels(subscription)
|
||||
}
|
||||
|
||||
openChannelsPref.isVisible = value
|
||||
|
||||
}
|
||||
override fun getBoolean(key: String?, defValue: Boolean): Boolean {
|
||||
return subscription.dedicatedChannels
|
||||
|
@ -179,6 +185,21 @@ class DetailSettingsActivity : AppCompatActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun loadOpenChannelsPrefs() {
|
||||
val prefId = context?.getString(R.string.detail_settings_notifications_open_channels_key) ?: return
|
||||
openChannelsPref = findPreference(prefId) ?: return
|
||||
openChannelsPref.isVisible = subscription.dedicatedChannels
|
||||
openChannelsPref.preferenceDataStore = object : PreferenceDataStore() { } // Dummy store to protect from accidentally overwriting
|
||||
openChannelsPref.onPreferenceClickListener = Preference.OnPreferenceClickListener { _ ->
|
||||
val channelId = notificationService.toChannelId(notificationService.dedicatedNotificationScope(subscription), 3)
|
||||
val settingsIntent = Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS)
|
||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.putExtra(Settings.EXTRA_APP_PACKAGE, requireContext().applicationContext.packageName)
|
||||
startActivity(settingsIntent);
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadMutedUntilPref() {
|
||||
val prefId = context?.getString(R.string.detail_settings_notifications_muted_until_key) ?: return
|
||||
val pref: ListPreference? = findPreference(prefId)
|
||||
|
|
|
@ -352,6 +352,7 @@
|
|||
<string name="detail_settings_notifications_dedicated_channels_title">Use dedicated channels</string>
|
||||
<string name="detail_settings_notifications_dedicated_channels_summay_on">Use dedicated notification channels for this subscription</string>
|
||||
<string name="detail_settings_notifications_dedicated_channels_summay_off">Use default notification channels</string>
|
||||
<string name="detail_settings_notifications_open_channels_title">Configure dedicated channels</string>
|
||||
<string name="detail_settings_appearance_header">Appearance</string>
|
||||
<string name="detail_settings_appearance_icon_set_title">Subscription icon</string>
|
||||
<string name="detail_settings_appearance_icon_set_summary">Set an icon to be displayed in notifications</string>
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
<string name="detail_settings_notifications_instant_key" translatable="false">SubscriptionInstant</string>
|
||||
<string name="detail_settings_notifications_muted_until_key" translatable="false">SubscriptionMutedUntil</string>
|
||||
<string name="detail_settings_notifications_dedicated_channels_key" translatable="false">SubscriptionDedicatedChannels</string>
|
||||
<string name="detail_settings_notifications_open_channels_key" translatable="false">SubscriptionOpenChannels</string>
|
||||
<string name="detail_settings_notifications_min_priority_key" translatable="false">SubscriptionMinPriority</string>
|
||||
<string name="detail_settings_notifications_auto_delete_key" translatable="false">SubscriptionAutoDelete</string>
|
||||
<string name="detail_settings_appearance_header_key" translatable="false">SubscriptionAppearance</string>
|
||||
|
|
|
@ -18,6 +18,10 @@
|
|||
app:key="@string/detail_settings_notifications_dedicated_channels_key"
|
||||
app:title="@string/detail_settings_notifications_dedicated_channels_title"
|
||||
app:isPreferenceVisible="false"/>
|
||||
<Preference
|
||||
app:key="@string/detail_settings_notifications_open_channels_key"
|
||||
app:title="@string/detail_settings_notifications_open_channels_title"
|
||||
app:isPreferenceVisible="false"/>
|
||||
<ListPreference
|
||||
app:key="@string/detail_settings_notifications_min_priority_key"
|
||||
app:title="@string/settings_notifications_min_priority_title"
|
||||
|
|
Loading…
Reference in a new issue