diff --git a/app/app.iml b/app/app.iml
index bec73998..9c79cad0 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -70,17 +70,17 @@
-
-
-
-
+
+
+
+
-
+
@@ -135,10 +135,10 @@
-
-
+
+
diff --git a/app/src/main/java/com/vanced/manager/adapter/SectionPageRootAdapter.kt b/app/src/main/java/com/vanced/manager/adapter/SectionPageRootAdapter.kt
new file mode 100644
index 00000000..ec7b1e4e
--- /dev/null
+++ b/app/src/main/java/com/vanced/manager/adapter/SectionPageRootAdapter.kt
@@ -0,0 +1,24 @@
+package com.vanced.manager.adapter
+
+import androidx.fragment.app.Fragment
+import androidx.viewpager2.adapter.FragmentStateAdapter
+import com.vanced.manager.ui.fragments.ManagerChangelogFragment
+import com.vanced.manager.ui.fragments.VancedChangelogFragment
+
+class SectionPageRootAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
+
+ private val fragmentItems = 2
+ override fun getItemCount(): Int {
+ return fragmentItems
+ }
+
+ override fun createFragment(position: Int): Fragment {
+ var fragment: Fragment? = null
+ when (position) {
+ 0 -> fragment = VancedChangelogFragment()
+ 1 -> fragment = ManagerChangelogFragment()
+ }
+ return fragment!!
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/vanced/manager/core/Main.kt b/app/src/main/java/com/vanced/manager/core/Main.kt
index 5ab7bbf4..9f9a8b32 100644
--- a/app/src/main/java/com/vanced/manager/core/Main.kt
+++ b/app/src/main/java/com/vanced/manager/core/Main.kt
@@ -85,7 +85,23 @@ open class Main: BaseActivity() {
}
fun secondMiuiDialog() {
- basicAlertBuilder("I'm gonna stop you right there!", "I am once again asking you to disable MiUI optimisations if you have not already. K thx bai")
+ AlertDialog.Builder(this)
+ .setTitle("I'm gonna stop you right there!")
+ .setMessage("I am once again asking you to disable MiUI optimisations if you have not already. K thx bai")
+ .setPositiveButton("wut?") { dialog, _ ->
+ run {
+ if (PreferenceManager.getDefaultSharedPreferences(this).getString("vanced_variant", "Nonroot") == "Root")
+ rootModeDetected()
+ else
+ dialog.dismiss()
+ }
+ }
+ .create()
+ .show()
+ }
+
+ fun rootModeDetected() {
+ basicAlertBuilder("Root mode detected!", "In order for app to work properly, please make sure you disabled signature verification.")
}
//Easter Egg
diff --git a/app/src/main/java/com/vanced/manager/core/base/BaseFragment.kt b/app/src/main/java/com/vanced/manager/core/base/BaseFragment.kt
index 0e75590a..f427e5cb 100644
--- a/app/src/main/java/com/vanced/manager/core/base/BaseFragment.kt
+++ b/app/src/main/java/com/vanced/manager/core/base/BaseFragment.kt
@@ -27,6 +27,7 @@ import zlc.season.rxdownload4.download
import zlc.season.rxdownload4.file
import zlc.season.rxdownload4.task.Task
import zlc.season.rxdownload4.utils.getFileNameFromUrl
+import java.io.File
@SuppressLint("SetTextI18n")
open class BaseFragment : Fragment() {
@@ -50,16 +51,27 @@ open class BaseFragment : Fragment() {
}
}
+ @SuppressLint("SdCardPath")
+ fun isRootVancedInstalled(): Boolean {
+ val file = File("/data/data/com.google.android.youtube/shared_prefs/youtube_vanced.xml")
+ return activity?.packageManager?.let {
+ isPackageInstalled("com.google.android.youtube",
+ it
+ )
+ }!! && file.exists()
+ }
+
fun downloadArch(loadBar: ProgressBar, dlText: TextView, loadCircle: ProgressBar) {
val prefs = activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
prefs?.edit()?.putBoolean("isVancedDownloading", true)?.apply()
+ val variant = PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot")
val arch =
when {
Build.SUPPORTED_ABIS.contains("x86") -> "x86"
Build.SUPPORTED_ABIS.contains("arm64-v8a") -> "arm64_v8a"
else -> "armeabi_v7a"
}
- val url = "$baseUrl/Config/config.$arch.apk"
+ val url = "$baseUrl/$variant/Config/config.$arch.apk"
val task = activity?.cacheDir?.path?.let {
Task(
url = url,
@@ -89,10 +101,12 @@ open class BaseFragment : Fragment() {
}
)
}
+
private fun downloadTheme(loadBar: ProgressBar, dlText: TextView, loadCircle: ProgressBar) {
+ val variant = PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot")
val prefs = activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val theme = prefs?.getString("theme", "dark")
- val url = "$baseUrl/Theme/$theme.apk"
+ val url = "$baseUrl/$variant/Theme/$theme.apk"
val task = activity?.cacheDir?.path?.let {
Task(
@@ -123,9 +137,10 @@ open class BaseFragment : Fragment() {
}
private fun downloadLang(loadBar: ProgressBar, dlText: TextView, loadCircle: ProgressBar) {
+ val variant = PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot")
val prefs = activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val lang = prefs?.getString("lang", "en")
- val url = "$baseUrl/Language/split_config.$lang.apk"
+ val url = "$baseUrl/$variant/Language/split_config.$lang.apk"
val task = activity?.cacheDir?.path?.let {
Task(
@@ -154,7 +169,11 @@ open class BaseFragment : Fragment() {
dlText.visibility = View.GONE
loadCircle.visibility = View.VISIBLE
prefs.edit()?.putBoolean("isVancedDownloading", false)?.apply()
- launchInstaller()
+ if (PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot") == "Root") {
+ launchRootInstaller()
+ } else {
+ launchInstaller()
+ }
}
},
onError = { throwable ->
@@ -164,8 +183,9 @@ open class BaseFragment : Fragment() {
}
private fun downloadEn(loadBar: ProgressBar, dlText: TextView, loadCircle: ProgressBar) {
+ val variant = PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot")
val prefs = activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
- val url = "https://x1nto.github.io/VancedFiles/Splits/Language/split_config.en.apk"
+ val url = "https://x1nto.github.io/VancedFiles/Splits/$variant/Language/split_config.en.apk"
val task = activity?.cacheDir?.path?.let {
Task(
url = url,
@@ -191,7 +211,7 @@ open class BaseFragment : Fragment() {
dlText.visibility = View.GONE
loadCircle.visibility = View.VISIBLE
prefs?.edit()?.putBoolean("isVancedDownloading", false)?.apply()
- if (PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "nonroot") == "root") {
+ if (PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot") == "Root") {
launchRootInstaller()
} else {
launchInstaller()
diff --git a/app/src/main/java/com/vanced/manager/core/fragments/Home.kt b/app/src/main/java/com/vanced/manager/core/fragments/Home.kt
index 7a4d81bd..e2db1cf8 100644
--- a/app/src/main/java/com/vanced/manager/core/fragments/Home.kt
+++ b/app/src/main/java/com/vanced/manager/core/fragments/Home.kt
@@ -44,13 +44,24 @@ open class Home : BaseFragment() {
//we need to check whether these apps are installed or not
val microgStatus = pm?.let { isPackageInstalled("com.mgoogle.android.gms", it) }
- val vancedStatus = pm?.let { isPackageInstalled("com.vanced.android.youtube", it) }
+ val vancedStatus =
+ if (PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot") == "Root")
+ isRootVancedInstalled()
+ else
+ pm?.let { isPackageInstalled("com.vanced.android.youtube", it) }
vancedinstallbtn.setOnClickListener {
if (!isVancedDownloading!!) {
- if (MiuiHelper.isMiui()) {
- val mainActivity = (activity as MainActivity)
- mainActivity.secondMiuiDialog()
+ val mainActivity = (activity as MainActivity)
+ if (PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot") == "Root") {
+ if (MiuiHelper.isMiui()) {
+ mainActivity.secondMiuiDialog()
+ } else
+ mainActivity.rootModeDetected()
+ } else {
+ if (MiuiHelper.isMiui()) {
+ mainActivity.secondMiuiDialog()
+ }
}
try {
activity?.cacheDir?.deleteRecursively()
@@ -107,7 +118,11 @@ open class Home : BaseFragment() {
microgsettingsbtn.visibility = View.INVISIBLE
microguninstallbtn.visibility = View.INVISIBLE
microgVerText.text = getString(R.string.unavailable)
- vancedinstallbtn.isEnabled = PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "nonroot") != "nonroot"
+ vancedinstallbtn.isEnabled = PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot") != "Nonroot"
+ if (!vancedinstallbtn.isEnabled) {
+ vancedinstallbtn.setBackgroundColor(R.attr.colorDisabled)
+ vancedinstallbtn.setTextColor(R.attr.colorDisabledVariant)
+ }
}
val vancedVerText = view.findViewById(R.id.vanced_installed_version)
diff --git a/app/src/main/java/com/vanced/manager/ui/MainActivity.kt b/app/src/main/java/com/vanced/manager/ui/MainActivity.kt
index 2e8eafaa..9ea267a0 100644
--- a/app/src/main/java/com/vanced/manager/ui/MainActivity.kt
+++ b/app/src/main/java/com/vanced/manager/ui/MainActivity.kt
@@ -132,7 +132,11 @@ class MainActivity : Main() {
private fun launchVanced() {
val intent = Intent()
- intent.component = ComponentName("com.vanced.android.youtube", "com.google.android.youtube.HomeActivity")
+ intent.component =
+ if (PreferenceManager.getDefaultSharedPreferences(this).getString("vanced_variant", "Nonroot") == "Root")
+ ComponentName("com.google.android.youtube", "com.google.android.youtube.HomeActivity")
+ else
+ ComponentName("com.vanced.android.youtube", "com.google.android.youtube.HomeActivity")
AlertDialog.Builder(this)
.setTitle("Success!")
.setMessage("Vanced has been successfully installed, do you want to launch it now?")
diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/HomeFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/HomeFragment.kt
index 863b3300..2b3ef840 100644
--- a/app/src/main/java/com/vanced/manager/ui/fragments/HomeFragment.kt
+++ b/app/src/main/java/com/vanced/manager/ui/fragments/HomeFragment.kt
@@ -16,6 +16,7 @@ import com.google.android.material.tabs.TabLayout
import com.google.android.material.tabs.TabLayoutMediator
import com.vanced.manager.R
import com.vanced.manager.adapter.SectionPageAdapter
+import com.vanced.manager.adapter.SectionPageRootAdapter
import com.vanced.manager.core.fragments.Home
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
@@ -25,6 +26,7 @@ import io.reactivex.schedulers.Schedulers
class HomeFragment : Home() {
private lateinit var sectionPageAdapter: SectionPageAdapter
+ private lateinit var sectionPageRootAdapter: SectionPageRootAdapter
private lateinit var viewPager: ViewPager2
private var disposable: Disposable? = null
@@ -43,7 +45,7 @@ class HomeFragment : Home() {
initNetworkFun()
- val variantPref = getDefaultSharedPreferences(activity).getString("vanced_variant", "nonroot")
+ val variantPref = getDefaultSharedPreferences(activity).getString("vanced_variant", "Nonroot")
val microgWrapper = view.findViewById(R.id.home_microg_wrapper)
if (variantPref == "root") {
@@ -56,18 +58,10 @@ class HomeFragment : Home() {
}
}
- sectionPageAdapter = SectionPageAdapter(this)
- val tabLayout = view.findViewById(R.id.tablayout) as TabLayout
- viewPager = view.findViewById(R.id.viewpager)
- viewPager.adapter = sectionPageAdapter
-
- TabLayoutMediator(tabLayout, viewPager) { tab, position ->
- when (position) {
- 0 -> tab.text = "Vanced"
- 1 -> tab.text = "MicroG"
- 2 -> tab.text = "Manager"
- }
- }.attach()
+ if (variantPref == "Root")
+ attachRootChangelog()
+ else
+ attachNonrootChangelog()
}
@@ -103,7 +97,7 @@ class HomeFragment : Home() {
GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/microg.json")
.get("versionCode").asInt
- if (variant == "nonroot") {
+ if (variant == "Nonroot") {
val microgLatestTxt =
view?.findViewById(R.id.microg_latest_version)
val microginstallbtn =
@@ -224,6 +218,35 @@ class HomeFragment : Home() {
}
}
+ private fun attachNonrootChangelog() {
+ sectionPageAdapter = SectionPageAdapter(this)
+ val tabLayout = view?.findViewById(R.id.tablayout) as TabLayout
+ viewPager = view?.findViewById(R.id.viewpager)!!
+ viewPager.adapter = sectionPageAdapter
+
+ TabLayoutMediator(tabLayout, viewPager) { tab, position ->
+ when (position) {
+ 0 -> tab.text = "Vanced"
+ 1 -> tab.text = "MicroG"
+ 2 -> tab.text = "Manager"
+ }
+ }.attach()
+ }
+
+ private fun attachRootChangelog() {
+ sectionPageRootAdapter = SectionPageRootAdapter(this)
+ val tabLayout = view?.findViewById(R.id.tablayout) as TabLayout
+ viewPager = view?.findViewById(R.id.viewpager)!!
+ viewPager.adapter = sectionPageRootAdapter
+
+ TabLayoutMediator(tabLayout, viewPager) { tab, position ->
+ when (position) {
+ 0 -> tab.text = "Vanced"
+ 1 -> tab.text = "Manager"
+ }
+ }.attach()
+ }
+
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.toolbar_menu, menu)
super .onCreateOptionsMenu(menu, inflater)
diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/SettingsFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/SettingsFragment.kt
index b795afa5..c9101810 100644
--- a/app/src/main/java/com/vanced/manager/ui/fragments/SettingsFragment.kt
+++ b/app/src/main/java/com/vanced/manager/ui/fragments/SettingsFragment.kt
@@ -38,12 +38,12 @@ class SettingsFragment : PreferenceFragmentCompat() {
}
val installMode: DropDownPreference? = findPreference("vanced_variant")
- installMode?.summary = preferenceScreen.sharedPreferences.getString("vanced_variant", "nonroot")
+ installMode?.summary = preferenceScreen.sharedPreferences.getString("vanced_variant", "Nonroot")
installMode?.setOnPreferenceChangeListener{ _, _ ->
when (installMode.value) {
- "root" -> {
+ "Root" -> {
if (!Shell.rootAccess()) {
- preferenceScreen.sharedPreferences.edit().putString("vanced_variant", "nonroot").apply()
+ preferenceScreen.sharedPreferences.edit().putString("vanced_variant", "Nonroot").apply()
}
}
}
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index b823364f..150f8ae4 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -35,8 +35,8 @@
- - nonroot
- - root
+ - Nonroot
+ - Root