diff --git a/app/src/main/kotlin/com/github/gotify/Utils.kt b/app/src/main/kotlin/com/github/gotify/Utils.kt index 7c3757b..07193e9 100644 --- a/app/src/main/kotlin/com/github/gotify/Utils.kt +++ b/app/src/main/kotlin/com/github/gotify/Utils.kt @@ -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) + } } diff --git a/app/src/main/kotlin/com/github/gotify/messages/MessagesActivity.kt b/app/src/main/kotlin/com/github/gotify/messages/MessagesActivity.kt index 60d89d9..b2d9d99 100644 --- a/app/src/main/kotlin/com/github/gotify/messages/MessagesActivity.kt +++ b/app/src/main/kotlin/com/github/gotify/messages/MessagesActivity.kt @@ -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) } diff --git a/app/src/main/kotlin/com/github/gotify/settings/SettingsActivity.kt b/app/src/main/kotlin/com/github/gotify/settings/SettingsActivity.kt index eebe0d9..9cc1cb2 100644 --- a/app/src/main/kotlin/com/github/gotify/settings/SettingsActivity.kt +++ b/app/src/main/kotlin/com/github/gotify/settings/SettingsActivity.kt @@ -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( + getString(R.string.setting_key_message_layout) + )?.onPreferenceChangeListener = Preference.OnPreferenceChangeListener { _, _ -> showRestartDialog() true } - notificationChannels?.onPreferenceChangeListener = + findPreference( + 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( + 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) { diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 92ca38b..1c42409 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -35,4 +35,5 @@ time_format_absolute time_format_relative false + false diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d539e49..783a647 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -83,6 +83,8 @@ Notifications Separate app notification channels notification_channels + exclude_from_recent + Exclude from recents Push message App: Priority: diff --git a/app/src/main/res/xml/root_preferences.xml b/app/src/main/res/xml/root_preferences.xml index add33e0..2373083 100644 --- a/app/src/main/res/xml/root_preferences.xml +++ b/app/src/main/res/xml/root_preferences.xml @@ -22,6 +22,12 @@ android:entryValues="@array/time_format_values" android:key="@string/setting_key_time_format" android:title="@string/setting_time_format" /> + +