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 ea87ed23..4d910e3c 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
@@ -114,6 +114,7 @@ public class MainActivity extends AppCompatActivity
public static final String ACTION_CHANGE_ACCOUNT = "com.github.dfa.diaspora_android.MainActivity.change_account";
public static final String ACTION_CLEAR_CACHE = "com.github.dfa.diaspora_android.MainActivity.clear_cache";
public static final String ACTION_UPDATE_TITLE_FROM_URL = "com.github.dfa.diaspora_android.MainActivity.set_title";
+ public static final String ACTION_RELOAD_ACTIVITY = "com.github.dfa.diaspora_android.MainActivity.reload_activity";
public static final String URL_MESSAGE = "URL_MESSAGE";
public static final String EXTRA_URL = "com.github.dfa.diaspora_android.extra_url";
@@ -408,6 +409,10 @@ public class MainActivity extends AppCompatActivity
app.getAvatarImageLoader().startImageDownload(navheaderImage, appSettings.getAvatarUrl());
}
}
+
+ Menu navMenu = navView.getMenu();
+ navMenu.findItem(R.id.nav_exit).setVisible(appSettings.isShowExitButtonInNavAlso());
+
}
@OnClick(R.id.toolbar)
@@ -454,6 +459,9 @@ public class MainActivity extends AppCompatActivity
Helpers.animateToActivity(MainActivity.this, PodSelectionActivity.class, true);
} else if (ACTION_CLEAR_CACHE.equals(action)) {
webView.clearCache(true);
+ } else if (ACTION_RELOAD_ACTIVITY.equals(action)) {
+ recreate();
+ return;
} else if (Intent.ACTION_SEND.equals(action) && type != null) {
switch (type) {
case "text/plain":
@@ -1062,8 +1070,8 @@ public class MainActivity extends AppCompatActivity
} else {
snackbarNoInternet.show();
}
+ break;
}
- break;
case R.id.nav_public: {
if (Helpers.isOnline(MainActivity.this)) {
@@ -1071,8 +1079,15 @@ public class MainActivity extends AppCompatActivity
} else {
snackbarNoInternet.show();
}
+ break;
+ }
+
+
+ case R.id.nav_exit: {
+ moveTaskToBack(true);
+ finish();
+ break;
}
- break;
case R.id.nav_settings_app: {
startActivity(new Intent(this, SettingsActivity.class));
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 c5d40ac0..87f429b0 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
@@ -38,6 +38,7 @@ import com.github.dfa.diaspora_android.R;
public class SettingsActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener {
private SharedPreferences sharedPreferences;
+ private boolean activityRestartRequired = false;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -124,6 +125,12 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer
intent.setAction(MainActivity.ACTION_CLEAR_CACHE);
break;
}
+ case R.string.pref_title__show_exit_button_in_nav_also:
+ case R.string.pref_title__intellihide_toolbars: {
+ activityRestartRequired = true;
+ return true;
+ }
+
default: {
intent = null;
break;
@@ -136,4 +143,14 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer
}
return super.onPreferenceTreeClick(screen, preference);
}
+
+ @Override
+ protected void onStop() {
+ super.onStop();
+ if (activityRestartRequired){
+ Intent intent = new Intent(this, MainActivity.class);
+ intent.setAction(MainActivity.ACTION_RELOAD_ACTIVITY);
+ startActivity(intent);
+ }
+ }
}
diff --git a/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java b/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java
index 938e8bfd..82daf248 100644
--- a/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java
+++ b/app/src/main/java/com/github/dfa/diaspora_android/data/AppSettings.java
@@ -234,4 +234,8 @@ public class AppSettings {
public boolean isIntellihideToolbars() {
return getBoolean(prefApp, R.string.pref_key__intellihide_toolbars, true);
}
+
+ public boolean isShowExitButtonInNavAlso(){
+ return getBoolean(prefApp, R.string.pref_key__show_exit_button_in_nav_also, false);
+ }
}
diff --git a/app/src/main/res/drawable/ic_cancel_black_48px.xml b/app/src/main/res/drawable/ic_cancel_black_48px.xml
new file mode 100644
index 00000000..789bf6f4
--- /dev/null
+++ b/app/src/main/res/drawable/ic_cancel_black_48px.xml
@@ -0,0 +1,4 @@
+
+
+
diff --git a/app/src/main/res/menu/main__navdrawer.xml b/app/src/main/res/menu/main__navdrawer.xml
index a9fff831..35569e1e 100644
--- a/app/src/main/res/menu/main__navdrawer.xml
+++ b/app/src/main/res/menu/main__navdrawer.xml
@@ -45,6 +45,12 @@
android:id="@+id/nav_public"
android:icon="@drawable/jb_aspects"
android:title="@string/nav_public_activities" />
+
+
-
diff --git a/app/src/main/res/values/strings-preferences.xml b/app/src/main/res/values/strings-preferences.xml
index d3afc808..864b90bd 100644
--- a/app/src/main/res/values/strings-preferences.xml
+++ b/app/src/main/res/values/strings-preferences.xml
@@ -14,6 +14,8 @@
pref_key_category_network
pref_key_load_images
pref_key_clear_cache
+ pref_key__show_exit_button_in_nav_also
+
pref_key_append_shared_via_app
pref_key_proxy_enabled
pref_key_proxy_host
@@ -21,6 +23,8 @@
wasProxyEnabled
+
+
podUserProfile_avatar
podUserProfile_name
podUserProfile_guid
@@ -55,11 +59,13 @@
Enable Proxy
Proxy Diaspora\'s traffic to circumvent firewalls.\nMay require restart
-
Host
-
Port
+ Exit button in navigation slider
+ Adds an additional »Exit App« button to the navigation slider
+
+
Personal settings
Open your diaspora account settings
@@ -83,4 +89,5 @@
Append shared-by-notice
Append a reference to this app ("shared by…") to shared texts
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9bb88634..ab79e952 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -169,7 +169,6 @@
<i>The splashscreen images can be found on flickr:
https://www.flickr.com/photos/129581906@N06/sets/72157651933980136/with/16594947123.
They were published by \"Lydia\" and are licensed under cc by-nc-sa.</i>
-
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index f1c8778a..336ac6df 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -24,6 +24,12 @@
android:summary="@string/pref_desc__append_shared_via_app"
android:title="@string/pref_title__append_shared_via_app"/>
+
+