Skip to content

Commit 5c2e3f2

Browse files
add Window hook
hooks the KEEP_SCREEN_ON_FLAG for applications
1 parent c170eb5 commit 5c2e3f2

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
com.programminghoch10.AntiWakeLock.PowerManagerHook
2+
com.programminghoch10.AntiWakeLock.WindowHook
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.programminghoch10.AntiWakeLock
2+
3+
import android.util.Log
4+
import android.view.Window
5+
import android.view.WindowManager
6+
import de.robv.android.xposed.IXposedHookLoadPackage
7+
import de.robv.android.xposed.XC_MethodHook
8+
import de.robv.android.xposed.XposedHelpers
9+
import de.robv.android.xposed.callbacks.XC_LoadPackage
10+
11+
class WindowHook : IXposedHookLoadPackage {
12+
fun filterKeepScreenOnFlag(flags: Int) : Int {
13+
return flags and WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON.inv()
14+
}
15+
16+
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
17+
XposedHelpers.findAndHookMethod(Window::class.java, "addFlags", Int::class.java, object: XC_MethodHook() {
18+
override fun beforeHookedMethod(param: MethodHookParam) {
19+
param.args[0] = filterKeepScreenOnFlag(param.args[0] as Int)
20+
}
21+
})
22+
XposedHelpers.findAndHookMethod(Window::class.java, "setFlags", Int::class.java, Int::class.java, object: XC_MethodHook() {
23+
override fun beforeHookedMethod(param: MethodHookParam) {
24+
param.args[0] = filterKeepScreenOnFlag(param.args[0] as Int)
25+
param.args[1] = filterKeepScreenOnFlag(param.args[1] as Int)
26+
}
27+
})
28+
}
29+
}

0 commit comments

Comments
 (0)