From 02c93dee6edfaab68d27e3016ab65db3ce1b8927 Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Sun, 20 Mar 2016 19:28:25 +0100 Subject: [PATCH] Don't reset scroll position when updating device/folder list (fixes #579). --- .../nutomic/syncthingandroid/fragments/DeviceListFragment.java | 3 +++ .../nutomic/syncthingandroid/fragments/FolderListFragment.java | 3 +++ .../java/com/nutomic/syncthingandroid/util/DevicesAdapter.java | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/nutomic/syncthingandroid/fragments/DeviceListFragment.java b/src/main/java/com/nutomic/syncthingandroid/fragments/DeviceListFragment.java index eaa6e738..d0eeab27 100644 --- a/src/main/java/com/nutomic/syncthingandroid/fragments/DeviceListFragment.java +++ b/src/main/java/com/nutomic/syncthingandroid/fragments/DeviceListFragment.java @@ -104,11 +104,14 @@ public class DeviceListFragment extends ListFragment implements SyncthingService setListAdapter(mAdapter); } + // Prevent scroll position reset due to list update from clear(). + mAdapter.setNotifyOnChange(false); mAdapter.clear(); List devices = activity.getApi().getDevices(false); Collections.sort(devices, DEVICES_COMPARATOR); mAdapter.addAll(devices); mAdapter.updateConnections(activity.getApi()); + mAdapter.notifyDataSetChanged(); setListShown(true); } diff --git a/src/main/java/com/nutomic/syncthingandroid/fragments/FolderListFragment.java b/src/main/java/com/nutomic/syncthingandroid/fragments/FolderListFragment.java index 0d9802b9..a6e91e07 100644 --- a/src/main/java/com/nutomic/syncthingandroid/fragments/FolderListFragment.java +++ b/src/main/java/com/nutomic/syncthingandroid/fragments/FolderListFragment.java @@ -105,11 +105,14 @@ public class FolderListFragment extends ListFragment implements SyncthingService setListAdapter(mAdapter); } + // Prevent scroll position reset due to list update from clear(). + mAdapter.setNotifyOnChange(false); mAdapter.clear(); List folders = activity.getApi().getFolders(); Collections.sort(folders, FOLDERS_COMPARATOR); mAdapter.addAll(folders); mAdapter.updateModel(activity.getApi()); + mAdapter.notifyDataSetChanged(); setListShown(true); } diff --git a/src/main/java/com/nutomic/syncthingandroid/util/DevicesAdapter.java b/src/main/java/com/nutomic/syncthingandroid/util/DevicesAdapter.java index 93ce5f8b..b5e9afe5 100644 --- a/src/main/java/com/nutomic/syncthingandroid/util/DevicesAdapter.java +++ b/src/main/java/com/nutomic/syncthingandroid/util/DevicesAdapter.java @@ -79,6 +79,6 @@ public class DevicesAdapter extends ArrayAdapter @Override public void onReceiveConnections(Map connections) { mConnections = connections; - notifyDataSetInvalidated(); + notifyDataSetChanged(); } }