diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java index 310b3023f..d07648a4e 100644 --- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java +++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsDetailActivity.java @@ -427,6 +427,7 @@ public void updateActionBarIcons() { @Override public void onBackPressed() { + Log.v(TAG,"NewsDetailActivity onBackPressed() Called"); if (!handlePodcastBackPressed()) super.onBackPressed(); } diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java index 7fdb34d28..959e4c863 100644 --- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java +++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/NewsReaderListActivity.java @@ -48,6 +48,8 @@ import android.widget.SearchView; import android.widget.Toast; +import androidx.activity.OnBackPressedCallback; +import androidx.activity.OnBackPressedDispatcher; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.appcompat.app.ActionBarDrawerToggle; @@ -209,6 +211,33 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + + //trying to get back button working again + OnBackPressedDispatcher dispatcher = getOnBackPressedDispatcher(); + getOnBackPressedDispatcher().addCallback(this, new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + Log.d(TAG, "NewsReaderListActivity handleOnBackPressed() called"); + if (!handlePodcastBackPressed()) { + + //Add in check for preference to determine if closes app or opens drawer + if (mPrefs.getBoolean(SettingsActivity.CB_PREF_BACK_OPENS_DRAWER, false)) { //change this line to the preference test - or add into an AND in the below iff + + if (binding.drawerLayout != null) { + if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) + setEnabled(false); + else + binding.drawerLayout.openDrawer(GravityCompat.START); + } else { + setEnabled(false); + } + } else { + setEnabled(false); + } + } + } + }); + binding = ActivityNewsreaderBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot()); @@ -859,28 +888,30 @@ public boolean onMenuItemActionCollapse(MenuItem item) { return true; } + // remove this method overide as no longer works when using the new android predictive back gestures + // cleanup once confirmed new approach is working as expected +/* @Override public void onBackPressed() { + Log.e(TAG,"NewsReaderListActivity onBackPressed() Called"); if (!handlePodcastBackPressed()) { //Add in check for preference to determine if closes app or opens drawer - Boolean backAction = mPrefs.getBoolean(SettingsActivity.CB_PREF_BACK_OPENS_DRAWER,false); - //if (backAction) { //change this line to the preference test - or add into an AND in the below iff - if (backAction) { //change this line to the preference test - or add into an AND in the below iff + if (mPrefs.getBoolean(SettingsActivity.CB_PREF_BACK_OPENS_DRAWER,false)) { //change this line to the preference test - or add into an AND in the below iff if (binding.drawerLayout != null) { if (binding.drawerLayout.isDrawerOpen(GravityCompat.START)) - super.onBackPressed(); - else + //super.onBackPressed(); + //else binding.drawerLayout.openDrawer(GravityCompat.START); } else { - super.onBackPressed(); + //super.onBackPressed(); } }else { super.onBackPressed(); } } } - +*/ public static final int RESULT_SETTINGS = 15642; private void syncMenuItemUnreadOnly() { diff --git a/News-Android-App/src/main/res/xml/pref_general.xml b/News-Android-App/src/main/res/xml/pref_general.xml index 4721102f5..0cb145f24 100644 --- a/News-Android-App/src/main/res/xml/pref_general.xml +++ b/News-Android-App/src/main/res/xml/pref_general.xml @@ -95,7 +95,6 @@ android:title="@string/pref_title_BackButtonOpensDrawer" app:iconSpaceReserved="false" /> -