diff --git a/changelog.d/5925.bugfix b/changelog.d/5925.bugfix new file mode 100644 index 0000000000..eff0c17a5c --- /dev/null +++ b/changelog.d/5925.bugfix @@ -0,0 +1 @@ +Fixes crash on android api 21/22 devices when opening messages due to Konfetti library diff --git a/vector/src/main/java/im/vector/app/core/ui/views/CompatKonfetti.kt b/vector/src/main/java/im/vector/app/core/ui/views/CompatKonfetti.kt new file mode 100644 index 0000000000..6b969fe2a5 --- /dev/null +++ b/vector/src/main/java/im/vector/app/core/ui/views/CompatKonfetti.kt @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2022 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package im.vector.app.core.ui.views + +import android.content.Context +import android.os.Build +import android.util.AttributeSet +import android.view.View +import nl.dionsegijn.konfetti.xml.KonfettiView + +/** + * Konfetti workaround to avoid crashes on API 21/22 + * https://github.com/DanielMartinus/Konfetti/issues/297 + */ +class CompatKonfetti @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null +) : KonfettiView(context, attrs) { + + override fun onVisibilityChanged(changedView: View, visibility: Int) { + when (Build.VERSION.SDK_INT) { + Build.VERSION_CODES.LOLLIPOP, Build.VERSION_CODES.LOLLIPOP_MR1 -> safeOnVisibilityChanged(changedView, visibility) + else -> super.onVisibilityChanged(changedView, visibility) + } + } + + private fun safeOnVisibilityChanged(changedView: View, visibility: Int) { + runCatching { super.onVisibilityChanged(changedView, visibility) } + } +} diff --git a/vector/src/main/res/layout/fragment_ftue_account_created.xml b/vector/src/main/res/layout/fragment_ftue_account_created.xml index 268a6d95ac..908c6c8a11 100644 --- a/vector/src/main/res/layout/fragment_ftue_account_created.xml +++ b/vector/src/main/res/layout/fragment_ftue_account_created.xml @@ -162,7 +162,7 @@ app:layout_constraintHeight_percent="0.05" app:layout_constraintTop_toBottomOf="@id/ctaBottomBarrier" /> - - -