From 4a5cf8ab3a21e8d731188f0c5ac75d92c43dc459 Mon Sep 17 00:00:00 2001 From: Himanshu Gupta Date: Fri, 19 Jun 2026 00:07:43 +0300 Subject: [PATCH 1/2] fix: adapt action mode bar to landscape insets Signed-off-by: Himanshu Gupta --- .../files/filelist/MainFileListFragment.kt | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/files/filelist/MainFileListFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/files/filelist/MainFileListFragment.kt index cbcc73f3cad..1d409a28110 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/files/filelist/MainFileListFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/files/filelist/MainFileListFragment.kt @@ -46,12 +46,17 @@ import android.widget.LinearLayout import android.widget.TextView import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.R as AppCompatR import androidx.appcompat.view.ActionMode import androidx.appcompat.widget.SearchView import androidx.browser.customtabs.CustomTabsIntent import androidx.core.content.ContextCompat import androidx.core.content.res.ResourcesCompat +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.core.view.isVisible +import androidx.core.view.updateLayoutParams +import androidx.core.view.updatePadding import androidx.core.widget.doOnTextChanged import androidx.drawerlayout.widget.DrawerLayout import androidx.fragment.app.Fragment @@ -200,6 +205,7 @@ class MainFileListFragment : Fragment(), isFocusableInTouchMode = false visibility = View.INVISIBLE } + binding.root.post { adaptActionModeForInfiniteEdges() } val inflater = requireActivity().menuInflater inflater.inflate(R.menu.file_actions_menu, menu) this@MainFileListFragment.menu = menu @@ -209,6 +215,7 @@ class MainFileListFragment : Fragment(), // Set gray color val window = activity?.window statusBarColor = window?.statusBarColor ?: -1 + window?.statusBarColor = statusBarColorActionMode ?: statusBarColor!! // Hide FAB in multi selection mode toggleFabVisibility(false) @@ -317,6 +324,33 @@ class MainFileListFragment : Fragment(), } } + private fun adaptActionModeForInfiniteEdges() { + val actionModeBar = requireActivity().findViewById( + AppCompatR.id.action_mode_bar + ) ?: return + (actionModeBar.parent as? ViewGroup)?.apply { + clipChildren = false + clipToPadding = false + } + ViewCompat.setOnApplyWindowInsetsListener(actionModeBar) { view, insets -> + val systemInsets = insets.getInsets( + WindowInsetsCompat.Type.systemBars() or WindowInsetsCompat.Type.displayCutout() + ) + + view.updateLayoutParams { + leftMargin = -systemInsets.left + rightMargin = -systemInsets.right + } + view.updatePadding( + left = systemInsets.left, + right = systemInsets.right, + ) + + insets + } + ViewCompat.requestApplyInsets(actionModeBar) + } + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -1675,4 +1709,3 @@ class MainFileListFragment : Fragment(), } } } - From 3f7c81ec75997633151bde7c656a7870e4025be7 Mon Sep 17 00:00:00 2001 From: Himanshu Gupta Date: Fri, 19 Jun 2026 00:07:51 +0300 Subject: [PATCH 2/2] chore: add calens file Signed-off-by: Himanshu Gupta --- changelog/unreleased/4892 | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 changelog/unreleased/4892 diff --git a/changelog/unreleased/4892 b/changelog/unreleased/4892 new file mode 100644 index 00000000000..add43c4052e --- /dev/null +++ b/changelog/unreleased/4892 @@ -0,0 +1,6 @@ +Bugfix: Edge-to-edge multi-selection top bar + +The multi-selection top bar now spans behind the system bars in landscape mode +on Android 15 and newer. + +https://github.com/owncloud/android/issues/4892