These 11 commits are when the Protocol Buffers files have changed:
| Commit: | 9c76fc9 | |
|---|---|---|
| Author: | Blanc | |
| Committer: | GitHub | |
feat: Add app sorting and system app visibility to user preferences (#381) * feat: Add app sorting and system app visibility to user preferences This commit enhances user preferences by introducing sorting options for launcher apps and a toggle for displaying system apps. - UserPreferencesDataSource now supports updating and retrieving sorting preferences for launcher apps by name, update time, and install time, as well as the sort order (ascending/descending). - The UserData model has been updated to include these new sorting and visibility preferences. - The GetLauncherAppsActivityInfosUseCase now filters apps based on the showSystem preference and sorts them according to user-defined criteria. - PackageManagerWrapper has been extended with methods to get the last install time of an app and to check if an app is a system app. - Protobuf definitions for sorting preferences have been added. - Mappers have been implemented to facilitate the conversion between domain models and proto representations for sorting. * feat: Refine app sorting and mapping logic This commit refines the app sorting logic and improves the mapping between domain models and protobuf representations. - The `UserPreferencesDataSource` now correctly maps `SortOrderLauncherAppsActivityInfo` to its proto representation. - The `GetLauncherAppsActivityInfosUseCase` now includes case-insensitive sorting by activity label for all sorting criteria and uses `thenBy` for secondary sorting. - Mappers in `DataStoreMapper.kt` have been updated to use explicit `when` branches for clarity and to correctly map `SortOrderLauncherAppsActivityInfo` to its proto counterpart. * feat: Enable parallel sync for Gradle (9.4+) Enable parallel sync for Gradle versions 9.4 and above. This setting can improve build performance by allowing Gradle to perform more tasks concurrently. * feat: Implement app sorting and filtering in AppsScreen This commit introduces app sorting functionality to the AppsScreen and refactors the data handling for app lists. - The `GetLauncherAppsActivityInfosUseCase` now encapsulates the filtered and sorted app list along with user data into a `LauncherAppsActivityInfoData` object. - The `AppsScreen` now displays this `LauncherAppsActivityInfoData` and exposes functions to update sorting preferences. - A new `SortLauncherAppsActivityInfoDialog` has been created to allow users to select sorting criteria (name, update time, install time) and order (ascending, descending). - The `AppsViewModel` now includes functions to update these sorting preferences via the `UserDataRepository`. - The `GetoIcons` object has been updated to include a `Sort` icon. - New string resources for sorting options have been added to `feature/apps/src/main/res/values/strings.xml`. - Dependency updates in `feature/apps/build.gradle.kts` ensure necessary modules are included. - `AppsUiState` has been updated to accommodate the new `LauncherAppsActivityInfoData`. - Minor UI adjustments were made in `ThemeDialog.kt` and `ShortcutDialog.kt` for consistent padding. - Redundant string resources for "add", "update", and "cancel" have been removed from `feature/app-settings/src/main/res/values/strings.xml` as they are now centralized in `common/src/main/res/values/strings.xml`. * feat: Add show system apps toggle to sort dialog This commit integrates the "Show System Apps" toggle into the `SortLauncherAppsActivityInfoDialog`. - The `AppsScreen` now passes the `showSystem` preference to the dialog. - The `SortLauncherAppsActivityInfoDialog` displays a `Switch` for toggling system app visibility. - A new `ShowSystemSetting` composable is introduced for this functionality. - The `AppsViewModel` now includes an `updateShowSystem` function to handle preference updates. - Minor UI adjustments in `SortLauncherAppsActivityInfoDialog` for better layout. * feat: Update sort dialog to reflect show system apps state This commit refactors the `SortLauncherAppsActivityInfoDialog` to correctly manage and update the "Show System Apps" state. - A `selectedShowSystem` state variable is introduced to locally track the toggle's state within the dialog. - The `ShowSystemSetting` composable now uses this local state for its `showSystem` parameter and updates it via its `onUpdateShowSystem` lambda. - The `SortLauncherAppsActivityInfoDialogButtons` now receives `selectedShowSystem` and passes it to `onUpdateShowSystem` when the confirm button is clicked. - This ensures that the "Show System Apps" preference is accurately updated and reflected when the user confirms their selections in the dialog. * feat: Use string resources for "Show System" text This commit replaces hardcoded strings for "Show System" and "Show system applications" with references to string resources. - The `SortLauncherAppsActivityInfoDialog.kt` file is updated to use `stringResource(R.string.show_system)` and `stringResource(R.string.show_system_applications)`. - New string resources `show_system` and `show_system_applications` are added to `feature/apps/src/main/res/values/strings.xml`. This change improves localization and maintainability of the UI strings.
The documentation is generated from this commit.
| Commit: | ededc78 | |
|---|---|---|
| Author: | Jack Eblan | |
feat: Add app sorting and system app visibility to user preferences This commit enhances user preferences by introducing sorting options for launcher apps and a toggle for displaying system apps. - UserPreferencesDataSource now supports updating and retrieving sorting preferences for launcher apps by name, update time, and install time, as well as the sort order (ascending/descending). - The UserData model has been updated to include these new sorting and visibility preferences. - The GetLauncherAppsActivityInfosUseCase now filters apps based on the showSystem preference and sorts them according to user-defined criteria. - PackageManagerWrapper has been extended with methods to get the last install time of an app and to check if an app is a system app. - Protobuf definitions for sorting preferences have been added. - Mappers have been implemented to facilitate the conversion between domain models and proto representations for sorting.
The documentation is generated from this commit.
| Commit: | 9cd36bd | |
|---|---|---|
| Author: | Jack Eblan | |
Refactor and simplify the theming system This change consolidates the previous `ThemeBrand` (Green/Purple) and `DarkThemeConfig` (Light/Dark/System) into a single `Theme` model. It also renames "Dynamic Color" to "Dynamic Theme" for consistency and removes the unused "Purple" theme colors. - Replaced `ThemeBrand` and `DarkThemeConfig` with a unified `Theme` enum in the domain and data layers. - Updated `user_preferences.proto` to use the new `ThemeProto` and renamed `use_dynamic_color` to `dynamicTheme`. - Consolidated `DarkDialog` and `ThemeDialog` into a single `ThemeDialog` component in the settings feature. - Simplified `SettingsScreen` by removing redundant dialog states and using the updated theme selection logic. - Updated `GetoTheme` in the design system to remove Purple theme support and use hardcoded Green theme constants. - Refactored `MainActivity` to use `collectAsStateWithLifecycle` and updated the theme configuration passed to the UI. - Renamed repository and DataStore methods to `updateTheme` and `updateDynamicTheme` to reflect the model changes. - Added `SettingsUtil.kt` to handle theme-to-string mapping for the UI.
| Commit: | bb1fdb1 | |
|---|---|---|
| Author: | Jack Eblan | |
| Committer: | Blanc | |
YAGNI!
| Commit: | fb200e2 | |
|---|---|---|
| Author: | Jack Eblan | |
| Committer: | GitHub | |
Removed Auto launch application and clean app settings (#282) * Removed Auto launch application and clean app settings. I don't think they are still useful anymore. * Removed CI aab generation * Failed tests attempt #1 * Failed tests attempt #2 * 🤖 Updates screenshots * Failed tests attempt #3 * Removed redundant composable annotation to some function * Optimized dark light mode (#284) * - Activity handles uiMode config change to prevent re-creating the whole activity - Wrap uiState logic into its classes - Optimize startup to prevent recomposing twice on startup - Optimize startup to call enableEdgeToEdge only once or when change occurs * Use OOP in theming. * Removed theme provider object * 🤖 Updates screenshots * Regenerate graphs and remove hilt in design system component screenshot test. Refactor some code in Main activity * 🤖 Updates screenshots * Refactor proguard rules * Figured out why datastore is not working when service was stopped. They shared same coroutine scope. To fix this, Service has its own job. Fixes #285 * Disassemble domain to each module (#286) * make domain a multi module * 🤖 Updates baselines for Dependency Guard * There were unversioned files left * Clean up code * Failed tests fix attempt #3 * Regenerate graphs
| Commit: | d69487a | |
|---|---|---|
| Author: | Jack Eblan | |
| Committer: | GitHub | |
Clean Architecture 2025 (#273) * - Deleted core testing module and move all the fakes to the domain test fixtures - Deleted core ui as we don't need it - Moved shared classes such as Rules in tests to common test fixtures * - Remove the core folder - Moved out data frameworks to data folder - Renamed some module names to be specific * Regenerate graphs * Forgot to add roborazzi module to feature service * Forgot to add roborazzi module to feature service * Why so many un versioned files? * Fixed Tests failed Attempt #1 * Use Kotlin Test annotation * Renamed some package names
| Commit: | 1d32101 | |
|---|---|---|
| Author: | Jack Eblan | |
| Committer: | GitHub | |
Improved UI (#186)
| Commit: | 28b875c | |
|---|---|---|
| Author: | JackEblan | |
Cleanup code
| Commit: | 7ec9810 | |
|---|---|---|
| Author: | JackEblan | |
| Committer: | JackEblan | |
Added auto launch feature
| Commit: | c57237a | |
|---|---|---|
| Author: | JackEblan | |
| Committer: | JackEblan | |
Added repository to datastore but still no tests
| Commit: | 5a89bd7 | |
|---|---|---|
| Author: | JackEblan | |
Preparing for Datastore