mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Fix nav bar getting out of sync with keyboard pager.
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user