🚀 **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...
🚀 **OShin New CI Build!**
Refactor(Build): Disable ABI splits to produce a single universal APK
This commit updates the build process to stop generating separate APKs for different CPU architectures (, ) and instead produce only a single, universal APK that supports all architectures.
### Key Changes:
* ****:
* The flag has been set to , effectively disabling the ABI splitting feature.
* The directive for and has been commented out.
* ****:
* The GitHub Actions workflow has been simplified to handle only the universal () APK.
* Removed logic for finding, hashing, and reporting the now-obsolete and APKs.
* The build summary table will now only display the SHA256 hash for the universal APK.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/b520078f2f6de92e585c6e3494c2370a5742b31f)
Refactor(Build): Disable ABI splits to produce a single universal APK
This commit updates the build process to stop generating separate APKs for different CPU architectures (, ) and instead produce only a single, universal APK that supports all architectures.
### Key Changes:
* ****:
* The flag has been set to , effectively disabling the ABI splitting feature.
* The directive for and has been commented out.
* ****:
* The GitHub Actions workflow has been simplified to handle only the universal () APK.
* Removed logic for finding, hashing, and reporting the now-obsolete and APKs.
* The build summary table will now only display the SHA256 hash for the universal APK.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/b520078f2f6de92e585c6e3494c2370a5742b31f)
GitHub
Refactor(Build): Disable ABI splits to produce a single universal APK · suqi8/OShin@b520078
This commit updates the build process to stop generating separate APKs for different CPU architectures (`armeabi-v7a`, `arm64-v8a`) and instead produce only a single, universal APK that supports al...
🚀 **OShin New CI Build!**
CI: Automate release creation and asset upload to OShin-Builds
This commit enhances the GitHub Actions workflow to automatically create a release and upload the built APK to a separate repository.
### Key Workflow Changes:
* **Extract Version String:** The Prepare Artifacts step has been updated to dynamically extract the version string from the generated APK filename (e.g., from ). This version is then used for the release tag and name.
* **Create Release Step:** A new step using has been added.
* It creates a new pre-release in the repository.
* The release tag and name are set using the extracted version string.
* The release body includes the source commit SHA and message.
* **Upload Release Asset:** The newly built APK file is automatically uploaded as an asset to this new release.
* **Refinement:** The step name was updated from Prepare Artifacts and Generate Summary to Prepare Artifacts, Extract Version String, and Generate Summary to better reflect its new responsibilities. Variable names and comments have also been improved for clarity.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/fa9760dcc441b78944999778980fc17640c3a5b7)
CI: Automate release creation and asset upload to OShin-Builds
This commit enhances the GitHub Actions workflow to automatically create a release and upload the built APK to a separate repository.
### Key Workflow Changes:
* **Extract Version String:** The Prepare Artifacts step has been updated to dynamically extract the version string from the generated APK filename (e.g., from ). This version is then used for the release tag and name.
* **Create Release Step:** A new step using has been added.
* It creates a new pre-release in the repository.
* The release tag and name are set using the extracted version string.
* The release body includes the source commit SHA and message.
* **Upload Release Asset:** The newly built APK file is automatically uploaded as an asset to this new release.
* **Refinement:** The step name was updated from Prepare Artifacts and Generate Summary to Prepare Artifacts, Extract Version String, and Generate Summary to better reflect its new responsibilities. Variable names and comments have also been improved for clarity.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/fa9760dcc441b78944999778980fc17640c3a5b7)
GitHub
CI: Automate release creation and asset upload to OShin-Builds · suqi8/OShin@fa9760d
This commit enhances the `android.yml` GitHub Actions workflow to automatically create a release and upload the built APK to a separate repository.
### Key Workflow Changes:
* **Extract Version...
### Key Workflow Changes:
* **Extract Version...
🚀 **OShin New CI Build!**
Feat(CI): Mark GitHub release builds as stable
This commit updates the GitHub Actions workflow () to change how release builds are categorized.
The flag for the Create Release and Upload Artefact step has been changed from to . This ensures that automated CI builds are now published as stable releases instead of pre-releases.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/27fdd03cbc287ac4319a4d8ee1b5b26f140793fb)
Feat(CI): Mark GitHub release builds as stable
This commit updates the GitHub Actions workflow () to change how release builds are categorized.
The flag for the Create Release and Upload Artefact step has been changed from to . This ensures that automated CI builds are now published as stable releases instead of pre-releases.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/27fdd03cbc287ac4319a4d8ee1b5b26f140793fb)
GitHub
Feat(CI): Mark GitHub release builds as stable · suqi8/OShin@27fdd03
This commit updates the GitHub Actions workflow (`android.yml`) to change how release builds are categorized.
The `prerelease` flag for the "Create Release and Upload Artefact" s...
The `prerelease` flag for the "Create Release and Upload Artefact" s...
🚀 **OShin New CI Build!**
Feat(Core): Add FileProvider and a custom permission
This commit introduces two key changes to the to enhance functionality and security.
### Key Changes:
* **Added :** A is now declared to enable secure sharing of files with other applications. It is configured with the authority and uses path definitions from . This provider is not exported and grants URI permissions.
* **New Signature Permission:** A new custom permission named has been added. It is set with , ensuring that only apps signed with the same key can be granted this permission.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/75e8f8eab98b847e6af8bb7a8040114008588625)
Feat(Core): Add FileProvider and a custom permission
This commit introduces two key changes to the to enhance functionality and security.
### Key Changes:
* **Added :** A is now declared to enable secure sharing of files with other applications. It is configured with the authority and uses path definitions from . This provider is not exported and grants URI permissions.
* **New Signature Permission:** A new custom permission named has been added. It is set with , ensuring that only apps signed with the same key can be granted this permission.
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/75e8f8eab98b847e6af8bb7a8040114008588625)
GitHub
Feat(Core): Add FileProvider and a custom permission · suqi8/OShin@75e8f8e
This commit introduces two key changes to the `AndroidManifest.xml` to enhance functionality and security.
### Key Changes:
* **Added `FileProvider`:** A `FileProvider` is now declared to enabl...
### Key Changes:
* **Added `FileProvider`:** A `FileProvider` is now declared to enabl...
🚀 **OShin New CI Build!**
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c3eab29223844c0787443c97da3c92efd37b5631)
🔗 [查看本次提交](https://github.com/suqi8/OShin/commit/c3eab29223844c0787443c97da3c92efd37b5631)
GitHub
Refactor: Remove unused permission from AndroidManifest · suqi8/OShin@c3eab29
This commit removes the `com.suqi8.oshin.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION` permission declaration from the `AndroidManifest.xml` file.
The `tools:node="remove"` attribute...
The `tools:node="remove"` attribute...