From 30ca937461cc89a1ecef7c79e87f183a233e63be Mon Sep 17 00:00:00 2001 From: vanitasvitae Date: Thu, 27 Oct 2016 21:42:41 +0200 Subject: [PATCH] Added info Toasts to Proxy preference, that inform the user about required restart and successful preset setting --- CONTRIBUTORS.txt | 2 +- .../activity/MainActivity.java | 6 +-- .../activity/SettingsActivity.java | 54 +++++++++++++++++++ .../ui/theme/ThemedPreferenceFragment.java | 2 + .../main/res/values/strings-preferences.xml | 2 + 5 files changed, 60 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index fe191e70..952d73c8 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -7,7 +7,7 @@ 06l>> Firstname Lastname (E-Mail): Text 07l>> Username (Link): Text 08l>> Username (E-Mail): Text -## 99l CONTRIBUTORS +## 99l CONTRIBUTORS Martín Vukovic (martinvukovic@protonmail.com): Diaspora Native WebApp Gaukler Faun (https://github.com/scoute-dich): Diaspora Native WebApp additions Abhijith Balan (abhijithb21 AT openmailbox DOT org): Malayalam translation diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java index 542151cd..9e4dafee 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/MainActivity.java @@ -511,11 +511,7 @@ public class MainActivity extends ThemedActivity * @return top fragment or null if there is none displayed */ private CustomFragment getTopFragment() { - Fragment top = fm.findFragmentById(R.id.fragment_container); - if (top != null) { - return (CustomFragment) top; - } - return null; + return (CustomFragment) fm.findFragmentById(R.id.fragment_container); } /** diff --git a/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java b/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java index 1488a0b9..e0f7f713 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/activity/SettingsActivity.java @@ -14,15 +14,18 @@ import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.support.design.widget.AppBarLayout; +import android.support.v4.app.Fragment; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; +import android.widget.Toast; import com.github.dfa.diaspora_android.App; import com.github.dfa.diaspora_android.R; import com.github.dfa.diaspora_android.ui.theme.ColorPalette; +import com.github.dfa.diaspora_android.ui.theme.CustomFragment; import com.github.dfa.diaspora_android.ui.theme.ThemeHelper; import com.github.dfa.diaspora_android.ui.theme.ThemedActivity; import com.github.dfa.diaspora_android.ui.theme.ThemedPreferenceFragment; @@ -127,6 +130,31 @@ public class SettingsActivity extends ThemedActivity { super.onStop(); } + @Override + public void onBackPressed() { + AppLog.d(this, "onBackPressed"); + ThemedPreferenceFragment top = getTopFragment(); + if(top != null && top.getFragmentTag().equals(SettingsFragmentProxy.TAG)) { + AppLog.d(this, "top was proxy"); + ProxyHandler.ProxySettings newProxySettings = getAppSettings().getProxySettings(); + if(oldProxySettings.isEnabled() && !newProxySettings.isEnabled()) { + AppLog.d(this, "proxy disabled"); + Toast.makeText(this, R.string.toast__proxy_disabled__restart_required, Toast.LENGTH_LONG).show(); + } + } + AppLog.d(this, "top is null: "+(top == null)); + super.onBackPressed(); + } + + /** + * Return the fragment which is currently displayed in R.id.fragment_container + * + * @return top fragment or null if there is none displayed + */ + private ThemedPreferenceFragment getTopFragment() { + return (ThemedPreferenceFragment) getFragmentManager().findFragmentById(R.id.settings__fragment_container); + } + public static class SettingsFragmentMaster extends ThemedPreferenceFragment { public static final String TAG = "com.github.dfa.diaspora_android.settings.SettingsFragmentMaster"; @@ -212,6 +240,11 @@ public class SettingsActivity extends ThemedActivity { } return super.onPreferenceTreeClick(screen, preference); } + + @Override + public String getFragmentTag() { + return TAG; + } } public static class SettingsFragmentThemes extends ThemedPreferenceFragment { @@ -247,6 +280,11 @@ public class SettingsActivity extends ThemedActivity { return super.onPreferenceTreeClick(screen, preference); } + @Override + public String getFragmentTag() { + return TAG; + } + /** * Show a colorPicker Dialog * @@ -329,6 +367,11 @@ public class SettingsActivity extends ThemedActivity { public void updateViewColors() { } + + @Override + public String getFragmentTag() { + return TAG; + } } public static class SettingsFragmentProxy extends ThemedPreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -364,12 +407,18 @@ public class SettingsActivity extends ThemedActivity { if (appSettings.isKeyEqual(key, R.string.pref_key__http_proxy_load_tor_preset)) { appSettings.setProxyHttpHost("127.0.0.1"); appSettings.setProxyHttpPort(8118); + Toast.makeText(screen.getContext(), R.string.toast__proxy_orbot_preset_loaded, Toast.LENGTH_SHORT).show(); return true; } } return super.onPreferenceTreeClick(screen, preference); } + @Override + public String getFragmentTag() { + return TAG; + } + @Override public void updateViewColors() { @@ -399,5 +448,10 @@ public class SettingsActivity extends ThemedActivity { public void updateViewColors() { } + + @Override + public String getFragmentTag() { + return TAG; + } } } diff --git a/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceFragment.java b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceFragment.java index aae5f0dc..9cb288cd 100644 --- a/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceFragment.java +++ b/app/src/main/java/com/github/dfa/diaspora_android/ui/theme/ThemedPreferenceFragment.java @@ -39,4 +39,6 @@ public abstract class ThemedPreferenceFragment extends PreferenceFragment { } return super.onPreferenceTreeClick(screen, preference); } + + public abstract String getFragmentTag(); } diff --git a/app/src/main/res/values/strings-preferences.xml b/app/src/main/res/values/strings-preferences.xml index 4406361d..8709afa1 100644 --- a/app/src/main/res/values/strings-preferences.xml +++ b/app/src/main/res/values/strings-preferences.xml @@ -115,6 +115,8 @@ Port HTTP SOCKS5 + App needs to restart to disable proxy usage + Orbot proxy preset loaded