Thread: main, Exception: java.lang.ClassCastException: im.vector.app.features.autocomplete.AutocompleteHeaderItem$Holder cannot be cast to im.vector.app.features.autocomplete.emoji.AutocompleteEmojiItem$Holder
at im.vector.app.features.autocomplete.emoji.AutocompleteEmojiItem_.handlePreBind(AutocompleteEmojiItem_.java:1)
at com.airbnb.epoxy.BaseEpoxyAdapter.onBindViewHolder(BaseEpoxyAdapter.java:22)
at com.airbnb.epoxy.BaseEpoxyAdapter.onBindViewHolder(BaseEpoxyAdapter.java:3)
at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:43)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:59)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:974)
at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6)
at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:54)
at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1)
at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:54)
at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:400)
at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:67)
at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:135)
at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:8)
Change-Id: I4d4919c35babea2606a06b3e99b5c3b3ce08e95d
java.lang.IllegalStateException: Can't access the Fragment View's LifecycleOwner when getView() is null i.e., before onCreateView() or after onDestroyView()
at androidx.fragment.app.Fragment.getViewLifecycleOwner(Fragment.java:10)
at im.vector.app.features.settings.VectorSettingsPinFragment.refreshPinCodeStatus(VectorSettingsPinFragment.kt:1)
at im.vector.app.features.settings.VectorSettingsPinFragment.bindPref(VectorSettingsPinFragment.kt:1)
at im.vector.app.features.settings.VectorSettingsBaseFragment.onCreatePreferences(VectorSettingsBaseFragment.kt:8)
at androidx.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:74)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:22)
at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:52)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:149)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1135)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:82)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:74)
at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:4)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:236)
at android.app.ActivityThread.main(ActivityThread.java:7876)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967)
Change-Id: Iac3e08d95338417f69ee71ce0b185b825b9b0333
Note: mainly conflicts in differing implementations to fix duplicate
read receipts.
After a quick glance at the upstream implementation, my first impression
is that we likely want to keep our downstream implementation:
- Better performance by checking for the more recent receipt in the SDK
upon receipt receival, instead on rendering the timeline
- null seems to always map to main, which caused us jumping receipts in
the past, which we have addressed by now
Conflicts:
matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/helper/ChunkEntityHelper.kt
vector/src/main/java/im/vector/app/features/home/room/detail/TimelineFragment.kt
vector/src/main/java/im/vector/app/features/home/room/detail/timeline/TimelineEventController.kt
vector/src/main/java/im/vector/app/features/html/PillsPostProcessor.kt
Change-Id: I47ae2afe5fcbe77a4fec69374d83821b94a431de
Now that we can limit emojis per category while allowing to expand them,
makes sense to show standard emojis on top, above custom emotes,
especially when users have lots of emotes.
Change-Id: I822cc091bf595795fa08fef32f0737073a43163a
Add some primitive support for sending MSC2545 stickers, at least for
stickers that also support sending as custom emote.
Also, this introduces support to sending stickers as reply this way 🎉
Change-Id: I85b245c2c40b9662342459e50285c081d37f324b
Note that feature flag will not work, but for now they are not used.
All the `?.takeIf { userConsent == true }` could be removed with this change, but let's keep them for safety...