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

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

Refactor(UI): Remove unused and relocate

This commit cleans up the main module by removing an unused class and relocating the composable to a more appropriate component file.

* The class, which provided a custom shape with cut corners, has been removed as it is no longer in use.
* The composable function has been moved to to improve code organization.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/2bb9bc3ff521b08463c4c99a0136b653785107d1)
🚀 **OShin New CI Build!**

Refactor(UI): Move common components to a shared directory

This commit reorganizes the project structure by moving reusable UI components into a common directory.

The following composables have been relocated from to :
*
*

Import statements in , , and have been updated to reflect the new file paths. This change improves code organization by grouping shared components together.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/862dade3d7122690a7a4eb652c32686a2e11c385)
🚀 **OShin New CI Build!**

Refactor(UI): Revamp module screen with Miuix and component refactoring

This commit significantly refactors the main module screen, replacing the custom search implementation with the , and restructuring components for better organization and performance.

### Key Changes:

* **Search Bar Implementation:**
* Replaced the custom with the standardized .
* The new implementation provides a native Miuix look and feel, including expand/collapse animations and a dedicated results content area.
* Search state is now more cleanly managed within the view model and the main screen composable.

* **Component Refactoring & Simplification:**
* The main composable has been cleaned up. The logic for displaying the app list and search results is now separated.
* UI components have been broken down into smaller, more focused composables with clearer names (e.g., , , , , ).
* Removed unused or replaced components like , , and .
* Replaced the custom divider with the , which respects a new user setting () for visibility.
* The composable is now consistently sourced from .

* **Code Structure and Readability:**
* The file is now organized with clear headers for different sections (Main Screen, Search Bar, App List, etc.).
* Redundant logic within the list/grid item composables (, ) has been extracted into dedicated functions. This separates data loading/caching from pure UI rendering.
* Function names have been made more descriptive (e.g., -> , -> ).

* **Performance & Caching:**
* The logic for loading, caching, and displaying app icons and their dominant colors remains, but it is now better integrated into the refactored component structure. This avoids re-composition and redundant data fetching.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/80ee01a57e30a54741b1f4e7c97a0e6b5c2ef20b)
🚀 **OShin New CI Build!**

Refactor(Core): Centralize app info caching and logic with

This commit introduces a major refactoring to centralize all application information (name, icon, dominant color) fetching and caching. It replaces several disparate and component-specific caching implementations with a single, robust, and lifecycle-aware data layer. This significantly improves performance, reduces code duplication, and enhances state management across the app.

### Key Changes:

* ** (Singleton Repository):**
* A new class has been introduced as a repository.
* It is now the single source of truth for all app metadata (name and icon).
* It uses a for thread-safe in-memory caching, including caching for uninstalled apps to prevent repeated lookups.
* This replaces the old, scattered implementations in and .

* ** (Singleton):**
* A new utility class has been created to handle the conversion of internal feature routes (e.g., ) into human-readable breadcrumbs (e.g., ).
* It leverages to asynchronously resolve app names within routes, replacing the old, hardcoded .
* This logic is now centralized and cleanly separated from the UI.

* **Refactored ViewModels:**
* ****: Now injects and . It fetches app names, icons, and dominant colors through a unified function. Search results now have pre-formatted breadcrumbs.
* ****: Also uses to pre-calculate and cache formatted routes for Today Highlights features, simplifying the logic.
* ****: A new ViewModel for the app selection dialog. It manages the full app list, search state, and caching of UI info (icon/color), making the component stateless and more efficient.
* ****: A new ViewModel for the app restart dialog. It handles the logic for fetching app info for the restart list and executing the restart commands, abstracting the logic from the UI.

