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