Skip to content

Commit

Permalink
Merge pull request #242 from GuoXiCheng/dev-c
Browse files Browse the repository at this point in the history
update config
  • Loading branch information
GuoXiCheng authored Sep 20, 2024
2 parents e3fe8a5 + dc83133 commit f23e737
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 118 deletions.
135 changes: 63 additions & 72 deletions app/src/main/assets/skip_config_v3.yaml
Original file line number Diff line number Diff line change
@@ -1,151 +1,142 @@
# 京东读书
- packageName: com.jd.app.reader
- appName: 京东阅读
packageName: com.jd.app.reader
skipIds:
# fileId=7ba85f98-5b07-4947-95e0-dca6431b1fc6&nodeId=10
- id: com.jd.app.reader:id/mJumpBtn
fileUrl: 7ba85f98-5b07-4947-95e0-dca6431b1fc6&nodeId=10
skipBounds:
# fileId=20f3db03-af60-4dc3-885a-b954b985931f&nodeId=14
- bound: 1243,176,1383,316
resolution: 1440x3200
fileUrl: 20f3db03-af60-4dc3-885a-b954b985931f&nodeId=14


# 前程无忧51Job
- packageName: com.job.android
- appName: 前程无忧51Job
packageName: com.job.android
skipIds:
# fileId=ee283a25-cbbf-43b0-84dd-aaf9ccf24c83&nodeId=10
- id: com.job.android:id/skipBtn
fileUrl: ee283a25-cbbf-43b0-84dd-aaf9ccf24c83&nodeId=10

# 酷安
- packageName: com.coolapk.market
- appName: 酷安
packageName: com.coolapk.market
skipTexts:
# fileId=94969846-73e3-41de-aca0-ad9994566fc6&nodeId=46
- text: 跳过
length: 4
# fileId=92e729ea-dd19-4384-93af-ec7581f306cf&nodeId=66
fileUrl: 94969846-73e3-41de-aca0-ad9994566fc6&nodeId=46
skipBounds:
- bound: 1244,176,1384,316
resolution: 1440x3200
fileUrl: 92e729ea-dd19-4384-93af-ec7581f306cf&nodeId=66

# 铁路12306
- packageName: com.MobileTicket
# fileId=b8592c72-1a8a-42ea-8022-2ba15bc83444&nodeId=9
- appName: 铁路12306
packageName: com.MobileTicket
skipIds:
- id: com.MobileTicket:id/tv_skip
fileUrl: b8592c72-1a8a-42ea-8022-2ba15bc83444&nodeId=9

# 人人视频
- packageName: com.example.pptv
- appName: 人人视频
packageName: com.example.pptv
skipTexts:
# fileId=f074f9ba-2fdd-4885-8b16-df8afdcbb46d&nodeId=47
# fileId=84603cb6-3647-42aa-a0f9-e013a3c1e74c&nodeId=67
- text: 跳过
length: 7
fileUrl: 84603cb6-3647-42aa-a0f9-e013a3c1e74c&nodeId=67

# CSDN
- packageName: net.csdn.csdnplus
- appName: CSDN
packageName: net.csdn.csdnplus
skipTexts:
# fileId=3737625b-383a-4891-aada-493e811f048a&nodeId=12
# fileId=7d45a0ad-f0ce-4856-b38b-dd545bfadeb5&nodeId=28
- text: 跳过
length: 5
fileUrl: 7d45a0ad-f0ce-4856-b38b-dd545bfadeb5&nodeId=28
skipBounds:
# fileId=e2c456c9-2db5-4ff9-9f79-f42acf557358&nodeId=13
- bound: 1244,176,1384,316
resolution: 1440x3200
fileUrl: e2c456c9-2db5-4ff9-9f79-f42acf557358&nodeId=13

# 豆瓣
- packageName: com.douban.frodo
- appName: 豆瓣
packageName: com.douban.frodo
skipTexts:
# fileId=7aa2544b-8a80-41f3-bf0c-ee03c7cf83b2&nodeId=107
- text: 跳过
length: 3
fileUrl: 7aa2544b-8a80-41f3-bf0c-ee03c7cf83b2&nodeId=107
skipIds:
# fileId=cfe9660a-1d45-4904-a8a7-8d846faa1a49&nodeId=14
- id: com.douban.frodo:id/ad_mark
click:
position: 1280,180
resolution: 1440x3200
fileUrl: cfe9660a-1d45-4904-a8a7-8d846faa1a49&nodeId=14
click: 1280,180

# 什么值得买
- packageName: com.smzdm.client.android
- appName: 什么值得买
packageName: com.smzdm.client.android
skipIds:
# fileId=2adae253-623d-4fd3-ad75-b5b32b667dcd&nodeId=18
- id: com.smzdm.client.android:id/tv_skip
fileUrl: 2adae253-623d-4fd3-ad75-b5b32b667dcd&nodeId=18

# 哔哩哔哩
- packageName: tv.danmaku.bili
- appName: 哔哩哔哩
packageName: tv.danmaku.bili
skipIds:
# fileId=368caf09-c152-4f6b-b8dd-3ee4718df65d&nodeId=26
- id: tv.danmaku.bili:id/count_down
fileUrl: 368caf09-c152-4f6b-b8dd-3ee4718df65d&nodeId=26

