Bladeren bron

AppListDialogFragment: Revamp toggle logic

Rather than always toggle all elements, elect to unselect all if any are selected. This allows
returning to a clean state in at most two clicks.

Suggested-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
master
Harsh Shandilya 4 jaren geleden
bovenliggende
commit
6f6602ddd1
1 gewijzigde bestanden met toevoegingen van 7 en 1 verwijderingen
  1. +7
    -1
      app/src/main/java/com/wireguard/android/fragment/AppListDialogFragment.java

+ 7
- 1
app/src/main/java/com/wireguard/android/fragment/AppListDialogFragment.java Bestand weergeven

@@ -31,6 +31,8 @@ import java.util.Collections;
import java.util.List;

import java9.util.Comparators;
import java9.util.stream.Collectors;
import java9.util.stream.StreamSupport;

public class AppListDialogFragment extends DialogFragment {

@@ -109,8 +111,12 @@ public class AppListDialogFragment extends DialogFragment {

final AlertDialog dialog = alertDialogBuilder.create();
dialog.setOnShowListener(d -> dialog.getButton(DialogInterface.BUTTON_NEUTRAL).setOnClickListener(view -> {
final List<ApplicationData> selectedItems = StreamSupport.stream(appData)
.filter(ApplicationData::isExcludedFromTunnel)
.collect(Collectors.toList());
final boolean excludeAll = selectedItems.isEmpty();
for (final ApplicationData app : appData)
app.setExcludedFromTunnel(!app.isExcludedFromTunnel());
app.setExcludedFromTunnel(excludeAll);
}));
return dialog;
}


Laden…
Annuleren
Opslaan