diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetAdapter.java b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetAdapter.java index fc104e680e6a9211e9850e93be53508f054744f5..85b0f26a27545b9644f2a85157b9887a22a509a8 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetAdapter.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetAdapter.java @@ -313,9 +313,9 @@ public class OpenHABWidgetAdapter extends RecyclerView.Adapter<OpenHABWidgetAdap } } - public void setSelectedPosition(int position) { + public boolean setSelectedPosition(int position) { if (mSelectedPosition == position) { - return; + return false; } if (mSelectedPosition >= 0) { notifyItemChanged(mSelectedPosition); @@ -324,6 +324,7 @@ public class OpenHABWidgetAdapter extends RecyclerView.Adapter<OpenHABWidgetAdap if (position >= 0) { notifyItemChanged(position); } + return true; } @Override diff --git a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetListFragment.java b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetListFragment.java index e2ca0e5da67ec62861148d1b38d9306725d334fc..6b7128c00eda4c10c88239f1206606188480be7b 100644 --- a/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetListFragment.java +++ b/mobile/src/main/java/org/openhab/habdroid/ui/OpenHABWidgetListFragment.java @@ -273,17 +273,19 @@ public class OpenHABWidgetListFragment extends Fragment if (openHABWidgetAdapter == null) { return; } - openHABWidgetAdapter.setSelectedPosition(-1); if (highlightedPageLink != null) { for (int i = 0; i < openHABWidgetAdapter.getItemCount(); i++) { OpenHABLinkedPage page = openHABWidgetAdapter.getItem(i).linkedPage(); if (page != null && highlightedPageLink.equals(page.link())) { - openHABWidgetAdapter.setSelectedPosition(i); - mLayoutManager.scrollToPosition(i); - break; + if (openHABWidgetAdapter.setSelectedPosition(i)) { + mLayoutManager.scrollToPosition(i); + } + return; } } } + // We didn't find a matching page link, so unselect everything + openHABWidgetAdapter.setSelectedPosition(-1); } public void update(String pageTitle, List<OpenHABWidget> widgets) {