From df030db62a92616369017783dd78a3706a6c24a7 Mon Sep 17 00:00:00 2001 From: Eric Kok Date: Fri, 7 Feb 2014 19:34:52 +0100 Subject: [PATCH] Prepared for #7 auto refresh by adding a system setting (and moving help options to a separate screen). --- core/res/values/changelog.xml | 4 + core/res/values/strings.xml | 18 +++ core/res/xml/pref_help.xml | 37 ++++++ core/res/xml/pref_main.xml | 4 + core/res/xml/pref_system.xml | 33 ++--- .../core/app/settings/SystemSettings.java | 10 +- .../gui/settings/HelpSettingsActivity.java | 124 ++++++++++++++++++ .../gui/settings/MainSettingsActivity.java | 9 ++ .../gui/settings/SystemSettingsActivity.java | 52 +------- full/AndroidManifest.xml | 1 + lite/AndroidManifest.xml | 1 + 11 files changed, 221 insertions(+), 72 deletions(-) create mode 100644 core/res/xml/pref_help.xml create mode 100644 core/src/org/transdroid/core/gui/settings/HelpSettingsActivity.java diff --git a/core/res/values/changelog.xml b/core/res/values/changelog.xml index a0c42ca7..a29463d9 100644 --- a/core/res/values/changelog.xml +++ b/core/res/values/changelog.xml @@ -17,6 +17,10 @@ --> +Transdroid 2.1.2\n +- Support for new Torrent Search\'s private sites\n +- Added optional auto refresh\n +\n Transdroid 2.1.1\n - Improved handling of RSS feed read state\n - Fixes Xirvik seedbox configuration\n diff --git a/core/res/values/strings.xml b/core/res/values/strings.xml index 07b0c881..4a6eec71 100644 --- a/core/res/values/strings.xml +++ b/core/res/values/strings.xml @@ -279,6 +279,22 @@ Show torrent counter in ADW Launcher System + Automatic refreshing + Interval-based refresh of the main screen + + Disabled + 2 seconds + 5 seconds + 10 seconds + 30 seconds + + + 0 + 2 + 5 + 10 + 30 + Treat dormant torrents as inactive Torrents at 0KB/s (no data transfer) will be filtered as being inactive Check for updates @@ -293,6 +309,8 @@ Export settings %1$s will export server (including passwords), web search, RSS and system settings to the following plain text JSON file: %2$s Settings successfully exported + + Transdroid help Send error log Get support or report a bug View install guides diff --git a/core/res/xml/pref_help.xml b/core/res/xml/pref_help.xml new file mode 100644 index 00000000..98e90289 --- /dev/null +++ b/core/res/xml/pref_help.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + diff --git a/core/res/xml/pref_main.xml b/core/res/xml/pref_main.xml index b28de47a..9fb7cff8 100644 --- a/core/res/xml/pref_main.xml +++ b/core/res/xml/pref_main.xml @@ -63,6 +63,10 @@ android:key="header_system" android:title="@string/pref_system" android:order="302" /> + diff --git a/core/res/xml/pref_system.xml b/core/res/xml/pref_system.xml index ef65d994..3afe05de 100644 --- a/core/res/xml/pref_system.xml +++ b/core/res/xml/pref_system.xml @@ -23,11 +23,13 @@ android:summary="@string/pref_dormantasinactive_info" android:defaultValue="false" /> - + - - - + - - - - diff --git a/core/src/org/transdroid/core/app/settings/SystemSettings.java b/core/src/org/transdroid/core/app/settings/SystemSettings.java index b121f3f3..29a06911 100644 --- a/core/src/org/transdroid/core/app/settings/SystemSettings.java +++ b/core/src/org/transdroid/core/app/settings/SystemSettings.java @@ -46,6 +46,14 @@ public class SystemSettings { return prefs.getBoolean("system_dormantasinactive", false); } + /** + * Returns the interval in which automatic screen refreshes should be scheduled. + * @return The selected refresh interval in milliseconds or 0 if automatic refreshes should be disabled + */ + public int getRefreshIntervalMilliseconds() { + return Integer.parseInt(prefs.getString("system_autorefresh", "0")); + } + public boolean checkForUpdates() { return prefs.getBoolean("system_checkupdates", true); } @@ -70,5 +78,5 @@ public class SystemSettings { public void setLastCheckedForAppUpdates(Date lastChecked) { prefs.edit().putLong("system_lastappupdatecheck", lastChecked == null ? -1L : lastChecked.getTime()).commit(); } - + } diff --git a/core/src/org/transdroid/core/gui/settings/HelpSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/HelpSettingsActivity.java new file mode 100644 index 00000000..b3266cb9 --- /dev/null +++ b/core/src/org/transdroid/core/gui/settings/HelpSettingsActivity.java @@ -0,0 +1,124 @@ +/* + * Copyright 2010-2013 Eric Kok et al. + * + * Transdroid is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Transdroid is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Transdroid. If not, see . + */ +package org.transdroid.core.gui.settings; + +import org.androidannotations.annotations.Bean; +import org.androidannotations.annotations.EActivity; +import org.androidannotations.annotations.OptionsItem; +import org.transdroid.core.R; +import org.transdroid.core.app.settings.ApplicationSettings; +import org.transdroid.core.app.settings.SettingsPersistence; +import org.transdroid.core.gui.log.ErrorLogSender; +import org.transdroid.core.gui.navigation.DialogHelper; +import org.transdroid.core.gui.navigation.NavigationHelper; + +import android.annotation.TargetApi; +import android.app.Dialog; +import android.content.Intent; +import android.net.Uri; +import android.os.Build; +import android.os.Bundle; +import android.preference.Preference; +import android.preference.Preference.OnPreferenceClickListener; + +import com.actionbarsherlock.app.SherlockPreferenceActivity; + +@EActivity +public class HelpSettingsActivity extends SherlockPreferenceActivity { + + protected static final int DIALOG_CHANGELOG = 0; + protected static final int DIALOG_ABOUT = 1; + protected static final String INSTALLHELP_URI = "http://www.transdroid.org/download/"; + + @Bean + protected NavigationHelper navigationHelper; + @Bean + protected ApplicationSettings applicationSettings; + @Bean + protected ErrorLogSender errorLogSender; + @Bean + protected SettingsPersistence settingsPersistence; + + @SuppressWarnings("deprecation") + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + + // Just load the system-related preferences from XML + addPreferencesFromResource(R.xml.pref_help); + + // Handle outgoing links and preference changes + findPreference("system_sendlog").setOnPreferenceClickListener(onSendLogClick); + findPreference("system_installhelp").setOnPreferenceClickListener(onInstallHelpClick); + findPreference("system_changelog").setOnPreferenceClickListener(onChangeLogClick); + findPreference("system_about").setTitle(getString(R.string.pref_about, getString(R.string.app_name))); + findPreference("system_about").setOnPreferenceClickListener(onAboutClick); + } + + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + @OptionsItem(android.R.id.home) + protected void navigateUp() { + MainSettingsActivity_.intent(this).flags(Intent.FLAG_ACTIVITY_CLEAR_TOP).start(); + } + + private OnPreferenceClickListener onSendLogClick = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + errorLogSender.collectAndSendLog(HelpSettingsActivity.this, applicationSettings.getLastUsedServer()); + return true; + } + }; + + private OnPreferenceClickListener onInstallHelpClick = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(INSTALLHELP_URI))); + return true; + } + }; + + private OnPreferenceClickListener onChangeLogClick = new OnPreferenceClickListener() { + @SuppressWarnings("deprecation") + @Override + public boolean onPreferenceClick(Preference preference) { + showDialog(DIALOG_CHANGELOG); + return true; + } + }; + + private OnPreferenceClickListener onAboutClick = new OnPreferenceClickListener() { + @SuppressWarnings("deprecation") + @Override + public boolean onPreferenceClick(Preference preference) { + showDialog(DIALOG_ABOUT); + return true; + } + }; + + protected Dialog onCreateDialog(int id) { + switch (id) { + case DIALOG_CHANGELOG: + return DialogHelper.showDialog(this, new ChangelogDialog()); + case DIALOG_ABOUT: + return DialogHelper.showDialog(this, new AboutDialog()); + } + return null; + } + +} diff --git a/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java index f5a4dfc5..8a9c3b43 100644 --- a/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java +++ b/core/src/org/transdroid/core/gui/settings/MainSettingsActivity.java @@ -107,6 +107,7 @@ public class MainSettingsActivity extends SherlockPreferenceActivity { findPreference("header_addrssfeed").setOnPreferenceClickListener(onAddRssfeed); findPreference("header_background").setOnPreferenceClickListener(onBackgroundSettings); findPreference("header_system").setOnPreferenceClickListener(onSystemSettings); + findPreference("header_help").setOnPreferenceClickListener(onHelpSettings); // Add existing servers List servers = applicationSettings.getNormalServerSettings(); @@ -238,6 +239,14 @@ public class MainSettingsActivity extends SherlockPreferenceActivity { } }; + private OnPreferenceClickListener onHelpSettings = new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + HelpSettingsActivity_.intent(MainSettingsActivity.this).start(); + return true; + } + }; + private OnServerClickedListener onServerClicked = new OnServerClickedListener() { @Override public void onServerClicked(ServerSetting serverSetting) { diff --git a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java b/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java index b4880665..523d9c69 100644 --- a/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java +++ b/core/src/org/transdroid/core/gui/settings/SystemSettingsActivity.java @@ -27,7 +27,6 @@ import org.transdroid.core.R; import org.transdroid.core.app.settings.ApplicationSettings; import org.transdroid.core.app.settings.SettingsPersistence; import org.transdroid.core.gui.log.ErrorLogSender; -import org.transdroid.core.gui.navigation.DialogHelper; import org.transdroid.core.gui.navigation.NavigationHelper; import org.transdroid.core.gui.search.SearchHistoryProvider; import org.transdroid.core.service.BootReceiver; @@ -39,7 +38,6 @@ import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.SharedPreferences; -import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.preference.CheckBoxPreference; @@ -54,11 +52,8 @@ import de.keyboardsurfer.android.widget.crouton.Crouton; @EActivity public class SystemSettingsActivity extends SherlockPreferenceActivity { - protected static final int DIALOG_CHANGELOG = 0; - protected static final int DIALOG_ABOUT = 1; - protected static final int DIALOG_IMPORTSETTINGS = 2; - protected static final int DIALOG_EXPORTSETTINGS = 3; - protected static final String INSTALLHELP_URI = "http://www.transdroid.org/download/"; + protected static final int DIALOG_IMPORTSETTINGS = 0; + protected static final int DIALOG_EXPORTSETTINGS = 1; @Bean protected NavigationHelper navigationHelper; @@ -85,14 +80,9 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { } else { getPreferenceScreen().removePreference(findPreference("system_checkupdates")); } - findPreference("system_sendlog").setOnPreferenceClickListener(onSendLogClick); - findPreference("system_installhelp").setOnPreferenceClickListener(onInstallHelpClick); - findPreference("system_changelog").setOnPreferenceClickListener(onChangeLogClick); findPreference("system_clearsearch").setOnPreferenceClickListener(onClearSearchClick); findPreference("system_importsettings").setOnPreferenceClickListener(onImportSettingsClick); findPreference("system_exportsettings").setOnPreferenceClickListener(onExportSettingsClick); - findPreference("system_about").setTitle(getString(R.string.pref_about, getString(R.string.app_name))); - findPreference("system_about").setOnPreferenceClickListener(onAboutClick); } @TargetApi(Build.VERSION_CODES.HONEYCOMB) @@ -112,22 +102,6 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { } }; - private OnPreferenceClickListener onSendLogClick = new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference preference) { - errorLogSender.collectAndSendLog(SystemSettingsActivity.this, applicationSettings.getLastUsedServer()); - return true; - } - }; - - private OnPreferenceClickListener onInstallHelpClick = new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference preference) { - startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(INSTALLHELP_URI))); - return true; - } - }; - private OnPreferenceClickListener onImportSettingsClick = new OnPreferenceClickListener() { @SuppressWarnings("deprecation") @Override @@ -146,15 +120,6 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { } }; - private OnPreferenceClickListener onChangeLogClick = new OnPreferenceClickListener() { - @SuppressWarnings("deprecation") - @Override - public boolean onPreferenceClick(Preference preference) { - showDialog(DIALOG_CHANGELOG); - return true; - } - }; - private OnPreferenceClickListener onClearSearchClick = new OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { @@ -165,21 +130,8 @@ public class SystemSettingsActivity extends SherlockPreferenceActivity { } }; - private OnPreferenceClickListener onAboutClick = new OnPreferenceClickListener() { - @SuppressWarnings("deprecation") - @Override - public boolean onPreferenceClick(Preference preference) { - showDialog(DIALOG_ABOUT); - return true; - } - }; - protected Dialog onCreateDialog(int id) { switch (id) { - case DIALOG_CHANGELOG: - return DialogHelper.showDialog(this, new ChangelogDialog()); - case DIALOG_ABOUT: - return DialogHelper.showDialog(this, new AboutDialog()); case DIALOG_IMPORTSETTINGS: // @formatter:off return new AlertDialog.Builder(this) diff --git a/full/AndroidManifest.xml b/full/AndroidManifest.xml index 2214ee95..f59ae72f 100644 --- a/full/AndroidManifest.xml +++ b/full/AndroidManifest.xml @@ -190,6 +190,7 @@ + diff --git a/lite/AndroidManifest.xml b/lite/AndroidManifest.xml index 41e0552e..e3da09b0 100644 --- a/lite/AndroidManifest.xml +++ b/lite/AndroidManifest.xml @@ -181,6 +181,7 @@ +