Skip to content
Snippets Groups Projects
Commit 88c2d2ff authored by maniac103's avatar maniac103 Committed by mueller-ma
Browse files

Don't scroll to selected list item if it didn't change. (#989)


Fixes #976

Signed-off-by: default avatarDanny Baumann <dannybaumann@web.de>
parent bef96cc9
No related branches found
No related tags found
No related merge requests found
...@@ -313,9 +313,9 @@ public class OpenHABWidgetAdapter extends RecyclerView.Adapter<OpenHABWidgetAdap ...@@ -313,9 +313,9 @@ public class OpenHABWidgetAdapter extends RecyclerView.Adapter<OpenHABWidgetAdap
} }
} }
public void setSelectedPosition(int position) { public boolean setSelectedPosition(int position) {
if (mSelectedPosition == position) { if (mSelectedPosition == position) {
return; return false;
} }
if (mSelectedPosition >= 0) { if (mSelectedPosition >= 0) {
notifyItemChanged(mSelectedPosition); notifyItemChanged(mSelectedPosition);
...@@ -324,6 +324,7 @@ public class OpenHABWidgetAdapter extends RecyclerView.Adapter<OpenHABWidgetAdap ...@@ -324,6 +324,7 @@ public class OpenHABWidgetAdapter extends RecyclerView.Adapter<OpenHABWidgetAdap
if (position >= 0) { if (position >= 0) {
notifyItemChanged(position); notifyItemChanged(position);
} }
return true;
} }
@Override @Override
......
...@@ -273,17 +273,19 @@ public class OpenHABWidgetListFragment extends Fragment ...@@ -273,17 +273,19 @@ public class OpenHABWidgetListFragment extends Fragment
if (openHABWidgetAdapter == null) { if (openHABWidgetAdapter == null) {
return; return;
} }
openHABWidgetAdapter.setSelectedPosition(-1);
if (highlightedPageLink != null) { if (highlightedPageLink != null) {
for (int i = 0; i < openHABWidgetAdapter.getItemCount(); i++) { for (int i = 0; i < openHABWidgetAdapter.getItemCount(); i++) {
OpenHABLinkedPage page = openHABWidgetAdapter.getItem(i).linkedPage(); OpenHABLinkedPage page = openHABWidgetAdapter.getItem(i).linkedPage();
if (page != null && highlightedPageLink.equals(page.link())) { if (page != null && highlightedPageLink.equals(page.link())) {
openHABWidgetAdapter.setSelectedPosition(i); if (openHABWidgetAdapter.setSelectedPosition(i)) {
mLayoutManager.scrollToPosition(i); mLayoutManager.scrollToPosition(i);
break; }
return;
} }
} }
} }
// We didn't find a matching page link, so unselect everything
openHABWidgetAdapter.setSelectedPosition(-1);
} }
public void update(String pageTitle, List<OpenHABWidget> widgets) { public void update(String pageTitle, List<OpenHABWidget> widgets) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment