From 29378084b5ff16bbea87475918ab9c32d59c7850 Mon Sep 17 00:00:00 2001 From: Conny Duck Date: Sat, 25 Nov 2023 12:40:48 +0100 Subject: [PATCH 1/3] fix crash when rotating caption dialog --- .../compose/dialog/CaptionDialog.kt | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt index 3b6399d197..9b8c327ebd 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt @@ -43,7 +43,6 @@ private const val MEDIA_DESCRIPTION_CHARACTER_LIMIT = 1500 class CaptionDialog : DialogFragment() { private lateinit var listener: Listener - private lateinit var input: EditText private val binding by viewBinding(DialogImageDescriptionBinding::bind) @@ -56,33 +55,29 @@ class CaptionDialog : DialogFragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { - savedInstanceState?.getString(DESCRIPTION_KEY)?.let { - input.setText(it) - } - - return inflater.inflate(R.layout.dialog_image_description, container, false) - } + ) = inflater.inflate(R.layout.dialog_image_description, container, false) override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - input = binding.imageDescriptionText val imageView = binding.imageDescriptionView imageView.maxZoom = 6f - input.hint = resources.getQuantityString( + binding.imageDescriptionText.hint = resources.getQuantityString( R.plurals.hint_describe_for_visually_impaired, MEDIA_DESCRIPTION_CHARACTER_LIMIT, MEDIA_DESCRIPTION_CHARACTER_LIMIT ) - input.filters = arrayOf(InputFilter.LengthFilter(MEDIA_DESCRIPTION_CHARACTER_LIMIT)) - input.setText(arguments?.getString(EXISTING_DESCRIPTION_ARG)) + binding.imageDescriptionText.filters = arrayOf(InputFilter.LengthFilter(MEDIA_DESCRIPTION_CHARACTER_LIMIT)) + binding.imageDescriptionText.setText(arguments?.getString(EXISTING_DESCRIPTION_ARG)) + savedInstanceState?.getString(DESCRIPTION_KEY)?.let { + binding.imageDescriptionText.setText(it) + } binding.cancelButton.setOnClickListener { dismiss() } val localId = arguments?.getInt(LOCAL_ID_ARG) ?: error("Missing localId") binding.okButton.setOnClickListener { - listener.onUpdateDescription(localId, input.text.toString()) + listener.onUpdateDescription(localId, binding.imageDescriptionText.text.toString()) dismiss() } @@ -125,7 +120,7 @@ class CaptionDialog : DialogFragment() { } override fun onSaveInstanceState(outState: Bundle) { - outState.putString(DESCRIPTION_KEY, input.text.toString()) + outState.putString(DESCRIPTION_KEY, binding.imageDescriptionText.text.toString()) super.onSaveInstanceState(outState) } From 5d050b522c1c15e1f41085dcded36bcf547c8696 Mon Sep 17 00:00:00 2001 From: Conny Duck Date: Sat, 25 Nov 2023 12:55:22 +0100 Subject: [PATCH 2/3] fix ktlint --- .../tusky/components/compose/dialog/CaptionDialog.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt index 9b8c327ebd..eb3d3162fe 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt @@ -24,7 +24,6 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.WindowManager -import android.widget.EditText import android.widget.LinearLayout import androidx.core.os.BundleCompat import androidx.core.os.bundleOf From 86bdb69a3f5b6421aa4e8410decbf1342b6812db Mon Sep 17 00:00:00 2001 From: Conny Duck Date: Sat, 25 Nov 2023 12:57:04 +0100 Subject: [PATCH 3/3] use get/putCharSequence instead of get/putString --- .../tusky/components/compose/dialog/CaptionDialog.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt index eb3d3162fe..79f2326143 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt @@ -67,7 +67,7 @@ class CaptionDialog : DialogFragment() { ) binding.imageDescriptionText.filters = arrayOf(InputFilter.LengthFilter(MEDIA_DESCRIPTION_CHARACTER_LIMIT)) binding.imageDescriptionText.setText(arguments?.getString(EXISTING_DESCRIPTION_ARG)) - savedInstanceState?.getString(DESCRIPTION_KEY)?.let { + savedInstanceState?.getCharSequence(DESCRIPTION_KEY)?.let { binding.imageDescriptionText.setText(it) } @@ -119,7 +119,7 @@ class CaptionDialog : DialogFragment() { } override fun onSaveInstanceState(outState: Bundle) { - outState.putString(DESCRIPTION_KEY, binding.imageDescriptionText.text.toString()) + outState.putCharSequence(DESCRIPTION_KEY, binding.imageDescriptionText.text) super.onSaveInstanceState(outState) }