diff --git a/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerFragment.kt index d05ffe9587..d94bb5edd7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/keyboard/KeyboardPagerFragment.kt @@ -4,6 +4,8 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.Window +import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProvider import org.thoughtcrime.securesms.R @@ -57,10 +59,12 @@ class KeyboardPagerFragment : Fragment(), InputAwareConstraintLayout.InputFragme } override fun onHiddenChanged(hidden: Boolean) { - if (hidden) { - WindowUtil.setNavigationBarColor(requireActivity(), ThemeUtil.getThemedColor(requireContext(), android.R.attr.navigationBarColor)) - } else { - WindowUtil.setNavigationBarColor(requireActivity(), ThemeUtil.getThemedColor(requireContext(), R.attr.mediaKeyboardBottomBarBackgroundColor)) + getWindow()?.let { window -> + if (hidden) { + WindowUtil.setNavigationBarColor(requireContext(), window, ThemeUtil.getThemedColor(requireContext(), android.R.attr.navigationBarColor)) + } else { + WindowUtil.setNavigationBarColor(requireContext(), window, ThemeUtil.getThemedColor(requireContext(), R.attr.mediaKeyboardBottomBarBackgroundColor)) + } } } @@ -70,6 +74,19 @@ class KeyboardPagerFragment : Fragment(), InputAwareConstraintLayout.InputFragme viewModel.page().value?.let(this::onPageSelected) } + private fun getWindow(): Window? { + var parent: Fragment? = parentFragment + while (parent != null) { + if (parent is DialogFragment) { + return parent.dialog?.window + } + + parent = parent.parentFragment + } + + return activity?.window + } + private fun onPageSelected(page: KeyboardPage) { emojiButton.isSelected = page == KeyboardPage.EMOJI stickerButton.isSelected = page == KeyboardPage.STICKER