@@ -47,14 +47,12 @@ public void doHook() throws Exception {
4747 @ Override
4848 protected void beforeHookedMethod (MethodHookParam param ) throws Throwable {
4949 if (!sendJob .isInstance (param .thisObject )) return ;
50- var srj = sendJob .cast (param .thisObject );
51- var messageIds = (String []) XposedHelpers .getObjectField (srj , "messageIds" );
52- var firstmessage = messageIds [0 ];
53- if (firstmessage != null && WppCore .getPrivBoolean (firstmessage + "_rpass" , false )) {
54- WppCore .removePrivKey (firstmessage + "_rpass" );
50+ var sendReadReceiptJob = sendJob .cast (param .thisObject );
51+ var messageIds = (String []) XposedHelpers .getObjectField (sendReadReceiptJob , "messageIds" );
52+ if (XposedHelpers .getAdditionalInstanceField (sendReadReceiptJob , "blue_on_reply" ) != null ) {
5553 return ;
5654 }
57- var lid = (String ) XposedHelpers .getObjectField (srj , "jid" );
55+ var lid = (String ) XposedHelpers .getObjectField (sendReadReceiptJob , "jid" );
5856 var userJid = new FMessageWpp .UserJid (lid );
5957 if (userJid .isNull ()) return ;
6058 var privacy = CustomPrivacy .getJSON (userJid .getPhoneNumber ());
@@ -68,7 +66,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
6866 isHide = true ;
6967 }
7068 } else if (userJid .isStatus ()) {
71- var participant = (String ) XposedHelpers .getObjectField (srj , "participant" );
69+ var participant = (String ) XposedHelpers .getObjectField (sendReadReceiptJob , "participant" );
7270 var customHideStatusView = CustomPrivacy .getJSON (WppCore .stripJID (participant )).optBoolean ("HideViewStatus" , hidestatusview );
7371 if (customHideStatusView || ghostmode ) {
7472 param .setResult (null );
@@ -95,13 +93,14 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
9593 XposedBridge .hookMethod (ReceiptMethod , new XC_MethodHook () {
9694 @ Override
9795 protected void beforeHookedMethod (MethodHookParam param ) throws Throwable {
98- var keyObject = ReflectionUtils .getArg (param .args , FMessageWpp .Key .TYPE , 0 );
99- var fmessage = new FMessageWpp .Key (keyObject ).getFMessage ();
100- var keyMessage = fmessage .getKey ();
10196 if (WppCore .getCurrentConversation () != WppCore .getCurrentActivity ()) return ;
102- DebugUtils .debugArgs (param .args );
103- if (MessageHistory .getInstance ().getHideSeenMessage (keyMessage .remoteJid .getUserRawString (), keyMessage .messageID , fmessage .isViewOnce () ? MessageHistory .MessageType .VIEW_ONCE_TYPE : MessageHistory .MessageType .MESSAGE_TYPE ) != null ) {
104- return ;
97+ var keyObject = ReflectionUtils .getArg (param .args , FMessageWpp .Key .TYPE , 0 );
98+ var keyMessage = new FMessageWpp .Key (keyObject );
99+ var fmessage = keyMessage .getFMessage ();
100+ if (fmessage != null ) {
101+ if (MessageHistory .getInstance ().getHideSeenMessage (keyMessage .remoteJid .getUserRawString (), keyMessage .messageID , fmessage .isViewOnce () ? MessageHistory .MessageType .VIEW_ONCE_TYPE : MessageHistory .MessageType .MESSAGE_TYPE ) != null ) {
102+ return ;
103+ }
105104 }
106105 var userJid = ReflectionUtils .getArg (param .args , classLoader .loadClass ("com.whatsapp.jid.Jid" ), 0 );
107106 if (userJid == null ) return ;
@@ -117,7 +116,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
117116 param .args [msgTypeIdx ] = null ;
118117 }
119118
120- if (param .args [msgTypeIdx ] == null ) {
119+ if (param .args [msgTypeIdx ] == null && fmessage != null ) {
121120 MessageHistory .getInstance ().insertHideSeenMessage (keyMessage .remoteJid .getPhoneRawString (), keyMessage .messageID , fmessage .isViewOnce () ? MessageHistory .MessageType .VIEW_ONCE_TYPE : MessageHistory .MessageType .MESSAGE_TYPE , false );
122121 HideSeenView .updateAllBubbleViews ();
123122 }
0 commit comments