From fe989371de5c918e8a6371384b986551f6c512b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20Kr=C3=BCger?= Date: Thu, 2 Sep 2021 11:07:28 +0200 Subject: [PATCH] Fix scrolling and selection issue in RTL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The following views had scrolling and selection issues if RTL is activated: - Conversation list - File browser - Contact selection To fix this issues the fast scroller functionality were removed for those views. Signed-off-by: Tim Krüger --- .../controllers/BrowserController.java | 15 -------- .../talk/controllers/ContactsController.java | 23 +----------- .../ConversationsListController.java | 29 +-------------- .../main/res/layout/controller_browser.xml | 7 ---- .../layout/controller_conversations_rv.xml | 2 -- .../main/res/layout/controller_generic_rv.xml | 2 -- app/src/main/res/layout/fast_scroller.xml | 36 ------------------- scripts/analysis/findbugs-results.txt | 2 +- scripts/analysis/lint-results.txt | 2 +- 9 files changed, 4 insertions(+), 114 deletions(-) delete mode 100644 app/src/main/res/layout/fast_scroller.xml diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java b/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java index cec4f5e2a..763d0a2d2 100644 --- a/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java +++ b/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.java @@ -62,11 +62,9 @@ import androidx.recyclerview.widget.RecyclerView; import autodagger.AutoInjector; import butterknife.BindView; import butterknife.OnClick; -import eu.davidea.fastscroller.FastScroller; import eu.davidea.flexibleadapter.FlexibleAdapter; import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager; import eu.davidea.flexibleadapter.items.AbstractFlexibleItem; -import eu.davidea.flexibleadapter.items.IFlexible; import okhttp3.OkHttpClient; @AutoInjector(NextcloudTalkApplication.class) @@ -77,8 +75,6 @@ public abstract class BrowserController extends BaseController implements Listin UserUtils userUtils; @BindView(R.id.recycler_view) RecyclerView recyclerView; - @BindView(R.id.fast_scroller) - FastScroller fastScroller; @BindView(R.id.action_back) BottomNavigationItemView backMenuItem; @BindView(R.id.action_refresh) @@ -276,18 +272,7 @@ public abstract class BrowserController extends BaseController implements Listin recyclerView.setLayoutManager(layoutManager); recyclerView.setHasFixedSize(true); recyclerView.setAdapter(adapter); - - adapter.setFastScroller(fastScroller); adapter.addListener(this); - - fastScroller.setBubbleTextCreator(position -> { - IFlexible abstractFlexibleItem = adapter.getItem(position); - if (abstractFlexibleItem instanceof BrowserFileItem) { - return String.valueOf(((BrowserFileItem) adapter.getItem(position)).getModel().getDisplayName().charAt(0)); - } else { - return ""; - } - }); } } diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java b/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java index 925d3791f..59115a39e 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ContactsController.java @@ -102,7 +102,6 @@ import autodagger.AutoInjector; import butterknife.BindView; import butterknife.OnClick; import butterknife.Optional; -import eu.davidea.fastscroller.FastScroller; import eu.davidea.flexibleadapter.FlexibleAdapter; import eu.davidea.flexibleadapter.SelectableAdapter; import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager; @@ -116,7 +115,7 @@ import okhttp3.ResponseBody; @AutoInjector(NextcloudTalkApplication.class) public class ContactsController extends BaseController implements SearchView.OnQueryTextListener, - FlexibleAdapter.OnItemClickListener, FastScroller.OnScrollStateChangeListener { + FlexibleAdapter.OnItemClickListener { public static final String TAG = "ContactsController"; @@ -137,9 +136,6 @@ public class ContactsController extends BaseController implements SearchView.OnQ @BindView(R.id.swipe_refresh_layout) SwipeRefreshLayout swipeRefreshLayout; - @BindView(R.id.fast_scroller) - FastScroller fastScroller; - @BindView(R.id.call_header_layout) RelativeLayout conversationPrivacyToogleLayout; @@ -698,19 +694,6 @@ public class ContactsController extends BaseController implements SearchView.OnQ swipeRefreshLayout.setColorSchemeResources(R.color.colorPrimary); swipeRefreshLayout.setProgressBackgroundColorSchemeResource(R.color.refresh_spinner_background); - fastScroller.addOnScrollStateChangeListener(this); - adapter.setFastScroller(fastScroller); - fastScroller.setBubbleTextCreator(position -> { - IFlexible abstractFlexibleItem = adapter.getItem(position); - if (abstractFlexibleItem instanceof UserItem) { - return ((UserItem) adapter.getItem(position)).getHeader().getModel(); - } else if (abstractFlexibleItem instanceof GenericTextHeaderItem) { - return ((GenericTextHeaderItem) adapter.getItem(position)).getModel(); - } else { - return ""; - } - }); - joinConversationViaLinkImageView .getBackground() .setColorFilter(ResourcesCompat.getColor(getResources(), R.color.colorBackgroundDarker, null), @@ -819,10 +802,6 @@ public class ContactsController extends BaseController implements SearchView.OnQ } } - @Override - public void onFastScrollerStateChange(boolean scrolling) { - swipeRefreshLayout.setEnabled(!scrolling); - } private void prepareAndShowBottomSheetWithBundle(Bundle bundle, boolean showEntrySheet) { diff --git a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java index 62eb5611d..049425250 100644 --- a/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java +++ b/app/src/main/java/com/nextcloud/talk/controllers/ConversationsListController.java @@ -122,7 +122,6 @@ import androidx.work.OneTimeWorkRequest; import androidx.work.WorkManager; import autodagger.AutoInjector; import butterknife.BindView; -import eu.davidea.fastscroller.FastScroller; import eu.davidea.flexibleadapter.FlexibleAdapter; import eu.davidea.flexibleadapter.common.SmoothScrollLinearLayoutManager; import eu.davidea.flexibleadapter.items.AbstractFlexibleItem; @@ -133,8 +132,7 @@ import retrofit2.HttpException; @AutoInjector(NextcloudTalkApplication.class) public class ConversationsListController extends BaseController implements SearchView.OnQueryTextListener, - FlexibleAdapter.OnItemClickListener, FlexibleAdapter.OnItemLongClickListener, FastScroller - .OnScrollStateChangeListener, ConversationMenuInterface { + FlexibleAdapter.OnItemClickListener, FlexibleAdapter.OnItemLongClickListener, ConversationMenuInterface { public static final String TAG = "ConvListController"; public static final int ID_DELETE_CONVERSATION_DIALOG = 0; @@ -167,9 +165,6 @@ public class ConversationsListController extends BaseController implements Searc @BindView(R.id.emptyLayout) RelativeLayout emptyLayoutView; - @BindView(R.id.fast_scroller) - FastScroller fastScroller; - @BindView(R.id.floatingActionButton) FloatingActionButton floatingActionButton; @@ -588,23 +583,6 @@ public class ConversationsListController extends BaseController implements Searc showNewConversationsScreen(); }); - fastScroller.addOnScrollStateChangeListener(this); - adapter.setFastScroller(fastScroller); - - fastScroller.setBubbleTextCreator(position -> { - String displayName; - if (shouldUseLastMessageLayout) { - displayName = ((ConversationItem) adapter.getItem(position)).getModel().getDisplayName(); - } else { - displayName = ((CallItem) adapter.getItem(position)).getModel().getDisplayName(); - } - - if (displayName.length() > 8) { - displayName = displayName.substring(0, 4) + "..."; - } - return displayName; - }); - if (getActivity() != null && getActivity() instanceof MainActivity) { MainActivity activity = (MainActivity) getActivity(); @@ -755,11 +733,6 @@ public class ConversationsListController extends BaseController implements Searc return getResources().getString(R.string.nc_app_product_name); } - @Override - public void onFastScrollerStateChange(boolean scrolling) { - swipeRefreshLayout.setEnabled(!scrolling); - } - @Override public boolean onItemClick(View view, int position) { selectedConversation = getConversation(position); diff --git a/app/src/main/res/layout/controller_browser.xml b/app/src/main/res/layout/controller_browser.xml index 399d64d82..934dd3173 100644 --- a/app/src/main/res/layout/controller_browser.xml +++ b/app/src/main/res/layout/controller_browser.xml @@ -53,11 +53,4 @@ app:itemIconTint="@color/fg_default" app:menu="@menu/file_browser_bottom" /> - - \ No newline at end of file diff --git a/app/src/main/res/layout/controller_conversations_rv.xml b/app/src/main/res/layout/controller_conversations_rv.xml index 43d74283d..3cf94b490 100644 --- a/app/src/main/res/layout/controller_conversations_rv.xml +++ b/app/src/main/res/layout/controller_conversations_rv.xml @@ -122,6 +122,4 @@ app:srcCompat="@drawable/ic_add_white_24px" app:tint="@color/white" /> - - diff --git a/app/src/main/res/layout/controller_generic_rv.xml b/app/src/main/res/layout/controller_generic_rv.xml index 7bedcaae3..66cfe6cda 100644 --- a/app/src/main/res/layout/controller_generic_rv.xml +++ b/app/src/main/res/layout/controller_generic_rv.xml @@ -38,8 +38,6 @@ - - - - \ No newline at end of file diff --git a/scripts/analysis/findbugs-results.txt b/scripts/analysis/findbugs-results.txt index 73623d101..316941dd7 100644 --- a/scripts/analysis/findbugs-results.txt +++ b/scripts/analysis/findbugs-results.txt @@ -1 +1 @@ -600 \ No newline at end of file +599 \ No newline at end of file diff --git a/scripts/analysis/lint-results.txt b/scripts/analysis/lint-results.txt index a041faf94..175eec368 100644 --- a/scripts/analysis/lint-results.txt +++ b/scripts/analysis/lint-results.txt @@ -1,2 +1,2 @@ DO NOT TOUCH; GENERATED BY DRONE - Lint Report: 3 errors and 269 warnings + Lint Report: 3 errors and 266 warnings