Browse Source

Make a custom search site (selected in settings) stick. Fixes #35. Also collapse the search view after searching.

pull/82/head
Eric Kok 11 years ago
parent
commit
e071de3728
  1. 74
      core/src/org/transdroid/core/app/settings/ApplicationSettings.java
  2. 2
      core/src/org/transdroid/core/app/settings/WebsearchSetting.java
  3. 7
      core/src/org/transdroid/core/gui/TorrentsActivity.java
  4. 11
      core/src/org/transdroid/core/gui/search/SearchActivity.java

74
core/src/org/transdroid/core/app/settings/ApplicationSettings.java

@ -94,31 +94,21 @@ public class ApplicationSettings { @@ -94,31 +94,21 @@ public class ApplicationSettings {
boolean ssl = prefs.getBoolean("server_sslenabled_" + order, false);
String port = prefs.getString("server_port_" + order, "");
if(port.equals(""))
if (port.equals(""))
port = Integer.toString(Daemon.getDefaultPortNumber(type, ssl));
return new ServerSetting(order,
prefs.getString("server_name_" + order, null), type,
prefs.getString("server_address_" + order, null),
prefs.getString("server_localaddress_" + order, null),
prefs.getString("server_localnetwork_" + order, null),
Integer.parseInt(port),
ssl,
prefs.getBoolean("server_ssltrustall_" + order, false),
prefs.getString("server_ssltrustkey_" + order, null),
return new ServerSetting(order, prefs.getString("server_name_" + order, null), type, prefs.getString(
"server_address_" + order, null), prefs.getString("server_localaddress_" + order, null),
prefs.getString("server_localnetwork_" + order, null), Integer.parseInt(port), ssl, prefs.getBoolean(
"server_ssltrustall_" + order, false), prefs.getString("server_ssltrustkey_" + order, null),
prefs.getString("server_folder_" + order, null),
!prefs.getBoolean("server_disableauth_" + order, false),
prefs.getString("server_user_" + order, null),
prefs.getString("server_pass_" + order, null),
prefs.getString("server_extrapass_" + order, null),
OS.fromCode(prefs.getString("server_os_" + order, "type_linux")),
prefs.getString("server_downloaddir_" + order, null),
prefs.getString("server_ftpurl_" + order, null),
prefs.getString("server_ftppass_" + order, null),
Integer.parseInt(prefs.getString("server_timeout_" + order, "8")),
prefs.getBoolean("server_alarmfinished_" + order, true),
prefs.getBoolean("server_alarmnew_" + order, false),
false);
!prefs.getBoolean("server_disableauth_" + order, false), prefs.getString("server_user_" + order, null),
prefs.getString("server_pass_" + order, null), prefs.getString("server_extrapass_" + order, null),
OS.fromCode(prefs.getString("server_os_" + order, "type_linux")), prefs.getString("server_downloaddir_"
+ order, null), prefs.getString("server_ftpurl_" + order, null), prefs.getString(
"server_ftppass_" + order, null), Integer.parseInt(prefs.getString("server_timeout_" + order,
"8")), prefs.getBoolean("server_alarmfinished_" + order, true), prefs.getBoolean(
"server_alarmnew_" + order, false), false);
// @formatter:on
}
@ -261,10 +251,8 @@ public class ApplicationSettings { @@ -261,10 +251,8 @@ public class ApplicationSettings {
*/
public WebsearchSetting getWebsearchSetting(int order) {
// @formatter:off
return new WebsearchSetting(order,
prefs.getString("websearch_name_" + order, null),
prefs.getString("websearch_baseurl_" + order, null),
prefs.getString("websearch_cookies_" + order, null));
return new WebsearchSetting(order, prefs.getString("websearch_name_" + order, null), prefs.getString(
"websearch_baseurl_" + order, null), prefs.getString("websearch_cookies_" + order, null));
// @formatter:on
}
@ -325,11 +313,9 @@ public class ApplicationSettings { @@ -325,11 +313,9 @@ public class ApplicationSettings {
public RssfeedSetting getRssfeedSetting(int order) {
// @formatter:off
long lastViewed = prefs.getLong("rssfeed_lastviewed_" + order, -1);
return new RssfeedSetting(order,
prefs.getString("rssfeed_name_" + order, null),
prefs.getString("rssfeed_url_" + order, null),
prefs.getBoolean("rssfeed_reqauth_" + order, false),
lastViewed == -1L ? null: new Date(lastViewed));
return new RssfeedSetting(order, prefs.getString("rssfeed_name_" + order, null), prefs.getString("rssfeed_url_"
+ order, null), prefs.getBoolean("rssfeed_reqauth_" + order, false), lastViewed == -1L ? null
: new Date(lastViewed));
// @formatter:on
}
@ -427,12 +413,6 @@ public class ApplicationSettings { @@ -427,12 +413,6 @@ public class ApplicationSettings {
public SearchSetting getLastUsedSearchSite() {
String lastKey = getLastUsedSearchSiteKey();
List<SearchSite> allsites = searchHelper.getAvailableSites();
int lastWebsearch = -1;
try {
lastWebsearch = Integer.parseInt(lastKey);
} catch (Exception e) {
// Not an in-app search site, but probably an in-app search
}
if (lastKey == null) {
// No site yet set specified; return the first in-app one, if available
@ -442,6 +422,14 @@ public class ApplicationSettings { @@ -442,6 +422,14 @@ public class ApplicationSettings {
return null;
}
int lastWebsearch = -1;
if (lastKey.startsWith(WebsearchSetting.KEY_PREFIX)) {
try {
lastWebsearch = Integer.parseInt(lastKey.substring(WebsearchSetting.KEY_PREFIX.length()));
} catch (Exception e) {
// Not an in-app search site, but probably an in-app search
}
}
if (lastWebsearch >= 0) {
// The last used site should be a user-configured web search site
int max = getMaxWebsearch(); // Zero-based index, so with max == 0 there is 1 server
@ -481,7 +469,7 @@ public class ApplicationSettings { @@ -481,7 +469,7 @@ public class ApplicationSettings {
* Registers the unique key of some web search or in-app search site as being last used by the user
* @param order The key identifying the specific server
*/
public void setLastUsedSearchSite(SearchSite site) {
public void setLastUsedSearchSite(SearchSetting site) {
prefs.edit().putString("header_setsearchsite", site.getKey()).commit();
}
@ -520,12 +508,10 @@ public class ApplicationSettings { @@ -520,12 +508,10 @@ public class ApplicationSettings {
if (!prefs.contains("widget_server_" + appWidgetId))
return null;
// @formatter:off
return new WidgetConfig(
prefs.getInt("widget_server_" + appWidgetId, -1),
StatusType.valueOf(prefs.getString("widget_status_" + appWidgetId, StatusType.ShowAll.name())),
TorrentsSortBy.valueOf(prefs.getString("widget_sortby_" + appWidgetId, TorrentsSortBy.Alphanumeric.name())),
prefs.getBoolean("widget_reverse_" + appWidgetId, false),
prefs.getBoolean("widget_darktheme_" + appWidgetId, false));
return new WidgetConfig(prefs.getInt("widget_server_" + appWidgetId, -1), StatusType.valueOf(prefs.getString(
"widget_status_" + appWidgetId, StatusType.ShowAll.name())), TorrentsSortBy.valueOf(prefs.getString(
"widget_sortby_" + appWidgetId, TorrentsSortBy.Alphanumeric.name())), prefs.getBoolean(
"widget_reverse_" + appWidgetId, false), prefs.getBoolean("widget_darktheme_" + appWidgetId, false));
// @formatter:on
}

2
core/src/org/transdroid/core/app/settings/WebsearchSetting.java

@ -29,7 +29,7 @@ import android.text.TextUtils; @@ -29,7 +29,7 @@ import android.text.TextUtils;
public class WebsearchSetting implements SimpleListItem, SearchSetting {
private static final String DEFAULT_NAME = "Default";
private static final String KEY_PREFIX = "websearch_";
public static final String KEY_PREFIX = "websearch_";
private final int order;
private final String name;

7
core/src/org/transdroid/core/gui/TorrentsActivity.java

@ -553,6 +553,13 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi @@ -553,6 +553,13 @@ public class TorrentsActivity extends SherlockFragmentActivity implements OnNavi
}
@Override
protected void onPause() {
if (searchMenu != null)
searchMenu.collapseActionView();
super.onPause();
}
@Override
public boolean onSearchRequested() {
if (searchMenu != null) {

11
core/src/org/transdroid/core/gui/search/SearchActivity.java

@ -255,21 +255,28 @@ public class SearchActivity extends SherlockFragmentActivity implements OnNaviga @@ -255,21 +255,28 @@ public class SearchActivity extends SherlockFragmentActivity implements OnNaviga
@OptionsItem(resName = "action_refresh")
protected void refreshSearch() {
if (searchMenu != null) {
// Close the search view in the ation bar
searchMenu.collapseActionView();
}
if (lastUsedSite instanceof WebsearchSetting) {
// Start a browser page directly to the requested search results
WebsearchSetting websearch = (WebsearchSetting) lastUsedSite;
startActivity(new Intent(Intent.ACTION_VIEW,
Uri.parse(String.format(websearch.getBaseUrl(), lastUsedQuery))));
finish();
} else if (lastUsedSite instanceof SearchSite) {
// Save the search site currently used to search for future usage
applicationSettings.setLastUsedSearchSite(lastUsedSite);
// Update the activity title (only shown on large devices)
getSupportActionBar().setTitle(
NavigationHelper.buildCondensedFontString(getString(R.string.search_queryonsite, lastUsedQuery,
lastUsedSite.getName())));
// Save the search site currently used to search for future usage
applicationSettings.setLastUsedSearchSite((SearchSite) lastUsedSite);
// Ask the results fragment to start a search for the specified query
fragmentResults.startSearch(lastUsedQuery, (SearchSite) lastUsedSite);

Loading…
Cancel
Save