Skip to content

Commit 1464bab

Browse files
committed
feat: v1.1.0 - Complete feature toggle system and cross-version compatibility
- Add toggleable controls for all features with categorized UI - Fix Enter key app launch for OnePlus Launcher 15.6.13+ - Add separate auto focus toggles for swipe up, global search redirect, and swipe down redirect - Implement hook coordination to prevent conflicting auto focus behavior - Reorganize settings UI with visual categories and dividers - Refactor shared utilities and reduce code duplication - Upgrade AGP from 8.9.2 to 8.10.1 - Enhance cross-version compatibility and error handling
1 parent 210f62b commit 1464bab

18 files changed

Lines changed: 1510 additions & 645 deletions

File tree

.github/workflows/release_build.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,49 @@ jobs:
5858
tag: ${{ github.ref_name }}
5959
# Use the tag name for the release name
6060
name: Release ${{ github.ref_name }}
61+
# Use the tag annotation message as the release body
62+
body: ${{ github.event.head_commit.message }}
6163
# Path to the artifact to upload
6264
artifacts: app/build/outputs/apk/release/app-release.apk
6365
# The action defaults to using github.token, which is fine with permissions set
6466
# token: ${{ secrets.GITHUB_TOKEN }}
6567
# Mark as a production release (not draft or prerelease)
6668
draft: false
69+
prerelease: false
70+
71+
# Sync to Xposed-Modules-Repo (if triggered by tag)
72+
- name: Read version information
73+
if: startsWith(github.ref, 'refs/tags/')
74+
id: version_info
75+
run: |
76+
# Read versionCode and versionName from gradle.properties
77+
VERSION_CODE=$(grep "project.app.versionCode" gradle.properties | cut -d'=' -f2 | tr -d ' ')
78+
VERSION_NAME=$(grep "project.app.versionName" gradle.properties | cut -d'=' -f2 | tr -d ' ')
79+
echo "version_code=$VERSION_CODE" >> $GITHUB_OUTPUT
80+
echo "version_name=$VERSION_NAME" >> $GITHUB_OUTPUT
81+
echo "xposed_tag=${VERSION_CODE}-${VERSION_NAME}" >> $GITHUB_OUTPUT
82+
83+
- name: Checkout Xposed-Modules-Repo
84+
if: startsWith(github.ref, 'refs/tags/')
85+
uses: actions/checkout@v4
86+
with:
87+
repository: Xposed-Modules-Repo/com.wizpizz.onepluspluslauncher
88+
token: ${{ secrets.XPOSED_REPO_TOKEN }}
89+
path: xposed-repo
90+
91+
- name: Create release on Xposed-Modules-Repo
92+
if: startsWith(github.ref, 'refs/tags/')
93+
uses: ncipollo/release-action@v1
94+
with:
95+
# Use the Xposed tag format: versionCode-versionName
96+
tag: ${{ steps.version_info.outputs.xposed_tag }}
97+
name: Release ${{ steps.version_info.outputs.xposed_tag }}
98+
# Use the same release body as the main repo
99+
body: ${{ github.event.head_commit.message }}
100+
# Upload the same APK artifact
101+
artifacts: app/build/outputs/apk/release/app-release.apk
102+
# Target the Xposed repository
103+
repo: Xposed-Modules-Repo/com.wizpizz.onepluspluslauncher
104+
token: ${{ secrets.XPOSED_REPO_TOKEN }}
105+
draft: false
67106
prerelease: false

.github/workflows/sync_readme.yml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Sync README to Xposed Repo
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
paths:
7+
- 'README.md'
8+
9+
jobs:
10+
sync-readme:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: read
14+
15+
steps:
16+
- name: Checkout main repo
17+
uses: actions/checkout@v4
18+
19+
- name: Checkout Xposed-Modules-Repo
20+
uses: actions/checkout@v4
21+
with:
22+
repository: Xposed-Modules-Repo/com.wizpizz.onepluspluslauncher
23+
token: ${{ secrets.XPOSED_REPO_TOKEN }}
24+
path: xposed-repo
25+
26+
- name: Update README in Xposed repo
27+
run: |
28+
# Copy README from main repo to Xposed repo
29+
cp README.md xposed-repo/README.md
30+
31+
# Commit and push the updated README
32+
cd xposed-repo
33+
git config user.name "github-actions[bot]"
34+
git config user.email "github-actions[bot]@users.noreply.github.com"
35+
git add README.md
36+
37+
# Only commit if there are changes
38+
if git diff --staged --quiet; then
39+
echo "No changes to README, skipping commit"
40+
else
41+
git commit -m "Sync README from main repo"
42+
git push
43+
echo "README synced successfully"
44+
fi

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,20 @@
88

