Skip to content

Commit

Permalink
feat(关于): 添加导出模块配置文件功能
Browse files Browse the repository at this point in the history
Signed-off-by: xihan123 <[email protected]>
  • Loading branch information
xihan123 committed Sep 19, 2024
1 parent 230aa96 commit dd10033
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 0 deletions.
18 changes: 18 additions & 0 deletions app/src/main/kotlin/cn/xihan/qdds/ui/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -144,11 +144,13 @@ import cn.xihan.qdds.util.runAndCatch
import cn.xihan.qdds.util.toTime
import cn.xihan.qdds.util.toast
import cn.xihan.qdds.util.wait
import cn.xihan.qdds.util.writeTextToUri
import coil.compose.rememberAsyncImagePainter
import com.airbnb.lottie.compose.LottieAnimation
import com.airbnb.lottie.compose.LottieCompositionSpec
import com.airbnb.lottie.compose.rememberLottieComposition
import com.alibaba.fastjson2.parseObject
import com.alibaba.fastjson2.toJSONString
import com.highcapable.yukihookapi.hook.xposed.parasitic.activity.base.ModuleAppCompatActivity
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
Expand Down Expand Up @@ -1540,6 +1542,22 @@ class MainActivity : ModuleAppCompatActivity() {
importOption.launch(arrayOf("application/json"))
})

val exportOption =
rememberLauncherForActivityResult(ActivityResultContracts.CreateDocument("application/json")) { uri ->
uri?.let {
try {
writeTextToUri(it, optionEntity.toJSONString())
toast("导出成功")
} catch (e: Exception) {
toast("导出失败: ${e.message}")
}
}
}

ItemWithNewPage(text = "导出模块配置文件", modifier = itemModifier, onClick = {
exportOption.launch("option.json")
})


ItemWithNewPage(text = "打赏", modifier = itemModifier, onClick = {
context.openUrl("https://github.com/xihan123/QDReadHook#%E6%89%93%E8%B5%8F")
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/kotlin/cn/xihan/qdds/util/Utils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -51,10 +51,12 @@ import kotlinx.serialization.json.Json
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.File
import java.io.FilenameFilter
import java.io.InputStreamReader
import java.io.OutputStream
import java.io.OutputStreamWriter
import java.io.Serializable
import java.lang.reflect.Field
import java.text.SimpleDateFormat
Expand Down Expand Up @@ -1013,6 +1015,13 @@ fun Context.readTextFromUri(uri: Uri): String {
return stringBuilder.toString()
}

fun Context.writeTextToUri(uri: Uri, text: String) {
contentResolver.openOutputStream(uri)?.use { outputStream ->
BufferedWriter(OutputStreamWriter(outputStream)).use { writer ->
writer.write(text)
}
}
}

object Utils : KoinComponent {

Expand Down

0 comments on commit dd10033

Please sign in to comment.