added exception handling and changed manager update url to github
This commit is contained in:
parent
e2a5dddb20
commit
9841a83dbb
|
@ -33,6 +33,7 @@ import com.vanced.manager.core.fragments.Home
|
||||||
import com.vanced.manager.core.installer.RootAppUninstaller
|
import com.vanced.manager.core.installer.RootAppUninstaller
|
||||||
import com.vanced.manager.databinding.FragmentHomeBinding
|
import com.vanced.manager.databinding.FragmentHomeBinding
|
||||||
import com.vanced.manager.ui.viewmodels.HomeViewModel
|
import com.vanced.manager.ui.viewmodels.HomeViewModel
|
||||||
|
import com.vanced.manager.utils.InternetTools.displayJsonInt
|
||||||
import com.vanced.manager.utils.PackageHelper.installApp
|
import com.vanced.manager.utils.PackageHelper.installApp
|
||||||
import com.vanced.manager.utils.PackageHelper.isPackageInstalled
|
import com.vanced.manager.utils.PackageHelper.isPackageInstalled
|
||||||
import io.reactivex.android.schedulers.AndroidSchedulers
|
import io.reactivex.android.schedulers.AndroidSchedulers
|
||||||
|
@ -101,12 +102,8 @@ class HomeFragment : Home() {
|
||||||
if (isConnectedToInternet) {
|
if (isConnectedToInternet) {
|
||||||
vancedinstallbtn?.visibility = View.VISIBLE
|
vancedinstallbtn?.visibility = View.VISIBLE
|
||||||
|
|
||||||
val vancedRemoteCode =
|
val vancedRemoteCode = activity?.let { displayJsonInt("vanced.json", "versionCode", it) }
|
||||||
GetJson().AsJSONObject("https://vanced.app/api/v1/vanced.json")
|
val microgRemoteCode = activity?.let { displayJsonInt("microg.json", "versionCode", it) }
|
||||||
.get("versionCode").asInt
|
|
||||||
val microgRemoteCode =
|
|
||||||
GetJson().AsJSONObject("https://vanced.app/api/v1/microg.json")
|
|
||||||
.get("versionCode").asInt
|
|
||||||
|
|
||||||
if (variant == "nonroot") {
|
if (variant == "nonroot") {
|
||||||
val microginstallbtn =
|
val microginstallbtn =
|
||||||
|
@ -121,7 +118,7 @@ class HomeFragment : Home() {
|
||||||
else
|
else
|
||||||
pm.getPackageInfo("com.mgoogle.android.gms", 0).versionCode
|
pm.getPackageInfo("com.mgoogle.android.gms", 0).versionCode
|
||||||
when {
|
when {
|
||||||
microgRemoteCode > microgVerCode -> {
|
microgRemoteCode!! > microgVerCode -> {
|
||||||
microginstallbtn?.text =
|
microginstallbtn?.text =
|
||||||
activity?.getString(R.string.update)
|
activity?.getString(R.string.update)
|
||||||
microginstallbtn?.icon =
|
microginstallbtn?.icon =
|
||||||
|
@ -163,7 +160,7 @@ class HomeFragment : Home() {
|
||||||
}
|
}
|
||||||
|
|
||||||
when {
|
when {
|
||||||
vancedRemoteCode > vancedVerCode!! -> {
|
vancedRemoteCode!! > vancedVerCode!! -> {
|
||||||
vancedinstallbtn?.text =
|
vancedinstallbtn?.text =
|
||||||
activity?.getString(R.string.update)
|
activity?.getString(R.string.update)
|
||||||
vancedinstallbtn?.icon =
|
vancedinstallbtn?.icon =
|
||||||
|
|
|
@ -1,10 +1,7 @@
|
||||||
package com.vanced.manager.ui.fragments
|
package com.vanced.manager.ui.fragments
|
||||||
|
|
||||||
import android.content.Intent
|
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
import android.net.Uri
|
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
@ -16,7 +13,6 @@ import android.widget.TextView
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import com.dezlum.codelabs.getjson.GetJson
|
import com.dezlum.codelabs.getjson.GetJson
|
||||||
import androidx.core.content.FileProvider
|
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.downloader.Error
|
import com.downloader.Error
|
||||||
import com.downloader.OnDownloadListener
|
import com.downloader.OnDownloadListener
|
||||||
|
@ -25,9 +21,6 @@ import com.vanced.manager.BuildConfig
|
||||||
|
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.utils.PackageHelper.installApp
|
import com.vanced.manager.utils.PackageHelper.installApp
|
||||||
import io.reactivex.disposables.Disposable
|
|
||||||
import java.io.File
|
|
||||||
import java.io.FileInputStream
|
|
||||||
|
|
||||||
class UpdateCheckFragment : DialogFragment() {
|
class UpdateCheckFragment : DialogFragment() {
|
||||||
|
|
||||||
|
@ -76,8 +69,7 @@ class UpdateCheckFragment : DialogFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun upgradeManager(loadBar: ProgressBar) {
|
private fun upgradeManager(loadBar: ProgressBar) {
|
||||||
val apkUrl = GetJson().AsJSONObject("https://vanced.app/api/v1/manager.json")
|
val dwnldUrl = "https://github.com/VancedManager/releases/latest/download/manager.apk"
|
||||||
val dwnldUrl = apkUrl.get("url").asString
|
|
||||||
|
|
||||||
PRDownloader.download(dwnldUrl, activity?.filesDir?.path, "manager.apk")
|
PRDownloader.download(dwnldUrl, activity?.filesDir?.path, "manager.apk")
|
||||||
.build()
|
.build()
|
||||||
|
@ -96,7 +88,7 @@ class UpdateCheckFragment : DialogFragment() {
|
||||||
activity?.let {
|
activity?.let {
|
||||||
installApp(
|
installApp(
|
||||||
it,
|
it,
|
||||||
it.filesDir.path + "/microg.apk",
|
it.filesDir.path + "/manager.apk",
|
||||||
"com.vanced.manager")
|
"com.vanced.manager")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,13 +12,11 @@ import androidx.core.content.ContextCompat.startActivity
|
||||||
import androidx.lifecycle.AndroidViewModel
|
import androidx.lifecycle.AndroidViewModel
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
||||||
import com.dezlum.codelabs.getjson.GetJson
|
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
|
import com.vanced.manager.utils.InternetTools.displayJsonString
|
||||||
import com.vanced.manager.utils.PackageHelper.isPackageInstalled
|
import com.vanced.manager.utils.PackageHelper.isPackageInstalled
|
||||||
|
|
||||||
open class HomeViewModel(application: Application): AndroidViewModel(application) {
|
class HomeViewModel(application: Application): AndroidViewModel(application) {
|
||||||
|
|
||||||
private val connected: Boolean = GetJson().isConnected(application)
|
|
||||||
|
|
||||||
private val vancedPkgName: String =
|
private val vancedPkgName: String =
|
||||||
if (getDefaultSharedPreferences(application).getString("vanced_variant", "nonroot") == "root") {
|
if (getDefaultSharedPreferences(application).getString("vanced_variant", "nonroot") == "root") {
|
||||||
|
@ -30,34 +28,11 @@ open class HomeViewModel(application: Application): AndroidViewModel(application
|
||||||
val microgInstalled: Boolean = isPackageInstalled("com.mgoogle.android.gms", application.packageManager)
|
val microgInstalled: Boolean = isPackageInstalled("com.mgoogle.android.gms", application.packageManager)
|
||||||
val vancedInstalled: Boolean = isPackageInstalled(vancedPkgName, application.packageManager)
|
val vancedInstalled: Boolean = isPackageInstalled(vancedPkgName, application.packageManager)
|
||||||
|
|
||||||
val vancedInstalledVersion: String =
|
val vancedInstalledVersion: MutableLiveData<String> = MutableLiveData()
|
||||||
if (vancedInstalled) {
|
val microgInstalledVersion: MutableLiveData<String> = MutableLiveData()
|
||||||
application.packageManager.getPackageInfo(vancedPkgName, 0).versionName
|
|
||||||
} else {
|
|
||||||
application.getString(R.string.unavailable)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
val vancedVersion: MutableLiveData<String> = MutableLiveData()
|
||||||
val microgInstalledVersion: String =
|
val microgVersion: MutableLiveData<String> = MutableLiveData()
|
||||||
if (microgInstalled) {
|
|
||||||
application.packageManager.getPackageInfo("com.mgoogle.android.gms", 0).versionName
|
|
||||||
} else {
|
|
||||||
application.getString(R.string.unavailable)
|
|
||||||
}
|
|
||||||
|
|
||||||
val vancedVersion: String =
|
|
||||||
if (connected)
|
|
||||||
GetJson().AsJSONObject("https://vanced.app/api/v1/vanced.json")
|
|
||||||
.get("version").asString
|
|
||||||
else
|
|
||||||
application.getString(R.string.unavailable)
|
|
||||||
|
|
||||||
val microgVersion: String =
|
|
||||||
if (connected)
|
|
||||||
GetJson().AsJSONObject("https://vanced.app/api/v1/microg.json")
|
|
||||||
.get("version").asString
|
|
||||||
else
|
|
||||||
application.getString(R.string.unavailable)
|
|
||||||
|
|
||||||
val isNonrootModeSelected: Boolean = getDefaultSharedPreferences(application).getString("vanced_variant", "nonroot") == "nonroot"
|
val isNonrootModeSelected: Boolean = getDefaultSharedPreferences(application).getString("vanced_variant", "nonroot") == "nonroot"
|
||||||
|
|
||||||
|
@ -97,8 +72,21 @@ open class HomeViewModel(application: Application): AndroidViewModel(application
|
||||||
customTabsIntent.launchUrl(getApplication(), Uri.parse(Url))
|
customTabsIntent.launchUrl(getApplication(), Uri.parse(Url))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getPkgInfo(toCheck: Boolean, pkg: String, application: Application): String {
|
||||||
|
return if (toCheck) {
|
||||||
|
application.packageManager.getPackageInfo(pkg, 0).versionName
|
||||||
|
} else {
|
||||||
|
application.getString(R.string.unavailable)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
signatureStatusTxt.value = signatureString
|
signatureStatusTxt.value = signatureString
|
||||||
|
vancedVersion.value = displayJsonString("vanced.json","version", application)
|
||||||
|
microgVersion.value = displayJsonString("microg.json","version", application)
|
||||||
|
vancedInstalledVersion.value = getPkgInfo(vancedInstalled, vancedPkgName, application)
|
||||||
|
microgInstalledVersion.value = getPkgInfo(microgInstalled, "com.mgoogle.android.gms", application)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -4,6 +4,9 @@ import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import androidx.browser.customtabs.CustomTabsIntent
|
import androidx.browser.customtabs.CustomTabsIntent
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
|
import com.dezlum.codelabs.getjson.GetJson
|
||||||
|
import com.vanced.manager.R
|
||||||
|
import java.lang.IllegalStateException
|
||||||
|
|
||||||
object InternetTools {
|
object InternetTools {
|
||||||
|
|
||||||
|
@ -16,5 +19,25 @@ object InternetTools {
|
||||||
|
|
||||||
fun getFileNameFromUrl(url: String) = url.substring(url.lastIndexOf('/')+1, url.length)
|
fun getFileNameFromUrl(url: String) = url.substring(url.lastIndexOf('/')+1, url.length)
|
||||||
|
|
||||||
|
fun displayJsonString(json: String, obj: String, context: Context): String {
|
||||||
|
return if (GetJson().isConnected(context)) {
|
||||||
|
try {
|
||||||
|
GetJson().AsJSONObject("https://vanced.app/api/v1/$json").get(obj).asString
|
||||||
|
} catch (e: IllegalStateException) {
|
||||||
|
GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/$json").get(obj).asString
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
context.getString(R.string.unavailable)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun displayJsonInt(json: String, obj: String, context: Context): Int {
|
||||||
|
return try {
|
||||||
|
GetJson().AsJSONObject("https://vanced.app/api/v1/$json").get(obj).asInt
|
||||||
|
} catch (e: IllegalStateException) {
|
||||||
|
GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/$json").get(obj).asInt
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue