Skip to content

Commit bfe7c60

Browse files
committed
Fix IGStatus on Change Theme
Signed-off-by: Dev4Mod <[email protected]>
1 parent 6600abe commit bfe7c60

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

app/src/main/java/com/wmods/wppenhacer/views/IGStatusView.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,20 @@ public class IGStatusView extends FrameLayout {
1111
public HorizontalListView mStatusListView;
1212

1313
public IGStatusAdapter mStatusAdapter;
14+
private int mFragmentId;
1415

1516
public IGStatusView(@NonNull Context context) {
1617
super(context);
1718
init(context);
1819
}
1920

21+
public int getFragmentId() {
22+
return mFragmentId;
23+
}
24+
25+
public void setFragmentId(int id) {
26+
mFragmentId = id;
27+
}
2028

2129
private void init(Context context) {
2230
mStatusListView = new HorizontalListView(context);
@@ -50,4 +58,8 @@ public void setAdapter(IGStatusAdapter mStatusAdapter) {
5058
this.mStatusAdapter = mStatusAdapter;
5159
mStatusListView.setAdapter(mStatusAdapter);
5260
}
61+
62+
public IGStatusAdapter getAdapter() {
63+
return mStatusAdapter;
64+
}
5365
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public void doHook() throws Throwable {
3737
if (!prefs.getBoolean("igstatus", false))
3838
return;
3939

40+
var fabintMethod = Unobfuscator.loadFabMethod(classLoader);
41+
4042
var getViewConversationMethod = Unobfuscator.loadGetViewConversationMethod(classLoader);
4143
XposedBridge.hookMethod(getViewConversationMethod, new XC_MethodHook() {
4244
@Override
@@ -66,6 +68,13 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable {
6668
mStatusContainer.setLayoutParams(layoutParams);
6769
parentView.addView(mStatusContainer, 0);
6870
}
71+
var id = (int) fabintMethod.invoke(param.thisObject);
72+
var igStatus = mListStatusContainer.stream().filter(ig -> ig.getFragmentId() == id).findFirst().orElse(null);
73+
if (igStatus != null) {
74+
mStatusContainer.setAdapter(igStatus.getAdapter());
75+
mListStatusContainer.remove(igStatus);
76+
}
77+
mStatusContainer.setFragmentId(id);
6978
mListStatusContainer.add(mStatusContainer);
7079
}
7180
});

0 commit comments

Comments
 (0)