Refresh CommentsListingRecyclerViewAdapter after network changes. Fix wrong post opens after on click performed on ImageAndGifBlock.

This commit is contained in:
Docile-Alligator
2023-11-28 11:27:35 -05:00
parent 776f0aa01f
commit e0cbdcbcc0
2 changed files with 19 additions and 1 deletions

View File

@ -563,7 +563,7 @@ public class CommentsListingRecyclerViewAdapter extends PagedListAdapter<Comment
}
if (canStartActivity) {
canStartActivity = false;
itemView.callOnClick();
itemView.performClick();
}
});
commentMarkdownView.setAdapter(markwonAdapter);

View File

@ -433,7 +433,25 @@ public class CommentsListingFragment extends Fragment implements FragmentCommuni
String dataSavingMode = mSharedPreferences.getString(SharedPreferencesUtils.DATA_SAVING_MODE, SharedPreferencesUtils.DATA_SAVING_MODE_OFF);
if (dataSavingMode.equals(SharedPreferencesUtils.DATA_SAVING_MODE_ONLY_ON_CELLULAR_DATA)) {
mAdapter.setDataSavingMode(changeNetworkStatusEvent.connectedNetwork == Utils.NETWORK_TYPE_CELLULAR);
refreshAdapter(mCommentRecyclerView, mAdapter);
}
}
}
private void refreshAdapter(RecyclerView recyclerView, RecyclerView.Adapter<RecyclerView.ViewHolder> adapter) {
int previousPosition = -1;
if (recyclerView.getLayoutManager() != null) {
previousPosition = ((LinearLayoutManagerBugFixed) recyclerView.getLayoutManager()).findFirstVisibleItemPosition();
}
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
recyclerView.setAdapter(null);
recyclerView.setLayoutManager(null);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(layoutManager);
if (previousPosition > 0) {
recyclerView.scrollToPosition(previousPosition);
}
}
}