diff --git a/.github/workflows/build_apk.yml b/.github/workflows/build_apk.yml
index 206e768..6fd338a 100644
--- a/.github/workflows/build_apk.yml
+++ b/.github/workflows/build_apk.yml
@@ -58,13 +58,19 @@ jobs:
run: |
zip -r ./TouchHelper.zip ./release
- - name: Get git revision
+ - name: Get release version
id: get_git_revision
run: |
- echo "tag_name=$(($(git rev-list HEAD --count) + 100))" >> $GITHUB_OUTPUT
- echo "release_name=$(($(git rev-list HEAD --count) + 100))" >> $GITHUB_OUTPUT
+ python3 - <<'PY'
+ import json, os
+ with open('app/build/outputs/apk/release/output-metadata.json') as metadata:
+ version = json.load(metadata)['elements'][0]['versionCode']
+ with open(os.environ['GITHUB_OUTPUT'], 'a') as output:
+ output.write(f'tag_name={version}\nrelease_name={version}\n')
+ PY
- name: Create Release and Upload APK
+ if: github.event_name == 'push' && github.ref == 'refs/heads/master'
uses: softprops/action-gh-release@v3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/app/build.gradle b/app/build.gradle
index 3bc67c9..5350ee7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,14 +1,12 @@
apply plugin: 'com.android.application'
-// http://www.race604.com/android-auto-version/
-// use git count as build number, as current date as build version
+// Keep release codes explicit: squash merges can reduce the Git commit count and
+// produce a versionCode lower than an APK that has already been distributed.
def getDate() {
def date = new Date()
def formattedDate = date.format('yyyy.MM.dd')
return formattedDate
}
-def cmd = 'git rev-list HEAD --count'
-def gitVersion = cmd.execute().text.trim().toInteger() + 100
def appVersion = getDate()
@@ -24,7 +22,7 @@ android {
applicationId "com.zfdang.touchhelper"
minSdkVersion 26
targetSdkVersion 36
- versionCode gitVersion
+ versionCode 278
versionName appVersion
// Enabling multidex support.
@@ -103,4 +101,4 @@ dependencies {
// https://mvnrepository.com/artifact/com.belerweb/pinyin4j
implementation group: 'com.belerweb', name: 'pinyin4j', version: '2.5.1'
-}
\ No newline at end of file
+}
diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml
index 4dbf941..d66c79a 100644
--- a/app/src/main/res/layout/fragment_about.xml
+++ b/app/src/main/res/layout/fragment_about.xml
@@ -65,6 +65,19 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView_app_introduction" />
+
Last updated: January 4, 2026
+Last updated: October 11, 2026
The service reads interface control text, descriptions and positions, rather than taking screenshots. + Before it can read any interface content, the App displays a disclosure and requires your agreement. + You can disable the service in Android Accessibility settings at any time.
All app settings and configurations are stored locally on your device. No data is ever uploaded to external - servers.
+Settings, your disclosure choice and custom skip rules are stored in the App's local data. You can delete + rules in settings or clear all local data through Android's app settings. Android may back up app settings + according to your system backup preferences; the App does not operate a server or upload data itself. + When you copy controls or export rules, other apps you paste into may receive that information.
The App does not integrate any third-party services, SDKs, or analytics tools.
@@ -166,10 +174,10 @@最后更新:2026年1月4日
+最后更新:2026年10月11日
本应用使用 Android 的无障碍服务来检测并自动点击开屏广告上的"跳过"按钮。此服务:
所有应用设置和配置都存储在您设备的本地。不会有任何数据上传到外部服务器。
+服务读取界面控件的文字、描述和位置,不截取屏幕图片。读取界面内容前,应用会显示说明并要求您明确同意。您可以随时在安卓无障碍设置中关闭服务。
+设置、同意记录和自定义跳过规则保存在应用的本地数据中。您可以在设置中删除规则,或在安卓应用设置中清除全部本地数据。安卓系统可能根据您的系统备份设置备份应用配置;应用本身不运营服务器,也不主动上传数据。复制控件或导出规则后,您粘贴信息的其他应用可能获得这些信息。
本应用不集成任何第三方服务、SDK 或分析工具。
@@ -239,4 +250,4 @@