From 07a250a63daa55b3ef1f65587aa69ffb77f6fc2a Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 3 Aug 2026 12:26:38 -0400 Subject: [PATCH] Fix edge-to-edge issues with notification profiles and chat folders. --- .../app/chats/folders/ChooseChatsFragment.kt | 12 ++++++++++++ .../profiles/SelectRecipientsFragment.kt | 14 ++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChooseChatsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChooseChatsFragment.kt index 732b894edf..ec3a7dc5ea 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChooseChatsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/chats/folders/ChooseChatsFragment.kt @@ -5,6 +5,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.widget.Toolbar +import androidx.core.view.WindowInsetsCompat import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController import com.google.android.material.button.MaterialButton @@ -19,6 +20,7 @@ import org.thoughtcrime.securesms.contacts.paged.ChatType import org.thoughtcrime.securesms.contacts.selection.ContactSelectionArguments import org.thoughtcrime.securesms.groups.SelectionLimits import org.thoughtcrime.securesms.recipients.RecipientId +import org.thoughtcrime.securesms.util.SystemWindowInsetsSetter import org.thoughtcrime.securesms.util.ViewUtil import java.util.Optional import java.util.function.Consumer @@ -85,6 +87,16 @@ class ChooseChatsFragment : LoggingFragment(), ContactSelectionListFragment.OnCo findNavController().popBackStack() } doneButton.isEnabled = false + + applyEdgeToEdgeInsets(view, toolbar) + } + + private fun applyEdgeToEdgeInsets(view: View, toolbar: Toolbar) { + SystemWindowInsetsSetter.attach(toolbar, viewLifecycleOwner, WindowInsetsCompat.Type.statusBars()) + + val bottomInsetTypes = WindowInsetsCompat.Type.navigationBars() or WindowInsetsCompat.Type.ime() + SystemWindowInsetsSetter.attach(view.findViewById(R.id.contact_selection_list), viewLifecycleOwner, bottomInsetTypes) + SystemWindowInsetsSetter.attach(doneButton, viewLifecycleOwner, bottomInsetTypes, SystemWindowInsetsSetter.ApplyMode.MARGIN) } override fun onStart() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/SelectRecipientsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/SelectRecipientsFragment.kt index 1f551e83eb..e2f2f707a7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/SelectRecipientsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/notifications/profiles/SelectRecipientsFragment.kt @@ -5,6 +5,8 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.appcompat.widget.Toolbar +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.updateLayoutParams import androidx.fragment.app.viewModels import androidx.lifecycle.ViewModelProvider import androidx.navigation.fragment.findNavController @@ -19,6 +21,7 @@ import org.thoughtcrime.securesms.contacts.paged.ChatType import org.thoughtcrime.securesms.contacts.selection.ContactSelectionArguments import org.thoughtcrime.securesms.groups.SelectionLimits import org.thoughtcrime.securesms.recipients.RecipientId +import org.thoughtcrime.securesms.util.SystemWindowInsetsSetter import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.views.CircularProgressMaterialButton import java.util.Optional @@ -90,9 +93,20 @@ class SelectRecipientsFragment : LoggingFragment(), ContactSelectionListFragment .subscribeBy(onSuccess = { findNavController().navigateUp() }) } + applyEdgeToEdgeInsets(view, toolbar) + updateAddToProfile() } + private fun applyEdgeToEdgeInsets(view: View, toolbar: Toolbar) { + toolbar.updateLayoutParams { height = ViewGroup.LayoutParams.WRAP_CONTENT } + SystemWindowInsetsSetter.attach(toolbar, viewLifecycleOwner, WindowInsetsCompat.Type.statusBars()) + + val bottomInsetTypes = WindowInsetsCompat.Type.navigationBars() or WindowInsetsCompat.Type.ime() + SystemWindowInsetsSetter.attach(view.findViewById(R.id.contact_selection_list_fragment), viewLifecycleOwner, bottomInsetTypes) + SystemWindowInsetsSetter.attach(view.findViewById(R.id.select_recipients_add), viewLifecycleOwner, bottomInsetTypes, SystemWindowInsetsSetter.ApplyMode.MARGIN) + } + override fun onDestroyView() { super.onDestroyView() addToProfile = null