@@ -209,7 +209,8 @@ public synchronized static Method loadForwardTagMethod(ClassLoader classLoader)
209209 for (var invoke : invokes ) {
210210 var method = invoke .getMethodInstance (classLoader );
211211 if (method .getParameterCount () == 1
212- && method .getParameterTypes ()[0 ] == int .class
212+ && (method .getParameterTypes ()[0 ] == int .class
213+ || method .getParameterTypes ()[0 ] == long .class )
213214 && method .getDeclaringClass () == messageInfoClass
214215 && method .getReturnType () == void .class ) {
215216 return method ;
@@ -278,7 +279,7 @@ public synchronized static Method loadTabListMethod(ClassLoader classLoader) thr
278279
279280 public synchronized static Method loadGetTabMethod (ClassLoader classLoader ) throws Exception {
280281 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:" );
282283 if (result == null ) throw new Exception ("GetTab method not found" );
283284 return result ;
284285 });
@@ -498,7 +499,7 @@ public synchronized static Method loadStatusActivePage(ClassLoader classLoader)
498499
499500 public synchronized static Class <?> loadStatusDownloadMediaClass (ClassLoader classLoader ) throws Exception {
500501 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 " );
502503 if (clazz == null ) throw new Exception ("StatusDownloadMedia class not found" );
503504 return clazz ;
504505 });
@@ -1428,8 +1429,15 @@ public synchronized static Field loadOriginFMessageField(ClassLoader classLoader
14281429
14291430 public synchronized static Method loadForwardAudioTypeMethod (ClassLoader classLoader ) throws Exception {
14301431 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+ }
14331441 return result ;
14341442 });
14351443 }
0 commit comments