Skip to content

Commit 0b3a291

Browse files
committed
Fix bug in custom Wallpaper
1 parent 575f3c8 commit 0b3a291

File tree

4 files changed

+17
-18
lines changed

4 files changed

+17
-18
lines changed

app/src/main/java/com/wmods/wppenhacer/utils/DrawableColors.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public static void replaceColor(Drawable drawable, HashMap<String, String> color
6262
if (gradientColors != null) {
6363
for (var i = 0; i < gradientColors.length; i++) {
6464
var color = gradientColors[i];
65-
var newColor = IColors.getFromIntColor(color);
65+
var newColor = IColors.getFromIntColor(color, colors);
6666
if (color == newColor) continue;
6767
gradientColors[i] = newColor;
6868
}
@@ -72,16 +72,15 @@ public static void replaceColor(Drawable drawable, HashMap<String, String> color
7272
replaceColor(insetDrawable.getDrawable(), colors);
7373
} else if (drawable instanceof NinePatchDrawable ninePatchDrawable) {
7474
var color = getNinePatchDrawableColor(ninePatchDrawable);
75-
var newColor = IColors.getFromIntColor(color);
75+
var newColor = IColors.getFromIntColor(color, colors);
7676
if (color == newColor) return;
7777
ninePatchDrawable.setTintList(ColorStateList.valueOf(newColor));
78-
7978
} else if (drawable instanceof ColorDrawable colorDrawable) {
8079
var color = getColorDrawableColor(colorDrawable);
81-
colorDrawable.setColor(IColors.getFromIntColor(color));
80+
colorDrawable.setColor(IColors.getFromIntColor(color, colors));
8281
} else {
8382
var color = getColor(drawable);
84-
var newColor = IColors.getFromIntColor(color);
83+
var newColor = IColors.getFromIntColor(color, colors);
8584
if (color == newColor) return;
8685
drawable.setColorFilter(new PorterDuffColorFilter(newColor, PorterDuff.Mode.SRC_IN));
8786
}

app/src/main/java/com/wmods/wppenhacer/utils/IColors.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public static String toString(int i) {
6767
}
6868

6969

70-
public static int getFromIntColor(int color) {
70+
public static int getFromIntColor(int color, HashMap<String, String> colors) {
7171
var sColor = IColors.toString(color);
7272
var newColor = colors.get(sColor);
7373
if (newColor != null && newColor.length() == 9) {

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private void hookWallpaper() throws Exception {
7575
return;
7676

7777
var clazz = XposedHelpers.findClass("com.whatsapp.HomeActivity", classLoader);
78-
XposedHelpers.findAndHookMethod(clazz.getSuperclass(), "onCreate", Bundle.class, new XC_MethodHook() {
78+
XposedHelpers.findAndHookMethod(clazz, "onCreate", Bundle.class, new XC_MethodHook() {
7979
@Override
8080
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
8181
var activity = (Activity) param.thisObject;
@@ -107,12 +107,9 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
107107
var colorfilters = XposedHelpers.getObjectField(background, "A01");
108108
var fields = ReflectionUtils.getFieldsByType(colorfilters.getClass(), ColorStateList.class);
109109
var colorStateList = (ColorStateList) fields.get(0).get(colorfilters);
110-
if (colorStateList == null) return;
111-
var color = IColors.toString(colorStateList.getDefaultColor());
112-
var newColor = navAlpha.get(color);
113-
if (newColor != null) {
114-
background.setTint(IColors.parseColor(newColor));
115-
}
110+
var newColor = IColors.getFromIntColor(colorStateList.getDefaultColor(), navAlpha);
111+
if (newColor == colorStateList.getDefaultColor()) return;
112+
background.setTint(newColor);
116113
} catch (Throwable ignored) {
117114
}
118115
}
@@ -257,7 +254,9 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
257254
private void replaceTransparency(HashMap<String, String> wallpaperColors, float mAlpha) {
258255
var hexAlpha = Integer.toHexString((int) Math.ceil(mAlpha * 255));
259256
hexAlpha = hexAlpha.length() == 1 ? "0" + hexAlpha : hexAlpha;
260-
for (var c : List.of("#ff0b141a", "#ff10161a", "#ff111b21", "#ff000000", "#ffffffff", "#ff1b8755", "#ff0a1014", "#ff12181c", "#ff10161a", "#ff20272b")) {
257+
for (var c : List.of("#ff0b141a", "#ff10161a", "#ff111b21", "#ff000000",
258+
"#ffffffff", "#ff1b8755", "#ff0a1014", "#ff12181c", "#ff20272b", "#ff3a484f"
259+
)) {
261260
var oldColor = wallpaperColors.get(c);
262261
if (oldColor == null) continue;
263262
var newColor = "#" + hexAlpha + oldColor.substring(3);
@@ -269,7 +268,8 @@ private void replaceTransparency(HashMap<String, String> wallpaperColors, float
269268
private void injectWallpaper(View view) {
270269
var content = (ViewGroup) view;
271270
var rootView = (ViewGroup) content.getChildAt(0);
272-
var header = (ViewGroup) rootView.findViewById(Utils.getID("header", "id"));
271+
272+
var header = content.findViewById(Utils.getID("header", "id"));
273273
replaceColors(header, toolbarAlpha);
274274
var frameLayout = new WallpaperView(rootView.getContext(), prefs, properties);
275275
rootView.addView(frameLayout, 0);
@@ -298,7 +298,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
298298
if (colorStateList != null) {
299299
var mColors = (int[]) XposedHelpers.getObjectField(colorStateList, "mColors");
300300
for (int i = 0; i < mColors.length; i++) {
301-
mColors[i] = IColors.getFromIntColor(mColors[i]);
301+
mColors[i] = IColors.getFromIntColor(mColors[i], IColors.colors);
302302
}
303303
XposedHelpers.setObjectField(colorStateList, "mColors", mColors);
304304
param.args[0] = colorStateList;
@@ -324,7 +324,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
324324
return;
325325
}
326326
}
327-
param.args[0] = IColors.getFromIntColor(color);
327+
param.args[0] = IColors.getFromIntColor(color, IColors.colors);
328328
}
329329
}
330330
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
8787
if (typedValue.type >= TypedValue.TYPE_FIRST_INT
8888
&& typedValue.type <= TypedValue.TYPE_LAST_INT) {
8989
if (typedValue.data == 0) return;
90-
typedValue.data = IColors.getFromIntColor(typedValue.data);
90+
typedValue.data = IColors.getFromIntColor(typedValue.data, IColors.colors);
9191
}
9292
}
9393
}

0 commit comments

Comments
 (0)