Skip to content

Commit

Permalink
Merge pull request #61 from GuoXiCheng/dev
Browse files Browse the repository at this point in the history
update
  • Loading branch information
GuoXiCheng authored Oct 20, 2023
2 parents 43334f0 + cda4894 commit dd7b56d
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 81 deletions.
2 changes: 0 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ android {

dependencies {
implementation 'org.yaml:snakeyaml:1.29'
implementation 'com.squareup.retrofit2:retrofit:2.6.1'
implementation 'com.squareup.retrofit2:converter-gson:2.6.1'
implementation 'com.google.code.gson:gson:2.8.9'
implementation 'androidx.core:core-ktx:1.8.0'
implementation 'androidx.appcompat:appcompat:1.4.2'
Expand Down
52 changes: 23 additions & 29 deletions app/src/main/java/com/android/skip/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -34,17 +34,13 @@ import com.android.skip.manager.LogManager
import com.android.skip.manager.RectManager
import com.android.skip.manager.SkipConfigManager
import com.android.skip.manager.ToastManager
import com.android.skip.service.SkipConfigService
import com.android.skip.ui.theme.OneClickTheme
import com.android.skip.ui.theme.green
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import kotlinx.coroutines.launch
import org.yaml.snakeyaml.Yaml
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.net.HttpURLConnection
import java.net.URL
import java.util.*
import kotlin.concurrent.thread

Expand Down Expand Up @@ -198,38 +194,36 @@ class MainActivity : ComponentActivity() {
}

RectManager.setMaxRect(this)
val skipConfig =
resources.openRawResource(R.raw.skip_config_v1).bufferedReader().use { it.readText() }
SkipConfigManager.setConfig(skipConfig)


val yaml = Yaml().load<List<PackageInfo>>(assets.open("skip_config.yaml"))
LogManager.i(yaml.toString())
SkipConfigManager.setConfig(yaml)
}

override fun onResume() {
super.onResume()
accessibilityState = MyUtils.isAccessibilitySettingsOn(this)
syncSkipConfig()
}

private fun syncSkipConfig() {
thread {
val retrofit = Retrofit.Builder()
.baseUrl("https://ghproxy.com/https://raw.githubusercontent.com/GuoXiCheng/SKIP/main/app/src/main/res/raw/")
.addConverterFactory(GsonConverterFactory.create()).build()
val skipConfigService = retrofit.create(SkipConfigService::class.java)
skipConfigService.getPackageInfo().enqueue(object : Callback<List<PackageInfo>> {
override fun onResponse(
call: Call<List<PackageInfo>>,
response: Response<List<PackageInfo>>
) {
response.body()?.let { SkipConfigManager.setConfig(it) }
ToastManager.showToast(applicationContext, "更新配置成功")
}

override fun onFailure(call: Call<List<PackageInfo>>, t: Throwable) {
ToastManager.showToast(applicationContext, "更新配置失败")
}

})
var connection: HttpURLConnection? = null
try {
val apiUrl = "https://ghproxy.com/https://raw.githubusercontent.com/GuoXiCheng/SKIP/main/app/src/main/assets/skip_config.yaml"
connection = URL(apiUrl).openConnection() as HttpURLConnection
connection.requestMethod = "GET"
connection.readTimeout = 8000
connection.connectTimeout = 8000
val input = connection.inputStream
val yaml = Yaml().load<Any>(input)
SkipConfigManager.setConfig(yaml)
ToastManager.showToast(this, "更新配置成功")
} catch (e: Exception) {
LogManager.i(e.toString())
ToastManager.showToast(this, "更新配置失败")
} finally {
connection?.disconnect()
}
}
}
}
Expand Down
43 changes: 4 additions & 39 deletions app/src/main/java/com/android/skip/manager/SkipConfigManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,12 @@ import com.google.gson.reflect.TypeToken

object SkipConfigManager {
private lateinit var appInfoMap: Map<String, PackageInfo>
fun setConfig(config: String) {

fun setConfig(config: Any) {
val gson = Gson()
val json = gson.toJson(config)
val appInfoList: List<PackageInfo> =
gson.fromJson(config, object : TypeToken<List<PackageInfo>>() {}.type)
handleConfig(appInfoList)
}

fun setConfig(appInfoList: List<PackageInfo>) {
handleConfig(appInfoList)
}

private fun handleConfig(appInfoList: List<PackageInfo>) {
gson.fromJson(json, object : TypeToken<List<PackageInfo>>() {}.type)
val newAppInfoList = appInfoList.map { packageInfo ->
packageInfo.skip_rect_list = parseSkipBounds(packageInfo)
packageInfo
Expand Down Expand Up @@ -54,35 +48,6 @@ object SkipConfigManager {
return skipRectList
}

// private fun handleConfig(appInfoList: List<PackageInfo>) {
// val newAppInfoList = appInfoList.map { it ->
// if (it.skip_bounds is List && it.skip_bounds.isNotEmpty()) {
// it.skip_rect_list = mutableListOf()
// for (bounds in it.skip_bounds) {
// val boundsParts = bounds.split("#")
// if (boundsParts.size == 2) {
// val maxXYParts = boundsParts[0].split(",")
// val detailBoundsParts = boundsParts[1].split(",")
// if (maxXYParts.size == 2 && detailBoundsParts.size == 4) {
// val (maxX, maxY) = maxXYParts
// val (boundsLeft, boundsTop, boundsRight, boundsBottom) = detailBoundsParts
// it.skip_rect_list.add(
// Rect(
// (boundsLeft.toInt() * RectManager.maxRectX / maxX.toInt() - 1),
// (boundsTop.toInt() * RectManager.maxRectY / maxY.toInt() - 1),
// (boundsRight.toInt() * RectManager.maxRectX / maxX.toInt() + 1),
// (boundsBottom.toInt() * RectManager.maxRectY / maxY.toInt() + 1)
// )
// )
// }
// }
// }
// }
// it
// }
// appInfoMap = newAppInfoList.associateBy { it.package_name }
// }

fun getSkipText(packageName: String): String {
return appInfoMap[packageName]?.skip_text ?: "跳过"
}
Expand Down
11 changes: 0 additions & 11 deletions app/src/main/java/com/android/skip/service/SkipConfigService.kt

This file was deleted.

0 comments on commit dd7b56d

Please sign in to comment.