Skip to content

Commit af6b871

Browse files
committed
Refactor LID/JID conversion and improve seen hiding
1 parent 9c0448a commit af6b871

File tree

4 files changed

+15
-15
lines changed

4 files changed

+15
-15
lines changed

app/src/main/java/com/wmods/wppenhacer/xposed/core/WppCore.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,24 +133,26 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
133133

134134
}
135135

136-
public static Object resolveJidFromLid(Object lid) {
136+
public static Object convertLidToJid(Object lid) {
137137
if (lid == null) return null;
138138
try {
139139
var rawString = (String) XposedHelpers.callMethod(lid, "getRawString");
140140
if (rawString == null || !rawString.contains("@lid")) return lid;
141-
return ReflectionUtils.callMethod(convertLidToJid, mWaJidMapRepository, lid);
141+
var result = ReflectionUtils.callMethod(convertLidToJid, mWaJidMapRepository, lid);
142+
return result == null ? lid : result;
142143
} catch (Exception e) {
143144
XposedBridge.log(e);
144145
}
145146
return lid;
146147
}
147148

148-
public static Object resolveLidFromJid(Object userJid) {
149+
public static Object convertJidToLid(Object userJid) {
149150
if (userJid == null) return null;
150151
try {
151152
var rawString = (String) XposedHelpers.callMethod(userJid, "getRawString");
152153
if (rawString == null || rawString.contains("@lid")) return userJid;
153-
return ReflectionUtils.callMethod(convertJidToLid, mWaJidMapRepository, userJid);
154+
var result = ReflectionUtils.callMethod(convertJidToLid, mWaJidMapRepository, userJid);
155+
return result == null ? userJid : result;
154156
} catch (Exception e) {
155157
XposedBridge.log(e);
156158
}

app/src/main/java/com/wmods/wppenhacer/xposed/core/components/FMessageWpp.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -247,21 +247,21 @@ public UserJid(@Nullable String rawjid) {
247247
if (rawjid == null) return;
248248
if (checkValidLID(rawjid)) {
249249
this.lid = WppCore.createUserJid(rawjid);
250-
this.jid = WppCore.resolveJidFromLid(this.lid);
250+
this.jid = WppCore.convertLidToJid(this.lid);
251251
} else {
252252
this.jid = WppCore.createUserJid(rawjid);
253-
this.lid = WppCore.resolveLidFromJid(this.jid);
253+
this.lid = WppCore.convertJidToLid(this.jid);
254254
}
255255
}
256256

257257
public UserJid(@Nullable Object lidOrJid) {
258258
if (lidOrJid == null) return;
259259
if (checkValidLID((String) XposedHelpers.callMethod(lidOrJid, "getRawString"))) {
260260
this.lid = lidOrJid;
261-
this.jid = WppCore.resolveJidFromLid(this.lid);
261+
this.jid = WppCore.convertLidToJid(this.lid);
262262
} else {
263263
this.jid = lidOrJid;
264-
this.lid = WppCore.resolveLidFromJid(this.jid);
264+
this.lid = WppCore.convertJidToLid(this.jid);
265265
}
266266
}
267267

@@ -318,11 +318,11 @@ public boolean isGroup() {
318318

319319

320320
public boolean isNull() {
321-
return this.jid == null || this.lid == null;
321+
return this.jid == null && this.lid == null;
322322
}
323323

324-
private static boolean checkValidLID(@NonNull String lid) {
325-
if (lid.contains("@lid")) {
324+
private static boolean checkValidLID(String lid) {
325+
if (lid != null && lid.contains("@lid")) {
326326
String id = lid.split("@")[0];
327327
return lid.length() > 14;
328328
}

app/src/main/java/com/wmods/wppenhacer/xposed/core/db/MessageHistory.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,11 @@
1111

1212
import com.wmods.wppenhacer.xposed.core.WppCore;
1313
import com.wmods.wppenhacer.xposed.core.components.FMessageWpp;
14-
import com.wmods.wppenhacer.xposed.utils.DebugUtils;
1514
import com.wmods.wppenhacer.xposed.utils.Utils;
1615

1716
import java.util.ArrayList;
1817
import java.util.List;
1918

20-
import de.robv.android.xposed.XposedBridge;
2119
import de.robv.android.xposed.XposedHelpers;
2220
import lombok.AccessLevel;
2321
import lombok.AllArgsConstructor;
@@ -244,7 +242,7 @@ public static class MessageSeenItem {
244242
public FMessageWpp getFMessage() {
245243
if (fMessageWpp == null) {
246244
try {
247-
var userJid = WppCore.resolveLidFromJid(WppCore.createUserJid(jid));
245+
var userJid = WppCore.convertJidToLid(WppCore.createUserJid(jid));
248246
if (userJid == null) return null;
249247
var key = XposedHelpers.newInstance(FMessageWpp.Key.TYPE, userJid, message, false);
250248
var fmessageObj = WppCore.getFMessageFromKey(key);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
174174
var jidFiled = ReflectionUtils.getFieldByExtendType(object.getClass(), XposedHelpers.findClass("com.whatsapp.jid.Jid", classLoader));
175175
var jidObject = jidFiled.get(object);
176176
var userJid = new FMessageWpp.UserJid(jidObject);
177-
if (userJid.isGroup()) return;
177+
if (userJid.isGroup() || userJid.isNull()) return;
178178

179179
var tokenDBInstance = fieldTokenDBInstance.get(mInstancePresence);
180180
var tokenData = ReflectionUtils.callMethod(tcTokenMethod, tokenDBInstance, jidObject);

0 commit comments

Comments
 (0)