From d4159afcecd44f6eaa9cc12ffe4d9e18b4da8def Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Sun, 3 May 2020 19:26:53 +0200 Subject: [PATCH] make folder state setter its own function --- .../android/vanilla/FolderPickerActivity.java | 49 +++++++++++++++---- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/ch/blinkenlights/android/vanilla/FolderPickerActivity.java b/app/src/main/java/ch/blinkenlights/android/vanilla/FolderPickerActivity.java index 385e0324..eb22f972 100644 --- a/app/src/main/java/ch/blinkenlights/android/vanilla/FolderPickerActivity.java +++ b/app/src/main/java/ch/blinkenlights/android/vanilla/FolderPickerActivity.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2013-2017 Adrian Ulrich + * Copyright (C) 2013-2020 Adrian Ulrich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -228,24 +228,55 @@ public abstract class FolderPickerActivity extends Activity .setItems(options, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { - ArrayList includedDirs = mListAdapter.getIncludedDirs(); - ArrayList excludedDirs = mListAdapter.getExcludedDirs(); - includedDirs.remove(path); - excludedDirs.remove(path); switch (which) { case 0: - includedDirs.add(path); + setFolderState(path, FolderState.INCLUDE); break; case 1: - excludedDirs.add(path); + setFolderState(path, FolderState.EXCLUDE); break; default: + setFolderState(path, FolderState.NEUTRAL); } - mListAdapter.setIncludedDirs(includedDirs); - mListAdapter.setExcludedDirs(excludedDirs); } }); builder.create().show(); return true; } + + /** + * Enums to pass to setFolderState() + */ + enum FolderState { + NEUTRAL, + INCLUDE, + EXCLUDE, + } + + /** + * update included/excluded folders on the adapter. + * + * @param folder the folder to act on. + * @param state the state the passed in folder should have. + */ + private void setFolderState(String folder, FolderState state) { + ArrayList includedDirs = mListAdapter.getIncludedDirs(); + ArrayList excludedDirs = mListAdapter.getExcludedDirs(); + includedDirs.remove(folder); + excludedDirs.remove(folder); + switch (state) { + case INCLUDE: + includedDirs.add(folder); + break; + case EXCLUDE: + excludedDirs.add(folder); + break; + case NEUTRAL: + // noop. + break; + } + + mListAdapter.setIncludedDirs(includedDirs); + mListAdapter.setExcludedDirs(excludedDirs); + } }