Skip to content

Commit 78d3218

Browse files
authored
Merge pull request #271 from frknkrc44/fix-25-6
feat: Add 25.6.xx support
2 parents 57c06d1 + 00c77f2 commit 78d3218

File tree

14 files changed

+43
-21
lines changed

14 files changed

+43
-21
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
155155
}
156156
});
157157

158-
XposedHelpers.findAndHookMethod("com.whatsapp.HomeActivity", loader, "onCreate", Bundle.class, new XC_MethodHook() {
158+
XposedHelpers.findAndHookMethod(WppCore.getHomeActivityClass(loader), "onCreate", Bundle.class, new XC_MethodHook() {
159159
@Override
160160
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
161161
super.afterHookedMethod(param);

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,22 @@ public static Activity getCurrentActivity() {
207207
return mCurrentActivity;
208208
}
209209

210+
public synchronized static Class getHomeActivityClass(@NonNull ClassLoader loader) {
211+
Class oldHomeClass = XposedHelpers.findClassIfExists("com.whatsapp.HomeActivity", loader);
212+
213+
return oldHomeClass != null
214+
? oldHomeClass
215+
: XposedHelpers.findClass("com.whatsapp.home.ui.HomeActivity", loader);
216+
}
217+
218+
public synchronized static Class getTabsPagerClass(@NonNull ClassLoader loader) {
219+
Class oldHomeClass = XposedHelpers.findClassIfExists("com.whatsapp.TabsPager", loader);
220+
221+
return oldHomeClass != null
222+
? oldHomeClass
223+
: XposedHelpers.findClass("com.whatsapp.home.ui.TabsPager", loader);
224+
}
225+
210226
// public static Activity getActivityBySimpleName(String name) {
211227
// for (var activity : activities) {
212228
// if (activity.getClass().getSimpleName().equals(name)) {
@@ -386,7 +402,7 @@ public static Activity getCurrentConversation() {
386402

387403
// for tablet UI, they're using HomeActivity instead of Conversation
388404
// TODO: Add more checks for ConversationFragment
389-
Class<?> home = XposedHelpers.findClass("com.whatsapp.HomeActivity", mCurrentActivity.getClassLoader());
405+
Class<?> home = getHomeActivityClass(mCurrentActivity.getClassLoader());
390406
if (mCurrentActivity.getResources().getConfiguration().smallestScreenWidthDp >= 600 && home.isInstance(mCurrentActivity))
391407
return mCurrentActivity;
392408
return null;

app/src/main/java/com/wmods/wppenhacer/xposed/core/devkit/Unobfuscator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import android.widget.FrameLayout;
1616
import android.widget.TextView;
1717

18+
import com.wmods.wppenhacer.xposed.core.WppCore;
1819
import com.wmods.wppenhacer.xposed.utils.ReflectionUtils;
1920
import com.wmods.wppenhacer.xposed.utils.Utils;
2021

@@ -1860,7 +1861,7 @@ public static Method loadChangeTitleLogoMethod(ClassLoader classLoader) throws E
18601861
public static Field loadChangeTitleLogoField(ClassLoader classLoader) throws Exception {
18611862
return UnobfuscatorCache.getInstance().getField(classLoader, () -> {
18621863
var methodData = dexkit.getMethodData(loadChangeTitleLogoMethod(classLoader));
1863-
var clazz = XposedHelpers.findClass("com.whatsapp.HomeActivity", classLoader);
1864+
var clazz = WppCore.getHomeActivityClass(classLoader);
18641865
var usingFields = methodData.getUsingFields();
18651866
for (var uField : usingFields) {
18661867
var field = uField.getField().getFieldInstance(classLoader);

app/src/main/java/com/wmods/wppenhacer/xposed/features/customization/CustomThemeV2.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ private void hookWallpaper() throws Exception {
112112
replaceTransparency(toolbarAlpha, (100 - wallpaperToolbarAlpha) / 100.0f);
113113
}
114114

115-
var clazz = XposedHelpers.findClass("com.whatsapp.HomeActivity", classLoader);
116-
XposedHelpers.findAndHookMethod(clazz, "onCreate", Bundle.class, new XC_MethodHook() {
115+
var homeActivityClass = WppCore.getHomeActivityClass(classLoader);
116+
XposedHelpers.findAndHookMethod(homeActivityClass, "onCreate", Bundle.class, new XC_MethodHook() {
117117
@Override
118118
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
119119
var activity = (Activity) param.thisObject;
@@ -125,10 +125,8 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
125125

126126
var revertWallAlpha = revertColors(wallAlpha);
127127

128-
var homeClass = XposedHelpers.findClass("com.whatsapp.HomeActivity", classLoader);
129-
130128
WppCore.addListenerActivity((activity, type) -> {
131-
var isHome = homeClass.isInstance(activity);
129+
var isHome = homeActivityClass.isInstance(activity);
132130
if (WppCore.ActivityChangeState.ChangeType.RESUMED == type && isHome) {
133131
mMainContainer = activity.findViewById(android.R.id.content);
134132
if (mMainContainer != null) {
@@ -275,7 +273,7 @@ private void injectWallpaper(View view) {
275273
}
276274

277275
private boolean checkNotHomeActivity() {
278-
var homeClass = XposedHelpers.findClass("com.whatsapp.HomeActivity", classLoader);
276+
var homeClass = WppCore.getHomeActivityClass(classLoader);
279277
var currentActivity = WppCore.getCurrentActivity();
280278
return (currentActivity == null || !homeClass.isInstance(currentActivity));
281279
}

app/src/main/java/com/wmods/wppenhacer/xposed/features/customization/CustomToolbar.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void doHook() throws Exception {
5151
var typeArchive = prefs.getString("typearchive", "0");
5252
onMenuItemSelected = Unobfuscator.loadOnMenuItemSelected(classLoader);
5353
var methodHook = new MethodHook(showName, showBio, typeArchive);
54-
XposedHelpers.findAndHookMethod("com.whatsapp.HomeActivity", classLoader, "onCreate", Bundle.class, methodHook);
54+
XposedHelpers.findAndHookMethod(WppCore.getHomeActivityClass(classLoader), "onCreate", Bundle.class, methodHook);
5555
expirationAboutInfo();
5656
Others.propsBoolean.put(6481, false);
5757
}
@@ -113,7 +113,7 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
113113
var name = WppCore.getMyName();
114114
var bio = WppCore.getMyBio();
115115
var window = (ViewGroup) homeActivity.getWindow().getDecorView();
116-
var clazz = XposedHelpers.findClass("com.whatsapp.TabsPager", homeActivity.getClassLoader());
116+
var clazz = WppCore.getTabsPagerClass(homeActivity.getClassLoader());
117117
var fieldTab = ReflectionUtils.getFieldByType(homeActivity.getClass(), clazz);
118118
var mTabInstance = fieldTab.get(homeActivity);
119119

app/src/main/java/com/wmods/wppenhacer/xposed/features/customization/HideTabs.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import androidx.annotation.NonNull;
1111

1212
import com.wmods.wppenhacer.xposed.core.Feature;
13+
import com.wmods.wppenhacer.xposed.core.WppCore;
1314
import com.wmods.wppenhacer.xposed.core.devkit.Unobfuscator;
1415
import com.wmods.wppenhacer.xposed.utils.ReflectionUtils;
1516

@@ -37,7 +38,7 @@ public void doHook() throws Throwable {
3738
if (hidetabs == null || hidetabs.isEmpty())
3839
return;
3940

40-
var home = XposedHelpers.findClass("com.whatsapp.HomeActivity", classLoader);
41+
var home = WppCore.getHomeActivityClass(classLoader);
4142

4243
var hideTabsList = hidetabs.stream().map(Integer::valueOf).collect(Collectors.toList());
4344

@@ -93,10 +94,10 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
9394
}
9495
});
9596

96-
XposedHelpers.findAndHookMethod("com.whatsapp.HomeActivity", classLoader, "onCreate", Bundle.class, new XC_MethodHook() {
97+
XposedHelpers.findAndHookMethod(WppCore.getHomeActivityClass(classLoader), "onCreate", Bundle.class, new XC_MethodHook() {
9798
@Override
9899
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
99-
Class<?> TabsPagerClass = classLoader.loadClass("com.whatsapp.TabsPager");
100+
Class<?> TabsPagerClass = WppCore.getTabsPagerClass(classLoader);
100101
var tabsField = ReflectionUtils.getFieldByType(param.thisObject.getClass(), TabsPagerClass);
101102
mTabPagerInstance = tabsField.get(param.thisObject);
102103
}

app/src/main/java/com/wmods/wppenhacer/xposed/features/customization/SeparateGroup.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import androidx.annotation.NonNull;
1313

1414
import com.wmods.wppenhacer.xposed.core.Feature;
15+
import com.wmods.wppenhacer.xposed.core.WppCore;
1516
import com.wmods.wppenhacer.xposed.core.db.MessageStore;
1617
import com.wmods.wppenhacer.xposed.core.devkit.Unobfuscator;
1718
import com.wmods.wppenhacer.xposed.core.devkit.UnobfuscatorCache;
@@ -47,7 +48,7 @@ public SeparateGroup(ClassLoader loader, XSharedPreferences preferences) {
4748
public void doHook() throws Exception {
4849

4950
var cFragClass = XposedHelpers.findClass("com.whatsapp.conversationslist.ConversationsFragment", classLoader);
50-
var homeActivityClass = XposedHelpers.findClass("com.whatsapp.HomeActivity", classLoader);
51+
var homeActivityClass = WppCore.getHomeActivityClass(classLoader);
5152

5253
if (!prefs.getBoolean("separategroups", false)) return;
5354

app/src/main/java/com/wmods/wppenhacer/xposed/features/general/ChatLimit.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import androidx.annotation.NonNull;
77

88
import com.wmods.wppenhacer.xposed.core.Feature;
9+
import com.wmods.wppenhacer.xposed.core.WppCore;
910
import com.wmods.wppenhacer.xposed.core.db.MessageStore;
1011
import com.wmods.wppenhacer.xposed.core.devkit.Unobfuscator;
1112
import com.wmods.wppenhacer.xposed.utils.ReflectionUtils;
@@ -34,7 +35,7 @@ public void doHook() throws Throwable {
3435

3536
var epUpdateMethod = Unobfuscator.loadEphemeralInsertdb(classLoader);
3637

37-
XposedHelpers.findAndHookMethod("com.whatsapp.HomeActivity", classLoader, "onCreate", Bundle.class, new XC_MethodHook() {
38+
XposedHelpers.findAndHookMethod(WppCore.getHomeActivityClass(classLoader), "onCreate", Bundle.class, new XC_MethodHook() {
3839
@Override
3940
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
4041
if (antiDisappearing) {

app/src/main/java/com/wmods/wppenhacer/xposed/features/general/LiteMode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public void doHook() throws Throwable {
5959

6060
menuItems.add(this::InsertDownloadFolderButton);
6161

62-
XposedHelpers.findAndHookMethod("com.whatsapp.HomeActivity", classLoader, "onCreate", Bundle.class, new XC_MethodHook() {
62+
XposedHelpers.findAndHookMethod(WppCore.getHomeActivityClass(classLoader), "onCreate", Bundle.class, new XC_MethodHook() {
6363
@Override
6464
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
6565
var activity = (Activity) param.thisObject;

app/src/main/java/com/wmods/wppenhacer/xposed/features/general/NewChat.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import androidx.annotation.NonNull;
1616

1717
import com.wmods.wppenhacer.xposed.core.Feature;
18+
import com.wmods.wppenhacer.xposed.core.WppCore;
1819
import com.wmods.wppenhacer.xposed.core.components.AlertDialogWpp;
1920
import com.wmods.wppenhacer.xposed.utils.DesignUtils;
2021
import com.wmods.wppenhacer.xposed.utils.ResId;
@@ -31,7 +32,7 @@ public NewChat(@NonNull ClassLoader loader, @NonNull XSharedPreferences preferen
3132

3233
@Override
3334
public void doHook() {
34-
var homeActivity = findClass("com.whatsapp.HomeActivity", classLoader);
35+
var homeActivity = WppCore.getHomeActivityClass(classLoader);
3536
var action = prefs.getBoolean("buttonaction", true);
3637
if (!prefs.getBoolean("newchat", true)) return;
3738

0 commit comments

Comments
 (0)