@@ -209,7 +209,8 @@ public synchronized static Method loadForwardTagMethod(ClassLoader classLoader)
209
209
for (var invoke : invokes ) {
210
210
var method = invoke .getMethodInstance (classLoader );
211
211
if (method .getParameterCount () == 1
212
- && method .getParameterTypes ()[0 ] == int .class
212
+ && (method .getParameterTypes ()[0 ] == int .class
213
+ || method .getParameterTypes ()[0 ] == long .class )
213
214
&& method .getDeclaringClass () == messageInfoClass
214
215
&& method .getReturnType () == void .class ) {
215
216
return method ;
@@ -278,7 +279,7 @@ public synchronized static Method loadTabListMethod(ClassLoader classLoader) thr
278
279
279
280
public synchronized static Method loadGetTabMethod (ClassLoader classLoader ) throws Exception {
280
281
return UnobfuscatorCache .getInstance ().getMethod (classLoader , () -> {
281
- Method result = findFirstMethodUsingStringsFilter (classLoader , "X." , StringMatchType .Contains , "Invalid tab id: 600 " );
282
+ Method result = findFirstMethodUsingStringsFilter (classLoader , "X." , StringMatchType .Contains , "No HomeFragment mapping for community tab id:" );
282
283
if (result == null ) throw new Exception ("GetTab method not found" );
283
284
return result ;
284
285
});
@@ -498,7 +499,7 @@ public synchronized static Method loadStatusActivePage(ClassLoader classLoader)
498
499
499
500
public synchronized static Class <?> loadStatusDownloadMediaClass (ClassLoader classLoader ) throws Exception {
500
501
return UnobfuscatorCache .getInstance ().getClass (classLoader , () -> {
501
- var clazz = findFirstClassUsingStrings (classLoader , StringMatchType .Contains , "FMessageVideo/Cloned " );
502
+ var clazz = findFirstClassUsingStrings (classLoader , StringMatchType .Contains , "static.whatsapp.net/downloadable?category=PSA " );
502
503
if (clazz == null ) throw new Exception ("StatusDownloadMedia class not found" );
503
504
return clazz ;
504
505
});
@@ -1428,8 +1429,15 @@ public synchronized static Field loadOriginFMessageField(ClassLoader classLoader
1428
1429
1429
1430
public synchronized static Method loadForwardAudioTypeMethod (ClassLoader classLoader ) throws Exception {
1430
1431
return UnobfuscatorCache .getInstance ().getMethod (classLoader , () -> {
1431
- var result = findFirstMethodUsingStrings (classLoader , StringMatchType .Contains , "forwardable" , "FMessageFactory/newFMessageForForward/thumbnail" );
1432
- if (result == null ) throw new RuntimeException ("ForwardAudioType method not found" );
1432
+ var results = findAllMethodUsingStrings (classLoader , StringMatchType .Contains , "FMessageFactory/newFMessageForForward/thumbnail" );
1433
+ if (results == null || results .length < 1 ) throw new RuntimeException ("ForwardAudioType method not found" );
1434
+ Method result ;
1435
+ if (results .length > 1 ) {
1436
+ result = findFirstMethodUsingStrings (classLoader , StringMatchType .Contains , "forwardable" , "FMessageFactory/newFMessageForForward/thumbnail" );
1437
+ } else {
1438
+ // 2.24.18.xx returns one method
1439
+ result = results [0 ];
1440
+ }
1433
1441
return result ;
1434
1442
});
1435
1443
}
0 commit comments