Ciao guys, as usual for thr first week of the month, a new production release has been published!
This version contains some stability issues (especially when navigating through comments or posts, opening and closing a post detail, etc.), some performance improvements when opening contents or refreshing (for cases that were, at least to me, very annoying) and several layout enhancements (duplicated paddings, progress bars where they shouldn’t be, system nav bar color, etc).
There are a couple of brand new features too, such as admin tools and the default editor language on a per-instance basis, plus the downvote option is not shown any more if it is not allowed by your instance.
There are lot (trust me, a lot) of under the hood improvements: new unit tests being added, several dependency updates and the whole project was migrated to Kotlin 2.0.0, Compose Multiplatform 1.6.11 and Gradle 8.8. As you may have noticed, this made it also possible to launch iOS builds apart from Android ones, and I dont exclude that in the future I may be working on a desktop port.
Have a nice month! 🦝🏳️🌈🦝 And enjoy the release!
No, I had to remove all crash reporting so the only thing I’m getting is a useless report in the play console which does not contain anything, unless users dig into their phone storage and send me the textual log file (saved only if that option is enabled). But it’s so complicated to do manually I won’t ask you to do so, don’t worry. I’ve received another report on GitHub so I’ll try to reproduce it myself.
Here’s the error: 😄
java.lang.IllegalArgumentException: Key d4.w:currentScreen was used multiple times at D.m.a(Unknown Source:1293) at O.z.a(Unknown Source:4) at B2.b.q(Unknown Source:130) at O.t.g(Unknown Source:61) at O.t.f(Unknown Source:5) at O.o0.a(Unknown Source:203) at v0.T.doFrame(Unknown Source:6) at v0.Q.doFrame(Unknown Source:47) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1397) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1408) at android.view.Choreographer.doCallbacks(Choreographer.java:1008) at android.view.Choreographer.doFrame(Choreographer.java:934) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1382) at android.os.Handler.handleCallback(Handler.java:959) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loopOnce(Looper.java:232) at android.os.Looper.loop(Looper.java:317) at android.app.ActivityThread.main(ActivityThread.java:8532) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552) at com.android.internal.os.ExecInit.main(ExecInit.java:50) at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:359) Suppressed: t9.g: [O.c0@70a4e90, v0.r0@6b38389, x0{Cancelling}@178ef8e, S@f4f73af]
Thanks 🙏🏻🙏🏻🙏🏻 it’s obfuscated but it’s the same I got on the Google Play console report… unfortunately it doesn’t contain any reference to one of my classes/functions but that “screen key was used multiple times” gives a valid hint: I’ll try to figure it out today and publish a hotfix.
Effects.kt - androidx.compose.runtime.DisposableEffectImpl.onRemembered Exception java.lang.IllegalArgumentException: at androidx.compose.runtime.DisposableEffectImpl.onRemembered (Effects.kt) at androidx.compose.runtime.CompositionImpl$RememberEventDispatcher.dispatchRememberObservers (CompositionImpl.java) at androidx.compose.runtime.CompositionImpl.applyChangesInLocked (Composition.kt) at androidx.compose.runtime.CompositionImpl.applyChanges (Composition.kt) at androidx.compose.runtime.Recomposer$runRecomposeAndApplyChanges$2$1.invoke (Recomposer.kt) at androidx.compose.ui.platform.AndroidUiFrameClock$withFrameNanos$2$callback$1.doFrame (AndroidUiFrameClock.android.kt) at androidx.compose.ui.platform.AndroidUiDispatcher$dispatchCallback$1.doFrame (AndroidUiDispatcher.android.kt) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1397) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1408) at android.view.Choreographer.doCallbacks (Choreographer.java:1008) at android.view.Choreographer.doFrame (Choreographer.java:934) at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:1382) at android.os.Handler.handleCallback (Handler.java:959) at android.os.Handler.dispatchMessage (Handler.java:100) at android.os.Looper.loopOnce (Looper.java:232) at android.os.Looper.loop (Looper.java:317) at android.app.ActivityThread.main (ActivityThread.java:8501) at java.lang.reflect.Method.invoke at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:552) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:878)