VancedManager/app/src/main/java/com/vanced/manager/ui/dialogs/ServiceDTimerDialog.kt

75 lines
2.6 KiB
Kotlin

package com.vanced.manager.ui.dialogs
import android.os.Bundle
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.Toast
import androidx.core.content.edit
import com.vanced.manager.R
import com.vanced.manager.core.ui.base.BindingDialogFragment
import com.vanced.manager.databinding.DialogServicedTimerBinding
import com.vanced.manager.utils.PackageHelper
import com.vanced.manager.utils.PackageHelper.getPackageDir
import com.vanced.manager.utils.PackageHelper.getPkgNameRoot
import com.vanced.manager.utils.PackageHelper.scriptExists
import com.vanced.manager.utils.defPrefs
import com.vanced.manager.utils.writeServiceDScript
import java.io.IOException
import java.util.*
class ServiceDTimerDialog : BindingDialogFragment<DialogServicedTimerBinding>() {
private val prefs by lazy { requireActivity().defPrefs }
override fun binding(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): DialogServicedTimerBinding = DialogServicedTimerBinding.inflate(inflater, container, false)
override fun otherSetups() {
bindData()
}
private fun bindData() {
with(binding) {
servicedSlider.value = prefs.getInt("serviced_sleep_timer", 1).toFloat()
servicedCancel.setOnClickListener {
dismiss()
}
servicedSave.setOnClickListener {
try {
arrayOf("vanced", "music").forEach { app ->
if (scriptExists(app)) {
val apkFPath =
"${PackageHelper.apkInstallPath}/${app.capitalize(Locale.ROOT)}/base.apk"
getPackageDir(
requireActivity(),
getPkgNameRoot(app)
)?.let { it1 ->
requireActivity().writeServiceDScript(
apkFPath,
it1,
app
)
}
}
}
} catch (e: IOException) {
Toast.makeText(
requireActivity(),
R.string.script_save_failed,
Toast.LENGTH_SHORT
).show()
return@setOnClickListener
}
prefs.edit {
putInt("serviced_sleep_timer", servicedSlider.value.toInt())
}
dismiss()
}
}
}
}