# 小时工记账
- packageName: com.julangling.xsgjz
- appName: 小时工记账
packageName: com.julangling.xsgjz
skipTexts:
# fileId=28b730a3-5ac7-44c7-8f8a-9daf1b8effbe&nodeId=27
- text: 跳过
length: 4
fileUrl: 28b730a3-5ac7-44c7-8f8a-9daf1b8effbe&nodeId=27
skipBounds:
# fileId=43bcef4b-4b5b-4b63-a7f2-ad28e4f5f690&nodeId=30
- bound: 1244,176,1384,316
resolution: 1440x3200
fileUrl: 43bcef4b-4b5b-4b63-a7f2-ad28e4f5f690&nodeId=30

# 搜狗输入法
- packageName: com.sohu.inputmethod.sogou
- appName: 搜狗输入法
packageName: com.sohu.inputmethod.sogou
skipTexts:
# fileId=450b0add-b8e2-4cac-9b49-015744bb786f&nodeId=14
- text: 跳过
length: 2
fileUrl: 450b0add-b8e2-4cac-9b49-015744bb786f&nodeId=14

# 菜鸟
- packageName: com.cainiao.wireless
- appName: 菜鸟
packageName: com.cainiao.wireless
skipTexts:
# fileId=5656e116-5a93-44da-8687-1a1dec170984&nodeId=11
- text: 跳过
length: 4
fileUrl: 5656e116-5a93-44da-8687-1a1dec170984&nodeId=11

# 高德地图
- packageName: com.autonavi.minimap
- appName: 高德地图
packageName: com.autonavi.minimap
skipTexts:
# fileId=57861a13-956b-4ae1-be60-d77c33b82010&nodeId=61
- text: 跳过
length: 2
fileUrl: 57861a13-956b-4ae1-be60-d77c33b82010&nodeId=61

# 帆书
- packageName: io.dushu.fandengreader
- appName: 帆书
packageName: io.dushu.fandengreader
skipIds:
# fileId=88ad5f6b-e65b-4424-be8e-ab57e0eb613b&nodeId=9
- id: io.dushu.fandengreader:id/layout_skip
fileUrl: 88ad5f6b-e65b-4424-be8e-ab57e0eb613b&nodeId=9

# 腾讯微云
- packageName: com.qq.qcloud
- appName: 腾讯微云
packageName: com.qq.qcloud
skipBounds:
# fileId=a310356a-4841-40fd-8a4f-314e77318230&nodeId=10
- bound: 1223,177,1384,289
resolution: 1440x3200
activityName: com.qq.qcloud.activity.WeiyunRootActivity
fileUrl: a310356a-4841-40fd-8a4f-314e77318230&nodeId=10

# 鹿路通
- packageName: com.psbc.citizencard
- appName: 鹿路通
packageName: com.psbc.citizencard
skipTexts:
# fileId=bb3de897-19d4-4c6d-ac7a-e11130420b4a&nodeId=8
- text: 跳过
length: 4
fileUrl: bb3de897-19d4-4c6d-ac7a-e11130420b4a&nodeId=8

# 滴滴出行
- packageName: com.sdu.didi.psnger
- appName: 滴滴出行
packageName: com.sdu.didi.psnger
skipTexts:
# fileId=e835b293-7845-4988-9423-fe7f9d740d43&nodeId=13
- text: 跳过
length: 2
fileUrl: e835b293-7845-4988-9423-fe7f9d740d43&nodeId=13

# 知乎
- packageName: com.zhihu.android
- appName: 知乎
packageName: com.zhihu.android
skipIds:
# fileId=812b304e-63fd-42da-b200-7497a2e635c4&nodeId=21
- id: com.zhihu.android:id/btn_skip
fileUrl: 812b304e-63fd-42da-b200-7497a2e635c4&nodeId=21

# 汽水音乐
- packageName: com.luna.music
- appName: 汽水音乐
packageName: com.luna.music
skipBounds:
# fileId=ab69a19e-56e8-4983-9656-cdbab1b09682&nodeId=13
- bound: 1244,176,1384,316
resolution: 1440x3200
fileUrl: ab69a19e-56e8-4983-9656-cdbab1b09682&nodeId=13
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import kotlin.math.abs

