Skip to content

Commit e53e91f

Browse files
committed
Fix bug in Bubble Colors
Signed-off-by: Dev4Mod <[email protected]>
1 parent e5202ae commit e53e91f

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

app/src/main/java/com/wmods/wppenhacer/xposed/core/devkit/Unobfuscator.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1656,6 +1656,14 @@ public synchronized static Method loadBubbleDrawableMethod(ClassLoader classLoad
16561656
});
16571657
}
16581658

1659+
public synchronized static Method loadDateWrapper(ClassLoader classLoader) throws Exception {
1660+
return UnobfuscatorCache.getInstance().getMethod(classLoader, () -> {
1661+
var methodData = dexkit.findMethod(FindMethod.create().matcher(MethodMatcher.create().name("getDateWrapperBackground")));
1662+
if (methodData.isEmpty()) throw new Exception("LoadDateWrapper method not found");
1663+
return methodData.get(0).getMethodInstance(classLoader);
1664+
});
1665+
}
1666+
16591667
public static synchronized Method[] loadRootDetector(ClassLoader classLoader) {
16601668
var methods = findAllMethodUsingStrings(classLoader, StringMatchType.Contains, "/system/bin/su");
16611669
if (methods.length == 0) throw new RuntimeException("RootDetector method not found");

app/src/main/java/com/wmods/wppenhacer/xposed/features/customization/BubbleColors.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import androidx.annotation.NonNull;
1010

1111
import com.wmods.wppenhacer.xposed.core.Feature;
12+
import com.wmods.wppenhacer.xposed.core.components.FMessageWpp;
1213
import com.wmods.wppenhacer.xposed.core.devkit.Unobfuscator;
1314
import com.wmods.wppenhacer.xposed.utils.DesignUtils;
1415
import com.wmods.wppenhacer.xposed.utils.Utils;
@@ -20,6 +21,7 @@
2021
import de.robv.android.xposed.XC_MethodHook;
2122
import de.robv.android.xposed.XSharedPreferences;
2223
import de.robv.android.xposed.XposedBridge;
24+
import de.robv.android.xposed.XposedHelpers;
2325

2426
public class BubbleColors extends Feature {
2527
public BubbleColors(ClassLoader loader, XSharedPreferences preferences) {
@@ -88,6 +90,24 @@ public void doHook() throws Exception {
8890
}
8991
}
9092

93+
var dateWrapper = Unobfuscator.loadDateWrapper(classLoader);
94+
XposedBridge.hookMethod(dateWrapper, new XC_MethodHook() {
95+
@Override
96+
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
97+
var fmessageObject = XposedHelpers.callMethod(param.thisObject, "getFMessage");
98+
if (fmessageObject == null) return;
99+
var view = (Drawable) param.getResult();
100+
var fmessage = new FMessageWpp(fmessageObject);
101+
if (fmessage.getKey().isFromMe) {
102+
if (bubbleRightColor == 0) return;
103+
view.setColorFilter(new PorterDuffColorFilter(bubbleRightColor, PorterDuff.Mode.SRC_IN));
104+
} else {
105+
if (bubbleLeftColor == 0) return;
106+
view.setColorFilter(new PorterDuffColorFilter(bubbleLeftColor, PorterDuff.Mode.SRC_IN));
107+
}
108+
109+
}
110+
});
91111

92112
var bubbleDrawableMethod = Unobfuscator.loadBubbleDrawableMethod(classLoader);
93113

0 commit comments

Comments
 (0)