@@ -9,10 +9,12 @@ import android.app.PendingIntent
99import android.content.Intent
1010import android.content.SharedPreferences
1111import android.content.SharedPreferences.OnSharedPreferenceChangeListener
12+ import android.content.pm.PackageManager
1213import android.graphics.Insets
1314import android.os.Build
1415import android.os.Bundle
1516import android.preference.Preference
17+ import android.preference.PreferenceCategory
1618import android.preference.PreferenceFragment
1719import android.view.LayoutInflater
1820import android.view.View
@@ -22,6 +24,7 @@ import android.widget.Button
2224import android.widget.TextView
2325import io.github.a13e300.myinjector.system_server.ResultReceiver
2426import java.util.Arrays
27+ import java.util.UUID
2528import java.util.stream.Collectors
2629
2730@Suppress(" deprecation" )
@@ -41,6 +44,68 @@ class SettingsActivity : Activity() {
4144 super .onCreate(savedInstanceState)
4245 preferenceManager.sharedPreferencesName = " system_server"
4346 addPreferencesFromResource(R .xml.prefs)
47+
48+ val pm = context.packageManager
49+
50+ val cat = PreferenceCategory (context).apply {
51+ title = " Apps"
52+ }
53+ var added = false
54+
55+ fun addPackageSettings (pkg : String ) {
56+ runCatching {
57+ val info = try {
58+ pm.getApplicationInfo(pkg, 0 )
59+ } catch (_: PackageManager .NameNotFoundException ) {
60+ return
61+ }
62+ val label = info.loadLabel(pm)
63+ if (! added) {
64+ preferenceScreen.addPreference(cat)
65+ added = true
66+ }
67+ Preference (context).apply {
68+ cat.addPreference(this )
69+ title = " 打开 $label 设置"
70+ setOnPreferenceClickListener {
71+ runCatching {
72+ val intent = pm.getLaunchIntentForPackage(pkg)!!
73+ intent.action = " io.github.a13e300.myinjector.SHOW_SETTINGS"
74+ intent.categories.clear()
75+ intent.addCategory(" io.github.a13e300.myinjector.SHOW_SETTINGS" )
76+ intent.addCategory(UUID .randomUUID().toString())
77+ intent.flags = Intent .FLAG_ACTIVITY_NEW_TASK
78+ startActivity(intent)
79+ }.onFailure {
80+ logE(" failed to open settings for $pkg :" , it)
81+ }
82+ true
83+ }
84+ }
85+ }.onFailure {
86+ logE(" addPackageSettings $pkg " )
87+ }
88+ }
89+
90+ val list = listOf (
91+ " com.xingin.xhs" ,
92+ " com.kiwibrowser.browser" ,
93+ " com.android.chrome" ,
94+ " org.telegram.messenger" ,
95+ " org.telegram.messenger.web" ,
96+ " org.telegram.messenger.beta" ,
97+ " org.telegram.plus" ,
98+ " com.exteragram.messenger" ,
99+ " com.radolyn.ayugram" ,
100+ " uz.unnarsx.cherrygram" ,
101+ " xyz.nextalone.nagram" ,
102+ " nu.gpu.nagram" ,
103+ " com.xtaolabs.pagergram" ,
104+ )
105+
106+ for (l in list) {
107+ addPackageSettings(l)
108+ }
44109 }
45110
46111 @Deprecated(" Deprecated in Java" )
0 commit comments