From c23f9b890c08b85e410ab8c7f2e82880affa7393 Mon Sep 17 00:00:00 2001 From: ChronosX88 Date: Wed, 21 Aug 2019 14:57:30 +0400 Subject: [PATCH] feat: Add read/save config methods --- .../io/github/chronosx88/yggdrasil/Utils.kt | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/github/chronosx88/yggdrasil/Utils.kt b/app/src/main/java/io/github/chronosx88/yggdrasil/Utils.kt index 7dcc947..bf7191d 100644 --- a/app/src/main/java/io/github/chronosx88/yggdrasil/Utils.kt +++ b/app/src/main/java/io/github/chronosx88/yggdrasil/Utils.kt @@ -1,11 +1,35 @@ package io.github.chronosx88.yggdrasil import android.content.Context +import com.google.gson.Gson +import io.github.chronosx88.yggdrasil.models.config.Config +import org.hjson.JsonValue +import org.hjson.Stringify import java.io.File import java.lang.Runtime.getRuntime +val gson = Gson() + val Context.yggBin get() = File(filesDir, "yggdrasil-0.3.7") fun Context.execYgg(cmd: String) = getRuntime().exec( "${yggBin.absolutePath} $cmd" -) \ No newline at end of file +) + +@Throws(RuntimeException::class) +fun Context.getYggConfig(): Config { + val configFile = File(filesDir, "yggdrasil.conf") + if(!configFile.exists()) { + throw RuntimeException("Config file don't exist!") + } + val configStr = configFile.readText() + val configHjsonObject = JsonValue.readHjson(configStr) + return gson.fromJson(configHjsonObject.toString(Stringify.PLAIN), Config::class.java) +} + +fun Context.saveYggConfig(config: Config) { + val configJson = gson.toJson(config) + val configHjson = JsonValue.readHjson(configJson).toString(Stringify.HJSON) + val configFile = File(filesDir, "yggdrasil.conf") + configFile.writeText(configHjson) +} \ No newline at end of file