🚀 OShin New CI Build!
🔗 查看本次提交
Feat(Phone): Add SMS verification code feature
This commit introduces a new feature to automatically handle SMS verification codes.
Key changes:
- **Core Logic ( hooks):**
- :
- Hooks the constructor of to initialize context, create a notification channel (oshin\_smscode), and register .
- Hooks the method of to intercept incoming SMS messages.
- Utilizes to parse SMS for verification codes.
- If a code is found and configured to be intercepted, it deletes the original SMS from the raw table and prevents further processing.
- : Orchestrates the processing of a potential verification code SMS.
- Parses the SMS using .
- If a code is found and not a duplicate:
- Copies the code to clipboard ().
- Shows a toast notification ().
- Optionally performs auto-input ().
- Displays a system notification ().
- Schedules deletion/marking as read of the SMS ().
- Schedules automatic cancellation of the system notification ().
- **Action Classes:**
- : Parses from an intent, extracts code and company using , and handles duplicate detection.
- : Copies the extracted code to the clipboard.
- : Displays a toast message with the copied code.
- : Creates and shows a system notification for the new verification code, including a Copy action via .
- : Marks the SMS as read (or deletes it, based on future configuration).
- : Uses to simulate keyboard input of the code.
- : Cancels the system notification after a delay.
- : A that handles the Copy action from the notification, copies the code, and shows a toast.
- **Utility Classes:**
- : Data class to represent a parsed SMS message.
- : Contains logic to parse verification codes and company names from SMS content using keywords and regex.
- : Helper to extract objects from an intent.
- : Utility to copy text to the clipboard.
- : Utility to simulate text input via .
- : Defines notification channel and group key constants.
- , , : Base classes for actions.
- **UI Integration:**
- : New UI page for Phone app settings.
- Adds a to enable/disable the SMS Verification Code feature (preference key: in phone category).
- : Added phone route.
- : Added phone to route mapping.
- :
- Added to list.
- Added SMS Verification Code feature to the searchable feature list.
- **Resources:**
- : Added strings for notification channel name, content, copied prompt, and feature title.
- : Added to .
- **Hook Entry:**
- : Added .
- **Minor Fix:**
- : Added a hook to (likely unrelated to SMS feature but included in diff).
- : Enabled UsePropertyAccessSyntax inspection.
This feature aims to streamline the process of handling SMS verification codes by automatically parsing, copying, and optionally auto-filling them, while also providing user notifications.
🔗 查看本次提交
GitHub
Feat(Phone): Add SMS verification code feature · suqi8/OShin@c295509
This commit introduces a new feature to automatically handle SMS verification codes.
Key changes:
- **Core Logic (`com.android.phone` hooks):**
- `SMSCode.kt`:
- Hooks the constructor ...
Key changes:
- **Core Logic (`com.android.phone` hooks):**
- `SMSCode.kt`:
- Hooks the constructor ...
🚀 OShin New CI Build!
🔗 查看本次提交
Refactor(UI): Modernize UI with LiquidGlass and Expressa components
This commit significantly refactors the UI, replacing some Miuix KMP components and custom implementations with and components for a more modern and consistent look and feel.
**Key Changes:**
- **Dependency Updates ( & ):**
- Upgraded various AndroidX, Compose, and third-party libraries (Coil, Haze, XXPermissions, Umeng).
- Added local dependencies for and .
- **Main Bottom Navigation ():**
- Replaced the custom Miuix KMP with a new composable utilizing for the background and components for tab items (icon and label).
- ( and ):
- A new, highly customizable bottom navigation component.
- Features a draggable indicator that morphs and scales during interaction.
- Uses for its main background and indicator, adapting to light/dark content behind it.
- Integrates to adjust content color (icons/text) for optimal contrast against the glass effect.
- Updated to as navigation is now handled by .
- Simplified glass styles (, ) using the updated API (e.g., , , , brush).
- **Function Page UI ():**
- Replaced Miuix KMP for navigation (Back) and actions (Refresh) with custom layouts.
- These boxes now use () for a consistent glass effect and modifiers.
- The is now passed explicitly to .
- **App Restart Dialog ():**
- Updated usage to the new API (, , , brush).
- Defined distinct instances for the dialog background (), list items/cancel button (), and confirm button ().
- The is now a required parameter for and .
- Removed and direct dark theme checks, relying on and 's inherent adaptability.
- **General API Migration:**
- Replaced with explicit instances created via .
- Updated modifier calls to pass the provider state as the first argument.
- Migrated from with , , to the newer with , , , and more specific parameters.
This refactoring aims to improve UI aesthetics, consistency, and leverage the advanced capabilities of the and libraries.
🔗 查看本次提交
GitHub
Refactor(UI): Modernize UI with LiquidGlass and Expressa components · suqi8/OShin@578ca56
This commit significantly refactors the UI, replacing some Miuix KMP components and custom implementations with `LiquidGlass` and `Expressa` components for a more modern and consistent look and fee...
🚀 OShin New CI Build!
🔗 查看本次提交
Refactor(UI): Improve BottomTabs state management
This commit refactors the composable to use unidirectional data flow for its .
Key Changes:
- **:**
- Changed to .
- callback is now mandatory to report selection changes to the caller.
- is used to animate the indicator offset when changes externally (and not during drag).
- When a tab is tapped, is called to notify the parent.
- When dragging ends, is called.
- The random background color for the selected tab item is now remembered based on to avoid changing color during recompositions caused by other state changes.
- **:**
- Updated call to pass directly as and provide an lambda.
This change makes the component more aligned with Compose's state management best practices by receiving its selected state as an input and notifying changes via a callback, rather than managing a mutable state internally.
🔗 查看本次提交
GitHub
Refactor(UI): Improve BottomTabs state management · suqi8/OShin@8ae4278
This commit refactors the `BottomTabs` composable to use unidirectional data flow for its `selectedIndex`.
Key Changes:
- **`BottomTabs.kt`:**
- Changed `selectedIndexState: MutableState&l...
Key Changes:
- **`BottomTabs.kt`:**
- Changed `selectedIndexState: MutableState&l...
🚀 OShin New CI Build!
feat(LiquidGlass): 添加阴影效果并更新默认高光样式
本次提交为 组件引入了阴影效果,并修改了默认的高光样式,使其视觉表现更加丰富和柔和。
---
### 🚀 主要变更
#### 1. ✨ 阴影支持 ( & )
- 新增了数据类 用于定义阴影的各个属性:
- : 类型 (默认 )
- : 类型 (默认 )
- 在 中添加了新的 属性,允许为每个 元素配置阴影。
- 渲染节点 现在会读取这些样式,并将其应用于图形层以高效地绘制阴影。
#### 2. 🎨 高光样式更新 ()
- 默认高光效果已调整,以获得更好的视觉融合效果:
- 针对 和 :
- 默认 从 变更为 。
- 默认 从 变更为 。
#### 3. ⚙️ 工作流 ()
> 格式微调:移除了工作流通知消息中 周围多余的反引号,以修正 CI 的输出格式。
🔗 查看本次提交
feat(LiquidGlass): 添加阴影效果并更新默认高光样式
本次提交为 组件引入了阴影效果,并修改了默认的高光样式,使其视觉表现更加丰富和柔和。
---
### 🚀 主要变更
#### 1. ✨ 阴影支持 ( & )
- 新增了数据类 用于定义阴影的各个属性:
- : 类型 (默认 )
- : 类型 (默认 )
- 在 中添加了新的 属性,允许为每个 元素配置阴影。
- 渲染节点 现在会读取这些样式,并将其应用于图形层以高效地绘制阴影。
#### 2. 🎨 高光样式更新 ()
- 默认高光效果已调整,以获得更好的视觉融合效果:
- 针对 和 :
- 默认 从 变更为 。
- 默认 从 变更为 。
#### 3. ⚙️ 工作流 ()
> 格式微调:移除了工作流通知消息中 周围多余的反引号,以修正 CI 的输出格式。
🔗 查看本次提交
GitHub
feat(LiquidGlass): 添加阴影效果并更新默认高光样式 · suqi8/OShin@1125ecd
本次提交为 `LiquidGlass` 组件引入了**阴影效果**,并**修改了默认的高光样式**,使其视觉表现更加丰富和柔和。
---
### 🚀 主要变更
#### 1. ✨ **阴影支持 (`GlassShadow.kt` & `GlassStyle.kt`)**
- 新增了数据类 `GlassShadow` 用于定义阴影的各个属性:
- **`elevati...
---
### 🚀 主要变更
#### 1. ✨ **阴影支持 (`GlassShadow.kt` & `GlassStyle.kt`)**
- 新增了数据类 `GlassShadow` 用于定义阴影的各个属性:
- **`elevati...
🚀 OShin New CI Build!
Refactor(UI): Update Card color parameter and CPU Freq UI
This commit updates the library to version .
It also refactors the usage of the composable across multiple files to use the new parameter instead of the deprecated parameter.
Additionally, the CPU Frequency () screen has been updated:
- Replaced Haze blur effect with for the TopAppBar and icon buttons (Back).
- Improved the logic for fetching CPU frequencies by using and for concurrent operations.
- Pull-to-refresh mechanism is now triggered by changes in an state variable rather than directly observing .
- Cleaned up some unused imports and simplified state management.
Key changes:
- : Updated version to .
- Various UI files:
- Changed to in:
-
-
-
-
-
-
-
- :
- Removed Haze library dependencies and usage.
- Implemented for the TopAppBar background and back button.
- now uses and to fetch frequencies for each core concurrently.
- Refresh logic now relies on an .
- Removed unused , , and related blur configurations.
- Back button is now a with and modifiers instead of .
- :
- Removed preference check as is now used for background effects.
- TopAppBar color is set to to allow to show through.
🔗 查看本次提交
Refactor(UI): Update Card color parameter and CPU Freq UI
This commit updates the library to version .
It also refactors the usage of the composable across multiple files to use the new parameter instead of the deprecated parameter.
Additionally, the CPU Frequency () screen has been updated:
- Replaced Haze blur effect with for the TopAppBar and icon buttons (Back).
- Improved the logic for fetching CPU frequencies by using and for concurrent operations.
- Pull-to-refresh mechanism is now triggered by changes in an state variable rather than directly observing .
- Cleaned up some unused imports and simplified state management.
Key changes:
- : Updated version to .
- Various UI files:
- Changed to in:
-
-
-
-
-
-
-
- :
- Removed Haze library dependencies and usage.
- Implemented for the TopAppBar background and back button.
- now uses and to fetch frequencies for each core concurrently.
- Refresh logic now relies on an .
- Removed unused , , and related blur configurations.
- Back button is now a with and modifiers instead of .
- :
- Removed preference check as is now used for background effects.
- TopAppBar color is set to to allow to show through.
🔗 查看本次提交
GitHub
Refactor(UI): Update Card color parameter and CPU Freq UI · suqi8/OShin@e23943f
This commit updates the `Miuix KMP` library to version `0.5.0`.
It also refactors the usage of the `Card` composable across multiple files to use the new `colors` parameter instead of the deprecate...
It also refactors the usage of the `Card` composable across multiple files to use the new `colors` parameter instead of the deprecate...
🚀 OShin New CI Build!
Refactor(cpufreq): Remove redundant assignment
The line within the in was redundant because the effect is triggered when becomes . This commit removes the unnecessary assignment.
🔗 查看本次提交
Refactor(cpufreq): Remove redundant assignment
The line within the in was redundant because the effect is triggered when becomes . This commit removes the unnecessary assignment.
🔗 查看本次提交
GitHub
Refactor(cpufreq): Remove redundant `isRefreshing` assignment · suqi8/OShin@1acdf62
The line `isRefreshing = true` within the `LaunchedEffect` in `cpufreq.kt` was redundant because the effect is triggered when `isRefreshing` becomes `true`. This commit removes the unnecessary assi...
🚀 OShin New CI Build!
Refactor(FunSwich): Improve interaction and decouple switch visual
This commit refactors the component and its underlying and visual components.
Key Changes:
- :
- Replaced with a local implementation.
- Refactor:
- The entire (row) is now the clickable area to toggle the switch.
- The handler in now manages calling with the new state.
- The visual component is now purely presentational and receives its state from . It no longer handles any direct user interaction (clicks or drags).
- helper composable was introduced to manage the layout of right-side actions alongside the visual .
- New Composable (Visual Only):
- A new, simplified composable is introduced.
- It's a purely visual component; its appearance (thumb position, track color) is determined solely by the and parameters passed to it.
- All interaction modifiers (, ) have been removed.
- Uses and for smooth transitions based on the state.
- and :
- now uses to determine dark/light mode for track colors, falling back to if mode is auto.
- (moved from and adapted):
- This component, previously part of , is now part of 's local implementation.
- The parameter is now directly used by its modifier to handle interactions for the entire component.
- Vertical padding in changed from to .
- and (moved from ):
- These supporting objects/classes are also moved to .
- :
- Removed and as they are now co-located with the implementation in .
This refactoring centralizes the interaction logic within (via ), making the visual component simpler and purely presentational. It also improves the user experience by making the entire row of tappable to toggle its state.
🔗 查看本次提交
Refactor(FunSwich): Improve interaction and decouple switch visual
This commit refactors the component and its underlying and visual components.
Key Changes:
- :
- Replaced with a local implementation.
- Refactor:
- The entire (row) is now the clickable area to toggle the switch.
- The handler in now manages calling with the new state.
- The visual component is now purely presentational and receives its state from . It no longer handles any direct user interaction (clicks or drags).
- helper composable was introduced to manage the layout of right-side actions alongside the visual .
- New Composable (Visual Only):
- A new, simplified composable is introduced.
- It's a purely visual component; its appearance (thumb position, track color) is determined solely by the and parameters passed to it.
- All interaction modifiers (, ) have been removed.
- Uses and for smooth transitions based on the state.
- and :
- now uses to determine dark/light mode for track colors, falling back to if mode is auto.
- (moved from and adapted):
- This component, previously part of , is now part of 's local implementation.
- The parameter is now directly used by its modifier to handle interactions for the entire component.
- Vertical padding in changed from to .
- and (moved from ):
- These supporting objects/classes are also moved to .
- :
- Removed and as they are now co-located with the implementation in .
This refactoring centralizes the interaction logic within (via ), making the visual component simpler and purely presentational. It also improves the user experience by making the entire row of tappable to toggle its state.
🔗 查看本次提交
GitHub
Refactor(FunSwich): Improve interaction and decouple switch visual · suqi8/OShin@c0840e3
This commit refactors the `FunSwich` component and its underlying `SuperSwitch` and visual `Switch` components.
**Key Changes:**
- **`FunSwich.kt`:**
- **Replaced `top.yukonga.miuix.kmp.extra...
**Key Changes:**
- **`FunSwich.kt`:**
- **Replaced `top.yukonga.miuix.kmp.extra...
🚀 OShin New CI Build!
Fix\(CI\): Correctly escape hyphen in commit message for Telegram
The `sed` command in the `android\.yml` workflow was updated to correctly escape the hyphen \(`\-`\) character\. Previously, it was missing from the set of characters to be escaped, which could lead to formatting issues when sending commit messages to Telegram\.
The character class in the `sed` substitution command was changed from `[\]\\[_*\(\)\~`\>\#\+\\\-\=\|\{\}\.\!\]` to `[\]\\[_*\(\)\~`\>\#\+\=\|\{\}\.\!\-` to include the hyphen\.
🔗 查看本次提交
Fix\(CI\): Correctly escape hyphen in commit message for Telegram
The `sed` command in the `android\.yml` workflow was updated to correctly escape the hyphen \(`\-`\) character\. Previously, it was missing from the set of characters to be escaped, which could lead to formatting issues when sending commit messages to Telegram\.
The character class in the `sed` substitution command was changed from `[\]\\[_*\(\)\~`\>\#\+\\\-\=\|\{\}\.\!\]` to `[\]\\[_*\(\)\~`\>\#\+\=\|\{\}\.\!\-` to include the hyphen\.
🔗 查看本次提交
GitHub
Fix(CI): Correctly escape hyphen in commit message for Telegram · suqi8/OShin@1518fdd
The `sed` command in the `android.yml` workflow was updated to correctly escape the hyphen (`-`) character. Previously, it was missing from the set of characters to be escaped, which could lead to ...
🚀 OShin New CI Build!
feat(Refactor): 全面重构 FunSwich 与 Card 组件以提升交互和可维护性
本次提交对 及其依赖的组件进行了深度重构,并引入了本地化的 组件,旨在统一UI、简化代码并改善用户交互。
## 核心变更
### 1. 交互与视觉解耦
- 本地化 : 移除了对 的外部依赖,替换为一个更符合当前需求的本地实现。
- 改进交互逻辑:
- 将整个 (即列表行) 作为可点击区域来切换开关状态,提升了用户操作的便捷性。
- 交互逻辑()被上移至 层面进行统一管理。
- 纯展示性 :
- 内部的 组件被重构为一个纯粹的视觉组件,其外观完全由外部传入的 和 状态驱动。
- 移除了所有手势交互修饰符(如 , ),使其职责更单一。
- 使用 和 实现平滑的开关状态过渡动画。
### 2. 组件本地化与样式统一
- 引入本地 : 新增了项目内的 Composable,替换了所有对外部库 的调用。
- 简化调用: 新的 组件内置了默认的 (如 和标准化的 ),极大地简化了应用内各个调用点的代码,并确保了卡片样式的一致性。
### 3. 模块化
- 文件迁移: 将原先位于 内的 及其附属的 和 类,迁移到独立的 文件中。
- 代码复用: 此举增强了 的模块化和复用性。
- 样式微调: 将 的垂直内边距从 调整为 ,使布局更紧凑。
### 4. 代码清理
- 移除冗余代码: 从 中删除了已迁移的 相关代码。
- 简化 : Composable 的实现被简化,统一了其内边距。
🔗 查看本次提交
feat(Refactor): 全面重构 FunSwich 与 Card 组件以提升交互和可维护性
本次提交对 及其依赖的组件进行了深度重构,并引入了本地化的 组件,旨在统一UI、简化代码并改善用户交互。
## 核心变更
### 1. 交互与视觉解耦
- 本地化 : 移除了对 的外部依赖,替换为一个更符合当前需求的本地实现。
- 改进交互逻辑:
- 将整个 (即列表行) 作为可点击区域来切换开关状态,提升了用户操作的便捷性。
- 交互逻辑()被上移至 层面进行统一管理。
- 纯展示性 :
- 内部的 组件被重构为一个纯粹的视觉组件,其外观完全由外部传入的 和 状态驱动。
- 移除了所有手势交互修饰符(如 , ),使其职责更单一。
- 使用 和 实现平滑的开关状态过渡动画。
### 2. 组件本地化与样式统一
- 引入本地 : 新增了项目内的 Composable,替换了所有对外部库 的调用。
- 简化调用: 新的 组件内置了默认的 (如 和标准化的 ),极大地简化了应用内各个调用点的代码,并确保了卡片样式的一致性。
### 3. 模块化
- 文件迁移: 将原先位于 内的 及其附属的 和 类,迁移到独立的 文件中。
- 代码复用: 此举增强了 的模块化和复用性。
- 样式微调: 将 的垂直内边距从 调整为 ,使布局更紧凑。
### 4. 代码清理
- 移除冗余代码: 从 中删除了已迁移的 相关代码。
- 简化 : Composable 的实现被简化,统一了其内边距。
🔗 查看本次提交
GitHub
feat(Refactor): 全面重构 FunSwich 与 Card 组件以提升交互和可维护性 · suqi8/OShin@9edfdc0
本次提交对 `FunSwich` 及其依赖的组件进行了深度重构,并引入了本地化的 `Card` 组件,旨在统一UI、简化代码并改善用户交互。
## 核心变更
### 1. `FunSwich` 交互与视觉解耦
- **本地化 `SuperSwitch`**: 移除了对 `top.yukonga.miuix.kmp.extra.SuperSwitch` 的外部依赖,替换为一个更符合当前需求...
## 核心变更
### 1. `FunSwich` 交互与视觉解耦
- **本地化 `SuperSwitch`**: 移除了对 `top.yukonga.miuix.kmp.extra.SuperSwitch` 的外部依赖,替换为一个更符合当前需求...
🚀 OShin New CI Build!
Refactor(UI): Replace SuperArrow with FunArrow
This commit replaces all instances of with a new composable.
Key Changes:
- New :
- Created which internally uses .
- now handles navigation via an optional parameter and . If is provided, it navigates to that route before executing the lambda.
- Added a drawable for the arrow icon, which is used by the underlying .
- UI Updates:
-
-
-
-
-
-
-
- (including renamed to )
-
-
-
-
-
-
- All instances of were replaced with .
This refactoring centralizes the arrow component logic within and standardizes its usage across the application, particularly for navigation-related actions.
🔗 查看本次提交
Refactor(UI): Replace SuperArrow with FunArrow
This commit replaces all instances of with a new composable.
Key Changes:
- New :
- Created which internally uses .
- now handles navigation via an optional parameter and . If is provided, it navigates to that route before executing the lambda.
- Added a drawable for the arrow icon, which is used by the underlying .
- UI Updates:
-
-
-
-
-
-
-
- (including renamed to )
-
-
-
-
-
-
- All instances of were replaced with .
This refactoring centralizes the arrow component logic within and standardizes its usage across the application, particularly for navigation-related actions.
🔗 查看本次提交
GitHub
Refactor(UI): Replace SuperArrow with FunArrow · suqi8/OShin@76e94c2
This commit replaces all instances of `SuperArrow` with a new `FunArrow` composable.
**Key Changes:**
- **New `FunArrow.kt`:**
- Created `FunArrow.kt` which internally uses `top.yukonga.miuix...
**Key Changes:**
- **New `FunArrow.kt`:**
- Created `FunArrow.kt` which internally uses `top.yukonga.miuix...