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
|
||||
|
||||
import android.app.Activity
|
||||
import android.app.ActivityManager
|
||||
import android.content.Context
|
||||
import android.content.res.Resources
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
@@ -115,4 +117,9 @@ internal object Utils {
|
||||
fun interface DrawableReceiver {
|
||||
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.drawerlayout.widget.DrawerLayout.SimpleDrawerListener
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.recyclerview.widget.DividerItemDecoration
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
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 {
|
||||
updateMessagesForApplication(true, viewModel.appId)
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.preference.SwitchPreferenceCompat
|
||||
import com.github.gotify.R
|
||||
import com.github.gotify.Utils
|
||||
import com.github.gotify.databinding.SettingsActivityBinding
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
|
||||
@@ -72,16 +73,16 @@ internal class SettingsActivity : AppCompatActivity(), OnSharedPreferenceChangeL
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val messageLayout: ListPreference? =
|
||||
findPreference(getString(R.string.setting_key_message_layout))
|
||||
val notificationChannels: SwitchPreferenceCompat? =
|
||||
findPreference(getString(R.string.setting_key_notification_channels))
|
||||
messageLayout?.onPreferenceChangeListener =
|
||||
findPreference<ListPreference>(
|
||||
getString(R.string.setting_key_message_layout)
|
||||
)?.onPreferenceChangeListener =
|
||||
Preference.OnPreferenceChangeListener { _, _ ->
|
||||
showRestartDialog()
|
||||
true
|
||||
}
|
||||
notificationChannels?.onPreferenceChangeListener =
|
||||
findPreference<SwitchPreferenceCompat>(
|
||||
getString(R.string.setting_key_notification_channels)
|
||||
)?.onPreferenceChangeListener =
|
||||
Preference.OnPreferenceChangeListener { _, _ ->
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
||||
return@OnPreferenceChangeListener false
|
||||
@@ -89,6 +90,13 @@ internal class SettingsActivity : AppCompatActivity(), OnSharedPreferenceChangeL
|
||||
showRestartDialog()
|
||||
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) {
|
||||
|
||||
@@ -35,4 +35,5 @@
|
||||
<string name="time_format_value_absolute">time_format_absolute</string>
|
||||
<string name="time_format_value_relative">time_format_relative</string>
|
||||
<bool name="notification_channels">false</bool>
|
||||
<bool name="exclude_from_recent">false</bool>
|
||||
</resources>
|
||||
|
||||
@@ -83,6 +83,8 @@
|
||||
<string name="setting_notifications">Notifications</string>
|
||||
<string name="setting_notification_channels">Separate app 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="appListDescription">App:</string>
|
||||
<string name="priorityDescription">Priority:</string>
|
||||
|
||||
@@ -22,6 +22,12 @@
|
||||
android:entryValues="@array/time_format_values"
|
||||
android:key="@string/setting_key_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 app:title="@string/setting_notifications" >
|
||||
|
||||
Reference in New Issue
Block a user