OShin | O神「自动构建 CI Build」
1.54K subscribers
2 photos
1 video
777 files
686 links
OPPO/OneOlus 系统辅助应用

Channel/频道
@OPatchA
Chat/聊天
@OPatchB
Download Telegram
🚀 OShin New CI Build!

Refactor(UI/LiquidGlass): Optimize InnerRefraction and update component styles

This commit introduces several changes related to the LiquidGlass effect and UI components:

LiquidGlass Optimization:
- : Changed the default from to . This means depth effect is now opt-in, potentially improving performance when not explicitly needed.
- :
- Conditionally loads a different AGSL shader () if .
- The standard (without depth effect calculations) is used if is .
- The uniform is now only set in the shader if it's being used.
- Optimized layer recording by moving it inside the block.
- :
- Split the existing into two:
- : For inner refraction without depth effect.
- : For inner refraction with depth effect. This version includes the uniform and related calculations.

UI Component Styling and Behavior:
- & :
- now receives a lambda for its and composables, allowing dynamic tinting based on selection state.
- Updated in to pass to and .
- Changed to for various elements in (indicator, background, individual tabs) for a consistent rounded look.
- Modified animation specs for tab offset and indicator animations to use for a more natural feel.
- :
- Updated to use .
- Adapted usage to pass for icons and for text in tab labels.
- :
- Changed to be a non-suspending function as it only performs shell commands.
- Added logic to set if is empty initially, ensuring data is loaded on first composition.
- :
- Changed to for icon buttons.
- Increased clickable icon button size from to .
- Removed modifier from icon buttons as LiquidGlass provides its own visual depth.
- :
- Replaced with the local component.

These changes aim to optimize the LiquidGlass rendering path when depth effect is not needed and to refine the visual appearance and interaction of bottom navigation tabs and other UI elements.
🔗 查看本次提交
🚀 OShin New CI Build!

Refactor: Remove deprecated type aliases and function

This commit removes deprecated type aliases and the function from .

The following deprecated elements have been removed:
- (alias for )
- (self-referential alias)
- (self-referential alias)
- (alias for )
- type alias
- function

These changes simplify the codebase by removing outdated compatibility layers. Users should now directly use the non-deprecated types and functions (e.g., , , , , , ).
🔗 查看本次提交
4
🚀 OShin New CI Build!

refactor(ui): 移动UI组件并更新“关于”页面

本次提交包含一个主要的结构重构和一些次要的内容更新。

1. UI组件重构 (主要变更):

- 将所有可复用的UI组件(如 Card, FunSwitch, FunArrow 等)从 移动到了一个新的、更通用的包 中。
- 此举旨在提高代码的模块化和可维护性,使组件结构更清晰。
- 相应地,更新了整个应用中所有对这些组件的 引用。

2. “关于”页面内容更新:

- 致谢名单: 在“贡献者”页面新增了 hamjin, kmiit, fatal1101 三位开发者。
- 引用项目: 在“引用项目”页面新增了 Free Notifications, Liquid Glass, HyperStar 等开源项目。
- 文案优化: 微调了“贡献者”和“引用项目”页面的介绍性文字。
🔗 查看本次提交
2
🚀 OShin New CI Build!

chore(deps): 更新依赖版本号

- AGP 升级至 8.12.0
- Kotlin 升级至 2.2.10,KSP 同步更新
- Compose BOM 升级至 2025.08.00
- core-ktx 升级至 1.17.0
- Compose 正式版 1.9.0
- haze 升级至 1.6.10
🔗 查看本次提交
2
🚀 OShin New CI Build!

Refactor(LiquidGlass): Decouple shadow rendering and improve color filter

This commit introduces several changes to the LiquidGlass library, primarily focusing on shadow rendering and color filter functionality, along with related updates in the application.

LiquidGlass Library Changes:

- Shadow Rendering Decoupling:
- : The property is now nullable (), allowing shadows to be completely disabled.
- :
- Shadow rendering is now handled by a new and . This decouples shadow logic from the main .
- A separate is introduced for to avoid conflicts with other graphics layer operations. The now uses this dedicated layer.
- recording for the main content is moved inside the block.
- : Removed direct handling of and properties and the associated settings for shadows. This responsibility is moved to .
- :
- The primary constructor now accepts a instead of a for more flexible shadow appearances. Other parameters like , , , and are added.
- A deprecated constructor is provided for backward compatibility.
- is now deprecated; should be used to disable shadows.
- & (New Files):
- Implement the new shadow rendering logic using for more sophisticated shadow effects.
- observes changes in and to update the shadow painter.

- Color Filter Improvements:
- :
- Changed default to .
- Changed to use the new with default brightness=0f, contrast=1.5f, saturation=1.5f.
- Removed the old and its usage.
- (New File):
- Introduced a new function that allows adjusting brightness, contrast, and saturation using a .

- Highlight Update:
- : The internal state is now tracked to correctly update the render effect when the property changes.
- : Changed default to for .

Application-Side Changes:

- Shape Updates:
- Replaced with (from the new dependency) in several UI components for potentially different corner rendering:
- : Image preview clip shape.
- : Dialog shape.
- : Card clip shape.
- : shape.
- : Avatar image clip shape.

- Dependency Update:
- : Added dependency.
- : Defined the library version.

These changes aim to make LiquidGlass shadows more flexible and performant by decoupling their rendering, and to provide a more comprehensive color filtering utility. The UI updates mainly involve adopting a new corner shape implementation.
🔗 查看本次提交
1
🚀 OShin New CI Build!

