From 6b62ce09c083ae2196b37d69d5b80c61c6882bfc Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Mon, 31 Mar 2014 07:53:40 +0200 Subject: [PATCH] Remember the last selected navigation filter (status type, label) and preselect it on the next startup. Fixes #113. --- .../app/settings/ApplicationSettings.java | 19 +++++ .../transdroid/core/gui/TorrentsActivity.java | 76 ++++++++++++++----- .../transdroid/core/gui/navigation/Label.java | 6 ++ .../core/gui/navigation/NavigationFilter.java | 7 ++ .../core/gui/navigation/StatusType.java | 6 ++ 5 files changed, 97 insertions(+), 17 deletions(-) diff --git a/core/src/org/transdroid/core/app/settings/ApplicationSettings.java b/core/src/org/transdroid/core/app/settings/ApplicationSettings.java index 799ce666..f0726df1 100644 --- a/core/src/org/transdroid/core/app/settings/ApplicationSettings.java +++ b/core/src/org/transdroid/core/app/settings/ApplicationSettings.java @@ -30,6 +30,7 @@ import org.json.JSONArray; import org.json.JSONException; import org.transdroid.core.app.search.SearchHelper; import org.transdroid.core.app.search.SearchSite; +import org.transdroid.core.gui.navigation.NavigationFilter; import org.transdroid.core.gui.navigation.StatusType; import org.transdroid.core.gui.search.SearchSetting; import org.transdroid.core.seedbox.SeedboxProvider; @@ -284,6 +285,24 @@ public class ApplicationSettings { prefs.edit().putInt("system_lastusedserver", order).commit(); } + /** + * Returns the unique code that (should) uniquely identify a navigation filter, such as a label, in the list of all + * available filters + * @return A code that the last used navigation filter reported as uniquely identifying itself, or null if no last + * used filter is known + */ + public String getLastUsedNavigationFilter() { + return prefs.getString("system_lastusedfilter", null); + } + + /** + * Registers some navigation filter as being the last used by the user + * @param server The navigation filter that the user last used in the interface + */ + public void setLastUsedNavigationFilter(NavigationFilter filter) { + prefs.edit().putString("system_lastusedfilter", filter.getCode()).commit(); + } + /** * Returns all available user-configured web-based (as opped to in-app) search sites * @return A list of all stored web search site settings objects diff --git a/core/src/org/transdroid/core/gui/TorrentsActivity.java b/core/src/org/transdroid/core/gui/TorrentsActivity.java index 994bb528..500e887f 100644 --- a/core/src/org/transdroid/core/gui/TorrentsActivity.java +++ b/core/src/org/transdroid/core/gui/TorrentsActivity.java @@ -44,18 +44,31 @@ import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.cookie.BasicClientCookie; import org.transdroid.core.R; -import org.transdroid.core.app.search.*; -import org.transdroid.core.app.settings.*; +import org.transdroid.core.app.search.SearchHelper_; +import org.transdroid.core.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.ServerSetting; +import org.transdroid.core.app.settings.SystemSettings; +import org.transdroid.core.app.settings.SystemSettings_; +import org.transdroid.core.app.settings.WebsearchSetting; import org.transdroid.core.gui.lists.LocalTorrent; import org.transdroid.core.gui.lists.NoProgressHeaderTransformer; import org.transdroid.core.gui.lists.SimpleListItem; -import org.transdroid.core.gui.log.*; -import org.transdroid.core.gui.navigation.*; -import org.transdroid.core.gui.rss.*; +import org.transdroid.core.gui.log.Log; +import org.transdroid.core.gui.log.Log_; +import org.transdroid.core.gui.navigation.FilterListAdapter; +import org.transdroid.core.gui.navigation.FilterListAdapter_; +import org.transdroid.core.gui.navigation.FilterListDropDownAdapter; +import org.transdroid.core.gui.navigation.FilterListDropDownAdapter_; +import org.transdroid.core.gui.navigation.Label; +import org.transdroid.core.gui.navigation.NavigationFilter; +import org.transdroid.core.gui.navigation.NavigationHelper; +import org.transdroid.core.gui.navigation.RefreshableActivity; +import org.transdroid.core.gui.navigation.StatusType; +import org.transdroid.core.gui.rss.RssfeedsActivity_; import org.transdroid.core.gui.search.BarcodeHelper; import org.transdroid.core.gui.search.FilePickerHelper; import org.transdroid.core.gui.search.UrlEntryDialog; -import org.transdroid.core.gui.settings.*; +import org.transdroid.core.gui.settings.MainSettingsActivity_; import org.transdroid.core.service.BootReceiver; import org.transdroid.core.service.ConnectivityHelper; import org.transdroid.core.widget.ListWidgetProvider; @@ -163,6 +176,8 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @InstanceState protected NavigationFilter currentFilter = null; @InstanceState + protected String preselectNavigationFilter = null; + @InstanceState protected boolean turleModeEnabled = false; @InstanceState protected ArrayList