Skip to content

Commit 2c57808

Browse files
committed
Fix: Custom Privacy not working
1 parent 6befc22 commit 2c57808

File tree

5 files changed

+23
-10
lines changed

5 files changed

+23
-10
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,9 @@ public static Object getFMessageFromKey(Object messageKey) {
376376
}
377377

378378

379-
public static Object createUserJid(String rawjid) {
379+
@Nullable
380+
public static Object createUserJid(@Nullable String rawjid) {
381+
if (rawjid == null) return null;
380382
var genInstance = XposedHelpers.newInstance(mGenJidClass);
381383
try {
382384
return mGenJidMethod.invoke(genInstance, rawjid);

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

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public String getPluginName() {
106106
return "Toast Viewer";
107107
}
108108

109-
private synchronized void checkDataBase(SQLiteDatabase sql, long id, String contactName, String raw, boolean toastViewedMessage, boolean toast_viewed_status) {
109+
private synchronized void checkDataBase(SQLiteDatabase sql, long id, String contactName, String rawJid, boolean toastViewedMessage, boolean toast_viewed_status) {
110110
try (var result2 = sql.query("message", null, "_id = ?", new String[]{String.valueOf(id)}, null, null, null)) {
111111
if (!result2.moveToNext()) return;
112112

@@ -115,25 +115,32 @@ private synchronized void checkDataBase(SQLiteDatabase sql, long id, String cont
115115
if (toast_viewed_status) {
116116
Utils.showToast(Utils.getApplication().getString(ResId.string.viewed_your_status, contactName), Toast.LENGTH_LONG);
117117
}
118-
Tasker.sendTaskerEvent(contactName, WppCore.stripJID(raw), "viewed_status");
118+
Tasker.sendTaskerEvent(contactName, WppCore.stripJID(rawJid), "viewed_status");
119119
return;
120120
}
121121

122-
if (Objects.equals(WppCore.getCurrentRawJID(), raw)) return;
122+
if (Objects.equals(WppCore.getCurrentRawJID(), rawJid)) return;
123123

124124
var chat_id = result2.getLong(result2.getColumnIndexOrThrow("chat_row_id"));
125125
try (var result3 = sql.query("chat", null, "_id = ? AND subject IS NULL", new String[]{String.valueOf(chat_id)}, null, null, null)) {
126126
if (!result3.moveToNext()) return;
127127

128-
var key = raw + "_" + "viewed_message";
128+
var key = rawJid + "_" + "viewed_message";
129129
long currentTime = System.currentTimeMillis();
130130
Long lastEventTime = lastEventTimeMap.get(key);
131131
if (lastEventTime == null || (currentTime - lastEventTime) >= MIN_INTERVAL) {
132132
lastEventTimeMap.put(key, currentTime);
133+
Tasker.sendTaskerEvent(contactName, WppCore.stripJID(rawJid), "viewed_message");
133134
if (toastViewedMessage) {
135+
XposedBridge.log("Call Jid");
136+
var userJid = WppCore.createUserJid(WppCore.getCurrentRawJID());
137+
var jid = WppCore.resolveJidFromLid(userJid);
138+
var rawCurJid = WppCore.getRawString(jid);
139+
if (Objects.equals(rawCurJid, rawJid)) {
140+
return;
141+
}
134142
Utils.showToast(Utils.getApplication().getString(ResId.string.viewed_your_message, contactName), Toast.LENGTH_LONG);
135143
}
136-
Tasker.sendTaskerEvent(contactName, WppCore.stripJID(raw), "viewed_message");
137144
}
138145
}
139146
}

app/src/main/java/com/wmods/wppenhacer/xposed/features/privacy/HideReceipt.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
4141
return;
4242
var key = ReflectionUtils.getArg(param.args, FMessageWpp.Key.TYPE, 0);
4343
var messageKey = new FMessageWpp.Key(key);
44-
var userJid = messageKey.remoteJid;
44+
var userJid = WppCore.resolveJidFromLid(messageKey.remoteJid);
4545
var rawJid = WppCore.getRawString(userJid);
4646
var number = WppCore.stripJID(rawJid);
4747
var privacy = CustomPrivacy.getJSON(number);

app/src/main/java/com/wmods/wppenhacer/xposed/features/privacy/HideSeen.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
5151
WppCore.removePrivKey(firstmessage + "_rpass");
5252
return;
5353
}
54-
var jid = (String) XposedHelpers.getObjectField(srj, "jid");
54+
var lid = (String) XposedHelpers.getObjectField(srj, "jid");
55+
var ojid = WppCore.createUserJid(lid);
56+
var jid = WppCore.getRawString(WppCore.resolveJidFromLid(ojid));
5557
if (jid == null) return;
5658
var number = WppCore.stripJID(jid);
5759
var privacy = CustomPrivacy.getJSON(number);
@@ -108,7 +110,9 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
108110
return;
109111
var msgTypeIdx = ReflectionUtils.findIndexOfType(((Method) param.method).getParameterTypes(), String.class);
110112
if (!Objects.equals("read", param.args[msgTypeIdx])) return;
111-
var jid = WppCore.getCurrentRawJID();
113+
var lid = WppCore.getCurrentRawJID();
114+
var ojid = WppCore.createUserJid(lid);
115+
var jid = WppCore.getRawString(WppCore.resolveJidFromLid(ojid));
112116
var number = WppCore.stripJID(jid);
113117
var privacy = CustomPrivacy.getJSON(number);
114118
var customHideRead = privacy.optBoolean("HideSeen", hideread);

app/src/main/java/com/wmods/wppenhacer/xposed/features/privacy/TypingPrivacy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public void doHook() throws Throwable {
2929
@Override
3030
protected void beforeHookedMethod(MethodHookParam param) {
3131
var p1 = (int) param.args[2];
32-
var userJid = param.args[1];
32+
var userJid = WppCore.resolveJidFromLid(param.args[1]);
3333
var number = WppCore.stripJID(WppCore.getRawString(userJid));
3434
var privacy = CustomPrivacy.getJSON(number);
3535
var customHideTyping = privacy.optBoolean("HideTyping", ghostmode_t);

0 commit comments

Comments
 (0)