fix(hook): Catch Throwable instead of Exception in HookEntry

This commit changes the catch block in to catch instead of when attempting to load the dexkit library.

This change ensures that all types of errors, including subclasses which do not inherit from , are caught during the library loading process. This makes the error handling more robust.
🔗 查看本次提交
🚀 OShin New CI Build!

Refactor(hook): Optimize SMS processing and introduce EntityStoreManager

This commit introduces several improvements to SMS handling and data persistence within the hook.

Key Changes:

- :
- Modified to use a non-nullable return type, directly normalizing it. This simplifies null handling for the message body.

- :
- Replaced with for reflective operations, specifically for accessing and fields in the object. This aligns with the project's preference for YukiHookAPI's reflection utilities.
- Added error logging using within the block when attempting to delete an SMS from the raw table, providing more insight into potential issues.
- Added to the resolver for to ensure methods from superclasses are also considered during resolution.

- :
- SMS Deduplication Logic:
- Re-enabled and updated the SMS deduplication logic.
- It now loads the previous SMS message using .
- If a previous SMS exists, it checks if the time difference is within 15 seconds.
- If the time difference is small, it further checks if the sender and SMS code match, or if the entire body matches, to determine if it's a duplicate.
- The current SMS () is now saved using regardless of whether it's a duplicate, to be used for the next comparison.

- (New File):
- Introduced a new singleton object to handle the serialization and deserialization of entities (like ) to and from JSON files.
- :
- Takes a list of entities and serializes them to JSON using .
- Stores the JSON in a file named within the directory of 's data directory.
- Sets world-writable permissions on the created file.
- Uses Kotlin's for safe and automatic resource management.
- :
- Reads the JSON string from .
- Deserializes the JSON back into a list of entities of the specified class using and a custom parameterized type.
- Returns an empty list if the file doesn't exist or an error occurs.
- Uses Kotlin's for safe and automatic resource management.
- :
- A convenience function that loads a list of entities and returns the first one, or if the list is empty.
- :
- A utility function to recursively set executable, writable, and readable permissions for a file and its parent directories up to a specified depth.

These changes aim to improve the robustness of SMS processing by adding deduplication, enhance data persistence with a dedicated manager, and modernize reflection usage.
🔗 查看本次提交
🚀 OShin New CI Build!

feat(phone): Add customizable SMS code keywords and UI improvements

This commit introduces the ability for users to customize keywords for SMS verification code detection and refines the associated UI.

Key Changes:

- :
- The (keywords for detecting verification codes) is now loaded from preferences () when the app is loaded, specifically if the smsverificationcode feature is enabled.
- Removed redundant loading of from within the constructor hook of . The rule is now initialized earlier.

- (UI for com.android.phone settings):
- The SMS Verification Code switch () now updates a local () to control the visibility of the keyword settings.
- Added a component for SMS Code Keyword ().
- This input field allows users to define custom keywords for identifying verification code SMS messages.
- It's conditionally visible () based on the state of the SMS Verification Code switch.
- A default list of keywords in multiple languages is provided as .
- is used to visually separate the switch and the keyword input field.

- :
- Added a new string resource (验证码短信关键字).

- :
- Added SMS Verification Code () and SMS Code Keyword () to the list of s for the phone category, making them discoverable in the app's feature list.

These changes allow users more flexibility in defining what constitutes a verification code SMS by customizing the keywords, and integrate this setting into the UI.
🔗 查看本次提交
🚀 OShin New CI Build!

Style(LiquidGlass): Enhance glass effect with shadows and saturation

This commit enhances the LiquidGlass effect by introducing optional shadows and color saturation, and applies these enhancements to various UI elements.

LiquidGlass Enhancements:
- (Conceptual based on changes):
- now supports a parameter (of type ), allowing shadows to be configured for glass elements.
- (Conceptual based on changes):
- now supports a parameter.
- Introduced to easily apply saturation to the glass material.
- :
- Optimized by caching , , and into local variables before drawing.

UI Updates:
- :
- The now includes a with an elevation of and a black tint with alpha, adding depth to the page's top bar.
- :
- updated:
- increased from to .
- (SolidColor) removed, relying on background sampling.
- added, applying to enhance colors behind the glass.
- updated:
- Added a with elevation and transparent brush, effectively disabling shadow for the top app bar by default but allowing it to be configured.
- The modifier for the main window now uses the updated .

These changes provide more visual customization options for the LiquidGlass effect, allowing for richer and more nuanced glass appearances throughout the application.
🔗 查看本次提交
🚀 OShin New CI Build!

feat(SMSCode): Add option to show verification code toast

This commit introduces a new feature allowing users to optionally display a toast message when an SMS verification code is detected and copied.

Key Changes:

- :
- Added a new global variable (boolean) to control whether the toast is displayed.
- This variable is initialized from the phone preferences () when the hook is loaded.
- :
- The method now checks the value of before calling .
- (UI for phone settings):
- Added a new (toggle switch) labeled with .
- This switch controls the showCodeToast preference in the phone category.
- The for SMS code keywords and the new are now grouped within a under the main smsverificationcode toggle.
- :
- Added a new string resource with the value 显示验证码吐司 (Show verification code toast).
- :
- Added a new for 显示验证码吐司 to the list of features.

This enhancement provides users with more granular control over the SMS verification code feature, allowing them to choose whether they want a visual confirmation (toast) when a code is automatically handled.
🔗 查看本次提交