99
## Overview
1010

11-
OnePlusPlusLauncher is an Xposed/LSPosed module for the System Launcher on OxygenOS 15 that hooks into the application using the [YukiHookAPI](https://github.com/HighCapable/YuKiHookAPI) framework. It modifies app drawer search functions: automating keyboard display, enabling instant app launch from search, redirecting the global search button to the app drawer, and providing optional fuzzy search.
11+
OnePlusPlusLauncher is an Xposed/LSPosed module for the System Launcher on OxygenOS 15 that hooks into the application using the [YukiHookAPI](https://github.com/HighCapable/YuKiHookAPI) framework. It modifies app drawer search functions: automating keyboard display, enabling instant app launch from search, redirecting search actions to the app drawer, and providing optional fuzzy search.
1212

13-
- tested on System Launcher 15.4.13 / OxygenOS 15
14-
- **App Launch on Enter broken on System Launcher >= v15.6.13**. Will be fixed in the next update.
13+
- tested on System Launcher 15.4.13, 15.6.13 / OxygenOS 15 (should theoretically work on ColorOS as well)
1514

1615
**Please star the repository, if you enjoy using the module! It goes a long way ⭐**
1716

1817
## Features
1918

20-
* ⌨️ **Automatic Keyboard / Searchbar Focus:** Automatically displays the keyboard when the app drawer is opened and search is focused.
19+
* ⌨️ **Automatic Keyboard / Searchbar Focus:** Automatically displays the keyboard when the app drawer is opened and search is focused. Can be toggled separately for opening app drawer by swiping up or redirecting from the Global Search Button.
2120
* ↩️ **App Launch on Enter:** Launches the first search result directly when the "Enter" key or search action button on the keyboard is pressed.
22-
* 🔎 **Global Search Button Redirect:** Intercepts the search button in the homescreeen that would normally open the dedicated global search app, redirecting to the main app drawer instead.
23-
* 🍑 **Fuzzy Search (Optional):** Replaces the default search logic with a ranked fuzzy search algorithm for more flexible matching.
24-
* ⚙️ **Configuration UI:** Allows toggling features (Hide Icon, Fuzzy Search).
21+
* 🔎 **Global Search Button Redirect:** Intercepts the search button in the homescreen that would normally open the dedicated global search app, redirecting to the main app drawer instead.
22+
* 📱 **Swipe Down Search Redirect:** Intercepts swipe down search gestures and redirects them to the app drawer instead of the default search interface. Includes optional auto focus for seamless search experience.
23+
* 🍑 **Fuzzy Search:** Replaces the default search logic with a ranked fuzzy search algorithm for more flexible matching.
24+
* ⚙️ **Configuration UI:** Allows toggling features individually, including auto focus options for different interaction methods.
2525

2626
## To-Do
2727

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,21 +30,9 @@
3030
<intent-filter>
3131
<action android:name="android.intent.action.MAIN" />
3232

33+
<category android:name="android.intent.category.LAUNCHER" />
3334
<category android:name="de.robv.android.xposed.category.MODULE_SETTINGS" />
3435
</intent-filter>
3536
</activity>
36-
37-
<activity-alias
38-
android:name=".Home"
39-
android:exported="true"
40-
android:label="@string/app_name"
41-
android:targetActivity=".ui.activity.MainActivity">
42-
43-
<intent-filter>
44-
<action android:name="android.intent.action.MAIN" />
45-
46-
<category android:name="android.intent.category.LAUNCHER" />
47-
</intent-filter>
48-
</activity-alias>
4937
</application>
5038
</manifest>

0 commit comments

Comments
 (0)