From 6fd70c61646c7ff65636e39c9877a56d704c99c1 Mon Sep 17 00:00:00 2001 From: SpiritCroc <dev@spiritcroc.de> Date: Sat, 11 Jun 2022 10:31:18 +0200 Subject: [PATCH] Make spaces back navigation a setting, disabled by default Adds back support for those also in viewPager navigation mode, but still don't build the stack when swiping. Change-Id: Ib800eab558875e74b590967e7c5432a909bac60a --- .../java/im/vector/app/features/home/HomeDetailFragment.kt | 3 +-- .../im/vector/app/features/settings/VectorPreferences.kt | 5 +++++ vector/src/main/res/values/strings_sc.xml | 3 +++ vector/src/main/res/xml/vector_settings_preferences.xml | 6 ++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt b/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt index 7d6272cf68..2e17865ccd 100644 --- a/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/HomeDetailFragment.kt @@ -23,7 +23,6 @@ import android.view.MenuItem import android.view.View import android.view.ViewGroup import android.view.ViewTreeObserver -import android.widget.Toast import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.viewpager2.adapter.FragmentStateAdapter @@ -828,7 +827,7 @@ class HomeDetailFragment @Inject constructor( return this } - override fun onBackPressed(toolbarButton: Boolean) = if (!pagerPagingEnabled && getCurrentSpace() != null) { + override fun onBackPressed(toolbarButton: Boolean) = if (vectorPreferences.spaceBackNavigation() && getCurrentSpace() != null) { navigateBack() true } else { diff --git a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt index 044dafebfa..2e07347aac 100755 --- a/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt +++ b/vector/src/main/java/im/vector/app/features/settings/VectorPreferences.kt @@ -225,6 +225,7 @@ class VectorPreferences @Inject constructor( private const val SETTINGS_READ_RECEIPT_FOLLOWS_READ_MARKER = "SETTINGS_READ_RECEIPT_FOLLOWS_READ_MARKER" private const val SETTINGS_SHOW_OPEN_ANONYMOUS = "SETTINGS_SHOW_OPEN_ANONYMOUS" private const val SETTINGS_FLOATING_DATE = "SETTINGS_FLOATING_DATE" + private const val SETTINGS_SPACE_BACK_NAVIGATION = "SETTINGS_SPACE_BACK_NAVIGATION" private const val DID_ASK_TO_ENABLE_SESSION_PUSH = "DID_ASK_TO_ENABLE_SESSION_PUSH" @@ -1168,6 +1169,10 @@ class VectorPreferences @Inject constructor( return defaultPrefs.getBoolean(SETTINGS_FLOATING_DATE, true) } + fun spaceBackNavigation(): Boolean { + return defaultPrefs.getBoolean(SETTINGS_SPACE_BACK_NAVIGATION, false) + } + /** * I likely do more fresh installs of the app than anyone else, so a shortcut to change some of the default settings to * my preferred values can safe me some time diff --git a/vector/src/main/res/values/strings_sc.xml b/vector/src/main/res/values/strings_sc.xml index 737388277d..d75d18adec 100644 --- a/vector/src/main/res/values/strings_sc.xml +++ b/vector/src/main/res/values/strings_sc.xml @@ -205,4 +205,7 @@ <string name="dev_tools_menu_display_name_changes">Account events</string> <string name="dev_tools_menu_redacted">Deleted messages</string> + <string name="settings_space_back_navigation">Spaces back stack</string> + <string name="settings_space_back_navigation_summary">Press back to show the previously selected space</string> + </resources> diff --git a/vector/src/main/res/xml/vector_settings_preferences.xml b/vector/src/main/res/xml/vector_settings_preferences.xml index 88e7bc2776..18fac8ae74 100644 --- a/vector/src/main/res/xml/vector_settings_preferences.xml +++ b/vector/src/main/res/xml/vector_settings_preferences.xml @@ -135,6 +135,12 @@ android:title="@string/settings_include_space_members_as_rooms" android:summary="@string/settings_include_space_members_as_rooms_summary" /> + <im.vector.app.core.preference.VectorSwitchPreference + android:defaultValue="false" + android:key="SETTINGS_SPACE_BACK_NAVIGATION" + android:title="@string/settings_space_back_navigation" + android:summary="@string/settings_space_back_navigation_summary" /> + </im.vector.app.core.preference.VectorPreferenceCategory> <im.vector.app.core.preference.VectorPreferenceCategory android:title="@string/settings_category_composer">