Skip to content

Commit

Permalink
✨ 保活策略:最近任务列表不显示 (#34)
Browse files Browse the repository at this point in the history
* 添加功能:保活策略:最近任务列表不显示-Fix1

* 添加功能:保活策略:最近任务列表不显示-Fix1

---------

Co-authored-by: Pinenutn <[email protected]>
  • Loading branch information
PaienNate and Pinenutn authored Feb 11, 2024
1 parent dd198d5 commit 6df75fb
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 1 deletion.
17 changes: 17 additions & 0 deletions app/src/main/java/com/sealdice/dice/MyApplication.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,30 @@ package com.sealdice.dice

import android.app.Application
import android.content.Context
import androidx.preference.PreferenceManager
import com.sealdice.dice.utils.Utils.setHideTaskStatus
import com.sealdice.dice.secrets.Auth.*
import org.acra.config.httpSender
import org.acra.data.StringFormat
import org.acra.ktx.initAcra
import org.acra.sender.HttpSender
import kotlin.properties.Delegates

class MyApplication : Application() {
companion object {
// Kotlin 中的对象表达式,它定义了一个伴生对象(companion object)
// 表示在使用 appContext 属性之前,必须为它分配一个非空的值,否则会抛出异常。
var appContext: Context by Delegates.notNull()
}
override fun onCreate() {
super.onCreate()
appContext = applicationContext
// 读取用户配置,并根据配置处理是否在最近任务栏不显示
val preferences = PreferenceManager.getDefaultSharedPreferences(this)
val isEnabled = preferences.getBoolean("alive_excluderecents", false)
// 根据启用状态,动态调整执行隐藏/不隐藏
setHideTaskStatus(hide = isEnabled)
}
override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)

Expand Down
19 changes: 19 additions & 0 deletions app/src/main/java/com/sealdice/dice/SettingsFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,34 @@ package com.sealdice.dice

import android.content.SharedPreferences
import android.os.Bundle
import android.widget.Toast
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.SeekBarPreference
import androidx.preference.SwitchPreferenceCompat
import com.sealdice.dice.utils.Utils


class SettingsFragment : PreferenceFragmentCompat() {
private lateinit var sharedPreferences: SharedPreferences
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.preferences, rootKey)
sharedPreferences = preferenceScreen.sharedPreferences!!
// 查找后台删除对应的配置项,并为其设置监听器
val mySwitchPreference: SwitchPreferenceCompat? = findPreference("alive_excluderecents")
mySwitchPreference?.onPreferenceChangeListener =
Preference.OnPreferenceChangeListener { preference, newValue ->
// 在此处执行你想要的操作,例如根据新值来改变应用程序的行为
val isChecked = newValue as Boolean
if(!isChecked){
Toast.makeText(context,"豹豹已准备上浮",Toast.LENGTH_SHORT).show()
}
else{
Toast.makeText(context,"豹豹已准备下潜",Toast.LENGTH_SHORT).show()
}
Utils.setHideTaskStatus(isChecked)
true // 返回 true 表示消费了设置项的变化事件
}
val mySeekBarPreference : SeekBarPreference? = findPreference<SeekBarPreference>("launch_waiting_time")
// val switchPreference: SwitchPreferenceCompat = findPreference("my_switch_preference")
// switchPreference.setTitleTextColor(resources.getColor(android.R.color.my_color))
Expand Down
9 changes: 8 additions & 1 deletion app/src/main/java/com/sealdice/dice/utils/Utils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import android.provider.Settings
import android.text.TextUtils
import android.util.Log
import android.widget.Toast
import com.sealdice.dice.MyApplication
import java.util.ArrayList


Expand Down Expand Up @@ -93,7 +94,13 @@ object Utils {
// accessibilityToSettingPage(context)
// }
// }

fun setHideTaskStatus(hide: Boolean = false) {
val am = MyApplication.appContext.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
val tasks = am.appTasks
if (!tasks.isNullOrEmpty()) {
tasks[0].setExcludeFromRecents(hide)
}
}
fun isNull(any: Any?): Boolean = any == null

}
5 changes: 5 additions & 0 deletions app/src/main/res/xml/preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@
android:title="保活策略:无声音频"
android:summary="通过循环播放无声音频进行保活"
android:defaultValue="false" />
<androidx.preference.SwitchPreferenceCompat
android:key="alive_excluderecents"
android:title="保活策略:最近任务列表不显示"
android:summary="豹豹通过在最近任务列表里潜水,有效避免某些系统划后台强行扬了可爱的豹豹的人间惨剧。"
android:defaultValue="false" />

</androidx.preference.PreferenceCategory>

Expand Down

0 comments on commit 6df75fb

Please sign in to comment.