Skip to content

Refactor/optimize user experience#43

Merged
jelychow merged 7 commits intomasterfrom
refactor/optimize-user-experience
Feb 1, 2026
Merged

Refactor/optimize user experience#43
jelychow merged 7 commits intomasterfrom
refactor/optimize-user-experience

Conversation

@jelychow
Copy link
Collaborator

@jelychow jelychow commented Feb 1, 2026

update cata log versions
fix issues

* Replace the TopAppBar overflow menu with a new "Quick Actions" section on the home screen for better accessibility.
* Add `QuickActionButton` components for indexing albums, finding similar photos, adjusting search range, and accessing settings.
* Update string resources in English and Chinese with short labels for quick actions.
* Refactor `HomeScreen` to manage bottom sheet states (search filter and search range) via callbacks.
* feat: add `USER_GUIDE_COMPLETED` to `PreferenceRepository` to persist guide status
* feat: update `HomeViewModel` to show the user guide only for first-time users without data
* feat: update `InitPermissions` to handle album initialization and permission state updates
* ui: add logo and styled text to the `HomeScreen` top app bar
* chore: inject `PreferenceRepository` into `HomeViewModel` via `AppModules`
* Replace static colors with a blue linear gradient in `LogoText`.
* Simplify `TextStyle` by removing explicit `onBackground` and `primary` color references.
…rcher`

* refactor: implement a generic `translateAndSearch` helper to unify search flows and improve error handling
* feat: add dedicated string resources for translation error logging and user notifications
* refactor: convert `SearchTarget` from an `enum` to a `sealed class`
* chore: remove unused `getBaseLine`, `updateTarget`, and image-based `searchWithRange` methods from `ImageSearcher`
* chore: replace `CoroutineScope(Dispatchers.Default)` with the class-provided `scope` for better lifecycle management
* style: clean up imports and add minor code documentation in `ImageSearcher`
* Refactor `ImageSearcher` by delegating core responsibilities to new specialized services:
    * `EmbeddingService`: Handles batch image/text encoding and persistence locking.
    * `SearchConfigurationService`: Manages search parameters (threshold, topK) and DataStore persistence.
    * `SearchOrchestrator`: Coordinates complex search flows, including MLKit translation and vector search execution.
* Optimize image loading in `ImageUtil` by implementing a memory-backed `ThumbnailCache` and replacing Glide with Coil for better coroutine integration.
* Update `PicQueryApplication` to provide a safer `applicationContext` access pattern to prevent memory leaks.
* Adjust `AppModules` to reflect the new service-oriented architecture.
* Add Coil dependencies to `build.gradle.kts`.
…hotos UI

* feat: add `SimilarityConfigurationService` to manage and persist similarity grouping parameters (threshold, delta, and min group size).
* feat: update `SimilarityManager` and `GroupSimilarPhotosUseCase` to utilize the new configuration service.
* ui: redesign the `SimilarPhotosScreen` grouping UI using `ElevatedCard` and `AssistChip` for better visual hierarchy.
* ui: improve performance in `SimilarPhotosScreen` by adding stable keys to `LazyColumn` and `LazyRow` items.
* refactor: replace `android.util.Log` with `Timber` across several domain and data classes.
* refactor: improve `PhotoRepository` by centralizing paginated photo fetching and using parameterized SQL queries for ID lookups.
* chore: update `AppModules` to provide `SimilarityConfigurationService` and inject it into `SimilarityManager`.
* build: upgrade Android Gradle Plugin to 8.9.3, Kotlin to 2.3.0, and Compose BOM to 2026.01.01
* build: update numerous library versions including Koin (4.1.1), Room (2.8.4), LiteRT (1.4.1), and ObjectBox (5.1.0)
* build: migrate to the Kotlin Compose compiler plugin and update JVM target configuration
* build: increase JVM heap memory and MaxMetaspaceSize in `gradle.properties`
* refactor: simplify `AppBottomSheetState` by using `MutableState` for visibility and removing the custom `Saver`
* ui: remove explicit `rememberRipple()` indications from clickable components, favoring default Material 3 behavior
* feat: add `modulesMobileCLIP2` to `AppModules`
* chore: fix package imports for `AppBottomSheetState` across several UI components
@jelychow jelychow merged commit 75918e2 into master Feb 1, 2026
1 check passed
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