22
33import android .os .Message ;
44import android .text .TextUtils ;
5+ import android .widget .Toast ;
56
67import androidx .annotation .NonNull ;
78
1011import com .wmods .wppenhacer .xposed .core .devkit .Unobfuscator ;
1112import com .wmods .wppenhacer .xposed .features .general .Tasker ;
1213import com .wmods .wppenhacer .xposed .utils .ReflectionUtils ;
14+ import com .wmods .wppenhacer .xposed .utils .Utils ;
1315
1416import java .lang .reflect .InvocationTargetException ;
1517import java .util .ArrayList ;
@@ -34,8 +36,16 @@ public void doHook() throws Throwable {
3436 XposedBridge .hookMethod (onCallReceivedMethod , new XC_MethodHook () {
3537 @ Override
3638 protected void beforeHookedMethod (MethodHookParam param ) throws Throwable {
37- Object callinfo = (( Message ) param . args [ 0 ]). obj ;
39+ Object callinfo = null ;
3840 Class <?> callInfoClass = XposedHelpers .findClass ("com.whatsapp.voipcalling.CallInfo" , classLoader );
41+ if (param .args [0 ] instanceof Message ) {
42+ callinfo = ((Message ) param .args [0 ]).obj ;
43+ } else if (param .args .length > 1 && callInfoClass .isInstance (param .args [1 ])) {
44+ callinfo = param .args [1 ];
45+ } else {
46+ Utils .showToast ("Invalid call info" , Toast .LENGTH_SHORT );
47+ return ;
48+ }
3949 if (callinfo == null || !callInfoClass .isInstance (callinfo )) return ;
4050 if ((boolean ) XposedHelpers .callMethod (callinfo , "isCaller" )) return ;
4151 var userJid = XposedHelpers .callMethod (callinfo , "getPeerJid" );
0 commit comments