🚀 OShin New CI Build!
feat(UI): Remove HUD background from Home and Module screens
This commit removes the animated HUD style background effect from the Home and Module screens.
Key Changes:
- :
- The composable, which rendered a grid and a scanning line animation, has been deleted.
- The call to has been removed from the composable.
- :
- The call to has been removed from the composable.
This change simplifies the UI by removing a purely cosmetic animated element from the background of the main screens.
🔗 查看本次提交
feat(UI): Remove HUD background from Home and Module screens
This commit removes the animated HUD style background effect from the Home and Module screens.
Key Changes:
- :
- The composable, which rendered a grid and a scanning line animation, has been deleted.
- The call to has been removed from the composable.
- :
- The call to has been removed from the composable.
This change simplifies the UI by removing a purely cosmetic animated element from the background of the main screens.
🔗 查看本次提交
GitHub
feat(UI): Remove HUD background from Home and Module screens · suqi8/OShin@5fb4a8c
This commit removes the animated "HUD" style background effect from the Home and Module screens.
**Key Changes:**
- **`Main_Home.kt`:**
- The `HUDBackground` composable, whi...
**Key Changes:**
- **`Main_Home.kt`:**
- The `HUDBackground` composable, whi...
🚀 OShin New CI Build!
feat: Replace LiquidGlass with new Backdrop library and refactor UI
This commit completely replaces the library with a new, more modular library for creating glassmorphism and other complex UI effects. The main screen UI and several components have been refactored to use this new library.
### Key Changes:
#### 1. Library Replacement: ->
- Removed : All files related to the library have been deleted. This includes modifiers, providers, states, samplers, and effect definitions for refraction, highlight, and shadow.
- Added : A new, comprehensive library has been introduced. This library provides a more powerful and flexible API for building layered UI effects.
- Core Concepts:
- : A unified interface for defining background content.
- : A new modifier that applies a , along with various effects like , , , and (blur, lens, color controls).
- : A specific implementation that captures and displays content from a .
- Effects: A rich set of composable effects are now available under , including , (refraction), and various adjustments.
- Shaders: New AGSL shaders () have been added to power the new effects, such as and .
- Shadows & Highlights: New implementations for , , and are provided with a more robust and flexible modifier-based application.
#### 2. Main Screen Refactoring ()
- Haze Integration: Replaced on the with the from the library for a blurred background effect.
- Bottom Navigation Rework ():
- The custom composable has been completely rewritten to use the new library.
- Removed implementation and replaced it with to create the glass effect.
- Introduced and to create a more fluid, physics-based animation for the tab indicator, including interactive highlighting and gesture handling.
- The bottom bar is now composed of multiple layers using to achieve complex effects like shadows, highlights, and lens refraction on the active tab indicator.
#### 3. Component Refactoring
- (New):
- A new reusable button component that uses the library to create a glass-like appearance.
- It's now used for the back and refresh buttons in and , replacing the previous implementation.
- :
- The confirmation dialog has been completely redesigned.
- It no longer uses or .
- It's now a custom dialog composable that uses to create a blurred, glass-like modal background, applying effects like , , and .
#### 4. Build Configuration
- :
- Enabled Kotlin's context parameters () which are required by the new library's API design.
🔗 查看本次提交
feat: Replace LiquidGlass with new Backdrop library and refactor UI
This commit completely replaces the library with a new, more modular library for creating glassmorphism and other complex UI effects. The main screen UI and several components have been refactored to use this new library.
### Key Changes:
#### 1. Library Replacement: ->
- Removed : All files related to the library have been deleted. This includes modifiers, providers, states, samplers, and effect definitions for refraction, highlight, and shadow.
- Added : A new, comprehensive library has been introduced. This library provides a more powerful and flexible API for building layered UI effects.
- Core Concepts:
- : A unified interface for defining background content.
- : A new modifier that applies a , along with various effects like , , , and (blur, lens, color controls).
- : A specific implementation that captures and displays content from a .
- Effects: A rich set of composable effects are now available under , including , (refraction), and various adjustments.
- Shaders: New AGSL shaders () have been added to power the new effects, such as and .
- Shadows & Highlights: New implementations for , , and are provided with a more robust and flexible modifier-based application.
#### 2. Main Screen Refactoring ()
- Haze Integration: Replaced on the with the from the library for a blurred background effect.
- Bottom Navigation Rework ():
- The custom composable has been completely rewritten to use the new library.
- Removed implementation and replaced it with to create the glass effect.
- Introduced and to create a more fluid, physics-based animation for the tab indicator, including interactive highlighting and gesture handling.
- The bottom bar is now composed of multiple layers using to achieve complex effects like shadows, highlights, and lens refraction on the active tab indicator.
#### 3. Component Refactoring
- (New):
- A new reusable button component that uses the library to create a glass-like appearance.
- It's now used for the back and refresh buttons in and , replacing the previous implementation.
- :
- The confirmation dialog has been completely redesigned.
- It no longer uses or .
- It's now a custom dialog composable that uses to create a blurred, glass-like modal background, applying effects like , , and .
#### 4. Build Configuration
- :
- Enabled Kotlin's context parameters () which are required by the new library's API design.
🔗 查看本次提交
GitHub
feat: Replace LiquidGlass with new Backdrop library and refactor UI · suqi8/OShin@4763be0
This commit completely replaces the `com.kyant.liquidglass` library with a new, more modular `com.kyant.backdrop` library for creating glassmorphism and other complex UI effects. The main screen UI...
🚀 OShin New CI Build!
feat(UI): Implement configurable haze effect on FunPage TopAppBar
This commit introduces a configurable glassmorphism/blur effect (haze) to the within the composable.
Key Changes in :
- Haze Effect Integration:
- The now uses the modifier from the library.
- A a few layers below the is designated as the to provide the content that will be blurred.
- The effect is configured with a vertical gradient, starting fully intense at the top and fading out.
- User Configuration:
- The properties of the haze effect are now loaded from (settings).
- Users can customize the following parameters:
- Alpha: (float, default: )
- Blur Radius: (int, default: )
- Noise Factor: (float, default: )
- Dependencies & Imports:
- Added necessary imports for the Haze library ().
- Added imports for () and to read the preference values.
🔗 查看本次提交
feat(UI): Implement configurable haze effect on FunPage TopAppBar
This commit introduces a configurable glassmorphism/blur effect (haze) to the within the composable.
Key Changes in :
- Haze Effect Integration:
- The now uses the modifier from the library.
- A a few layers below the is designated as the to provide the content that will be blurred.
- The effect is configured with a vertical gradient, starting fully intense at the top and fading out.
- User Configuration:
- The properties of the haze effect are now loaded from (settings).
- Users can customize the following parameters:
- Alpha: (float, default: )
- Blur Radius: (int, default: )
- Noise Factor: (float, default: )
- Dependencies & Imports:
- Added necessary imports for the Haze library ().
- Added imports for () and to read the preference values.
🔗 查看本次提交
GitHub
feat(UI): Implement configurable haze effect on FunPage TopAppBar · suqi8/OShin@ab767c0
This commit introduces a configurable glassmorphism/blur effect ("haze") to the `TopAppBar` within the `FunPage` composable.
**Key Changes in `FunPage.kt`:**
- **Haze Effect Int...
**Key Changes in `FunPage.kt`:**
- **Haze Effect Int...
🚀 OShin New CI Build!
Refactor(Settings): Disable fingerprint animation hook
This commit comments out the hook for .
Key Changes:
- In , the entire hook block targeting has been commented out. This hook was previously responsible for modifying fingerprint enrollment animations ( and ) by replacing them with custom animations from the module's assets.
This change temporarily disables the custom fingerprint enrollment animation feature.
🔗 查看本次提交
Refactor(Settings): Disable fingerprint animation hook
This commit comments out the hook for .
Key Changes:
- In , the entire hook block targeting has been commented out. This hook was previously responsible for modifying fingerprint enrollment animations ( and ) by replacing them with custom animations from the module's assets.
This change temporarily disables the custom fingerprint enrollment animation feature.
🔗 查看本次提交
GitHub
Refactor(Settings): Disable fingerprint animation hook · suqi8/OShin@492c19c
This commit comments out the hook for `com.oplus.settings.feature.fingerprint.NewFingerEnrollActivity`.
**Key Changes:**
- In `settings.kt`, the entire hook block targeting `NewFingerEnrollActivi...
**Key Changes:**
- In `settings.kt`, the entire hook block targeting `NewFingerEnrollActivi...
🚀 OShin New CI Build!
Refactor: Centralize feature UI with a declarative data model
重构中,普通用户无需下载
This commit introduces a major refactoring of the feature settings UI. It replaces dozens of individual, hardcoded Composable screen files with a centralized, declarative data model. A single composable now dynamically renders pages based on definitions from a .
This change decouples UI structure from rendering logic, making it significantly easier to add, modify, and search for features.
Key Changes:
- Declarative UI Model ():
- Introduced a set of and models to define UI components declaratively:
- : Defines a full screen with title, target apps, and a list of UI blocks ().
- : Represents blocks on a page, like or .
- : Defines individual components within a card, such as , , , (for navigation), (for image selection), and .
- : A flexible model for titles, supporting string resources, plain text, or dynamic app names.
- : Allows UI items to be shown or hidden based on the state of other items.
- Feature Registry ():
- A new central object that maps a route ID (e.g., ) to its corresponding .
- This registry is now the single source of truth for all feature screens.
- Initial definitions for and () have been created as examples of the new structure.
- Dynamic Feature Screen ( & ):
- Created , a generic composable that takes a and renders the entire UI by fetching its definition from the .
- A new Hilt-powered manages state for the dynamic screen. It loads initial values from , handles state updates, and evaluates display conditions.
- The navigation graph in now uses a single dynamic route to handle all feature pages.
- Module/Search Refactoring ():
- The main module list () has been refactored into its own package ().
- now manages the state for this screen, including search logic and app list style.
- The search index is now built once at startup by iterating through the , making search functionality more efficient and scalable.
- Search results now navigate to the dynamic route with a parameter to scroll to and highlight the specific setting.
- Component Abstraction:
- Reusable components like , , , , and have been refactored to be stateless. They now receive their state and lambdas from the ViewModel, following unidirectional data flow principles.
- Code Deletion:
- A large number of individual feature screen files (e.g., , , , , etc.) have been deleted. Their functionality will be progressively migrated to the new declarative model.
- was moved and its old version deleted.
- Dependencies:
- Added to support Hilt injection into ViewModels for composable navigation destinations.
🔗 查看本次提交
重构中,普通用户无需下载
Refactor: Centralize feature UI with a declarative data model
重构中,普通用户无需下载
This commit introduces a major refactoring of the feature settings UI. It replaces dozens of individual, hardcoded Composable screen files with a centralized, declarative data model. A single composable now dynamically renders pages based on definitions from a .
This change decouples UI structure from rendering logic, making it significantly easier to add, modify, and search for features.
Key Changes:
- Declarative UI Model ():
- Introduced a set of and models to define UI components declaratively:
- : Defines a full screen with title, target apps, and a list of UI blocks ().
- : Represents blocks on a page, like or .
- : Defines individual components within a card, such as , , , (for navigation), (for image selection), and .
- : A flexible model for titles, supporting string resources, plain text, or dynamic app names.
- : Allows UI items to be shown or hidden based on the state of other items.
- Feature Registry ():
- A new central object that maps a route ID (e.g., ) to its corresponding .
- This registry is now the single source of truth for all feature screens.
- Initial definitions for and () have been created as examples of the new structure.
- Dynamic Feature Screen ( & ):
- Created , a generic composable that takes a and renders the entire UI by fetching its definition from the .
- A new Hilt-powered manages state for the dynamic screen. It loads initial values from , handles state updates, and evaluates display conditions.
- The navigation graph in now uses a single dynamic route to handle all feature pages.
- Module/Search Refactoring ():
- The main module list () has been refactored into its own package ().
- now manages the state for this screen, including search logic and app list style.
- The search index is now built once at startup by iterating through the , making search functionality more efficient and scalable.
- Search results now navigate to the dynamic route with a parameter to scroll to and highlight the specific setting.
- Component Abstraction:
- Reusable components like , , , , and have been refactored to be stateless. They now receive their state and lambdas from the ViewModel, following unidirectional data flow principles.
- Code Deletion:
- A large number of individual feature screen files (e.g., , , , , etc.) have been deleted. Their functionality will be progressively migrated to the new declarative model.
- was moved and its old version deleted.
- Dependencies:
- Added to support Hilt injection into ViewModels for composable navigation destinations.
🔗 查看本次提交
重构中,普通用户无需下载
❤2
🚀 OShin New CI Build!
Refactor(Module): Handle and display not-installed target apps
This commit refactors the module list screen to gracefully handle cases where a feature's target application is not installed on the user's device. Instead of failing silently, it now collects these missing apps and provides a dedicated, noticeable link to a Help page that lists them.
This improves user experience by clearly communicating why certain feature pages might be inaccessible.
### Key Changes:
- State Management ( & ):
- A new set has been added to to track the package names of missing applications.
- A new function in allows the UI to report a missing app, which is then added to the state.
- and data classes have been moved to their own separate files for better organization.
- Module Screen UI ():
- The composable now invokes the callback when a target app for a module entry isn't found.
- A new component appears conditionally at the bottom of the module list, only when is not empty.
- Clicking this arrow navigates the user to a new notice page, passing the list of missing package names as a navigation argument.
- App Not Found Notice Page ():
- The composable has been renamed to and is now a dynamic screen.
- It accepts a string argument from the navigation route.
- It parses this string to display a list of the specific applications that were not found, providing clear feedback to the user.
- Navigation ():
- The route for the notice page has been updated from a static to a dynamic to support passing the list of missing package names.
- Minor UX Improvement ():
- Added and modifiers to the in to provide standard over-scroll and haptic feedback, enhancing the scrolling experience.
重构中,普通用户无需更新
🔗 查看本次提交
Refactor(Module): Handle and display not-installed target apps
This commit refactors the module list screen to gracefully handle cases where a feature's target application is not installed on the user's device. Instead of failing silently, it now collects these missing apps and provides a dedicated, noticeable link to a Help page that lists them.
This improves user experience by clearly communicating why certain feature pages might be inaccessible.
### Key Changes:
- State Management ( & ):
- A new set has been added to to track the package names of missing applications.
- A new function in allows the UI to report a missing app, which is then added to the state.
- and data classes have been moved to their own separate files for better organization.
- Module Screen UI ():
- The composable now invokes the callback when a target app for a module entry isn't found.
- A new component appears conditionally at the bottom of the module list, only when is not empty.
- Clicking this arrow navigates the user to a new notice page, passing the list of missing package names as a navigation argument.
- App Not Found Notice Page ():
- The composable has been renamed to and is now a dynamic screen.
- It accepts a string argument from the navigation route.
- It parses this string to display a list of the specific applications that were not found, providing clear feedback to the user.
- Navigation ():
- The route for the notice page has been updated from a static to a dynamic to support passing the list of missing package names.
- Minor UX Improvement ():
- Added and modifiers to the in to provide standard over-scroll and haptic feedback, enhancing the scrolling experience.
重构中,普通用户无需更新
🔗 查看本次提交
GitHub
Refactor(Module): Handle and display not-installed target apps · suqi8/OShin@82af074
This commit refactors the module list screen to gracefully handle cases where a feature's target application is not installed on the user's device. Instead of failing silently, it n...
🚀 OShin New CI Build!
Refactor(Home): Migrate Home screen to Hilt ViewModel and Repository
This commit refactors the home screen by decoupling the UI from data-fetching logic. It replaces the monolithic composable with a new Hilt-powered and , following modern Android architecture patterns.
The data-fetching logic is now centralized and cached, improving performance and maintainability.
### Key Changes:
- ViewModel-Driven UI:
- Deleted : The original home screen composable, which contained all UI, state management, and data fetching, has been removed.
- Created : A new Hilt ViewModel now manages the home screen's state (). It's responsible for fetching all data (carousel, device status, features) asynchronously.
- Created : A new, stateless composable that renders the UI based on the collected from the .
- Repository and Dependency Injection:
- Introduced : Created a new repository ( and ) to act as a single source of truth for searchable feature items. It caches the feature list after the first load to optimize performance.
- Created : A new Dagger Hilt module has been added to provide the implementation.
- Updated : The module/search screen's ViewModel now injects and uses to get the searchable item index, centralizing the logic and benefiting from the cache.
- Home Screen Feature Enhancements:
- Random Features: The home screen now displays a shuffled list of features fetched from the , providing users with discoverable functionality.
- UI Cleanup: Minor UI adjustments were made, including adding overscroll effects to lists and cleaning up some code paths.
- Code Organization:
- Home-related files (, , and data models) are now organized under the and packages.
- The file was renamed to to follow Kotlin style conventions.
重构中,普通用户无需更新
🔗 查看本次提交
Refactor(Home): Migrate Home screen to Hilt ViewModel and Repository
This commit refactors the home screen by decoupling the UI from data-fetching logic. It replaces the monolithic composable with a new Hilt-powered and , following modern Android architecture patterns.
The data-fetching logic is now centralized and cached, improving performance and maintainability.
### Key Changes:
- ViewModel-Driven UI:
- Deleted : The original home screen composable, which contained all UI, state management, and data fetching, has been removed.
- Created : A new Hilt ViewModel now manages the home screen's state (). It's responsible for fetching all data (carousel, device status, features) asynchronously.
- Created : A new, stateless composable that renders the UI based on the collected from the .
- Repository and Dependency Injection:
- Introduced : Created a new repository ( and ) to act as a single source of truth for searchable feature items. It caches the feature list after the first load to optimize performance.
- Created : A new Dagger Hilt module has been added to provide the implementation.
- Updated : The module/search screen's ViewModel now injects and uses to get the searchable item index, centralizing the logic and benefiting from the cache.
- Home Screen Feature Enhancements:
- Random Features: The home screen now displays a shuffled list of features fetched from the , providing users with discoverable functionality.
- UI Cleanup: Minor UI adjustments were made, including adding overscroll effects to lists and cleaning up some code paths.
- Code Organization:
- Home-related files (, , and data models) are now organized under the and packages.
- The file was renamed to to follow Kotlin style conventions.
重构中,普通用户无需更新
🔗 查看本次提交
GitHub
Refactor(Home): Migrate Home screen to Hilt ViewModel and Repository · suqi8/OShin@91c0a5f
This commit refactors the home screen by decoupling the UI from data-fetching logic. It replaces the monolithic `Main_Home.kt` composable with a new Hilt-powered `HomeViewModel` and `FeatureReposit...
🚀 OShin New CI Build!
Refactor(UI): Add padding parameter to component items for flexible layout
This commit introduces an parameter to all and composable components (, , , , , , etc.). This change allows for more flexible and granular control over the spacing of items within a .
The new padding is applied in before the , enabling adjustments to the outer spacing of each component row without affecting its internal layout.
Key Changes:
:
Added a new parameter.
Applied this padding to the root modifier, allowing external control over component spacing.
Component Propagation:
The parameter has been threaded through all higher-level components that build on , including , , , , , and .
:
Now dynamically calculates and applies to each item rendered within a .
Items at the start or end of a list, or single items, receive different padding values to improve visual spacing within the card.
:
The default vertical for has been changed from to , as this spacing is now managed externally by the items themselves.
:
Updated keys for to and to for consistency.
普通用户无需更新
🔗 查看本次提交
Refactor(UI): Add padding parameter to component items for flexible layout
This commit introduces an parameter to all and composable components (, , , , , , etc.). This change allows for more flexible and granular control over the spacing of items within a .
The new padding is applied in before the , enabling adjustments to the outer spacing of each component row without affecting its internal layout.
Key Changes:
:
Added a new parameter.
Applied this padding to the root modifier, allowing external control over component spacing.
Component Propagation:
The parameter has been threaded through all higher-level components that build on , including , , , , , and .
:
Now dynamically calculates and applies to each item rendered within a .
Items at the start or end of a list, or single items, receive different padding values to improve visual spacing within the card.
:
The default vertical for has been changed from to , as this spacing is now managed externally by the items themselves.
:
Updated keys for to and to for consistency.
普通用户无需更新
🔗 查看本次提交
GitHub
Refactor(UI): Add padding parameter to component items for flexible l… · suqi8/OShin@40c94fd
…ayout
This commit introduces an `externalPadding` parameter to all `fun*` and `Super*` composable components (`FunArrow`, `FunSwitch`, `FunSlider`, `FunDropdown`, `FunPicSele`, `FunString`, etc.)...
This commit introduces an `externalPadding` parameter to all `fun*` and `Super*` composable components (`FunArrow`, `FunSwitch`, `FunSlider`, `FunDropdown`, `FunPicSele`, `FunString`, etc.)...