From 1958ad77e3c7c4c523caef15f90b0b32da1d0cb2 Mon Sep 17 00:00:00 2001 From: Alex Ning Date: Thu, 2 Jul 2020 11:13:10 +0800 Subject: Maintain RecyclerView position when showing and hiding the keyboard in ViewPrivateMessagesActivity. --- .../Activity/ViewPrivateMessagesActivity.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'app/src/main/java/ml/docilealligator/infinityforreddit') diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPrivateMessagesActivity.java b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPrivateMessagesActivity.java index aecc78ab..c42ab803 100644 --- a/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPrivateMessagesActivity.java +++ b/app/src/main/java/ml/docilealligator/infinityforreddit/Activity/ViewPrivateMessagesActivity.java @@ -93,8 +93,8 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit private String mAccessToken; private String mAccountName; private String mUserAvatar; - private ArrayList provideUserAvatarCallbacks; - private LoadUserDataAsyncTask loadUserDataAsyncTask; + private ArrayList mProvideUserAvatarCallbacks; + private LoadUserDataAsyncTask mLoadUserDataAsyncTask; @Override protected void onCreate(Bundle savedInstanceState) { @@ -127,7 +127,7 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit setSupportActionBar(mToolbar); setToolbarGoToTop(mToolbar); - provideUserAvatarCallbacks = new ArrayList<>(); + mProvideUserAvatarCallbacks = new ArrayList<>(); if (savedInstanceState != null) { mNullAccessToken = savedInstanceState.getBoolean(NULL_ACCESS_TOKEN_STATE); @@ -160,6 +160,7 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit private void bindView() { mAdapter = new PrivateMessagesDetailRecyclerViewAdapter(this, privateMessage, mAccountName, mCustomThemeWrapper); mLinearLayoutManager = new LinearLayoutManager(this); + mLinearLayoutManager.setStackFromEnd(true); mRecyclerView.setLayoutManager(mLinearLayoutManager); mRecyclerView.setAdapter(mAdapter); goToBottom(); @@ -229,16 +230,16 @@ public class ViewPrivateMessagesActivity extends BaseActivity implements Activit public void fetchUserAvatar(String username, ProvideUserAvatarCallback provideUserAvatarCallback) { if (mUserAvatar == null) { - provideUserAvatarCallbacks.add(provideUserAvatarCallback); - if (loadUserDataAsyncTask == null) { - loadUserDataAsyncTask = new LoadUserDataAsyncTask(mRedditDataRoomDatabase.userDao(), username, mRetrofit, iconImageUrl -> { + mProvideUserAvatarCallbacks.add(provideUserAvatarCallback); + if (mLoadUserDataAsyncTask == null) { + mLoadUserDataAsyncTask = new LoadUserDataAsyncTask(mRedditDataRoomDatabase.userDao(), username, mRetrofit, iconImageUrl -> { mUserAvatar = iconImageUrl; - for (ProvideUserAvatarCallback provideUserAvatarCallbackInArrayList : provideUserAvatarCallbacks) { + for (ProvideUserAvatarCallback provideUserAvatarCallbackInArrayList : mProvideUserAvatarCallbacks) { provideUserAvatarCallbackInArrayList.fetchAvatarSuccess(iconImageUrl); } - provideUserAvatarCallbacks.clear(); + mProvideUserAvatarCallbacks.clear(); }); - loadUserDataAsyncTask.execute(); + mLoadUserDataAsyncTask.execute(); } } else { provideUserAvatarCallback.fetchAvatarSuccess(mUserAvatar); -- cgit v1.2.3