aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java')
-rw-r--r--app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java29
1 files changed, 9 insertions, 20 deletions
diff --git a/app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java b/app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java
index f8b03b25..f9634eba 100644
--- a/app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java
+++ b/app/src/main/java/com/wireguard/android/fragment/TunnelListFragment.java
@@ -41,6 +41,7 @@ import com.wireguard.android.model.Tunnel;
import com.wireguard.android.util.ExceptionLoggers;
import com.wireguard.android.util.ObservableSortedKeyedList;
import com.wireguard.android.widget.MonkeyedSnackbar;
+import com.wireguard.android.widget.MultiselectableRelativeLayout;
import com.wireguard.android.widget.fab.FloatingActionsMenuRecyclerViewScrollListener;
import com.wireguard.config.Config;
@@ -263,30 +264,20 @@ public class TunnelListFragment extends BaseFragment {
super.onPause();
}
+ private MultiselectableRelativeLayout viewForTunnel(final Tunnel tunnel, final List tunnels) {
+ return (MultiselectableRelativeLayout)binding.tunnelList.findViewHolderForAdapterPosition(tunnels.indexOf(tunnel)).itemView;
+ }
+
@Override
public void onSelectedTunnelChanged(@Nullable final Tunnel oldTunnel, @Nullable final Tunnel newTunnel) {
if (binding == null)
return;
Application.getTunnelManager().getTunnels().thenAccept(tunnels -> {
if (newTunnel != null)
- binding.tunnelList.findViewHolderForAdapterPosition(tunnels.indexOf(newTunnel)).itemView.setActivated(true);
+ viewForTunnel(newTunnel, tunnels).setSingleSelected(true);
if (oldTunnel != null)
- binding.tunnelList.findViewHolderForAdapterPosition(tunnels.indexOf(oldTunnel)).itemView.setActivated(false);
-
+ viewForTunnel(oldTunnel, tunnels).setSingleSelected(false);
});
-
- /* Alternative 1: results in sluggish change:
-
- if (binding.tunnelList.getAdapter() == null)
- return;
-
-
- * Alternative 2: results in overly quick change:
-
- binding.tunnelList.getAdapter().notifyDataSetChanged();
-
- * Hence, we go with the above.
- */
}
private void onTunnelDeletionFinished(final Integer count, @Nullable final Throwable throwable) {
@@ -373,10 +364,9 @@ public class TunnelListFragment extends BaseFragment {
});
if (actionMode != null)
- binding.getRoot().setActivated(actionModeListener.checkedItems.contains(position));
+ ((MultiselectableRelativeLayout)binding.getRoot()).setMultiSelected(actionModeListener.checkedItems.contains(position));
else
- binding.getRoot().setActivated(getSelectedTunnel() == tunnel);
-
+ ((MultiselectableRelativeLayout)binding.getRoot()).setSingleSelected(getSelectedTunnel() == tunnel);
});
}
@@ -433,7 +423,6 @@ public class TunnelListFragment extends BaseFragment {
public void onDestroyActionMode(final ActionMode mode) {
actionMode = null;
resources = null;
-
checkedItems.clear();
binding.tunnelList.getAdapter().notifyDataSetChanged();
}