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. --- app/src/main/AndroidManifest.xml | 9 ++++----- .../Activity/ViewPrivateMessagesActivity.java | 19 ++++++++++--------- 2 files changed, 14 insertions(+), 14 deletions(-) (limited to 'app/src/main') diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a5f7d9c7..d92c8ba0 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -24,16 +24,15 @@ android:usesCleartextTraffic="true" tools:replace="android:label"> - - + 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