OShin | O神「自动构建 CI Build」
1.52K subscribers
2 photos
771 files
678 links
OPPO/OneOlus 系统辅助应用

Channel/频道
@OPatchA
Chat/聊天
@OPatchB
Download Telegram
🚀 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.
🔗 查看本次提交
优化代码,优化预加载
2
🚀 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.
🔗 查看本次提交
🚀 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.
🔗 查看本次提交
你喜欢哪一个?
Final Results
72%
第一个
28%
第二个
🚀 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.
🔗 查看本次提交
🚀 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.
🔗 查看本次提交

重构中,普通用户无需下载
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.

重构中,普通用户无需更新
🔗 查看本次提交
🚀 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.

重构中,普通用户无需更新
🔗 查看本次提交
🚀 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.

普通用户无需更新
🔗 查看本次提交