🚀 **OShin New CI Build!**
Chore: Update project dependencies
This commit updates the versions of several key dependencies in .
### Key Version Changes:
* **Kotlin:** ->
* **AndroidX Compose BOM:** ->
* **AndroidX Room:** ->
* **Jetpack Compose:** ->
* **KSP:** The Kotlin version for KSP was updated to .
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/fee284817ab0195d45d616edbc0f15090e8d28c1)
Chore: Update project dependencies
This commit updates the versions of several key dependencies in .
### Key Version Changes:
* **Kotlin:** ->
* **AndroidX Compose BOM:** ->
* **AndroidX Room:** ->
* **Jetpack Compose:** ->
* **KSP:** The Kotlin version for KSP was updated to .
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/fee284817ab0195d45d616edbc0f15090e8d28c1)
GitHub
Chore: Update project dependencies · suqi8/OShin@fee2848
This commit updates the versions of several key dependencies in `gradle/libs.versions.toml`.
### Key Version Changes:
* **Kotlin:** `2.2.20` -> `2.2.21`
* **AndroidX Compose BOM:** `202...
### Key Version Changes:
* **Kotlin:** `2.2.20` -> `2.2.21`
* **AndroidX Compose BOM:** `202...
🚀 **OShin New CI Build!**
Refactor: Update component import paths
This commit refactors the import statements in to use local project components instead of an external library.
The and components are now imported from the internal package, removing the dependency on .
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/93074af3753d7d36bb8057df3cb0e3c0da9a28d4)
Refactor: Update component import paths
This commit refactors the import statements in to use local project components instead of an external library.
The and components are now imported from the internal package, removing the dependency on .
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/93074af3753d7d36bb8057df3cb0e3c0da9a28d4)
GitHub
Refactor: Update component import paths · suqi8/OShin@93074af
This commit refactors the import statements in `about_setting.kt` to use local project components instead of an external library.
The `SuperDropdown` and `SuperSwitch` components are now imported ...
The `SuperDropdown` and `SuperSwitch` components are now imported ...
🚀 **OShin New CI Build!**
Refactor(Dropdown): Improve gesture handling and visual feedback
This commit refactors the composable to improve user interaction and visual feedback, particularly for touch, drag, and long-press gestures.
### Key Changes:
* **Gesture Handling ():**
* The gesture detection logic has been completely rewritten using lower-level modifiers (, ).
* This separates tap/press, long-press/drag, and scroll events, resolving conflicts and making interactions more reliable.
* **Visual Feedback:**
* Introduced distinct visual states for pressed (tap-down) and hovered (drag-over).
* A new parameter in triggers a dark overlay () on the item background when it is either pressed or hovered, providing clear feedback.
* The checkmark icon is now also displayed for the hovered item, not just the selected one.
* **State Management:**
* New state variables (, ) are introduced to track user interactions within the popup.
* Event callbacks like , , and now manage state changes and selection logic from the parent , simplifying the child .
* **Lottie Animation Update ():**
* The Lottie animation file has been replaced with a new, completely different animation.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/e85e7d3dfad5d77111bdd094094635e8d0dca20f)
Refactor(Dropdown): Improve gesture handling and visual feedback
This commit refactors the composable to improve user interaction and visual feedback, particularly for touch, drag, and long-press gestures.
### Key Changes:
* **Gesture Handling ():**
* The gesture detection logic has been completely rewritten using lower-level modifiers (, ).
* This separates tap/press, long-press/drag, and scroll events, resolving conflicts and making interactions more reliable.
* **Visual Feedback:**
* Introduced distinct visual states for pressed (tap-down) and hovered (drag-over).
* A new parameter in triggers a dark overlay () on the item background when it is either pressed or hovered, providing clear feedback.
* The checkmark icon is now also displayed for the hovered item, not just the selected one.
* **State Management:**
* New state variables (, ) are introduced to track user interactions within the popup.
* Event callbacks like , , and now manage state changes and selection logic from the parent , simplifying the child .
* **Lottie Animation Update ():**
* The Lottie animation file has been replaced with a new, completely different animation.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/e85e7d3dfad5d77111bdd094094635e8d0dca20f)
GitHub
Refactor(Dropdown): Improve gesture handling and visual feedback · suqi8/OShin@e85e7d3
This commit refactors the `FunDropdown` composable to improve user interaction and visual feedback, particularly for touch, drag, and long-press gestures.
### Key Changes:
* **Gesture Handling ...
### Key Changes:
* **Gesture Handling ...
🚀 **OShin New CI Build!**
Refactor: Implement Shared Element Transitions for navigation
This commit introduces from Compose Animation to create shared element transitions between list items and their corresponding detail pages, enhancing the user experience with smoother and more context-aware navigation.
The implementation focuses on applying and modifiers to relevant components across the application.
### Key Changes:
* **Navigation:**
* is now wrapped in a .
* Pages and components now receive and to participate in transitions.
* A unique is assigned to each target page (, , etc.) to define the transition boundary.
* **Transitioned Components:**
* **Home Screen:** Official Channel and randomized feature items now transition to their detail screens.
* **Modules Screen ():** App list items (both list and grid view) and search results now smoothly transition to the feature configuration screen.
* **Functions Screen ():** CPU Freq and ROM Workshop items now transition to their respective pages.
* **About Screen ():** Contributors, References, Settings, and Official Channel items now animate into their detail views.
* **UI Refinements:**
* Many pages that previously used simple layouts have been refactored to use for better performance and consistency with scroll behaviors.
* Introduced a subtle blur effect to pages in the on the main screen when they are not in focus during a scroll gesture.
* actions are now hidden during a shared element transition to prevent visual glitches.
* Redundant instances in have been consolidated into a single instance shared across all pager pages.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c5be88ded43aa48d48d318e50eb6da415ae12491)
Refactor: Implement Shared Element Transitions for navigation
This commit introduces from Compose Animation to create shared element transitions between list items and their corresponding detail pages, enhancing the user experience with smoother and more context-aware navigation.
The implementation focuses on applying and modifiers to relevant components across the application.
### Key Changes:
* **Navigation:**
* is now wrapped in a .
* Pages and components now receive and to participate in transitions.
* A unique is assigned to each target page (, , etc.) to define the transition boundary.
* **Transitioned Components:**
* **Home Screen:** Official Channel and randomized feature items now transition to their detail screens.
* **Modules Screen ():** App list items (both list and grid view) and search results now smoothly transition to the feature configuration screen.
* **Functions Screen ():** CPU Freq and ROM Workshop items now transition to their respective pages.
* **About Screen ():** Contributors, References, Settings, and Official Channel items now animate into their detail views.
* **UI Refinements:**
* Many pages that previously used simple layouts have been refactored to use for better performance and consistency with scroll behaviors.
* Introduced a subtle blur effect to pages in the on the main screen when they are not in focus during a scroll gesture.
* actions are now hidden during a shared element transition to prevent visual glitches.
* Redundant instances in have been consolidated into a single instance shared across all pager pages.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c5be88ded43aa48d48d318e50eb6da415ae12491)
GitHub
Refactor: Implement Shared Element Transitions for navigation · suqi8/OShin@c5be88d
This commit introduces `SharedTransitionLayout` from Compose Animation to create shared element transitions between list items and their corresponding detail pages, enhancing the user experience wi...
👍2
🚀 **OShin New CI Build!**
Style(UI): Revamp home screen with a modern, card-based design
This commit overhauls the home screen (), replacing the previous HUD-style layout with a modern, visually rich, card-based interface. The new design emphasizes clarity, aesthetics, and better information hierarchy.
### Key UI/UX Changes:
* **New Design System:** Introduces a consistent design language with rounded corners, gradient backgrounds, and refined typography across all home screen components.
* **Top App Bar:** The traditional top app bar has been replaced with a translucent gradient effect that blurs the content scrolling beneath it, creating a more immersive feel.
* **Featured Carousel:** The carousel is now a full-width, visually prominent section with an improved pager indicator.
* **Modern Status Cards:** The Module Status and Root Status are now displayed in stylish square cards with gradient backgrounds and clear iconography.
* **Todays Highlights" Section:** A new horizontally scrolling section has been added to showcase randomly recommended features in Apple-style cards.
* **Revamped Device Info:** The device and battery information sections have been redesigned into distinct, easy-to-read cards, including a prominent battery status card with a color-coded gradient.
* **Official Channel Card:** The link to the official channel is now presented as a large, clickable card with a gradient background.
* **Code Refactoring:** The composable functions in `MainHome.kt` have been completely refactored to implement the new design. Old components like `HUDCircularGauge`, `CutCornerShape`, and `SectionTitle` have been removed or replaced.
### Functional & Data Changes:
* **Real Battery Level:** The `DeviceInfo` data class now includes `chipSoc` to display the "real battery level" on the home screen.
* **Robust Carousel Loading:** The `HomeViewModel` now provides default placeholder data for the carousel to prevent crashes if the data fetch fails.
### Minor UI Adjustments:
* **Function & Module Screens:** The "Function" and "Module" screens have been updated to use the new `ModernSectionTitle` and have had padding adjusted to align with the new top bar design.
* **New String Resources:** Added new strings to support the updated UI, such as titles and subtitles for the new sections (e.g., "Todays Highlights, Featured).
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/7b40c05e69b7017273742e11e930d9d4402f6c8c)
Style(UI): Revamp home screen with a modern, card-based design
This commit overhauls the home screen (), replacing the previous HUD-style layout with a modern, visually rich, card-based interface. The new design emphasizes clarity, aesthetics, and better information hierarchy.
### Key UI/UX Changes:
* **New Design System:** Introduces a consistent design language with rounded corners, gradient backgrounds, and refined typography across all home screen components.
* **Top App Bar:** The traditional top app bar has been replaced with a translucent gradient effect that blurs the content scrolling beneath it, creating a more immersive feel.
* **Featured Carousel:** The carousel is now a full-width, visually prominent section with an improved pager indicator.
* **Modern Status Cards:** The Module Status and Root Status are now displayed in stylish square cards with gradient backgrounds and clear iconography.
* **Todays Highlights" Section:** A new horizontally scrolling section has been added to showcase randomly recommended features in Apple-style cards.
* **Revamped Device Info:** The device and battery information sections have been redesigned into distinct, easy-to-read cards, including a prominent battery status card with a color-coded gradient.
* **Official Channel Card:** The link to the official channel is now presented as a large, clickable card with a gradient background.
* **Code Refactoring:** The composable functions in `MainHome.kt` have been completely refactored to implement the new design. Old components like `HUDCircularGauge`, `CutCornerShape`, and `SectionTitle` have been removed or replaced.
### Functional & Data Changes:
* **Real Battery Level:** The `DeviceInfo` data class now includes `chipSoc` to display the "real battery level" on the home screen.
* **Robust Carousel Loading:** The `HomeViewModel` now provides default placeholder data for the carousel to prevent crashes if the data fetch fails.
### Minor UI Adjustments:
* **Function & Module Screens:** The "Function" and "Module" screens have been updated to use the new `ModernSectionTitle` and have had padding adjusted to align with the new top bar design.
* **New String Resources:** Added new strings to support the updated UI, such as titles and subtitles for the new sections (e.g., "Todays Highlights, Featured).
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/7b40c05e69b7017273742e11e930d9d4402f6c8c)
GitHub
Style(UI): Revamp home screen with a modern, card-based design · suqi8/OShin@7b40c05
This commit overhauls the home screen (`MainHome.kt`), replacing the previous HUD-style layout with a modern, visually rich, card-based interface. The new design emphasizes clarity, aesthetics, and...
❤1
🚀 **OShin New CI Build!**
Fix(Icon): Ensure correct icon rendering for all apps
This commit resolves an issue where some application icons were rendered incorrectly or not at all. The problem stemmed from icons that had an intrinsic width or height of zero or less, which caused a crash during bitmap creation.
To fix this, the code now checks the and of the drawable icon. If either dimension is invalid (<= 0), it defaults to a safe size of 1x1. This ensures that is always called with positive dimensions, preventing crashes and allowing the icon to be rendered.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c78b2e0cbb8c1b08cae4d199959a03657d5b7416)
Fix(Icon): Ensure correct icon rendering for all apps
This commit resolves an issue where some application icons were rendered incorrectly or not at all. The problem stemmed from icons that had an intrinsic width or height of zero or less, which caused a crash during bitmap creation.
To fix this, the code now checks the and of the drawable icon. If either dimension is invalid (<= 0), it defaults to a safe size of 1x1. This ensures that is always called with positive dimensions, preventing crashes and allowing the icon to be rendered.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c78b2e0cbb8c1b08cae4d199959a03657d5b7416)
GitHub
Fix(Icon): Ensure correct icon rendering for all apps · suqi8/OShin@c78b2e0
This commit resolves an issue where some application icons were rendered incorrectly or not at all. The problem stemmed from icons that had an intrinsic width or height of zero or less, which cause...
🚀 **OShin New CI Build!**
Fix(UI): Prevent interaction during transitions and refine module status display
This commit introduces a fix to prevent user interaction during shared element transitions and refines how the module status is displayed on the home screen.
### Key Changes:
* **:**
* A transparent is now overlaid across the entire screen during a animation.
* This box uses to consume all touch events, effectively blocking clicks on UI elements like while the transition is active.
* This resolves an issue where buttons could be clicked mid-animation, potentially causing crashes or unexpected behavior.
* Removed now-redundant logic that conditionally rendered buttons based on the flag.
* ** & :**
* The module status card on the main screen now displays the LSPosed version and API level (e.g., LSPosed 1.9.2 API 93) when the module is active.
* The previous generic SUCCESS message has been replaced with this more informative text.
* The constraint on the message text has been removed to accommodate the longer string.
* The state is now a global variable to be accessible across different composables.
* **:**
* The modifier has been moved from the parent / to the clickable element itself. This refines the shared element transition to target the card specifically, rather than the entire list item layout.
* **:**
* Removed unused constant definitions (, , etc.) and their associated .
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/f7b3d942a6e2a3841e79326cdab619a8d34dbbe3)
Fix(UI): Prevent interaction during transitions and refine module status display
This commit introduces a fix to prevent user interaction during shared element transitions and refines how the module status is displayed on the home screen.
### Key Changes:
* **:**
* A transparent is now overlaid across the entire screen during a animation.
* This box uses to consume all touch events, effectively blocking clicks on UI elements like while the transition is active.
* This resolves an issue where buttons could be clicked mid-animation, potentially causing crashes or unexpected behavior.
* Removed now-redundant logic that conditionally rendered buttons based on the flag.
* ** & :**
* The module status card on the main screen now displays the LSPosed version and API level (e.g., LSPosed 1.9.2 API 93) when the module is active.
* The previous generic SUCCESS message has been replaced with this more informative text.
* The constraint on the message text has been removed to accommodate the longer string.
* The state is now a global variable to be accessible across different composables.
* **:**
* The modifier has been moved from the parent / to the clickable element itself. This refines the shared element transition to target the card specifically, rather than the entire list item layout.
* **:**
* Removed unused constant definitions (, , etc.) and their associated .
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/f7b3d942a6e2a3841e79326cdab619a8d34dbbe3)
GitHub
Fix(UI): Prevent interaction during transitions and refine module sta… · suqi8/OShin@f7b3d94
…tus display
This commit introduces a fix to prevent user interaction during shared element transitions and refines how the module status is displayed on the home screen.
### Key Changes:
* **...
This commit introduces a fix to prevent user interaction during shared element transitions and refines how the module status is displayed on the home screen.
### Key Changes:
* **...
🚀 **OShin New CI Build!**
Refactor(UI): Revamp layout and enhance shared element transitions
This commit introduces a significant refactoring of the composable to create a more modern and dynamic user experience, alongside major improvements to shared element transitions.
### Key Changes:
* **Detached Top Bar and Title:**
* The traditional has been replaced with a custom, floating top bar for actions (Back, Launch, Refresh).
* The page title is now a separate composable within the content area, allowing it to participate in shared element transitions.
* The top bar area now uses a custom blur with a gradient effect instead of the previous implementation.
* **Improved Shared Element Transitions:**
* Introduced to and to enable more granular control over which parts of a component participate in a transition.
* Titles on the main module pages () and feature list items () are now connected to the destination page's title for a seamless animation.
* Added a title font size animation on the feature screen. When navigating from a list, the title animates from a smaller to a larger font size.
* **Layout and Simplification in :**
* Removed the overloaded that was used for backward compatibility. The composable now has a single, flexible implementation.
* The title is now optional. If an empty title is provided, the container is hidden, allowing for fully custom layouts.
* Button logic has been extracted into a dedicated composable.
* Page padding now correctly accounts for display cutouts using .
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/22ace1cc8e07bf64f30567d74f222ea73d05fed2)
Refactor(UI): Revamp layout and enhance shared element transitions
This commit introduces a significant refactoring of the composable to create a more modern and dynamic user experience, alongside major improvements to shared element transitions.
### Key Changes:
* **Detached Top Bar and Title:**
* The traditional has been replaced with a custom, floating top bar for actions (Back, Launch, Refresh).
* The page title is now a separate composable within the content area, allowing it to participate in shared element transitions.
* The top bar area now uses a custom blur with a gradient effect instead of the previous implementation.
* **Improved Shared Element Transitions:**
* Introduced to and to enable more granular control over which parts of a component participate in a transition.
* Titles on the main module pages () and feature list items () are now connected to the destination page's title for a seamless animation.
* Added a title font size animation on the feature screen. When navigating from a list, the title animates from a smaller to a larger font size.
* **Layout and Simplification in :**
* Removed the overloaded that was used for backward compatibility. The composable now has a single, flexible implementation.
* The title is now optional. If an empty title is provided, the container is hidden, allowing for fully custom layouts.
* Button logic has been extracted into a dedicated composable.
* Page padding now correctly accounts for display cutouts using .
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/22ace1cc8e07bf64f30567d74f222ea73d05fed2)
GitHub
Refactor(UI): Revamp `FunPage` layout and enhance shared element tran… · suqi8/OShin@22ace1c
…sitions
This commit introduces a significant refactoring of the `FunPage` composable to create a more modern and dynamic user experience, alongside major improvements to shared element transition...
This commit introduces a significant refactoring of the `FunPage` composable to create a more modern and dynamic user experience, alongside major improvements to shared element transition...
🚀 **OShin New CI Build!**
Refactor(Compose): Remove transition blocking overlay in FunPage
This commit removes a piece of code that was intended to block user input during a shared element transition.
The block, which added an empty with a modifier to consume all touch events, has been commented out. The corresponding import has also been removed.
This change simplifies the composable and removes the input-blocking overlay that was previously active during transitions.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/0f178a10efe4f32d8e54c3c1e57587f9325d9980)
Refactor(Compose): Remove transition blocking overlay in FunPage
This commit removes a piece of code that was intended to block user input during a shared element transition.
The block, which added an empty with a modifier to consume all touch events, has been commented out. The corresponding import has also been removed.
This change simplifies the composable and removes the input-blocking overlay that was previously active during transitions.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/0f178a10efe4f32d8e54c3c1e57587f9325d9980)
GitHub
Refactor(Compose): Remove transition blocking overlay in FunPage · suqi8/OShin@0f178a1
This commit removes a piece of code that was intended to block user input during a shared element transition.
The `if (sharedTransitionScope?.isTransitionActive == true)` block, which added an emp...
The `if (sharedTransitionScope?.isTransitionActive == true)` block, which added an emp...
❤1
🚀 **OShin New CI Build!**
Refactor(Settings): Improve logic for hiding the launcher icon
This commit refactors the logic for toggling the visibility of the launcher icon in the About settings screen.
### Key Changes:
* **Variable Renaming:**
* The state variable has been renamed to for better clarity.
* **Logic Inversion:**
* The logic has been inverted to be more intuitive. Instead of tracking if the icon is hidden, the code now tracks if it is visible.
* The state now directly corresponds to the icon being hidden ().
* The lambda now receives a boolean, making the call to more direct.
* **State Management:**
* The now correctly uses when is true and otherwise.
* The initial state of is now more robustly determined by checking if the component is *not* disabled, defaulting to in case of an exception.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/759f651717777790032bc77a1e68e82bb68e24b4)
Refactor(Settings): Improve logic for hiding the launcher icon
This commit refactors the logic for toggling the visibility of the launcher icon in the About settings screen.
### Key Changes:
* **Variable Renaming:**
* The state variable has been renamed to for better clarity.
* **Logic Inversion:**
* The logic has been inverted to be more intuitive. Instead of tracking if the icon is hidden, the code now tracks if it is visible.
* The state now directly corresponds to the icon being hidden ().
* The lambda now receives a boolean, making the call to more direct.
* **State Management:**
* The now correctly uses when is true and otherwise.
* The initial state of is now more robustly determined by checking if the component is *not* disabled, defaulting to in case of an exception.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/759f651717777790032bc77a1e68e82bb68e24b4)
GitHub
Refactor(Settings): Improve logic for hiding the launcher icon · suqi8/OShin@759f651
This commit refactors the logic for toggling the visibility of the launcher icon in the "About" settings screen.
### Key Changes:
* **Variable Renaming:**
* The state va...
### Key Changes:
* **Variable Renaming:**
* The state va...
🚀 **OShin New CI Build!**
Refactor(UI): Generalize by adding a custom action slot
This commit refactors the composable to make it more versatile and reusable.
Previously, the top app bar in had a fixed layout. This change introduces a new parameter named . This allows parent components to inject custom composable content, such as buttons or other UI elements, into the top bar.
### Key Changes:
* The and composables now accept an lambda.
* The content is rendered in the top bar, positioned before the conditional shortcut button.
* The top app bar () is now always transparent and has a fixed height of , simplifying the layout logic.
* The blurred top bar effect is now conditionally rendered only when the parameter is empty, cleaning up its appearance on pages with a visible title.
* Unused imports and modifiers (, ) have been removed.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/08f26c29684bcb9e0292c150e9281937533c1477)
Refactor(UI): Generalize by adding a custom action slot
This commit refactors the composable to make it more versatile and reusable.
Previously, the top app bar in had a fixed layout. This change introduces a new parameter named . This allows parent components to inject custom composable content, such as buttons or other UI elements, into the top bar.
### Key Changes:
* The and composables now accept an lambda.
* The content is rendered in the top bar, positioned before the conditional shortcut button.
* The top app bar () is now always transparent and has a fixed height of , simplifying the layout logic.
* The blurred top bar effect is now conditionally rendered only when the parameter is empty, cleaning up its appearance on pages with a visible title.
* Unused imports and modifiers (, ) have been removed.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/08f26c29684bcb9e0292c150e9281937533c1477)
GitHub
Refactor(UI): Generalize `FunPage` by adding a custom action slot · suqi8/OShin@08f26c2
This commit refactors the `FunPage` composable to make it more versatile and reusable.
Previously, the top app bar in `FunPage` had a fixed layout. This change introduces a new `@Composable () -&a...
Previously, the top app bar in `FunPage` had a fixed layout. This change introduces a new `@Composable () -&a...