* **Refactored UI Components:**
* ** (Module Screen):**
* The and composables no longer contain any data-fetching or caching logic. They now observe from the 's cache.
* The UI reacts to three states: loading (placeholder), loaded (displays info), and not installed (item is hidden).
* ** (App Selection Dialog):**
* The component has been completely refactored to be driven by the new . All state management, app loading, and searching logic has been moved to the ViewModel.
* The composable is now simpler and focuses purely on rendering the UI based on the state provided by the ViewModel.
* ** -> :**
* The app restart dialog has been moved to its own package and is now backed by .
* All logic for fetching app info and executing restart commands is now handled in the ViewModel, cleaning up the Composable.
* ** (Home Screen):**
* Feature cards (, , etc.) now receive a data class containing the pre-formatted route, removing calls from the UI layer.

* **Code Deletion and Consolidation:**
* , , and the old have been deleted, as their functionality is now covered by the new centralized providers and ViewModels.
* Helper functions like have been moved to a central file.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/01e98c1688cf67e45dd0ad6d5836c4ec367755b7)
🚀 **OShin New CI Build!**

Merge pull request #71 from Liberations/mydev

fix(settings): ensure OTA card background replacement works
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/d0da44b5a92e2df5c9e5e439c5a5059e86a86199)
🚀 **OShin New CI Build!**

Feat(About): Update contributors list

This commit updates the list of contributors on the About screen.

* Removes the QQ number for contributor Mikusignal.
* Changes the name of one contributor from 喷搜 to Pencil.
* Adds Liberation as a new contributor with a link to their GitHub profile.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/89bac251c298ab16f589d67f7508f27864ea796a)
🚀 **OShin New CI Build!**

Refactor(Core): Relocate UI screens into package

This commit restructures the project's UI package layout by moving all primary screen components into a new, more organized package.

This refactoring aims to improve code organization and scalability. It involves renaming and moving files from their old locations (e.g., , , , ) into corresponding sub-packages under . All associated import statements across the codebase have been updated to reflect these new paths. No functional logic was changed in this commit.

Key package changes:
* ->
* ->
* ->
* ->
* ->
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/35e41abe89a58f94ff1d059917166f3322167569)
🚀 **OShin New CI Build!**

chore(Build): Lower minimum SDK version to 33

This commit updates the in from 36 to 33, expanding the range of supported Android devices.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/4967feec22938979c7413d5a4d695e036a6049f0)
🚀 **OShin New CI Build!**

Build(Proguard): Enable line numbers and clean up rules

This commit updates the Proguard configuration to improve debugging and remove obsolete rules.

- Enables and attributes to preserve line numbers in stack traces, making debugging easier.
- Removes several redundant or overly broad rules for Activities, ViewBinding, and specific app packages, simplifying the configuration.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/82d4f8cf8627b1acff24db247a510b8e4526b20c)
🚀 **OShin New CI Build!**

feat(Home): Integrate Umeng Union ads into home screen carousel

This commit introduces native advertising into the home screen's top carousel by integrating the Umeng Union (友盟+) SDK. The carousel now dynamically mixes promotional content with native ads (including video ads).

### Key Changes:

* **Umeng Union SDK Integration:**
* Added dependency.
* Initialized the SDK in with pre-initialization for better performance.

* **Carousel Content Refactoring:**
* Introduced a sealed interface to represent different types of carousel items: (original promotional content) and (Umeng native ads).
* now fetches both promotional items and native ads concurrently.
* The two content types are shuffled and combined into a single list () to be displayed in the carousel.

* **Native Ad Composable:**
* Created a new composable to render the ad content provided by the SDK.
* This component handles both image and video ads, using to host for video playback.
* It manages the ad's lifecycle (, , ) using to ensure proper video handling and resource cleanup.
* The ad's view is correctly bound for click and impression tracking.

* **ViewModel Logic:**
* now contains logic to request a native banner ad from the Umeng SDK.
* It includes success and failure handlers for the ad request.
* A new function merges the fetched ad with the existing carousel items and shuffles the result for a mixed display.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/ab0e2a803c274b04cae232d3a24981bc57a8d2d6)