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