Skip to content
This repository has been archived by the owner on Mar 15, 2022. It is now read-only.

Commit

Permalink
Merge pull request #182 from YTVanced/dev
Browse files Browse the repository at this point in the history
1.3.1 update
  • Loading branch information
KevinX8 committed Oct 3, 2020
2 parents 8c7bec1 + 6426c3d commit 7d7c6f2
Show file tree
Hide file tree
Showing 49 changed files with 451 additions and 454 deletions.
6 changes: 2 additions & 4 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ android {
applicationId "com.vanced.manager"
minSdkVersion 21
targetSdkVersion 30
versionCode 13
versionName "1.3.0b (Arcturus)"
versionCode 131
versionName "1.3.1 (Arcturus)"

vectorDrawables.useSupportLibrary = true

Expand Down Expand Up @@ -88,11 +88,9 @@ def getLanguageNames() {
for (int i = 0; i < langs.size(); i++) {
if (langs[i].length() > 2) {
Locale loc = new Locale(langs[i].substring(0, langs[i].length() - 3), langs[i].substring(langs[i].length() - 2))
project.logger.lifecycle(loc.getDisplayLanguage(loc).capitalize() + " (" + loc.getDisplayCountry(loc).capitalize() + ")")
langnames.add(loc.getDisplayLanguage(loc).capitalize() + " (" + loc.getDisplayCountry(loc).capitalize() + ")")
} else {
Locale loc = new Locale(langs[i])
project.logger.lifecycle(loc.getDisplayLanguage(loc).capitalize())
langnames.add(loc.getDisplayLanguage(loc).capitalize())
}
}
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<queries>
<package android:name="com.vanced.android.youtube" />
Expand Down Expand Up @@ -45,6 +46,7 @@
android:name=".ui.MainActivity"
android:label="@string/app_name"
android:theme="@style/DarkTheme.Blue"
android:configChanges="layoutDirection|locale"
android:exported="true"/>

<meta-data
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,12 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.animation.AccelerateDecelerateInterpolator
import android.widget.LinearLayout
import android.widget.Toast
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.widget.ViewPager2
import com.google.android.material.tabs.TabLayoutMediator
import com.vanced.manager.R
import com.vanced.manager.databinding.ViewHomeBinding
import com.vanced.manager.ui.viewmodels.HomeViewModel
import kotlinx.android.synthetic.main.include_changelogs.view.*

class VariantAdapter(private val viewModel: HomeViewModel, private val context: Context) : RecyclerView.Adapter<VariantAdapter.VariantAdapterHolder>() {

Expand Down
25 changes: 14 additions & 11 deletions app/src/main/java/com/vanced/manager/core/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.vanced.manager.core

import android.app.Application
import android.content.res.Configuration
import androidx.databinding.ObservableField
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
import com.beust.klaxon.JsonObject
import com.crowdin.platform.Crowdin
Expand All @@ -10,14 +11,14 @@ import com.crowdin.platform.data.remote.NetworkType
import com.downloader.PRDownloader
import com.vanced.manager.utils.InternetTools.baseUrl
import com.vanced.manager.utils.JsonHelper.getJson
import kotlinx.coroutines.*
import kotlinx.coroutines.runBlocking

open class App: Application() {

var vanced: JsonObject? = null
var music: JsonObject? = null
var microg: JsonObject? = null
var manager: JsonObject? = null
var vanced = ObservableField<JsonObject?>()
var music = ObservableField<JsonObject?>()
var microg = ObservableField<JsonObject?>()
var manager = ObservableField<JsonObject?>()

override fun onCreate() {
loadJsonAsync()
Expand All @@ -33,17 +34,19 @@ open class App: Application() {

}

fun loadJsonAsync() {
val latest = runBlocking { getJson("${getDefaultSharedPreferences(this@App).getString("update_url", baseUrl)}/latest.json") }
vanced = latest.obj("vanced")
music = latest.obj("music")
microg = latest.obj("microg")
manager = latest.obj("manager")
open fun loadJsonAsync() {
val latest = runBlocking { getJson("${getDefaultSharedPreferences(this@App).getString("install_url", baseUrl)}/latest.json") }

vanced.set(latest?.obj("vanced"))
music.set(latest?.obj("music"))
microg.set(latest?.obj("microg"))
manager.set(latest?.obj("manager"))
}

override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
Crowdin.onConfigurationChanged()
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,26 @@ import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.core.App
import com.vanced.manager.ui.viewmodels.HomeViewModel.Companion.microgProgress
import com.vanced.manager.utils.AppUtils.mutableInstall
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
import com.vanced.manager.utils.InternetTools.getJsonString
import com.vanced.manager.utils.PackageHelper.install
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

object MicrogDownloader {

//private var downloadId: Long = 0

fun downloadMicrog(context: Context) {
CoroutineScope(Dispatchers.IO).launch {
val url = getJsonString("microg.json", "url", context)
//downloadId = download(url, "apk", "microg.apk", this@MicrogDownloadService)
val url = (context.applicationContext as App).microg.get()?.string("url")

microgProgress.get()?.currentDownload = PRDownloader.download(url, context.getExternalFilesDir("apk")?.path, "microg.apk")
.build()
.setOnStartOrResumeListener {
mutableInstall.value = true
microgProgress.get()?.downloadingFile?.set(context.getString(R.string.downloading_file, getFileNameFromUrl(url)))
microgProgress.get()?.downloadingFile?.set(context.getString(R.string.downloading_file, url?.let { getFileNameFromUrl(it) }))
microgProgress.get()?.showDownloadBar?.set(true)
}
.setOnCancelListener {
Expand All @@ -55,19 +52,4 @@ object MicrogDownloader {
}
}

/*
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1) == downloadId) {
//prefs?.edit()?.putBoolean("isMicrogDownloading", false)?.apply()
//cancelNotif(channel, this@MicrogDownloadService)
val bIntent = Intent(this@MicrogDownloadService, AppInstaller::class.java)
bIntent.putExtra("path", "${getExternalFilesDir("apk")}/microg.apk")
bIntent.putExtra("pkg", "com.mgoogle.android.gms")
startService(bIntent)
}
}
}
*/

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,20 @@ import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.core.App
import com.vanced.manager.ui.viewmodels.HomeViewModel.Companion.musicProgress
import com.vanced.manager.utils.AppUtils.mutableInstall
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
import com.vanced.manager.utils.InternetTools.getJsonString
import com.vanced.manager.utils.PackageHelper.install
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch

object MusicDownloader {

//private var downloadId: Long = 0

fun downloadMusic(context: Context){
CoroutineScope(Dispatchers.IO).launch {
val version = getJsonString("music.json", "version", context)
val url = "https://vanced.app/api/v1/music/v$version.apk"

//downloadId = download(url, "apk", "music.apk", this@MusicDownloadService)
val url = "https://vanced.app/api/v1/music/v${(context.applicationContext as App).music.get()?.string("version")}.apk"

musicProgress.get()?.currentDownload = PRDownloader.download(url, context.getExternalFilesDir("apk")?.path, "music.apk")
.build()
Expand Down Expand Up @@ -58,19 +53,4 @@ object MusicDownloader {

}

/*
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1) == downloadId) {
//prefs?.edit()?.putBoolean("isMusicDownloading", false)?.apply()
//cancelNotif(channel, this@MusicDownloadService)
val bIntent = Intent(this@MusicDownloadService, AppInstaller::class.java)
bIntent.putExtra("path", "${getExternalFilesDir("apk")}/music.apk")
bIntent.putExtra("pkg", "com.mgoogle.android.gms")
startService(bIntent)
}
}
}
*/

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ 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
import com.vanced.manager.utils.InternetTools.getObjectFromJson
import com.vanced.manager.utils.PackageHelper.getPkgVerCode
import com.vanced.manager.utils.PackageHelper.installVanced
import com.vanced.manager.utils.PackageHelper.installVancedRoot
Expand All @@ -28,6 +28,7 @@ import kotlinx.coroutines.runBlocking
import java.io.File
import java.io.IOException
import java.security.MessageDigest
import java.util.*

object VancedDownloader {

Expand All @@ -42,25 +43,23 @@ object VancedDownloader {
private var lang: Array<String>? = null

private lateinit var themePath: String

//private var downloadId: Long = 0
//private var apkType: String = "arch"

private var count: Int = 0
private var hashUrl = ""

private const val yPkg = "com.google.android.youtube"
private var vancedVersionCode = 0
private val vancedVersion by lazy { runBlocking { getObjectFromJson("$installUrl/vanced.json", "version") }}
private var vancedVersion: String? = null

fun downloadVanced(context: Context){
//registerReceiver(receiver, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
val app = context.applicationContext as App
File(context.getExternalFilesDir("apks")?.path as String).deleteRecursively()
defPrefs = getDefaultSharedPreferences(context)
installUrl = defPrefs.getString("install_url", baseUrl)
prefs = context.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
variant = defPrefs.getString("vanced_variant", "nonroot")
lang = prefs.getString("lang", "en")?.split(", ")?.toTypedArray()
theme = prefs.getString("theme", "dark")
vancedVersion = app.vanced.get()?.string("version")
themePath = "$installUrl/apks/v$vancedVersion/$variant/Theme"
hashUrl = "apks/v$vancedVersion/$variant/Theme/hash.json"
//newInstaller = defPrefs.getBoolean("new_installer", false)
Expand All @@ -70,8 +69,8 @@ object VancedDownloader {
Build.SUPPORTED_ABIS.contains("arm64-v8a") -> "arm64_v8a"
else -> "armeabi_v7a"
}
val app = context.applicationContext as App
vancedVersionCode = app.vanced?.int("versionCode") ?: 0

vancedVersionCode = app.vanced.get()?.int("versionCode") ?: 0
downloadSplits(context)
}

Expand All @@ -90,11 +89,7 @@ object VancedDownloader {
else -> throw NotImplementedError("This type of APK is NOT valid. What the hell did you even do?")
}

//apkType = type
//downloadId = download(url, "apks", getFileNameFromUrl(url), this@VancedDownloadService)

vancedProgress.get()?.currentDownload = PRDownloader
.download(url, context.getExternalFilesDir("apks")?.path, getFileNameFromUrl(url))
vancedProgress.get()?.currentDownload = PRDownloader.download(url, context.getExternalFilesDir("apks")?.path, getFileNameFromUrl(url))
.build()
.setOnStartOrResumeListener {
mutableInstall.value = true
Expand All @@ -114,7 +109,7 @@ object VancedDownloader {
"theme" ->
if (variant == "root") {
if (validateTheme(context)) {
if(downloadStockCheck(context))
if (downloadStockCheck(context))
downloadSplits(context, "arch")
else
prepareInstall(variant!!, context)
Expand Down Expand Up @@ -143,6 +138,7 @@ object VancedDownloader {
else
prepareInstall(variant!!, context)
} else {
count = 0
mutableInstall.value = false
vancedProgress.get()?.showDownloadBar?.set(false)
Toast.makeText(context, context.getString(R.string.error_downloading, getFileNameFromUrl(url)), Toast.LENGTH_SHORT).show()
Expand All @@ -154,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
}
Expand All @@ -171,40 +167,13 @@ object VancedDownloader {
return checkSHA256(sha256Val!!,themeF)
}

/*
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
val prefs = context?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val variant = PreferenceManager.getDefaultSharedPreferences(this@VancedDownloadService).getString("vanced_variant", "nonroot")
val lang = prefs?.getString("lang", "en")
if (intent?.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1) == downloadId) {
when (apkType) {
"arch" -> downloadSplits(context, "theme")
"theme" -> downloadSplits(context, "lang")
"lang" -> {
if (lang == "en") {
prepareInstall(variant!!)
//cancelNotif(channel, this@VancedDownloadService)
} else {
downloadSplits(context, "enlang")
}
}
"enlang" -> {
prepareInstall(variant!!)
//cancelNotif(channel, this@VancedDownloadService)
}
}
}
}
}
*/

private fun prepareInstall(variant: String, context: Context) {
count = 0
vancedProgress.get()?.showDownloadBar?.set(false)
vancedProgress.get()?.showInstallCircle?.set(true)
FirebaseAnalytics.getInstance(context).logEvent(FirebaseAnalytics.Event.SELECT_ITEM) {
param("Vanced Variant", variant)
theme?.let { param("Vanced Theme", it) }
param("vanced_variant", variant)
theme?.let { param("vanced_theme", it) }
}
if (variant == "root")
installVancedRoot(context)
Expand All @@ -218,7 +187,7 @@ object VancedDownloader {
// Generate the checksum
val sum = generateChecksum(dataBuffer)

sum == sha256
sum.toLowerCase(Locale.ENGLISH) == sha256.toLowerCase(Locale.ENGLISH)
} catch (e: Exception) {
e.printStackTrace()
false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
Loading

0 comments on commit 7d7c6f2

Please sign in to comment.