Fix opening module settings
This commit is contained in:
parent
667ac6282f
commit
1f23d8a995
|
|
@ -51,11 +51,11 @@ fun ModuleManageBody() {
|
|||
key = { it.first.app.packageName }
|
||||
) {
|
||||
var expanded by remember { mutableStateOf(false) }
|
||||
val launchIntent = remember { LSPPackageManager.getLaunchIntentForPackage(it.first.app.packageName) }
|
||||
val settingsIntent = remember { LSPPackageManager.getSettingsIntent(it.first.app.packageName) }
|
||||
AnywhereDropdown(
|
||||
expanded = expanded,
|
||||
onDismissRequest = { expanded = false },
|
||||
onClick = { launchIntent?.let { context.startActivity(it) } },
|
||||
onClick = { settingsIntent?.let { context.startActivity(it) } },
|
||||
onLongClick = { expanded = true },
|
||||
surface = {
|
||||
AppItem(
|
||||
|
|
@ -85,10 +85,10 @@ fun ModuleManageBody() {
|
|||
text = { Text(text = it.first.label, color = MaterialTheme.colorScheme.primary) },
|
||||
onClick = {}, enabled = false
|
||||
)
|
||||
if (launchIntent != null) {
|
||||
if (settingsIntent != null) {
|
||||
DropdownMenuItem(
|
||||
text = { Text(stringResource(R.string.manage_module_settings)) },
|
||||
onClick = { context.startActivity(launchIntent) }
|
||||
onClick = { context.startActivity(settingsIntent) }
|
||||
)
|
||||
}
|
||||
DropdownMenuItem(
|
||||
|
|
|
|||
|
|
@ -34,6 +34,9 @@ import kotlin.coroutines.suspendCoroutine
|
|||
object LSPPackageManager {
|
||||
|
||||
private const val TAG = "LSPPackageManager"
|
||||
private const val SETTINGS_CATEGORY = "de.robv.android.xposed.category.MODULE_SETTINGS"
|
||||
|
||||
const val STATUS_USER_CANCELLED = -2
|
||||
|
||||
@Parcelize
|
||||
class AppInfo(val app: ApplicationInfo, val label: String) : Parcelable {
|
||||
|
|
@ -41,8 +44,6 @@ object LSPPackageManager {
|
|||
get() = app.metaData?.get("xposedminversion") != null
|
||||
}
|
||||
|
||||
const val STATUS_USER_CANCELLED = -2
|
||||
|
||||
var appList by mutableStateOf(listOf<AppInfo>())
|
||||
private set
|
||||
|
||||
|
|
@ -210,4 +211,20 @@ object LSPPackageManager {
|
|||
ris[0].activityInfo.name
|
||||
)
|
||||
}
|
||||
|
||||
fun getSettingsIntent(packageName: String): Intent? {
|
||||
val intentToResolve = Intent(Intent.ACTION_MAIN)
|
||||
intentToResolve.addCategory(SETTINGS_CATEGORY)
|
||||
intentToResolve.setPackage(packageName)
|
||||
val ris = lspApp.packageManager.queryIntentActivities(intentToResolve, 0)
|
||||
|
||||
if (ris.size <= 0) return getLaunchIntentForPackage(packageName)
|
||||
|
||||
return Intent(intentToResolve)
|
||||
.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
.setClassName(
|
||||
ris[0].activityInfo.packageName,
|
||||
ris[0].activityInfo.name
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue