small optimizations
This commit is contained in:
parent
555c5e4c5c
commit
542b937a04
|
@ -14,6 +14,7 @@ import com.vanced.manager.R
|
|||
import com.vanced.manager.core.App
|
||||
import com.vanced.manager.ui.viewmodels.HomeViewModel.Companion.vancedProgress
|
||||
import com.vanced.manager.utils.AppUtils.mutableInstall
|
||||
import com.vanced.manager.utils.AppUtils.vancedRootPkg
|
||||
import com.vanced.manager.utils.InternetTools
|
||||
import com.vanced.manager.utils.InternetTools.baseUrl
|
||||
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
|
||||
|
@ -46,7 +47,6 @@ object VancedDownloader {
|
|||
private var count: Int = 0
|
||||
private var hashUrl = ""
|
||||
|
||||
private const val yPkg = "com.google.android.youtube"
|
||||
private var vancedVersionCode = 0
|
||||
private var vancedVersion: String? = null
|
||||
|
||||
|
@ -150,7 +150,7 @@ object VancedDownloader {
|
|||
|
||||
private fun downloadStockCheck(context: Context) :Boolean {
|
||||
return try {
|
||||
getPkgVerCode(yPkg,context.packageManager) != vancedVersionCode
|
||||
getPkgVerCode(vancedRootPkg, context.packageManager) != vancedVersionCode
|
||||
} catch (e: Exception) {
|
||||
true
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@ package com.vanced.manager.core.firebase
|
|||
import android.util.Log
|
||||
import com.google.firebase.messaging.FirebaseMessagingService
|
||||
|
||||
class CloudMessaging: FirebaseMessagingService() {
|
||||
class CloudMessaging : FirebaseMessagingService() {
|
||||
|
||||
override fun onNewToken(p0: String) {
|
||||
super.onNewToken(p0)
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package com.vanced.manager.model
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Build
|
||||
import androidx.core.content.ContextCompat
|
||||
|
@ -9,10 +8,7 @@ import androidx.databinding.ObservableBoolean
|
|||
import androidx.databinding.ObservableField
|
||||
import androidx.databinding.ObservableInt
|
||||
import com.beust.klaxon.JsonObject
|
||||
import com.vanced.manager.BuildConfig.ENABLE_SIGNATURE_CHECK
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.utils.AppUtils.managerPkg
|
||||
import com.vanced.manager.utils.AppUtils.vancedRootPkg
|
||||
import com.vanced.manager.utils.PackageHelper.isPackageInstalled
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
|
@ -33,13 +29,11 @@ open class DataModel(
|
|||
val buttonTxt = ObservableField<String>()
|
||||
val buttonIcon = ObservableField<Drawable>()
|
||||
val changelog = ObservableField<String>()
|
||||
val isOfficial = ObservableBoolean()
|
||||
|
||||
fun fetch() = CoroutineScope(Dispatchers.IO).launch {
|
||||
isAppInstalled.set(isPackageInstalled(appPkg, context.packageManager))
|
||||
versionName.set(jsonObject.get()?.string("version")?.removeSuffix("-vanced") ?: context.getString(R.string.unavailable))
|
||||
installedVersionName.set(getPkgVersionName(isAppInstalled.get(), appPkg))
|
||||
isOfficial.set(doSignaturesMatch(managerPkg, appPkg))
|
||||
versionCode.set(jsonObject.get()?.int("versionCode") ?: 0)
|
||||
installedVersionCode.set(getPkgVersionCode(isAppInstalled.get(), appPkg))
|
||||
buttonTxt.set(compareInt(installedVersionCode.get(), versionCode.get()))
|
||||
|
@ -54,24 +48,12 @@ open class DataModel(
|
|||
private fun getPkgVersionName(toCheck: Boolean, pkg: String): String {
|
||||
val pm = context.packageManager
|
||||
return if (toCheck) {
|
||||
if (ENABLE_SIGNATURE_CHECK) {
|
||||
if (doSignaturesMatch(managerPkg, pkg) || appPkg == vancedRootPkg)
|
||||
pm.getPackageInfo(pkg, 0).versionName.removeSuffix("-vanced")
|
||||
else
|
||||
pm.getPackageInfo(pkg, 0).versionName.removeSuffix("-vanced") + " (${context.getString(R.string.unofficial)})"
|
||||
} else
|
||||
pm.getPackageInfo(pkg, 0).versionName.removeSuffix("-vanced")
|
||||
pm.getPackageInfo(pkg, 0).versionName.removeSuffix("-vanced")
|
||||
} else {
|
||||
context.getString(R.string.unavailable)
|
||||
}
|
||||
}
|
||||
|
||||
private fun doSignaturesMatch(pkg1: String, pkg2: String): Boolean =
|
||||
if (isPackageInstalled(pkg2, context.packageManager))
|
||||
context.packageManager.checkSignatures(pkg1, pkg2) == PackageManager.SIGNATURE_MATCH
|
||||
else
|
||||
true
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
private fun getPkgVersionCode(toCheck: Boolean, pkg: String): Int {
|
||||
return if (toCheck) {
|
||||
|
|
|
@ -28,9 +28,6 @@ import com.vanced.manager.utils.InternetTools
|
|||
import com.vanced.manager.utils.LanguageContextWrapper
|
||||
import com.vanced.manager.utils.PackageHelper
|
||||
import com.vanced.manager.utils.ThemeHelper.setFinalTheme
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class MainActivity : AppCompatActivity() {
|
||||
|
||||
|
@ -160,10 +157,8 @@ class MainActivity : AppCompatActivity() {
|
|||
}
|
||||
|
||||
private fun checkUpdates() {
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
if (InternetTools.isUpdateAvailable()) {
|
||||
UpdateCheckFragment().show(supportFragmentManager, "UpdateCheck")
|
||||
}
|
||||
if (InternetTools.isUpdateAvailable(this)) {
|
||||
UpdateCheckFragment().show(supportFragmentManager, "UpdateCheck")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -73,7 +73,6 @@ object DialogContainer {
|
|||
}
|
||||
}
|
||||
|
||||
//Easter Egg
|
||||
fun statementFalse(context: Context) {
|
||||
MaterialAlertDialogBuilder(context).apply {
|
||||
setTitle("Wait what?")
|
||||
|
|
|
@ -17,19 +17,13 @@ import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
|||
import com.google.android.material.tabs.TabLayout
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import com.topjohnwu.superuser.Shell
|
||||
import com.vanced.manager.BuildConfig.ENABLE_SIGNATURE_CHECK
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.adapter.VariantAdapter
|
||||
import com.vanced.manager.databinding.FragmentHomeBinding
|
||||
import com.vanced.manager.ui.dialogs.DialogContainer.installAlertBuilder
|
||||
import com.vanced.manager.ui.dialogs.DialogContainer.showUnofficialAppInstalledDialog
|
||||
import com.vanced.manager.ui.viewmodels.HomeViewModel
|
||||
import com.vanced.manager.ui.viewmodels.HomeViewModelFactory
|
||||
import com.vanced.manager.utils.AppUtils
|
||||
import com.vanced.manager.utils.AppUtils.microgPkg
|
||||
import com.vanced.manager.utils.AppUtils.musicPkg
|
||||
import com.vanced.manager.utils.AppUtils.vancedPkg
|
||||
import com.vanced.manager.utils.AppUtils.vancedRootPkg
|
||||
import com.vanced.manager.utils.AppUtils.installing
|
||||
|
||||
open class HomeFragment : Fragment() {
|
||||
|
||||
|
@ -87,19 +81,7 @@ open class HomeFragment : Fragment() {
|
|||
mainTablayout.getTabAt(if (getDefaultSharedPreferences(requireActivity()).getString("vanced_variant", "nonroot") == "root") 1 else 0)?.select()
|
||||
}
|
||||
|
||||
if (ENABLE_SIGNATURE_CHECK) {
|
||||
if (!viewModel.vanced.get()?.isOfficial?.get()!!)
|
||||
showUnofficialAppInstalledDialog(getString(R.string.vanced), vancedPkg, requireActivity())
|
||||
|
||||
if (!viewModel.music.get()?.isOfficial?.get()!!)
|
||||
showUnofficialAppInstalledDialog(getString(R.string.music), musicPkg, requireActivity())
|
||||
|
||||
if (!viewModel.microg.get()?.isOfficial?.get()!!)
|
||||
showUnofficialAppInstalledDialog(getString(R.string.microg), microgPkg, requireActivity())
|
||||
|
||||
}
|
||||
|
||||
AppUtils.installing.observe(viewLifecycleOwner, { value ->
|
||||
installing.observe(viewLifecycleOwner, { value ->
|
||||
if (value) hideTab() else showTab()
|
||||
})
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package com.vanced.manager.ui.fragments
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.os.Bundle
|
||||
|
|
|
@ -13,12 +13,9 @@ import com.google.android.material.button.MaterialButton
|
|||
import com.vanced.manager.R
|
||||
import com.vanced.manager.utils.DownloadHelper.downloadManager
|
||||
import com.vanced.manager.utils.InternetTools.isUpdateAvailable
|
||||
import kotlinx.coroutines.runBlocking
|
||||
|
||||
class UpdateCheckFragment : DialogFragment() {
|
||||
|
||||
//private var downloadId: Long = 0
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
|
@ -31,7 +28,6 @@ class UpdateCheckFragment : DialogFragment() {
|
|||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
//activity?.registerReceiver(receiver, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
|
||||
checkUpdates()
|
||||
view.findViewById<Button>(R.id.update_center_dismiss).setOnClickListener { dismiss() }
|
||||
view.findViewById<MaterialButton>(R.id.update_center_recheck).setOnClickListener{ checkUpdates() }
|
||||
|
@ -39,30 +35,21 @@ class UpdateCheckFragment : DialogFragment() {
|
|||
downLoadingState(false)
|
||||
}
|
||||
|
||||
/*
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
activity?.unregisterReceiver(receiver)
|
||||
}
|
||||
*/
|
||||
|
||||
private fun checkUpdates() {
|
||||
val updatebtn = view?.findViewById<Button>(R.id.update_center_update)
|
||||
val checkingTxt = view?.findViewById<TextView>(R.id.update_center_checking)
|
||||
|
||||
runBlocking {
|
||||
if (isUpdateAvailable()) {
|
||||
view?.findViewById<Button>(R.id.update_center_recheck)?.visibility = View.GONE
|
||||
checkingTxt?.text = getString(R.string.update_found)
|
||||
if (isUpdateAvailable(requireActivity())) {
|
||||
view?.findViewById<Button>(R.id.update_center_recheck)?.visibility = View.GONE
|
||||
checkingTxt?.text = getString(R.string.update_found)
|
||||
|
||||
updatebtn?.setOnClickListener {
|
||||
downLoadingState(true)
|
||||
downloadManager(false, requireActivity(), view?.findViewById(R.id.update_center_progressbar))
|
||||
downLoadingState(false)
|
||||
}
|
||||
} else
|
||||
checkingTxt?.text = getString(R.string.update_notfound)
|
||||
}
|
||||
updatebtn?.setOnClickListener {
|
||||
downLoadingState(true)
|
||||
downloadManager(false, requireActivity(), view?.findViewById(R.id.update_center_progressbar))
|
||||
downLoadingState(false)
|
||||
}
|
||||
} else
|
||||
checkingTxt?.text = getString(R.string.update_notfound)
|
||||
}
|
||||
|
||||
private fun downLoadingState(isDownloading: Boolean) {
|
||||
|
@ -76,31 +63,4 @@ class UpdateCheckFragment : DialogFragment() {
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
private val receiver = object : BroadcastReceiver() {
|
||||
override fun onReceive(context: Context?, intent: Intent?) {
|
||||
if (intent?.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1) == downloadId) {
|
||||
activity?.let {
|
||||
val apk = File("${activity?.getExternalFilesDir("apk")}/manager.apk")
|
||||
val uri =
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||
FileProvider.getUriForFile(activity!!, "${activity?.packageName}.provider", apk)
|
||||
else
|
||||
Uri.fromFile(apk)
|
||||
|
||||
val mIntent = Intent(Intent.ACTION_VIEW)
|
||||
mIntent.setDataAndType(uri, "application/vnd.android.package-archive")
|
||||
mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
mIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
||||
startActivity(mIntent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -25,6 +25,11 @@ import com.vanced.manager.model.DataModel
|
|||
import com.vanced.manager.model.ProgressModel
|
||||
import com.vanced.manager.ui.events.Event
|
||||
import com.vanced.manager.utils.AppUtils.installing
|
||||
import com.vanced.manager.utils.AppUtils.managerPkg
|
||||
import com.vanced.manager.utils.AppUtils.microgPkg
|
||||
import com.vanced.manager.utils.AppUtils.musicPkg
|
||||
import com.vanced.manager.utils.AppUtils.vancedPkg
|
||||
import com.vanced.manager.utils.AppUtils.vancedRootPkg
|
||||
import com.vanced.manager.utils.InternetTools
|
||||
import com.vanced.manager.utils.PackageHelper.uninstallApk
|
||||
|
||||
|
@ -128,9 +133,9 @@ open class HomeViewModel(private val activity: Activity): ViewModel() {
|
|||
Toast.makeText(activity, R.string.installation_wait, Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
||||
fun uninstallVanced(variant: String) = uninstallApk(if (variant == "root") "com.google.android.youtube" else "com.vanced.android.youtube", activity)
|
||||
fun uninstallMusic() = uninstallApk("com.vanced.android.apps.youtube.music", activity)
|
||||
fun uninstallMicrog() = uninstallApk("com.mgoogle.android.gms", activity)
|
||||
fun uninstallVanced(variant: String) = uninstallApk(if (variant == "root") vancedRootPkg else vancedPkg, activity)
|
||||
fun uninstallMusic() = uninstallApk(musicPkg, activity)
|
||||
fun uninstallMicrog() = uninstallApk(microgPkg, activity)
|
||||
|
||||
fun cancelDownload(downloadId: Int) {
|
||||
PRDownloader.cancel(downloadId)
|
||||
|
@ -151,11 +156,11 @@ open class HomeViewModel(private val activity: Activity): ViewModel() {
|
|||
|
||||
init {
|
||||
fetching.set(true)
|
||||
vanced.set(DataModel(app.vanced, "com.vanced.android.youtube", activity))
|
||||
vancedRoot.set(DataModel(app.vanced, "com.google.android.youtube", activity))
|
||||
music.set(DataModel(app.music, "com.vanced.android.apps.youtube.music", activity))
|
||||
microg.set(DataModel(app.microg, "com.mgoogle.android.gms", activity))
|
||||
manager.set(DataModel(app.manager, "com.vanced.manager", activity))
|
||||
vanced.set(DataModel(app.vanced, vancedPkg, activity))
|
||||
vancedRoot.set(DataModel(app.vanced, vancedRootPkg, activity))
|
||||
music.set(DataModel(app.music, musicPkg, activity))
|
||||
microg.set(DataModel(app.microg, microgPkg, activity))
|
||||
manager.set(DataModel(app.manager, managerPkg, activity))
|
||||
vancedProgress.set(ProgressModel())
|
||||
musicProgress.set(ProgressModel())
|
||||
microgProgress.set(ProgressModel())
|
||||
|
|
|
@ -9,6 +9,7 @@ import androidx.core.content.ContextCompat
|
|||
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
||||
import com.vanced.manager.BuildConfig
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.core.App
|
||||
|
||||
object InternetTools {
|
||||
|
||||
|
@ -66,16 +67,12 @@ object InternetTools {
|
|||
}
|
||||
}
|
||||
|
||||
suspend fun isUpdateAvailable(): Boolean {
|
||||
val result = try {
|
||||
JsonHelper.getJson("https://ytvanced.github.io/VancedBackend/manager.json")?.int("versionCode") ?: 0
|
||||
} catch (e: Exception) {
|
||||
0
|
||||
}
|
||||
fun isUpdateAvailable(context: Context): Boolean {
|
||||
val result = (context.applicationContext as App).manager.get()?.int("versionCode") ?: 0
|
||||
|
||||
return result > BuildConfig.VERSION_CODE
|
||||
}
|
||||
|
||||
const val baseUrl = "https://vancedapp.com/api/v1"
|
||||
const val baseUrl = "https://vanced.app/api/v1"
|
||||
|
||||
}
|
Loading…
Reference in New Issue