From 49e30246fbe875b7d2c8e2eb75ce1c86b700855e Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 1 Mar 2018 13:07:20 -0600 Subject: [PATCH] Set selected for filter selection activity --- .../todoroo/astrid/adapter/FilterAdapter.java | 5 +---- .../astrid/reminders/ReminderPreferences.java | 1 + .../activities/FilterSelectionActivity.java | 6 ++++-- .../tasks/dashclock/DashClockSettings.java | 4 ++-- .../ui/activity/TaskerSettingsActivity.java | 1 + .../preferences/AppearancePreferences.java | 1 + .../preferences/DefaultFilterProvider.java | 19 ++++++++++++++----- .../tasks/widget/WidgetConfigActivity.java | 8 ++++++-- 8 files changed, 30 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java b/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java index f3d979967..60d15c0be 100644 --- a/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java +++ b/app/src/main/java/com/todoroo/astrid/adapter/FilterAdapter.java @@ -67,7 +67,6 @@ public class FilterAdapter extends ArrayAdapter { private final List items = new ArrayList<>(); private boolean navigationDrawer; - private boolean remoteListPicker; private Filter selected; private final LayoutInflater inflater; @@ -252,8 +251,6 @@ public class FilterAdapter extends ArrayAdapter { public void populateRemoteListPicker() { clear(); - remoteListPicker = true; - for (Filter filter : filterProvider.getGoogleTaskFilters()) { add(filter); } @@ -329,7 +326,7 @@ public class FilterAdapter extends ArrayAdapter { return; } - if (!remoteListPicker && selected != null && selected.equals(filter)) { + if (selected != null && selected.equals(filter)) { viewHolder.view.setBackgroundColor(getColor(activity, R.color.drawer_color_selected)); } else { viewHolder.view.setBackgroundResource(0); diff --git a/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java b/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java index 82f997de4..56f1e9170 100644 --- a/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java +++ b/app/src/main/java/com/todoroo/astrid/reminders/ReminderPreferences.java @@ -111,6 +111,7 @@ public class ReminderPreferences extends InjectingPreferenceActivity { badgePreference.setSummary(filter.listingTitle); badgePreference.setOnPreferenceClickListener(preference -> { Intent intent = new Intent(ReminderPreferences.this, FilterSelectionActivity.class); + intent.putExtra(FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.getBadgeFilter()); intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true); startActivityForResult(intent, REQUEST_BADGE_LIST); return true; diff --git a/app/src/main/java/org/tasks/activities/FilterSelectionActivity.java b/app/src/main/java/org/tasks/activities/FilterSelectionActivity.java index 2d85e2eb3..9bf5d8e18 100644 --- a/app/src/main/java/org/tasks/activities/FilterSelectionActivity.java +++ b/app/src/main/java/org/tasks/activities/FilterSelectionActivity.java @@ -28,12 +28,14 @@ public class FilterSelectionActivity extends InjectingAppCompatActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - final boolean returnFilter = getIntent().getBooleanExtra(EXTRA_RETURN_FILTER, false); + Intent intent = getIntent(); + Filter selected = intent.getParcelableExtra(EXTRA_FILTER); + boolean returnFilter = intent.getBooleanExtra(EXTRA_RETURN_FILTER, false); filterAdapter.populateList(); dialogBuilder.newDialog() - .setSingleChoiceItems(filterAdapter, -1, (dialog, which) -> { + .setSingleChoiceItems(filterAdapter, filterAdapter.indexOf(selected), (dialog, which) -> { final Filter selectedFilter = (Filter) filterAdapter.getItem(which); Intent data = new Intent(); if (returnFilter) { diff --git a/app/src/main/java/org/tasks/dashclock/DashClockSettings.java b/app/src/main/java/org/tasks/dashclock/DashClockSettings.java index ec8378a72..9ac5e7ea3 100644 --- a/app/src/main/java/org/tasks/dashclock/DashClockSettings.java +++ b/app/src/main/java/org/tasks/dashclock/DashClockSettings.java @@ -43,6 +43,7 @@ public class DashClockSettings extends InjectingPreferenceActivity implements Pu findPreference(getString(R.string.p_dashclock_filter)).setOnPreferenceClickListener(preference -> { Intent intent = new Intent(DashClockSettings.this, FilterSelectionActivity.class); + intent.putExtra(FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.getDashclockFilter()); intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true); startActivityForResult(intent, REQUEST_SELECT_FILTER); return false; @@ -75,8 +76,7 @@ public class DashClockSettings extends InjectingPreferenceActivity implements Pu if (requestCode == REQUEST_SELECT_FILTER) { if (resultCode == Activity.RESULT_OK) { Filter filter = data.getParcelableExtra(FilterSelectionActivity.EXTRA_FILTER); - String filterPreference = defaultFilterProvider.getFilterPreferenceValue(filter); - preferences.setString(R.string.p_dashclock_filter, filterPreference); + defaultFilterProvider.setDashclockFilter(filter); refreshPreferences(); localBroadcastManager.broadcastRefresh(); } diff --git a/app/src/main/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java b/app/src/main/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java index 816c63778..9e5206e68 100755 --- a/app/src/main/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java +++ b/app/src/main/java/org/tasks/locale/ui/activity/TaskerSettingsActivity.java @@ -49,6 +49,7 @@ public final class TaskerSettingsActivity extends AbstractFragmentPluginPreferen findPreference(R.string.filter).setOnPreferenceClickListener(preference -> { Intent intent = new Intent(TaskerSettingsActivity.this, FilterSelectionActivity.class); + intent.putExtra(FilterSelectionActivity.EXTRA_FILTER, filter); intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true); startActivityForResult(intent, REQUEST_SELECT_FILTER); return false; diff --git a/app/src/main/java/org/tasks/preferences/AppearancePreferences.java b/app/src/main/java/org/tasks/preferences/AppearancePreferences.java index 12d63e741..a12be25e7 100644 --- a/app/src/main/java/org/tasks/preferences/AppearancePreferences.java +++ b/app/src/main/java/org/tasks/preferences/AppearancePreferences.java @@ -81,6 +81,7 @@ public class AppearancePreferences extends InjectingPreferenceActivity implement defaultList.setSummary(filter.listingTitle); defaultList.setOnPreferenceClickListener(preference -> { Intent intent = new Intent(AppearancePreferences.this, FilterSelectionActivity.class); + intent.putExtra(FilterSelectionActivity.EXTRA_FILTER, defaultFilterProvider.getDefaultFilter()); intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true); startActivityForResult(intent, REQUEST_DEFAULT_LIST); return true; diff --git a/app/src/main/java/org/tasks/preferences/DefaultFilterProvider.java b/app/src/main/java/org/tasks/preferences/DefaultFilterProvider.java index 840d92597..175c79852 100644 --- a/app/src/main/java/org/tasks/preferences/DefaultFilterProvider.java +++ b/app/src/main/java/org/tasks/preferences/DefaultFilterProvider.java @@ -62,6 +62,10 @@ public class DefaultFilterProvider { this.gtasksFilterExposer = gtasksFilterExposer; } + public Filter getDashclockFilter() { + return getFilterFromPreference(R.string.p_dashclock_filter); + } + public Filter getBadgeFilter() { return getFilterFromPreference(R.string.p_badge_list); } @@ -106,17 +110,22 @@ public class DefaultFilterProvider { public void setDefaultFilter(Filter filter) { tracker.reportEvent(Tracking.Events.SET_DEFAULT_LIST); - String filterPreferenceValue = getFilterPreferenceValue(filter); - if (!Strings.isNullOrEmpty(filterPreferenceValue)) { - preferences.setString(R.string.p_default_list, filterPreferenceValue); - } + setFilterPreference(filter, R.string.p_default_list); } public void setBadgeFilter(Filter filter) { tracker.reportEvent(Tracking.Events.SET_BADGE_LIST); + setFilterPreference(filter, R.string.p_badge_list); + } + + public void setDashclockFilter(Filter filter) { + setFilterPreference(filter, R.string.p_dashclock_filter); + } + + private void setFilterPreference(Filter filter, int prefId) { String filterPreferenceValue = getFilterPreferenceValue(filter); if (!Strings.isNullOrEmpty(filterPreferenceValue)) { - preferences.setString(R.string.p_badge_list, filterPreferenceValue); + preferences.setString(prefId, filterPreferenceValue); } } diff --git a/app/src/main/java/org/tasks/widget/WidgetConfigActivity.java b/app/src/main/java/org/tasks/widget/WidgetConfigActivity.java index 4d7dc6750..ad1842228 100644 --- a/app/src/main/java/org/tasks/widget/WidgetConfigActivity.java +++ b/app/src/main/java/org/tasks/widget/WidgetConfigActivity.java @@ -77,6 +77,7 @@ public class WidgetConfigActivity extends InjectingPreferenceActivity implements findPreference(R.string.p_widget_filter).setOnPreferenceClickListener(preference -> { Intent intent = new Intent(WidgetConfigActivity.this, FilterSelectionActivity.class); + intent.putExtra(FilterSelectionActivity.EXTRA_FILTER, getFilter()); intent.putExtra(FilterSelectionActivity.EXTRA_RETURN_FILTER, true); startActivityForResult(intent, REQUEST_FILTER); return false; @@ -138,8 +139,11 @@ public class WidgetConfigActivity extends InjectingPreferenceActivity implements } private void updateFilter() { - Filter filter = defaultFilterProvider.getFilterFromPreference(widgetPreferences.getFilterId()); - findPreference(R.string.p_widget_filter).setSummary(filter.listingTitle); + findPreference(R.string.p_widget_filter).setSummary(getFilter().listingTitle); + } + + private Filter getFilter() { + return defaultFilterProvider.getFilterFromPreference(widgetPreferences.getFilterId()); } private void updateTheme() {