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!

  • Hammerjack@lemmy.zip
    link
    fedilink
    English
    arrow-up
    2
    ·
    26 days ago

    If I try changing the default post or comment sort type, the app crashes. I just reinstalled the app and it’s still crashing when I click that setting so I don’t think it’s anything I’m doing wrong.

    • Dieguito 🦝@feddit.itOPM
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      26 days ago

      Thanks for the report I’ll look into it!

      EDIT: This happens in the Settings screen when changing the “default post sort type” and “default comment sort type” right? Does it affect the “default feed type” too?

      • Hammerjack@lemmy.zip
        link
        fedilink
        English
        arrow-up
        2
        ·
        26 days ago

        Default feed type works fine. Also, changing the sort of posts or comments will crash the app whether I’m changing the default in settings or if i try changing my current sort order in the main part of the app. It’s like there’s some invalid/unexpected sort type that the app can’t display in the dropdown.

      • Hammerjack@lemmy.zip
        link
        fedilink
        English
        arrow-up
        2
        ·
        26 days ago

        Also, Crash Reporting is enabled in my settings but i don’t know if you’re actually receiving them.

        • Dieguito 🦝@feddit.itOPM
          link
          fedilink
          arrow-up
          1
          ·
          26 days ago

          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.

          • Hammerjack@lemmy.zip
            link
            fedilink
            English
            arrow-up
            2
            ·
            26 days ago

            But it’s so complicated to do manually I won’t ask you to do so, don’t worry.

            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]
            
            • Dieguito 🦝@feddit.itOPM
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              25 days ago

              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)