Skip to content

fix(launcher): give the Apps tile its own icon and align app search - #47

Draft
manuel-rtsch wants to merge 2 commits into
HarlenPostill:mainfrom
manuel-rtsch:fix/launcher-app-icons
Draft

manuel-rtsch wants to merge 2 commits into
HarlenPostill:mainfrom
manuel-rtsch:fix/launcher-app-icons

Conversation

@manuel-rtsch

Copy link
Copy Markdown
Contributor

What changed?

The launcher's Apps tile and Sideport tile used the same glyph (SidekitIcon.DeployedCode), so two different destinations looked identical in the grid, the list, Arrange apps and Hidden apps.

  • Apps now uses a new sk_ic_apps drawable (Material Symbols Rounded apps, 3×3 dot grid), added as SidekitIcon.Apps. Sideport keeps DeployedCode, which it already uses for ported app tiles and the "In Sideport" row on an app's page.
  • Launcher search now uses matchesApp, the same matcher as the Apps list. Previously the launcher only did a case-insensitive substring match, so a T9 query (627 → Maps) found the app in the Apps list but not on home.
  • AppRow reserves the icon slot, so rows no longer shift sideways while an app's icon is still loading.
  • Apps list fade index is computed from the real header count instead of a hardcoded +2, so rows keep their fade when the error/message banner is shown.

No issue linked; found while reviewing the launcher grid.

How to test

  1. Open the launcher grid: the Apps tile shows a 3×3 dot grid, the Sideport tile shows the deploy box. Repeat in list layout, Settings → Arrange apps and Settings → Hidden apps.
  2. On home, start search and type 627: Maps is the only result. Type 6245: Mail. Compare with the same query in the Apps app — results should match.
  3. Open Apps and scroll quickly: labels stay aligned while icons load.
  4. Open Sideport: ported tiles and the "In Sideport" row on an app page still use the deploy glyph (intentional).

Real-device testing

  • Device model: SP01_FE_GE (Sidephone prototype)
  • Android version: 12 (SDK 31)
  • Keypad or attached module, if relevant: none attached; on-screen keypad used for the T9 search check
  • Commit tested: 407be58
  • Test steps and results:
    • Launcher grid: Apps tile renders the 3×3 grid glyph, distinct from Sideport. Pass.
    • Home search 627 → Maps only; 6245 → Mail only. Pass (matches the Apps list).
    • Apps list scroll: rows stay aligned while icons load. Pass.
  • Screenshots, recording, or relevant logs: launcher grid and T9 search screenshots captured on the device; available on request.

Checklist

  • I created this branch from the latest main and this PR targets main.
  • I kept this PR focused and described its changes above.
  • I built the affected app and recorded the build command and result below.
  • I tested the changed behavior on a physical device and completed the device details above.
  • I checked nearby behavior for regressions, including keypad navigation and input when affected.
  • I ran the relevant automated tests and recorded commands and results below.
  • I added or updated tests where practical, or explained why no test is needed.
  • I updated documentation when behavior or setup changed.
  • I removed debug code, credentials, and personal data from the diff and test evidence.

Build and automated test results

  • ./gradlew :app:compileDebugKotlin — success.
  • ./gradlew :app:testDebugUnitTest — success (full unit suite, including LauncherSearchTest, LauncherResolveTest, LauncherViewModelTest).
  • ./gradlew :app:installDev — built, but the install step failed with INSTALL_FAILED_VERSION_DOWNGRADE because the device already had a dev build from a branch with a higher commit count. Installed the same APK with adb install -r -d app/build/outputs/apk/dev/app-dev.apk — success, versionName=1.1-101-g407be58-dev.
  • Note: Roborazzi runs with roborazzi.test.record=true locally, so screenshot tests rewrite goldens rather than compare. The launcher grid goldens are unchanged by this PR (the Apps tile sits below the fold in that frame), so no golden updates are included.

Known issues and exceptions

  • Keypad navigation not re-tested on device. The search change touches the keypad path (typing digits starts search), and T9 filtering was verified on device, but D-pad focus movement through the grid was not exercised. Please confirm before merge.
  • No new automated test. The icon change is a resource swap; the search change reuses the already-tested matchesApp. A launcher-level T9 test would be the natural addition — happy to add one if you want it in this PR.
  • No documentation change. No user-facing setup or behavior documentation describes the tile glyphs.
  • The installed-tile fallback glyph change from the same review is not in this PR: InstalledTile/InstalledAppIcon do not exist on main yet.

Maintainer review

Changes to main require approval from @HarlenPostill. Request review only when the required testing is complete.

Apps and Sideport both used SidekitIcon.DeployedCode, so the two
launcher tiles were visually identical. Apps now uses a new
Material Symbols 'apps' grid glyph; Sideport keeps DeployedCode,
which it already uses for ported app tiles and the 'In Sideport' row.
- AppRow reserves the icon slot, so rows no longer shift while icons load.
- Apps list fade uses the real row index instead of a hardcoded +2.
- Launcher search uses matchesApp, so T9 queries find the same apps as
  the Apps list.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant