Fix setup
This commit is contained in:
@@ -12,11 +12,14 @@ import android.os.PowerManager
|
|||||||
import androidx.core.content.getSystemService
|
import androidx.core.content.getSystemService
|
||||||
import go.Seq
|
import go.Seq
|
||||||
import io.nekohasekai.libbox.Libbox
|
import io.nekohasekai.libbox.Libbox
|
||||||
|
import io.nekohasekai.libbox.SetupOptions
|
||||||
import io.nekohasekai.sfa.bg.AppChangeReceiver
|
import io.nekohasekai.sfa.bg.AppChangeReceiver
|
||||||
import io.nekohasekai.sfa.bg.UpdateProfileWork
|
import io.nekohasekai.sfa.bg.UpdateProfileWork
|
||||||
|
import io.nekohasekai.sfa.constant.Bugs
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.GlobalScope
|
import kotlinx.coroutines.GlobalScope
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import java.io.File
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import io.nekohasekai.sfa.Application as BoxApplication
|
import io.nekohasekai.sfa.Application as BoxApplication
|
||||||
|
|
||||||
@@ -35,6 +38,7 @@ class Application : Application() {
|
|||||||
|
|
||||||
@Suppress("OPT_IN_USAGE")
|
@Suppress("OPT_IN_USAGE")
|
||||||
GlobalScope.launch(Dispatchers.IO) {
|
GlobalScope.launch(Dispatchers.IO) {
|
||||||
|
initialize()
|
||||||
UpdateProfileWork.reconfigureUpdater()
|
UpdateProfileWork.reconfigureUpdater()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,6 +46,23 @@ class Application : Application() {
|
|||||||
addAction(Intent.ACTION_PACKAGE_ADDED)
|
addAction(Intent.ACTION_PACKAGE_ADDED)
|
||||||
addDataScheme("package")
|
addDataScheme("package")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun initialize() {
|
||||||
|
val baseDir = filesDir
|
||||||
|
baseDir.mkdirs()
|
||||||
|
val workingDir = getExternalFilesDir(null) ?: return
|
||||||
|
workingDir.mkdirs()
|
||||||
|
val tempDir = cacheDir
|
||||||
|
tempDir.mkdirs()
|
||||||
|
Libbox.setup(SetupOptions().also {
|
||||||
|
it.basePath = baseDir.path
|
||||||
|
it.workingPath = workingDir.path
|
||||||
|
it.tempPath = tempDir.path
|
||||||
|
it.fixAndroidStack = Bugs.fixAndroidStack
|
||||||
|
})
|
||||||
|
Libbox.redirectStderr(File(workingDir, "stderr.log").path)
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -24,13 +24,11 @@ import io.nekohasekai.libbox.CommandServerHandler
|
|||||||
import io.nekohasekai.libbox.Libbox
|
import io.nekohasekai.libbox.Libbox
|
||||||
import io.nekohasekai.libbox.Notification
|
import io.nekohasekai.libbox.Notification
|
||||||
import io.nekohasekai.libbox.PlatformInterface
|
import io.nekohasekai.libbox.PlatformInterface
|
||||||
import io.nekohasekai.libbox.SetupOptions
|
|
||||||
import io.nekohasekai.libbox.SystemProxyStatus
|
import io.nekohasekai.libbox.SystemProxyStatus
|
||||||
import io.nekohasekai.sfa.Application
|
import io.nekohasekai.sfa.Application
|
||||||
import io.nekohasekai.sfa.R
|
import io.nekohasekai.sfa.R
|
||||||
import io.nekohasekai.sfa.constant.Action
|
import io.nekohasekai.sfa.constant.Action
|
||||||
import io.nekohasekai.sfa.constant.Alert
|
import io.nekohasekai.sfa.constant.Alert
|
||||||
import io.nekohasekai.sfa.constant.Bugs
|
|
||||||
import io.nekohasekai.sfa.constant.Status
|
import io.nekohasekai.sfa.constant.Status
|
||||||
import io.nekohasekai.sfa.database.ProfileManager
|
import io.nekohasekai.sfa.database.ProfileManager
|
||||||
import io.nekohasekai.sfa.database.Settings
|
import io.nekohasekai.sfa.database.Settings
|
||||||
@@ -50,26 +48,6 @@ class BoxService(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
private var initializeOnce = false
|
|
||||||
private fun initialize() {
|
|
||||||
if (initializeOnce) return
|
|
||||||
val baseDir = Application.application.filesDir
|
|
||||||
baseDir.mkdirs()
|
|
||||||
val workingDir = Application.application.getExternalFilesDir(null) ?: return
|
|
||||||
workingDir.mkdirs()
|
|
||||||
val tempDir = Application.application.cacheDir
|
|
||||||
tempDir.mkdirs()
|
|
||||||
Libbox.setup(SetupOptions().also {
|
|
||||||
it.basePath = baseDir.path
|
|
||||||
it.workingPath = workingDir.path
|
|
||||||
it.tempPath = tempDir.path
|
|
||||||
it.fixAndroidStack = Bugs.fixAndroidStack
|
|
||||||
})
|
|
||||||
Libbox.redirectStderr(File(workingDir, "stderr.log").path)
|
|
||||||
initializeOnce = true
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fun start() {
|
fun start() {
|
||||||
val intent = runBlocking {
|
val intent = runBlocking {
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
@@ -310,7 +288,6 @@ class BoxService(
|
|||||||
|
|
||||||
GlobalScope.launch(Dispatchers.IO) {
|
GlobalScope.launch(Dispatchers.IO) {
|
||||||
Settings.startedByUser = true
|
Settings.startedByUser = true
|
||||||
initialize()
|
|
||||||
try {
|
try {
|
||||||
startCommandServer()
|
startCommandServer()
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
|||||||
Reference in New Issue
Block a user