-
-
Notifications
You must be signed in to change notification settings - Fork 15
Home Launcher
The optional Home launcher turns an Ava device into a complete Android desktop rather than a single row of application shortcuts. Applications and widgets can be dragged from their drawers and placed freely across multiple pages, with independent layouts for portrait and landscape, icon packs, wallpaper, and a kiosk-friendly app filter.
The app filter was introduced in 0.6.0 ("The Circle Is Complete"); the full multi-page desktop workspace shipped in 0.6.1 ("Every Screen, One System"). 0.6.4 fixes the Mini launcher's four-button row overflowing compact square displays (~480x480).
When enabled, the Home launcher replaces the device's default launcher with an Ava-owned workspace designed for wall panels, kiosks and bedside terminals.
- Multi-page workspace — drag apps and widgets from their drawers onto the current page; items follow the finger, show placement outlines, settle into the selected cell, and can move across page edges. Empty trailing pages are removed automatically.
- Independent orientation layouts — each orientation keeps its own measured layout so rotating the device no longer stretches widgets or leaves unreachable rows and columns.
- Direct widget resize — widgets can be resized on the workspace, including widgets whose providers do not expose ideal sizing behavior. Ava maintains independent widget geometry and refresh state for every instance, preventing one widget's size or update cycle from changing another.
- Ava-native widget — the first Ava-owned widget provides a configurable title and description with responsive text sizing.
- Icon pack support — third-party icon packs are applied without Ava reshaping the supplied icons.
- Wallpaper — choose a static photo wallpaper or return to no wallpaper (the default theme background). Dynamic wallpapers are intentionally not included.
- Desktop lock — the desktop can be locked against edits while still allowing a long press to reopen desktop tools.
- Kiosk app filter — restrict the Home grid to a chosen subset of installed launcher apps.
Dynamic wallpapers and desktop folders were tested during development but are intentionally not shipped: dynamic wallpaper redraws competed with Android widget updates, while folders added complexity without improving Ava's wall-panel workflow.
Path: Ava Settings → Interaction → Media Player → Minimal Launcher
| Setting | Default | Description |
|---|---|---|
| Enable Minimal Launcher | Off | Replace the device's default launcher with the Ava desktop. |
| Show other app icons | Off | Show non-Ava apps on the Home grid. When off, only the Ava entry points appear. The app picker below is shown only when this is enabled. |
When the launcher is enabled, Ava registers as the device's home app. Pressing the Home button returns to the Ava desktop instead of the system launcher.
The app picker lets you restrict the Home grid to a chosen subset of installed launcher apps. It is shown only when Show other app icons is enabled, making it suitable for children's rooms, wall panels and other kiosk deployments.
- Leaving every app unselected preserves the existing show-all behavior.
- After selecting apps, only those appear on Home.
- The picker includes search.
Path: Ava Settings → Interaction → Media Player → Minimal Launcher → Visible Apps
The selection is stored as a whitelist in playerSettings.minimalLauncherVisiblePackages:
- Empty list (default) — show all installed launcher apps.
- Non-empty list — only the listed packages appear on the Home grid.
- Long-press or use a two-finger gesture to open the desktop controls (a soft blur and fade reveal the tool layer).
- Drag an application from the Apps drawer or a widget from the Widgets drawer onto the workspace.
- Items follow the finger through a dedicated drag layer, show placement outlines, and settle into the selected cell.
- Drag an item toward a screen edge to move it across pages. Empty trailing pages are removed automatically.
Widgets can be resized directly on the workspace. Ava maintains its own widget geometry (PlacedMinimalLauncherWidget records x, y, w, h per orientation), so widgets whose providers do not expose ideal sizing behavior can still be resized, and one widget's size or update cycle never changes another.
Each orientation keeps its own placement:
| Field | Portrait | Landscape |
|---|---|---|
| Page | screen |
landScreen |
| Position |
x, y
|
landX, landY
|
| Size |
w, h
|
landW, landH
|
Rotating the device no longer stretches widgets or leaves unreachable rows and columns. Portrait, landscape, small screens and unusual DPI values receive separate capacity and spacing calculations.
The desktop can be locked against edits while still allowing a long press to reopen desktop tools. Application actions and widget removal remain contextual.
The Mini launcher keeps its four-button layout within compact square displays around 480x480 instead of allowing controls to overflow the screen. Near-square screens (width/height difference under 50dp, shortest side ≤ 500dp) now use fixed, tighter icon size, label size, and padding instead of the tablet scaling curve.
The first Ava-owned desktop widget provides a configurable title and description card with responsive text sizing.
- Title and description are stored per widget instance (
AvaWidgetTextStore), so two instances keep completely independent content. - Text size grows with the widget, then caps against the actual user text so long custom labels still fit. A slider multiplies the responsive baseline.
- Tap the widget to open its configuration activity and edit the title, description and text scale.
- The widget is rendered through
RemoteViews, so it updates correctly even when Ava is not in the foreground.
Provider class: AvaTitleDescriptionWidgetProvider. Look for it in the Widgets drawer under the Ava group.
| Shape | Key | Description |
|---|---|---|
| Squircle | squircle |
Default. Smooth squircle mask. |
| Circle | circle |
Circular mask. |
| Rounded square | rounded_square |
Rounded-rectangle mask. |
| System | system |
No masking — raw drawable as-is. |
Path: Ava Settings → Interaction → Media Player → Minimal Launcher → Icon Shape
Ava applies third-party icon packs without reshaping the supplied icons. When an icon pack is active, Ava uses IconShape.SYSTEM (no custom mask) so the pack artwork is preserved.
- Empty — system default icons.
- Package name — apply the selected icon pack's drawables.
Path: Ava Settings → Interaction → Media Player → Minimal Launcher → Icon Pack
Toggle Show desktop labels to show or hide app name labels under desktop icons. Default is on.
Light mode adds a restrained icon edge treatment for visibility without changing the selected theme.
| Mode | Description |
|---|---|
"" (empty) |
Solid theme background (default). |
image |
Static photo wallpaper. |
none |
No wallpaper. The wallpaper editor can clear the current URL and restore the default black background; confirming that change also removes the old wallpaper cache. |
Additional wallpaper settings:
| Setting | Description |
|---|---|
| Scale | Wallpaper scale factor (default 1.0). |
| Offset X / Y | Wallpaper position offset. |
Path: **Ava Settings → Interaction → Media Player → Minimal Launcher → Wallpaper`
The wallpaper URI is persisted as a document URI in playerSettings.minimalLauncherWallpaperUri.
All Home launcher settings live under PlayerSettings and are persisted in player_settings.json:
| Field | Type | Default | Purpose |
|---|---|---|---|
enableMinimalLauncher |
Boolean | false |
Replace the default launcher. |
minimalLauncherVisiblePackages |
List | [] |
App whitelist (empty = all). |
minimalLauncherIconPack |
String | "" |
Icon pack package name. |
minimalLauncherIconShape |
String | "squircle" |
circle / squircle / rounded_square / system. |
minimalLauncherShowDesktopLabels |
Boolean | true |
Show app name labels. |
minimalLauncherWallpaperUri |
String | "" |
Persisted document URI. |
minimalLauncherWallpaperMode |
String | "" |
"" / image / none. |
minimalLauncherWallpaperScale |
Float | 1.0 |
Wallpaper scale. |
minimalLauncherWallpaperOffsetX |
Float | 0.0 |
Wallpaper X offset. |
minimalLauncherWallpaperOffsetY |
Float | 0.0 |
Wallpaper Y offset. |
- Confirm Enable Minimal Launcher is on.
- Confirm Ava is registered as the default home app: Android Settings → Apps → Default Apps → Home app.
- If another launcher was set after install, re-select Ava from the Home app picker.
Ava uses a process-wide AppWidgetHost (mirroring Launcher3's single-host design). Host listening is lifecycle-sensitive and re-registers when the hosting Activity is visible. If widgets do not reappear:
- Open the Ava desktop so the host starts listening.
- If a widget still does not render, remove and re-place it from the Widgets drawer.
- Confirm the icon pack is installed on the device.
- Confirm the correct package name is selected under Icon Pack.
- When a pack is active, Ava uses
IconShape.SYSTEM(no mask) so the pack artwork is preserved — switching shape while a pack is active has no visual effect.
- Confirm Wallpaper Mode is set to
image. - Confirm a valid Wallpaper URI is set.
- If the URI points to a removed file, clear it via the wallpaper editor and re-pick a photo.
- Home Passcode — protect Home or Settings with a 4/6-digit passcode. The launcher's desktop lock prevents layout edits; the Home passcode prevents entering Home at all.
- Browser — the overlay layer that sits on top of the launcher.
- Screensaver — layers on top of the launcher desktop when the device is idle.
- Floating Windows — always-visible chrome on top of the launcher and browser.
Back to Home