This update is a double release: compliance with the new requirements Google Play imposes starting August 31, 2026, and an important fix for a crash affecting some Samsung devices during dock setup.

Fix for the Samsung crash during setup

A user on a Samsung Galaxy S24 Ultra encountered a crash when selecting an app in the dock during first-time setup. I identified the cause by analyzing the trace reported via the Play Console: the app picker, a Compose component of type LazyVerticalGrid, refused two entries with the same key.

The root cause was subtle. On some Samsung devices, the same app declares several activities marked CATEGORY_LAUNCHER — for example Contacts and the phone dialer, which share the same packageName. Sola was therefore listing the same app twice, and Compose rejected this duplicate with an exception at render time.

The fix applies systematic deduplication by packageName to every app list in the app, not just the setup wizard. Eight locations were updated to make sure the issue can't reappear elsewhere (edge panel, folder picker, widget picker, icon pack picker, etc.).

Seven unit regression tests and four instrumented Compose tests were added to lock in this behavior.

Android 16 compatibility (API 36)

Starting August 31, 2026, Google Play requires all apps to target at least Android 16. Sola is now compliant:

Google Play Billing v9.1.0

The billing library was upgraded from 7.1.1 to 9.1.0, also in response to the Play Store requirement effective August 31, 2026 (minimum v8.0.0 required). This required updating Kotlin from 2.1 to 2.3, which made it possible to bring the whole tech stack up to date:

Other fixes

How to get the update

The update is being rolled out gradually via the Play Store. It should be available to all users within 24 to 48 hours of release. You can also force a check from the Play Store app, under "Manage apps & device".

Open on Google Play