Second targeted fix for the Samsung Galaxy A06 in two days. Version 1.0.10, released yesterday, fixed a startup crash on this device; 1.0.10 had only been installed for a few hours when a new, different issue surfaced through Google Play Console — this time an ANR (app frozen for a few seconds). The detailed report allowed for a quick fix, and this version also resolves a display issue with the icon neon glow effect in the drawer.

1.0.11 — startup ANR on Samsung Galaxy A06

The symptom

On Samsung Galaxy A06 (Android 16), on the first launch of Sola after installation, the app would freeze for 5 to 6 seconds before Android displayed the "Sola isn't responding — Wait / Close app" dialog. Unlike the 1.0.10 crash, the app didn't close abruptly: it just stayed unusable for several seconds.

Technically, the trace reported by Play Console showed an ANR of type "Input dispatching timed out" — Android monitors whether the main thread processes input events (tap, swipe) within 5 seconds. Beyond that, the system considers the app blocked and offers the user the option to close it.

The cause

The Samsung Galaxy A06 is equipped with an entry-level processor (Unisoc T606, four cores at 1.6 GHz) and a modest GPU. It is several times slower than the devices Sola is normally tested on (Pixel 8 Pro, Pixel Tablet).

On home screen startup, Sola loads all the icons of the apps present on the grid in a single pass (typically 15 to 25 apps, plus those stored in folders). Each icon goes through PackageManager.getApplicationIcon(), an Android method that opens the target APK, reads the adaptive icon's XML definition, then decodes two bitmap images (the foreground layer and the background).

On Pixel 8 Pro, each decode takes about ten milliseconds — 20 icons render in under 300 ms, completely invisible. On A06, the same decode takes between 200 and 500 milliseconds per icon. 20 icons × 300 ms = 6 seconds of blocking. This loading was happening on the main thread (the one that processes the user's taps), which triggered the ANR.

The fix

The flow that feeds the home grid is now confined to the I/O thread pool via flowOn(Dispatchers.IO). Concretely, all icon decoding now runs on dedicated threads in parallel. Only the final list (once all 20 icons are decoded) lands on the main thread to be displayed. The main thread stays responsive at all times, even during a heavy load.

The same fix was applied to the flow that lists folders with their apps, which suffered from the same problem.

Verified on an emulator reproducing the Galaxy A06 specs (720×1600, 260 dpi, Android 16, software GPU to simulate the slowness): the home screen appears instantly, no ANR triggered.

Missing icon neon glow in the drawer

The symptom

When selecting a built-in icon pack (Pixelarticons, Lucide, Game-Icons…) with the "neon glow" option enabled, icons correctly showed a luminous halo on the home screen, in folders, and in the dock. But in the app drawer, the glow disappeared: icons appeared in their flat color, without the neon effect.

The cause

The neon effect is implemented via a drawable wrapper that wraps the original icon to add the glow at render time. Two different code paths load app icons: one for the home screen and folders, another for the drawer (which lists all installed apps at once).

The path used by the home screen already had a specific exception to preserve this wrapper. The path used by the drawer didn't have that exception: it systematically called constantState.newDrawable() to create a fresh instance of the drawable, which has the side effect of unwrapping the neon wrapper and keeping only the flat icon underneath.

The fix

The NeonDrawable exception was ported to the drawer path: when the loaded icon is a neon wrapper, it is now kept as-is instead of being cloned. The glow effect is now preserved in the drawer just as everywhere else.

Three unit tests were added to lock down both paths (home and drawer) plus the reverse behavior (regular drawables must still be cloned to avoid side effects when switching icon packs). A future regression of this type will now be caught upstream.

How to get the update

1.0.11 is being rolled out gradually via the Play Store (starting at 20% of users, then gradually ramping up to 100% over 24 to 48 hours). It should be available to everyone within two days. You can also force a check from the Play Store app, in the "Manage apps and device" section.

Open on Google Play