AppListDialogFragment: Code cleanup
- Using the require_() methods provides helpful error messages when things are null compared to the get_() methods which throw NPEs. - Ensure currentlyExcludedApps is empty but never null - Rename inner variable to silence name shadowing lint - Make setExclusionsAndDismiss private Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
13cbec28d6
commit
33e69db436
@ -36,7 +36,7 @@ public class AppListDialogFragment extends DialogFragment {
|
|||||||
|
|
||||||
private static final String KEY_EXCLUDED_APPS = "excludedApps";
|
private static final String KEY_EXCLUDED_APPS = "excludedApps";
|
||||||
private final ObservableKeyedList<String, ApplicationData> appData = new ObservableKeyedArrayList<>();
|
private final ObservableKeyedList<String, ApplicationData> appData = new ObservableKeyedArrayList<>();
|
||||||
@Nullable private List<String> currentlyExcludedApps;
|
private List<String> currentlyExcludedApps = Collections.emptyList();
|
||||||
|
|
||||||
public static <T extends Fragment & AppExclusionListener>
|
public static <T extends Fragment & AppExclusionListener>
|
||||||
AppListDialogFragment newInstance(final ArrayList<String> excludedApps, final T target) {
|
AppListDialogFragment newInstance(final ArrayList<String> excludedApps, final T target) {
|
||||||
@ -60,14 +60,14 @@ public class AppListDialogFragment extends DialogFragment {
|
|||||||
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
launcherIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
||||||
final List<ResolveInfo> resolveInfos = pm.queryIntentActivities(launcherIntent, 0);
|
final List<ResolveInfo> resolveInfos = pm.queryIntentActivities(launcherIntent, 0);
|
||||||
|
|
||||||
final List<ApplicationData> appData = new ArrayList<>();
|
final List<ApplicationData> applicationData = new ArrayList<>();
|
||||||
for (ResolveInfo resolveInfo : resolveInfos) {
|
for (ResolveInfo resolveInfo : resolveInfos) {
|
||||||
String packageName = resolveInfo.activityInfo.packageName;
|
String packageName = resolveInfo.activityInfo.packageName;
|
||||||
appData.add(new ApplicationData(resolveInfo.loadIcon(pm), resolveInfo.loadLabel(pm).toString(), packageName, currentlyExcludedApps.contains(packageName)));
|
applicationData.add(new ApplicationData(resolveInfo.loadIcon(pm), resolveInfo.loadLabel(pm).toString(), packageName, currentlyExcludedApps.contains(packageName)));
|
||||||
}
|
}
|
||||||
|
|
||||||
Collections.sort(appData, Comparators.comparing(ApplicationData::getName, String.CASE_INSENSITIVE_ORDER));
|
Collections.sort(applicationData, Comparators.comparing(ApplicationData::getName, String.CASE_INSENSITIVE_ORDER));
|
||||||
return appData;
|
return applicationData;
|
||||||
}).whenComplete(((data, throwable) -> {
|
}).whenComplete(((data, throwable) -> {
|
||||||
if (data != null) {
|
if (data != null) {
|
||||||
appData.clear();
|
appData.clear();
|
||||||
@ -84,15 +84,16 @@ public class AppListDialogFragment extends DialogFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable final Bundle savedInstanceState) {
|
public void onCreate(@Nullable final Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
currentlyExcludedApps = getArguments().getStringArrayList(KEY_EXCLUDED_APPS);
|
final List<String> excludedApps = requireArguments().getStringArrayList(KEY_EXCLUDED_APPS);
|
||||||
|
currentlyExcludedApps = (excludedApps != null) ? excludedApps : Collections.emptyList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
|
public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
|
||||||
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity());
|
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(requireActivity());
|
||||||
alertDialogBuilder.setTitle(R.string.excluded_applications);
|
alertDialogBuilder.setTitle(R.string.excluded_applications);
|
||||||
|
|
||||||
final AppListDialogFragmentBinding binding = AppListDialogFragmentBinding.inflate(getActivity().getLayoutInflater(), null, false);
|
final AppListDialogFragmentBinding binding = AppListDialogFragmentBinding.inflate(requireActivity().getLayoutInflater(), null, false);
|
||||||
binding.executePendingBindings();
|
binding.executePendingBindings();
|
||||||
alertDialogBuilder.setView(binding.getRoot());
|
alertDialogBuilder.setView(binding.getRoot());
|
||||||
|
|
||||||
@ -114,7 +115,7 @@ public class AppListDialogFragment extends DialogFragment {
|
|||||||
return dialog;
|
return dialog;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setExclusionsAndDismiss() {
|
private void setExclusionsAndDismiss() {
|
||||||
final List<String> excludedApps = new ArrayList<>();
|
final List<String> excludedApps = new ArrayList<>();
|
||||||
for (final ApplicationData data : appData) {
|
for (final ApplicationData data : appData) {
|
||||||
if (data.isExcludedFromTunnel()) {
|
if (data.isExcludedFromTunnel()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user