Skip to content

Commit 98415f5

Browse files
committed
feat: reduce hook methods and enhance compatibility
1 parent 21cf07e commit 98415f5

File tree

8 files changed

+13
-33
lines changed

8 files changed

+13
-33
lines changed

app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ android {
1111
applicationId = "com.parallelc.micts"
1212
minSdk = 27
1313
targetSdk = 35
14-
versionCode = 4
15-
versionName = "1.3"
14+
versionCode = 5
15+
versionName = "1.4"
1616

1717
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
1818
}

app/src/main/java/com/parallelc/micts/ModuleMain.kt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,9 @@ import android.os.Build
66
import android.os.Bundle
77
import android.os.IBinder
88
import android.os.SystemClock
9+
import com.parallelc.micts.hooker.InvokeOmniHooker
910
import com.parallelc.micts.hooker.LongPressHomeHooker
1011
import com.parallelc.micts.hooker.NavStubViewHooker
11-
import com.parallelc.micts.hooker.ReturnFalseHooker
12-
import com.parallelc.micts.hooker.ReturnTrueHooker
1312
import com.parallelc.micts.hooker.VIMSHooker
1413
import io.github.libxposed.api.XposedInterface
1514
import io.github.libxposed.api.XposedModule
@@ -18,10 +17,10 @@ import io.github.libxposed.api.XposedModuleInterface.PackageLoadedParam
1817
import io.github.libxposed.api.XposedModuleInterface.SystemServerLoadedParam
1918

2019
@SuppressLint("PrivateApi")
21-
fun triggerCircleToSearch(): Boolean {
20+
fun triggerCircleToSearch(entryPoint: Int): Boolean {
2221
val bundle = Bundle()
2322
bundle.putLong("invocation_time_ms", SystemClock.elapsedRealtime())
24-
bundle.putInt("omni.entry_point", 1)
23+
bundle.putInt("omni.entry_point", entryPoint)
2524
val iVims = Class.forName("com.android.internal.app.IVoiceInteractionManagerService\$Stub")
2625
val asInterfaceMethod = iVims.getMethod("asInterface", IBinder::class.java)
2726
val getServiceMethod = Class.forName("android.os.ServiceManager").getMethod("getService", String::class.java)
@@ -63,10 +62,7 @@ class ModuleMain(base: XposedInterface, param: ModuleLoadedParam) : XposedModule
6362

6463
runCatching {
6564
val circleToSearchHelper = param.classLoader.loadClass("com.miui.home.recents.cts.CircleToSearchHelper")
66-
hook(circleToSearchHelper.getDeclaredMethod("isSceneForbid", Context::class.java, Int::class.java), ReturnFalseHooker::class.java)
67-
hook(circleToSearchHelper.getDeclaredMethod("hasCtsFeature", Context::class.java), ReturnTrueHooker::class.java)
68-
hook(circleToSearchHelper.getDeclaredMethod("isSettingsLongPressHomeAssistantEnabled", Context::class.java), ReturnTrueHooker::class.java)
69-
hook(circleToSearchHelper.getDeclaredMethod("isThirdHome", Context::class.java), ReturnFalseHooker::class.java)
65+
hook(circleToSearchHelper.getDeclaredMethod("invokeOmni", Context::class.java, Int::class.java, Int::class.java), InvokeOmniHooker::class.java)
7066
return
7167
}.onFailure { e ->
7268
log("hook CircleToSearchHelper fail", e)
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
package com.parallelc.micts.hooker
22

3+
import com.parallelc.micts.triggerCircleToSearch
34
import io.github.libxposed.api.XposedInterface.BeforeHookCallback
45
import io.github.libxposed.api.XposedInterface.Hooker
56
import io.github.libxposed.api.annotations.BeforeInvocation
67
import io.github.libxposed.api.annotations.XposedHooker
78

89
@XposedHooker
9-
class ReturnFalseHooker : Hooker {
10+
class InvokeOmniHooker : Hooker {
1011
companion object {
1112
@JvmStatic
1213
@BeforeInvocation
1314
fun before(callback: BeforeHookCallback) {
14-
callback.returnAndSkip(false)
15+
callback.returnAndSkip(triggerCircleToSearch(callback.args[2] as Int))
1516
}
1617
}
1718
}

app/src/main/java/com/parallelc/micts/hooker/LongPressHomeHooker.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ class LongPressHomeHooker {
3333
@JvmStatic
3434
@BeforeInvocation
3535
fun before(callback: BeforeHookCallback) {
36-
callback.returnAndSkip(triggerCircleToSearch())
36+
callback.returnAndSkip(triggerCircleToSearch(1))
3737
}
3838
}
3939
}

app/src/main/java/com/parallelc/micts/hooker/NavStubViewHooker.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class NavStubViewHooker {
4545
companion object {
4646
private val mCheckLongPress = Runnable {
4747
runCatching {
48-
triggerCircleToSearch()
48+
triggerCircleToSearch(1)
4949
}.onFailure { e ->
5050
module.log("NavStubViewHooker mCheckLongPress fail", e)
5151
}

app/src/main/java/com/parallelc/micts/hooker/ReturnTrueHooker.kt

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
<resources>
2-
<string name="xposed_description">小米系统桌面开启圈定即搜(Circle to Search)功能</string>
2+
<string name="xposed_description">小米系统桌面开启圈定即搜(Circle to Search)功能\nGitHub @parallelcc</string>
33
</resources>
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<resources>
22
<string name="app_name" translatable="false">MiCTS</string>
3-
<string name="xposed_description">Enable Circle to Search for Xiaomi System Launcher</string>
3+
<string name="xposed_description">Enable Circle to Search for Xiaomi System / POCO Launcher\nGitHub @parallelcc</string>
44
</resources>

0 commit comments

Comments
 (0)