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

Commit 0c72ca8

Browse files
authored
Merge pull request #386 from YTVanced/dev
v2.3.0
2 parents 9076732 + 50b81e8 commit 0c72ca8

File tree

104 files changed

+477
-821
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+477
-821
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ Pull requests should be made to the Dev branch as that is the working branch, ma
22
======
33
For anyone who wants to provide translations please submit them to https://crowdin.com/project/vanced-manager as we also use it for YouTube Vanced. Any issues with translations should be posted there too.
44
======
5+
Vanced FAQ (from the faq branch) now available on the playstore! https://play.google.com/store/apps/details?id=com.vanced.faq
6+
## The FAQ app has just been suspended due to "Impersonating Vanced", an appeal has been filed, reporting other apps which impersonate Vanced on the play store is appreciated.
7+
58
[![Github All Releases](https://img.shields.io/github/downloads/YTVanced/VancedManager/total.svg)](https://github.com/YTVanced/VancedManager/releases/latest) [![Github All Releases](https://img.shields.io/github/release/YTVanced/VancedManager.svg)](https://github.com/YTVanced/VancedManager/releases/latest)
69
# Vanced Manager
710
Hi, when we released Vanced 15.05.54, people were upset because it used the .apks format, which was way harder to install than a traditional .apk file. Even though we wrote clear instructions on how to install the new Vanced build, people still couldn't figure it out.

app/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ android {
1515
applicationId = "com.vanced.manager"
1616
minSdkVersion(21)
1717
targetSdkVersion(30)
18-
versionCode = 221
19-
versionName = "2.2.1 (RootedFirebase)"
18+
versionCode = 230
19+
versionName = "2.3.0 (MicroShitMoment)"
2020

2121
vectorDrawables.useSupportLibrary = true
2222

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<package android:name="com.vanced.android.apps.youtube.music" />
2222
<package android:name="com.google.android.apps.youtube.music" />
2323
<package android:name="com.mgoogle.android.gms" />
24+
<package android:name="com.android.vending" />
2425
</queries>
2526

2627
<application
@@ -72,10 +73,6 @@
7273

7374
</activity>
7475

75-
<meta-data
76-
android:name="preloaded_fonts"
77-
android:resource="@array/preloaded_fonts" />
78-
7976
<provider
8077
android:name="androidx.core.content.FileProvider"
8178
android:authorities="${applicationId}.provider"

app/src/main/java/com/vanced/manager/adapter/AppListAdapter.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ import com.vanced.manager.model.DataModel
1414
import com.vanced.manager.model.RootDataModel
1515
import com.vanced.manager.ui.dialogs.AppInfoDialog
1616
import com.vanced.manager.ui.viewmodels.HomeViewModel
17+
import com.vanced.manager.utils.enableMusic
18+
import com.vanced.manager.utils.enableVanced
19+
import com.vanced.manager.utils.managerVariant
1720

1821
class AppListAdapter(
1922
private val context: FragmentActivity,
@@ -28,15 +31,14 @@ class AppListAdapter(
2831
private val prefs = getDefaultSharedPreferences(context)
2932
private var itemCount = 0
3033

31-
private val isRoot = prefs.getString("vanced_variant", "nonroot") == "root"
34+
private val isRoot = prefs.managerVariant == "root"
3235

3336
inner class ListViewHolder(private val binding: ViewAppBinding) : RecyclerView.ViewHolder(binding.root) {
3437
val appCard = binding.appCard
3538
fun bind(position: Int) {
3639
val dataModel = if (isRoot) rootDataModels[position] else dataModels[position]
3740
with(binding) {
3841
appName.text = dataModel?.appName
39-
appInstallButton.text = dataModel?.buttonTxt?.value
4042
dataModel?.buttonTxt?.observe(lifecycleOwner) {
4143
appInstallButton.text = it
4244
}
@@ -57,11 +59,9 @@ class AppListAdapter(
5759
appUninstall.isVisible = it
5860
appLaunch.isVisible = it
5961
}
60-
appRemoteVersion.text = dataModel?.versionName?.value
6162
dataModel?.versionName?.observe(lifecycleOwner) {
6263
appRemoteVersion.text = it
6364
}
64-
appInstalledVersion.text = dataModel?.installedVersionName?.value
6565
dataModel?.installedVersionName?.observe(lifecycleOwner) {
6666
appInstalledVersion.text = it
6767
}
@@ -91,7 +91,7 @@ class AppListAdapter(
9191

9292
init {
9393

94-
if (prefs.getBoolean("enable_vanced", true)) {
94+
if (prefs.enableVanced) {
9595
if (isRoot) {
9696
rootDataModels.add(viewModel.vancedRootModel.value)
9797
} else {
@@ -101,7 +101,7 @@ class AppListAdapter(
101101
itemCount++
102102
}
103103

104-
if (prefs.getBoolean("enable_music", true)) {
104+
if (prefs.enableMusic) {
105105
if (isRoot) {
106106
rootDataModels.add(viewModel.musicRootModel.value)
107107
} else {

app/src/main/java/com/vanced/manager/adapter/SelectAppsAdapter.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import androidx.recyclerview.widget.RecyclerView
88
import com.vanced.manager.R
99
import com.vanced.manager.databinding.ViewAppCheckboxBinding
1010
import com.vanced.manager.model.SelectAppModel
11+
import com.vanced.manager.utils.enableMusic
12+
import com.vanced.manager.utils.enableVanced
1113

1214
class SelectAppsAdapter(private val context: Context) :
1315
RecyclerView.Adapter<SelectAppsAdapter.SelectAppsViewHolder>() {
@@ -18,14 +20,14 @@ class SelectAppsAdapter(private val context: Context) :
1820
context.getString(R.string.vanced),
1921
context.getString(R.string.select_apps_vanced),
2022
"vanced",
21-
prefs.getBoolean("enable_vanced", true)
23+
prefs.enableVanced
2224
)
2325

2426
private val music = SelectAppModel(
2527
context.getString(R.string.music),
2628
context.getString(R.string.select_apps_music),
2729
"music",
28-
prefs.getBoolean("enable_music", true)
30+
prefs.enableMusic
2931
)
3032

3133
val apps = arrayOf(vanced, music)

app/src/main/java/com/vanced/manager/adapter/SponsorAdapter.kt

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -56,26 +56,6 @@ class SponsorAdapter(
5656

5757
override fun getItemCount(): Int = 2
5858

59-
// fun getCountryFromIP(ipAddress: String?): String? {
60-
// val db = context.assets.open("GeoLite2-Country.mmdb")
61-
// val reader = DatabaseReader.Builder(db).build()
62-
// val inetIp = InetAddress.getByName(ipAddress)
63-
// return reader.country(inetIp).country.isoCode
64-
// }
65-
//
66-
// init {
67-
// json.addOnPropertyChangedCallback(object : Observable.OnPropertyChangedCallback() {
68-
// override fun onPropertyChanged(sender: Observable?, propertyId: Int) {
69-
// val wm = context.applicationContext.getSystemService(WIFI_SERVICE) as WifiManager?
70-
// val ip: String = formatIpAddress(wm!!.connectionInfo.ipAddress)
71-
// val promotedTiers = json.get()?.array<String>("tier2")?.value!! + json.get()?.array<String>("tier3")?.value!!
72-
// if (promotedTiers.any { getCountryFromIP(ip)?.contains(it)!! })
73-
// sponsors.removeAt(1)
74-
// }
75-
//
76-
// })
77-
// }
78-
7959
companion object {
8060
const val BRAVE = "https://vancedapp.com/brave"
8161
const val ADGUARD = "https://adguard.com/?aid=31141&source=manager"

app/src/main/java/com/vanced/manager/core/downloader/MicrogDownloader.kt

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import com.vanced.manager.R
55
import com.vanced.manager.utils.DownloadHelper.download
66
import com.vanced.manager.utils.DownloadHelper.downloadProgress
77
import com.vanced.manager.utils.PackageHelper.install
8-
import com.vanced.manager.utils.getDefaultPrefs
9-
import com.vanced.manager.utils.getInstallUrl
8+
import com.vanced.manager.utils.baseInstallUrl
109
import com.vanced.manager.utils.microg
1110

1211
object MicrogDownloader {
@@ -16,13 +15,11 @@ object MicrogDownloader {
1615

1716
fun downloadMicrog(context: Context) {
1817
val url = microg.value?.string("url") ?: ""
19-
context.getDefaultPrefs().getInstallUrl()?.let {
20-
download(url, "$it/", folderName, fileName, context, onDownloadComplete = {
21-
startMicrogInstall(context)
22-
}, onError = {
23-
downloadProgress.value?.downloadingFile?.postValue(context.getString(R.string.error_downloading, fileName))
24-
})
25-
}
18+
download(url, "$baseInstallUrl/", folderName, fileName, context, onDownloadComplete = {
19+
startMicrogInstall(context)
20+
}, onError = {
21+
downloadProgress.value?.downloadingFile?.postValue(context.getString(R.string.error_downloading, fileName))
22+
})
2623

2724
}
2825

app/src/main/java/com/vanced/manager/core/downloader/MusicDownloader.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.vanced.manager.core.downloader
22

33
import android.content.Context
4-
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
54
import com.vanced.manager.R
65
import com.vanced.manager.utils.*
76
import com.vanced.manager.utils.AppUtils.musicRootPkg
@@ -23,11 +22,11 @@ object MusicDownloader {
2322
private var hashUrl: String? = null
2423

2524
fun downloadMusic(context: Context) {
26-
val prefs = getDefaultSharedPreferences(context)
27-
version = prefs.getString("music_version", "latest")?.getLatestAppVersion(musicVersions.value?.value ?: listOf(""))
25+
val prefs = context.defPrefs
26+
version = prefs.musicVersion?.getLatestAppVersion(musicVersions.value?.value ?: listOf(""))
2827
versionCode = music.value?.int("versionCode")
29-
variant = prefs.getString("vanced_variant", "nonroot")
30-
baseurl = "${prefs.getInstallUrl()}/music/v$version"
28+
variant = prefs.managerVariant
29+
baseurl = "$baseInstallUrl/music/v$version"
3130
folderName = "music/$variant"
3231
downloadPath = context.getExternalFilesDir(folderName)?.path
3332
hashUrl = "$baseurl/hash.json"
@@ -37,7 +36,7 @@ object MusicDownloader {
3736

3837
private fun downloadApk(context: Context, apk: String = "music") {
3938
val url = if (apk == "stock") "$baseurl/stock/${getArch()}.apk" else "$baseurl/$variant.apk"
40-
download(url, baseurl + "/", folderName!!, getFileNameFromUrl(url), context, onDownloadComplete = {
39+
download(url, "$baseurl/", folderName!!, getFileNameFromUrl(url), context, onDownloadComplete = {
4140
if (variant == "root" && apk != "stock") {
4241
downloadApk(context, "stock")
4342
return@download

app/src/main/java/com/vanced/manager/core/downloader/VancedDownloader.kt

Lines changed: 48 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.vanced.manager.core.downloader
33
import android.content.Context
44
import android.content.SharedPreferences
55
import android.util.Log
6-
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
76
import com.google.firebase.analytics.FirebaseAnalytics
87
import com.google.firebase.analytics.ktx.logEvent
98
import com.vanced.manager.R
@@ -16,14 +15,12 @@ import com.vanced.manager.utils.PackageHelper.downloadStockCheck
1615
import com.vanced.manager.utils.PackageHelper.installVanced
1716
import com.vanced.manager.utils.PackageHelper.installVancedRoot
1817
import java.io.File
19-
import java.lang.Exception
2018

2119
object VancedDownloader {
2220

2321
private lateinit var prefs: SharedPreferences
2422
private lateinit var defPrefs: SharedPreferences
2523
private lateinit var arch: String
26-
private var installUrl: String? = null
2724
private var variant: String? = null
2825
private var theme: String? = null
2926
private var lang = mutableListOf<String>()
@@ -40,22 +37,20 @@ object VancedDownloader {
4037
private var downloadPath: String? = null
4138
private var folderName: String? = null
4239

43-
fun downloadVanced(context: Context) {
44-
defPrefs = getDefaultSharedPreferences(context)
45-
prefs = context.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
46-
variant = defPrefs.getString("vanced_variant", "nonroot")
40+
fun downloadVanced(context: Context, version: String?) {
41+
defPrefs = context.defPrefs
42+
prefs = context.installPrefs
43+
variant = defPrefs.managerVariant
4744
folderName = "vanced/$variant"
4845
downloadPath = context.getExternalFilesDir(folderName)?.path
4946
File(downloadPath.toString()).deleteRecursively()
50-
installUrl = defPrefs.getInstallUrl()
51-
prefs.getString("lang", getDefaultVancedLanguages())?.let {
47+
prefs.lang?.let {
5248
lang = it.split(", ").toMutableList()
5349
}
54-
theme = prefs.getString("theme", "dark")
55-
vancedVersion = defPrefs.getString("vanced_version", "latest")?.getLatestAppVersion(vancedVersions.value?.value ?: listOf(""))
56-
themePath = "$installUrl/apks/v$vancedVersion/$variant/Theme"
50+
theme = prefs.theme
51+
vancedVersion = version ?: defPrefs.vancedVersion?.getLatestAppVersion(vancedVersions.value?.value ?: listOf(""))
52+
themePath = "$baseInstallUrl/apks/v$vancedVersion/$variant/Theme"
5753
hashUrl = "apks/v$vancedVersion/$variant/Theme/hash.json"
58-
//newInstaller = defPrefs.getBoolean("new_installer", false)
5954
arch = getArch()
6055
count = 0
6156

@@ -72,57 +67,55 @@ object VancedDownloader {
7267
private fun downloadSplits(context: Context, type: String = "theme") {
7368
val url = when (type) {
7469
"theme" -> "$themePath/$theme.apk"
75-
"arch" -> "$installUrl/apks/v$vancedVersion/$variant/Arch/split_config.$arch.apk"
70+
"arch" -> "$baseInstallUrl/apks/v$vancedVersion/$variant/Arch/split_config.$arch.apk"
7671
"stock" -> "$themePath/stock.apk"
7772
"dpi" -> "$themePath/dpi.apk"
78-
"lang" -> "$installUrl/apks/v$vancedVersion/$variant/Language/split_config.${lang[count]}.apk"
73+
"lang" -> "$baseInstallUrl/apks/v$vancedVersion/$variant/Language/split_config.${lang[count]}.apk"
7974
else -> throw NotImplementedError("This type of APK is NOT valid. What the hell did you even do?")
8075
}
8176

82-
installUrl?.let {
83-
download(url, "$it/", folderName!!, getFileNameFromUrl(url), context, onDownloadComplete = {
84-
when (type) {
85-
"theme" ->
86-
if (variant == "root") {
87-
if (validateTheme(downloadPath!!, theme!!, hashUrl, context)) {
88-
if (downloadStockCheck(vancedRootPkg, vancedVersionCode, context))
89-
downloadSplits(context, "arch")
90-
else
91-
startVancedInstall(context)
92-
} else
93-
downloadSplits(context, "theme")
77+
download(url, "$baseInstallUrl/", folderName!!, getFileNameFromUrl(url), context, onDownloadComplete = {
78+
when (type) {
79+
"theme" ->
80+
if (variant == "root") {
81+
if (validateTheme(downloadPath!!, theme!!, hashUrl, context)) {
82+
if (downloadStockCheck(vancedRootPkg, vancedVersionCode, context))
83+
downloadSplits(context, "arch")
84+
else
85+
startVancedInstall(context)
9486
} else
95-
downloadSplits(context, "arch")
96-
"arch" -> if (variant == "root") downloadSplits(context, "stock") else downloadSplits(context, "lang")
97-
"stock" -> downloadSplits(context, "dpi")
98-
"dpi" -> downloadSplits(context, "lang")
99-
"lang" -> {
100-
count++
101-
succesfulLangCount++
102-
if (count < lang.size)
103-
downloadSplits(context, "lang")
104-
else
105-
startVancedInstall(context)
106-
}
107-
108-
}
109-
}, onError = {
110-
if (type == "lang") {
87+
downloadSplits(context, "theme")
88+
} else
89+
downloadSplits(context, "arch")
90+
"arch" -> if (variant == "root") downloadSplits(context, "stock") else downloadSplits(context, "lang")
91+
"stock" -> downloadSplits(context, "dpi")
92+
"dpi" -> downloadSplits(context, "lang")
93+
"lang" -> {
11194
count++
112-
when {
113-
count < lang.size -> downloadSplits(context, "lang")
114-
succesfulLangCount == 0 -> {
115-
lang.add("en")
116-
downloadSplits(context, "lang")
117-
}
118-
else -> startVancedInstall(context)
119-
}
95+
succesfulLangCount++
96+
if (count < lang.size)
97+
downloadSplits(context, "lang")
98+
else
99+
startVancedInstall(context)
100+
}
120101

121-
} else {
122-
downloadProgress.value?.downloadingFile?.postValue(context.getString(R.string.error_downloading, getFileNameFromUrl(url)))
102+
}
103+
}, onError = {
104+
if (type == "lang") {
105+
count++
106+
when {
107+
count < lang.size -> downloadSplits(context, "lang")
108+
succesfulLangCount == 0 -> {
109+
lang.add("en")
110+
downloadSplits(context, "lang")
111+
}
112+
else -> startVancedInstall(context)
123113
}
124-
})
125-
}
114+
115+
} else {
116+
downloadProgress.value?.downloadingFile?.postValue(context.getString(R.string.error_downloading, getFileNameFromUrl(url)))
117+
}
118+
})
126119
}
127120

128121
fun startVancedInstall(context: Context, variant: String? = this.variant) {

0 commit comments

Comments
 (0)