Add exclude from recents

Co-authored-by: Jannis Mattheis <contact@jmattheis.de>
This commit is contained in:
Madray Haven
2023-03-19 19:14:23 +08:00
committed by GitHub
parent 37976b1b33
commit 53deb3ae51
6 changed files with 34 additions and 6 deletions

View File

@@ -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)
}
}

View File

@@ -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)
}

View File

@@ -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) {