summaryrefslogtreecommitdiff
path: root/app/src/main/java/org/eu/zajc/xheadset/XHeadsetModule.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/org/eu/zajc/xheadset/XHeadsetModule.java')
-rw-r--r--app/src/main/java/org/eu/zajc/xheadset/XHeadsetModule.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/app/src/main/java/org/eu/zajc/xheadset/XHeadsetModule.java b/app/src/main/java/org/eu/zajc/xheadset/XHeadsetModule.java
new file mode 100644
index 0000000..4889aa7
--- /dev/null
+++ b/app/src/main/java/org/eu/zajc/xheadset/XHeadsetModule.java
@@ -0,0 +1,41 @@
1package org.eu.zajc.xheadset;
2
3import android.util.*;
4import android.app.*;
5import android.widget.*;
6
7import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
8import de.robv.android.xposed.*;
9import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
10
11public class XHeadsetModule implements IXposedHookLoadPackage {
12
13 @Override
14 public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {
15 final XHeadsetStateCommunicator comm = new XHeadsetStateCommunicator();
16 if (lpparam.packageName.equals("android")) {
17 findAndHookMethod("com.android.server.WiredAccessoryManager", lpparam.classLoader, "updateLocked", String.class, int.class, new XC_MethodHook() {
18 @Override
19 protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
20 comm.bind(AndroidAppHelper.currentApplication());
21 if (comm.isEnabled()) {
22 Log.e("XHeadset", "Spoofing headphone state");
23 param.args[1] = (int) (1 << 1);
24 } else {
25 Log.e("XHeadset", "Not spoofing headphone state");
26 }
27 }
28 });
29 } else if (lpparam.packageName.equals("com.android.systemui")) {
30 findAndHookMethod("com.android.systemui.statusbar.policy.Clock", lpparam.classLoader, "updateClock", new XC_MethodHook() {
31 @Override
32 protected void afterHookedMethod(MethodHookParam param) throws Throwable {
33 TextView tv = (TextView) param.thisObject;
34 String text = tv.getText().toString();
35 tv.setText(text + " :)");
36 }
37 });
38 }
39 }
40
41}