@Singleton
class ConfigLoadRepository @Inject constructor() {
private lateinit var configLoadSchemaMap: Map<String, ConfigLoadSchema>
private var configLoadSchemaMap: Map<String, ConfigLoadSchema> = mutableMapOf()

fun loadConfig(config: Map<String, ConfigLoadSchema>) {
configLoadSchemaMap = config
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,7 @@ import com.android.skip.dataclass.ConfigState
import com.android.skip.dataclass.LoadSkipBound
import com.android.skip.dataclass.LoadSkipId
import com.android.skip.dataclass.LoadSkipText
import com.android.skip.dataclass.ReadClick
import com.android.skip.util.DataStoreUtils
import com.blankj.utilcode.util.ScreenUtils
import com.blankj.utilcode.util.StringUtils.getString
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
Expand Down Expand Up @@ -72,7 +70,7 @@ class ConfigReadRepository @Inject constructor(

ConfigPostSchema(ConfigState.SUCCESS, md5(customContent), configReadSchemaList)
} catch (e: Exception) {
ConfigPostSchema(ConfigState.FAIL, "无效的配置", null)
ConfigPostSchema(ConfigState.FAIL, getString(R.string.invalid_config), null)
}
}

Expand All @@ -81,13 +79,10 @@ class ConfigReadRepository @Inject constructor(
}

fun handleConfig(configPostSchema: ConfigPostSchema): Map<String, ConfigLoadSchema>? {
val screenWidth = ScreenUtils.getScreenWidth()
val screenHeight = ScreenUtils.getScreenHeight()

return configPostSchema.configReadSchemaList?.associate { config ->
val newSkipTexts = config.skipTexts?.map { skipText ->
val clickRect = skipText.click?.let { c ->
convertClick(c, screenWidth, screenHeight)
convertClick(c)
}
LoadSkipText(
text = skipText.text,
Expand All @@ -99,24 +94,17 @@ class ConfigReadRepository @Inject constructor(

val newSkipIds = config.skipIds?.map { skipId ->
val clickRect = skipId.click?.let { c ->
convertClick(c, screenWidth, screenHeight)
convertClick(c)
}
LoadSkipId(id = skipId.id, activityName = skipId.activityName, click = clickRect)
}

val newSkipBounds = config.skipBounds?.map { skipBound ->
val (left, top, right, bottom) = skipBound.bound.split(",").map { it.toInt() }
val clickBound = convertRect(
Rect(left, top, right, bottom),
skipBound.resolution,
screenWidth,
screenHeight
)
val clickRect = skipBound.click?.let { c ->
convertClick(c, screenWidth, screenHeight)
convertClick(c)
}
LoadSkipBound(
bound = clickBound,
bound = convertBound(skipBound.bound),
activityName = skipBound.activityName,
click = clickRect
)
Expand All @@ -131,26 +119,14 @@ class ConfigReadRepository @Inject constructor(
}
}

private fun convertRect(rect: Rect, resolution: String, widthA: Int, heightA: Int): Rect {
val (widthB, heightB) = resolution.split("x").map { it.toFloat() }
val ratioWidth = widthA / widthB
val ratioHeight = heightA / heightB
return Rect(
(rect.left * ratioWidth).toInt(),
(rect.top * ratioHeight).toInt(),
(rect.right * ratioWidth).toInt(),
(rect.bottom * ratioHeight).toInt()
)
private fun convertClick(click: String): Rect {
val (x, y) = click.split(",").map { it.toInt() }
return Rect(x, y, x + 1, y + 1)
}

private fun convertClick(readClick: ReadClick, screenWidth: Int, screenHeight: Int): Rect {
val (x, y) = readClick.position.split(",").map { it.toInt() }
return convertRect(
Rect(x, y, x + 1, y + 1),
readClick.resolution,
screenWidth,
screenHeight
)
private fun convertBound(bound: String): Rect {
val (left, top, right, bottom) = bound.split(",").map { it.toInt() }
return Rect(left, top, right, bottom)
}

private fun md5(input: String): String {
Expand Down
12 changes: 3 additions & 9 deletions app/src/main/java/com/android/skip/dataclass/ConfigReadSchema.kt
Original file line number Diff line number Diff line change
@@ -1,28 +1,22 @@
package com.android.skip.dataclass

data class ReadClick(
val position: String,
val resolution: String
)

data class ReadSkipText(
val text: String,
val length: Int? = null,
val activityName: String? = null,
val click: ReadClick? = null
val click: String? = null
)

data class ReadSkipId(
val id: String,
val activityName: String? = null,
val click: ReadClick? = null
val click: String? = null
)

data class ReadSkipBound(
val bound: String,
val resolution: String,
val activityName: String? = null,
val click: ReadClick? = null
val click: String? = null
)

data class ConfigReadSchema(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.heightIn
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Button
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
Expand Down Expand Up @@ -49,6 +52,8 @@ fun CustomButton(configViewModel: ConfigViewModel, onClick: () -> Unit) {
)
}

val scrollState = rememberScrollState()

FlatButton(content = {
RowContent(
title = R.string.settings_custom,
Expand Down Expand Up @@ -88,7 +93,7 @@ fun CustomButton(configViewModel: ConfigViewModel, onClick: () -> Unit) {
}

Row(
modifier = Modifier.fillMaxWidth(),
modifier = Modifier.fillMaxWidth().verticalScroll(scrollState).heightIn(max=520.dp),
horizontalArrangement = Arrangement.Center
) {
OutlinedTextField(
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
<string name="about_app_version">应用版本号</string>
<string name="about_config_version">配置版本号</string>
<string name="checking">检查中…</string>
<string name="invalid_config">无效的配置</string>

<string name="toast_start_accessibility_first">请先开启无障碍服务</string>
<string name="toast_save_success">保存成功</string>
Expand Down

0 comments on commit f23e737

Please sign in to comment.