From de4cb931f3a5594526cdbaa618fb73cb3a328c34 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 28 Oct 2021 10:58:10 -0300 Subject: [PATCH] Fix crash when switching between color gradient tabs. --- .../securesms/conversation/colors/ColorizerView.kt | 1 + .../conversation/colors/ui/ChatColorPreviewView.kt | 10 ++++++++++ .../ui/custom/CustomChatColorCreatorPageFragment.kt | 4 +++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ColorizerView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ColorizerView.kt index 6e9df85fc8..57f7f1cd83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ColorizerView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ColorizerView.kt @@ -44,5 +44,6 @@ class ColorizerView @JvmOverloads constructor( override fun onDetachedFromWindow() { super.onDetachedFromWindow() projections.forEach { it.release() } + projections = emptyList() } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorPreviewView.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorPreviewView.kt index b1dc501854..e696b17f93 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorPreviewView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/ChatColorPreviewView.kt @@ -107,9 +107,19 @@ class ChatColorPreviewView @JvmOverloads constructor( } } + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + redrawChatColors() + } + override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) { super.onLayout(changed, left, top, right, bottom) + redrawChatColors() + } + + private fun redrawChatColors() { if (chatColors != null) { setChatColors(requireNotNull(chatColors)) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/custom/CustomChatColorCreatorPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/custom/CustomChatColorCreatorPageFragment.kt index 230cff9732..997353ff43 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/custom/CustomChatColorCreatorPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/colors/ui/custom/CustomChatColorCreatorPageFragment.kt @@ -48,6 +48,7 @@ class CustomChatColorCreatorPageFragment : private lateinit var hueSlider: AppCompatSeekBar private lateinit var saturationSlider: AppCompatSeekBar + private lateinit var preview: ChatColorPreviewView override fun onViewCreated(view: View, savedInstanceState: Bundle?) { val args: CustomChatColorCreatorFragmentArgs = CustomChatColorCreatorFragmentArgs.fromBundle(requireArguments()) @@ -59,7 +60,8 @@ class CustomChatColorCreatorPageFragment : factory )[CustomChatColorCreatorViewModel::class.java] - val preview: ChatColorPreviewView = view.findViewById(R.id.chat_color_preview) + preview = view.findViewById(R.id.chat_color_preview) + val hueThumb = ThumbDrawable(requireContext()) val saturationThumb = ThumbDrawable(requireContext())