Add exclude from recents
Co-authored-by: Jannis Mattheis <contact@jmattheis.de>
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
package com.github.gotify
|
package com.github.gotify
|
||||||
|
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
|
import android.app.ActivityManager
|
||||||
|
import android.content.Context
|
||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.drawable.BitmapDrawable
|
import android.graphics.drawable.BitmapDrawable
|
||||||
@@ -115,4 +117,9 @@ internal object Utils {
|
|||||||
fun interface DrawableReceiver {
|
fun interface DrawableReceiver {
|
||||||
fun loaded(drawable: Drawable?)
|
fun loaded(drawable: Drawable?)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setExcludeFromRecent(context: Context, excludeFromRecent: Boolean) {
|
||||||
|
context.getSystemService(ActivityManager::class.java).appTasks?.getOrNull(0)
|
||||||
|
?.setExcludeFromRecents(excludeFromRecent)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import androidx.core.graphics.drawable.DrawableCompat
|
|||||||
import androidx.core.view.GravityCompat
|
import androidx.core.view.GravityCompat
|
||||||
import androidx.drawerlayout.widget.DrawerLayout.SimpleDrawerListener
|
import androidx.drawerlayout.widget.DrawerLayout.SimpleDrawerListener
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.recyclerview.widget.DividerItemDecoration
|
import androidx.recyclerview.widget.DividerItemDecoration
|
||||||
import androidx.recyclerview.widget.ItemTouchHelper
|
import androidx.recyclerview.widget.ItemTouchHelper
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
@@ -150,6 +151,9 @@ internal class MessagesActivity :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val excludeFromRecent = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
|
.getBoolean(getString(R.string.setting_key_exclude_from_recent), false)
|
||||||
|
Utils.setExcludeFromRecent(this, excludeFromRecent)
|
||||||
launchCoroutine {
|
launchCoroutine {
|
||||||
updateMessagesForApplication(true, viewModel.appId)
|
updateMessagesForApplication(true, viewModel.appId)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import androidx.preference.PreferenceFragmentCompat
|
|||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.preference.SwitchPreferenceCompat
|
import androidx.preference.SwitchPreferenceCompat
|
||||||
import com.github.gotify.R
|
import com.github.gotify.R
|
||||||
|
import com.github.gotify.Utils
|
||||||
import com.github.gotify.databinding.SettingsActivityBinding
|
import com.github.gotify.databinding.SettingsActivityBinding
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
@@ -72,16 +73,16 @@ internal class SettingsActivity : AppCompatActivity(), OnSharedPreferenceChangeL
|
|||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
val messageLayout: ListPreference? =
|
findPreference<ListPreference>(
|
||||||
findPreference(getString(R.string.setting_key_message_layout))
|
getString(R.string.setting_key_message_layout)
|
||||||
val notificationChannels: SwitchPreferenceCompat? =
|
)?.onPreferenceChangeListener =
|
||||||
findPreference(getString(R.string.setting_key_notification_channels))
|
|
||||||
messageLayout?.onPreferenceChangeListener =
|
|
||||||
Preference.OnPreferenceChangeListener { _, _ ->
|
Preference.OnPreferenceChangeListener { _, _ ->
|
||||||
showRestartDialog()
|
showRestartDialog()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
notificationChannels?.onPreferenceChangeListener =
|
findPreference<SwitchPreferenceCompat>(
|
||||||
|
getString(R.string.setting_key_notification_channels)
|
||||||
|
)?.onPreferenceChangeListener =
|
||||||
Preference.OnPreferenceChangeListener { _, _ ->
|
Preference.OnPreferenceChangeListener { _, _ ->
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
||||||
return@OnPreferenceChangeListener false
|
return@OnPreferenceChangeListener false
|
||||||
@@ -89,6 +90,13 @@ internal class SettingsActivity : AppCompatActivity(), OnSharedPreferenceChangeL
|
|||||||
showRestartDialog()
|
showRestartDialog()
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
findPreference<SwitchPreferenceCompat>(
|
||||||
|
getString(R.string.setting_key_exclude_from_recent)
|
||||||
|
)?.onPreferenceChangeListener =
|
||||||
|
Preference.OnPreferenceChangeListener { _, value ->
|
||||||
|
Utils.setExcludeFromRecent(requireContext(), value as Boolean)
|
||||||
|
return@OnPreferenceChangeListener true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDisplayPreferenceDialog(preference: Preference) {
|
override fun onDisplayPreferenceDialog(preference: Preference) {
|
||||||
|
|||||||
@@ -35,4 +35,5 @@
|
|||||||
<string name="time_format_value_absolute">time_format_absolute</string>
|
<string name="time_format_value_absolute">time_format_absolute</string>
|
||||||
<string name="time_format_value_relative">time_format_relative</string>
|
<string name="time_format_value_relative">time_format_relative</string>
|
||||||
<bool name="notification_channels">false</bool>
|
<bool name="notification_channels">false</bool>
|
||||||
|
<bool name="exclude_from_recent">false</bool>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -83,6 +83,8 @@
|
|||||||
<string name="setting_notifications">Notifications</string>
|
<string name="setting_notifications">Notifications</string>
|
||||||
<string name="setting_notification_channels">Separate app notification channels</string>
|
<string name="setting_notification_channels">Separate app notification channels</string>
|
||||||
<string name="setting_key_notification_channels">notification_channels</string>
|
<string name="setting_key_notification_channels">notification_channels</string>
|
||||||
|
<string name="setting_key_exclude_from_recent">exclude_from_recent</string>
|
||||||
|
<string name="setting_exclude_from_recent">Exclude from recents</string>
|
||||||
<string name="push_message">Push message</string>
|
<string name="push_message">Push message</string>
|
||||||
<string name="appListDescription">App:</string>
|
<string name="appListDescription">App:</string>
|
||||||
<string name="priorityDescription">Priority:</string>
|
<string name="priorityDescription">Priority:</string>
|
||||||
|
|||||||
@@ -22,6 +22,12 @@
|
|||||||
android:entryValues="@array/time_format_values"
|
android:entryValues="@array/time_format_values"
|
||||||
android:key="@string/setting_key_time_format"
|
android:key="@string/setting_key_time_format"
|
||||||
android:title="@string/setting_time_format" />
|
android:title="@string/setting_time_format" />
|
||||||
|
|
||||||
|
<SwitchPreferenceCompat
|
||||||
|
android:defaultValue="@bool/exclude_from_recent"
|
||||||
|
android:key="@string/setting_key_exclude_from_recent"
|
||||||
|
android:title="@string/setting_exclude_from_recent"
|
||||||
|
app:singleLineTitle="false" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory app:title="@string/setting_notifications" >
|
<PreferenceCategory app:title="@string/setting_notifications" >
|
||||||
|
|||||||
Reference in New Issue
Block a user