From c8f48b0f652231565391914a86e8f3364481826f Mon Sep 17 00:00:00 2001 From: M66B Date: Sat, 4 Aug 2018 16:54:57 +0000 Subject: [PATCH] Added up navigation Fixes #6 --- app/src/main/AndroidManifest.xml | 8 ++++++-- .../java/eu/faircode/email/ActivityCompose.java | 13 +++++++++++++ .../java/eu/faircode/email/ActivitySetup.java | 13 +++++++++++++ .../java/eu/faircode/email/ActivityView.java | 17 ++++++++++++----- 4 files changed, 44 insertions(+), 7 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 9c826bee6b..9b76e6f9e3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -25,7 +25,9 @@ android:name="android.webkit.WebView.EnableSafeBrowsing" android:value="false" /> - + @@ -35,7 +37,9 @@ - + diff --git a/app/src/main/java/eu/faircode/email/ActivityCompose.java b/app/src/main/java/eu/faircode/email/ActivityCompose.java index d536c19bb0..303969496b 100644 --- a/app/src/main/java/eu/faircode/email/ActivityCompose.java +++ b/app/src/main/java/eu/faircode/email/ActivityCompose.java @@ -22,6 +22,7 @@ package eu.faircode.email; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; +import android.view.MenuItem; public class ActivityCompose extends ActivityBase implements FragmentManager.OnBackStackChangedListener { static final int LOADER_COMPOSE_GET = 1; @@ -37,6 +38,8 @@ public class ActivityCompose extends ActivityBase implements FragmentManager.OnB super.onCreate(savedInstanceState); setContentView(R.layout.activity_compose); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportFragmentManager().addOnBackStackChangedListener(this); if (getSupportFragmentManager().getFragments().size() == 0) { @@ -53,6 +56,16 @@ public class ActivityCompose extends ActivityBase implements FragmentManager.OnB } } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + } + return super.onOptionsItemSelected(item); + } + @Override public void onBackStackChanged() { if (getSupportFragmentManager().getBackStackEntryCount() == 0) diff --git a/app/src/main/java/eu/faircode/email/ActivitySetup.java b/app/src/main/java/eu/faircode/email/ActivitySetup.java index 8fdce37ba1..963655dc85 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySetup.java +++ b/app/src/main/java/eu/faircode/email/ActivitySetup.java @@ -27,6 +27,7 @@ import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v4.content.LocalBroadcastManager; +import android.view.MenuItem; public class ActivitySetup extends ActivityBase implements FragmentManager.OnBackStackChangedListener { static final String ACTION_EDIT_ACCOUNT = BuildConfig.APPLICATION_ID + ".EDIT_ACCOUNT"; @@ -37,6 +38,8 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac super.onCreate(savedInstanceState); setContentView(R.layout.activity_setup); + getSupportActionBar().setDisplayHomeAsUpEnabled(true); + getSupportFragmentManager().addOnBackStackChangedListener(this); if (getSupportFragmentManager().getFragments().size() == 0) { @@ -63,6 +66,16 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac lbm.unregisterReceiver(receiver); } + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + finish(); + return true; + } + return super.onOptionsItemSelected(item); + } + @Override public void onBackStackChanged() { if (getSupportFragmentManager().getBackStackEntryCount() == 0) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 4c8ee9f5e8..76e899b7f1 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -135,6 +135,7 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); drawerToggle.syncState(); + syncState(); } @Override @@ -159,6 +160,7 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); drawerToggle.onConfigurationChanged(newConfig); + } @Override @@ -188,6 +190,14 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack finish(); } + private void syncState() { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + boolean eula = prefs.getBoolean("eula", false); + drawerToggle.setDrawerIndicatorEnabled(eula); + getSupportActionBar().setDisplayHomeAsUpEnabled(eula); + getSupportActionBar().setHomeButtonEnabled(eula); + } + @Override public boolean onOptionsItemSelected(MenuItem item) { if (drawerToggle.onOptionsItemSelected(item)) @@ -197,10 +207,10 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack } private void init() { + syncState(); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); if (prefs.getBoolean("eula", false)) { - drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); - Bundle args = new Bundle(); args.putLong("folder", -1); @@ -225,8 +235,6 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack } }); } else { - drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); - FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.content_frame, new FragmentEula(), "eula"); fragmentTransaction.commit(); @@ -234,7 +242,6 @@ public class ActivityView extends ActivityBase implements FragmentManager.OnBack } public void updateDrawer() { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); ArrayAdapterDrawer drawerArray = new ArrayAdapterDrawer(this, R.layout.item_drawer); drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_unified)); drawerArray.add(new DrawerItem(ActivityView.this, R.string.menu_folders));