Skip to content

Commit e5942ba

Browse files
committed
feat: Add various fixes
- loadSeeMoreConstructor: Find alternative constructor - GroupAdmin: Fix group admin indicator
1 parent 461c12f commit e5942ba

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1218,10 +1218,11 @@ public synchronized static Constructor loadSeeMoreConstructor(ClassLoader loader
12181218
var clazzData = classList.get(0);
12191219
XposedBridge.log(clazzData.toString());
12201220
for (var method : clazzData.getMethods()) {
1221-
if (method.getParamCount() == 2 && method.isConstructor() && method.getParamTypes().get(0).getName().equals(int.class.getName()) && method.getParamTypes().get(1).getName().equals(int.class.getName())) {
1221+
if (Arrays.asList(2, 3).contains(method.getParamCount()) && method.isConstructor() && method.getParamTypes().stream().allMatch(c -> c.getName().equals(int.class.getName()))) {
12221222
return method.getConstructorInstance(loader);
12231223
}
12241224
}
1225+
12251226
throw new RuntimeException("SeeMore constructor 2 not found");
12261227
});
12271228
}

app/src/main/java/com/wmods/wppenhacer/xposed/features/others/GroupAdmin.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,17 +36,21 @@ public void doHook() throws Throwable {
3636
@SuppressLint("ResourceType")
3737
@Override
3838
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
39-
var fMessage = XposedHelpers.callMethod(param.thisObject, "getFMessage");
39+
var targetObj = param.thisObject != null
40+
? param.thisObject
41+
: param.args[1];
42+
43+
var fMessage = XposedHelpers.callMethod(targetObj, "getFMessage");
4044
var userJidClass = XposedHelpers.findClass("com.whatsapp.jid.UserJid", classLoader);
4145
var methodResult = ReflectionUtils.findMethodUsingFilter(fMessage.getClass(), method -> method.getReturnType() == userJidClass && method.getParameterCount() == 0);
4246
var userJid = ReflectionUtils.callMethod(methodResult, fMessage);
4347
var chatCurrentJid = WppCore.getCurrentRawJID();
4448
if (!WppCore.isGroup(chatCurrentJid)) return;
45-
var field = ReflectionUtils.getFieldByType(param.thisObject.getClass(), grpcheckAdmin.getDeclaringClass());
46-
var grpParticipants = field.get(param.thisObject);
49+
var field = ReflectionUtils.getFieldByType(targetObj.getClass(), grpcheckAdmin.getDeclaringClass());
50+
var grpParticipants = field.get(targetObj);
4751
var jidGrp = jidFactory.invoke(null, chatCurrentJid);
4852
var result = ReflectionUtils.callMethod(grpcheckAdmin, grpParticipants, jidGrp, userJid);
49-
var view = (View) param.thisObject;
53+
var view = (View) targetObj;
5054
var context = view.getContext();
5155
ImageView iconAdmin;
5256
if ((iconAdmin = view.findViewById(0x7fff0010)) == null) {

0 commit comments

Comments
 (0)