Home

thomasboom / yam-launcher

public
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

Rewrite launcher UI in Jetpack Compose

2 weeks ago

43881b2
Authored
Thomas Boom9/12/2026, 9:36:23 AM
Replace Views/RecyclerView/PreferenceFragments with Compose:
LauncherViewModel-backed home screen and app drawer, Compose
Navigation settings graph, ModalBottomSheet actions, Canvas-free
alphabet index. Keep business logic (prefs, weather, app
management, services) untouched. Verified: clean build, unit
tests, lint, release build, on-device install.

Parent169eec8

60 files changed
  • AGENTS.md+36−52
  • app/build.gradle.kts+15−3
  • app/src/main/AndroidManifest.xml+2−2
  • app/src/main/java/eu/ottop/yamlauncher/AppActionBottomSheet.kt+0−255
  • app/src/main/java/eu/ottop/yamlauncher/AppMenuAdapter.kt+0−329
  • app/src/main/java/eu/ottop/yamlauncher/ContactsAdapter.kt+0−187
  • app/src/main/java/eu/ottop/yamlauncher/MainActivity.kt+96−2118
  • app/src/main/java/eu/ottop/yamlauncher/compose/AppDrawer.kt+719
−0
  • app/src/main/java/eu/ottop/yamlauncher/compose/HomeScreen.kt+455−0
  • app/src/main/java/eu/ottop/yamlauncher/compose/LauncherRoot.kt+50−0
  • app/src/main/java/eu/ottop/yamlauncher/compose/LauncherViewModel.kt+896−0
  • app/src/main/java/eu/ottop/yamlauncher/compose/YamTheme.kt+112−0
  • app/src/main/java/eu/ottop/yamlauncher/compose/settings/SettingsComponents.kt+230−0
  • app/src/main/java/eu/ottop/yamlauncher/compose/settings/SettingsScreens.kt+1173−0
  • app/src/main/java/eu/ottop/yamlauncher/compose/settings/SettingsViewModel.kt+227−0
  • app/src/main/java/eu/ottop/yamlauncher/settings/AboutFragment.kt+0−54
  • app/src/main/java/eu/ottop/yamlauncher/settings/AppMenuSettingsFragment.kt+0−153
  • app/src/main/java/eu/ottop/yamlauncher/settings/ContextMenuSettingsFragment.kt+0−27
  • app/src/main/java/eu/ottop/yamlauncher/settings/GestureAppsAdapter.kt+0−114
  • app/src/main/java/eu/ottop/yamlauncher/settings/GestureAppsFragment.kt+0−223
  • app/src/main/java/eu/ottop/yamlauncher/settings/HiddenAppsAdapter.kt+0−114
  • app/src/main/java/eu/ottop/yamlauncher/settings/HiddenAppsFragment.kt+0−203
  • app/src/main/java/eu/ottop/yamlauncher/settings/HomeSettingsFragment.kt+0−216
  • app/src/main/java/eu/ottop/yamlauncher/settings/LocationFragment.kt+0−178
  • app/src/main/java/eu/ottop/yamlauncher/settings/LocationListAdapter.kt+0−99
  • app/src/main/java/eu/ottop/yamlauncher/settings/SettingsActivity.kt+19−400
  • app/src/main/java/eu/ottop/yamlauncher/settings/SettingsFragment.kt+0−143
  • app/src/main/java/eu/ottop/yamlauncher/settings/SharedPreferenceManager.kt+19−0
  • app/src/main/java/eu/ottop/yamlauncher/settings/SpinnerPreference.kt+0−116
  • app/src/main/java/eu/ottop/yamlauncher/settings/TitleProvider.kt+0−14
  • app/src/main/java/eu/ottop/yamlauncher/settings/UISettingsFragment.kt+0−27
  • app/src/main/java/eu/ottop/yamlauncher/tasks/BatteryReceiver.kt+7−26
  • app/src/main/java/eu/ottop/yamlauncher/tasks/NotificationListener.kt+3−1
  • app/src/main/java/eu/ottop/yamlauncher/utils/Animations.kt+0−203
  • app/src/main/java/eu/ottop/yamlauncher/utils/AppMenuEdgeFactory.kt+0−70
  • app/src/main/java/eu/ottop/yamlauncher/utils/AppMenuLinearLayoutManager.kt+0−78
  • app/src/main/java/eu/ottop/yamlauncher/utils/AppUtils.kt+2−2
  • app/src/main/java/eu/ottop/yamlauncher/utils/UIUtils.kt+3−491
  • app/src/main/java/eu/ottop/yamlauncher/utils/WeatherSystem.kt+4−5
  • app/src/main/java/eu/ottop/yamlauncher/views/AlphabetIndexView.kt+0−290
  • app/src/main/res/layout-land/activity_main.xml+0−543
  • app/src/main/res/layout/activity_main.xml+0−520
  • app/src/main/res/layout/activity_settings.xml+0−19
  • app/src/main/res/layout/app_action_bottom_sheet.xml+0−147
  • app/src/main/res/layout/app_item_layout.xml+0−78
  • app/src/main/res/layout/fragment_about.xml+0−96
  • app/src/main/res/layout/fragment_gesture_apps.xml+0−47
  • app/src/main/res/layout/fragment_hidden_apps.xml+0−48
  • app/src/main/res/layout/fragment_location.xml+0−64
  • app/src/main/res/layout/location_item_layout.xml+0−46
  • app/src/main/res/layout/preference_spinner.xml+0−13
  • app/src/main/res/values/attrs.xml+0−14
  • app/src/main/res/values/styles.xml+0−14
  • app/src/main/res/xml/app_menu_preferences.xml+0−137
  • app/src/main/res/xml/context_menu_preferences.xml+0−42
  • app/src/main/res/xml/home_preferences.xml+0−302
  • app/src/main/res/xml/root_preferences.xml+0−130
  • app/src/main/res/xml/ui_preferences.xml+0−117
  • build.gradle.kts+1−0
  • gradle/libs.versions.toml+17−9