diff --git a/app/src/main/java/com/vanced/manager/model/DataModel.kt b/app/src/main/java/com/vanced/manager/model/DataModel.kt index 17f86a1f..a6e244a4 100644 --- a/app/src/main/java/com/vanced/manager/model/DataModel.kt +++ b/app/src/main/java/com/vanced/manager/model/DataModel.kt @@ -2,42 +2,45 @@ package com.vanced.manager.model import android.content.Context import android.graphics.drawable.Drawable +import android.os.Build import androidx.preference.PreferenceManager.getDefaultSharedPreferences import com.vanced.manager.utils.InternetTools.getJsonInt import com.vanced.manager.utils.InternetTools.getJsonString import com.vanced.manager.utils.PackageHelper.isPackageInstalled +import com.vanced.manager.R +import kotlinx.coroutines.runBlocking open class DataModel( private val jsonName: String, private val context: Context ) { - private val variant = getDefaultSharedPreferences(context).getString("vanced_variant") + private val variant = getDefaultSharedPreferences(context).getString("vanced_variant", "nonroot") private val appPkg = when (jsonName) { "vanced" -> if (variant == "root") "com.google.android.youtube" else "com.vanced.android.youtube" "microg" -> "com.mgoogle.android.gms" - "music" -> "com.vanced.android.youtube.music" + else -> "com.vanced.android.youtube.music" } open fun isAppInstalled(): Boolean = isPackageInstalled(appPkg, context.packageManager) - open fun getVersionName(): String = getJsonString("$jsonName.json", "version") + open fun getVersionName(): String = runBlocking { getJsonString("$jsonName.json", "version", context) } - open fun getVersionCode(): Int = getJsonInt("$jsonName.json", "versionCode") + open fun getVersionCode(): Int = runBlocking { getJsonInt("$jsonName.json", "versionCode", context) } - open fun getInstalledVersionName(): String = getPkgVersion(isAppInstalled(), pkgPkg) + open fun getInstalledVersionName(): String = getPkgVersion(isAppInstalled(), appPkg) - open fun getInstalledVersionCode(): Int = getJsonInt("$jsonName.json", "versionCode") + open fun getInstalledVersionCode(): Int = runBlocking { getJsonInt("$jsonName.json", "versionCode", context) } open fun getButtonTxt(): String = compareInt(getInstalledVersionCode(), getVersionCode()) - open fun getButtonIcon(): Drawable = compareIntDrawable(getInstalledVersionCode(), getVersionCode()) + open fun getButtonIcon(): Drawable? = compareIntDrawable(getInstalledVersionCode(), getVersionCode()) private fun getPkgVersion(toCheck: Boolean, pkg: String): String { return if (toCheck) { - pm.getPackageInfo(pkg, 0).versionName + context.packageManager.getPackageInfo(pkg, 0).versionName } else { context.getString(R.string.unavailable) } @@ -47,9 +50,9 @@ open class DataModel( private fun getPkgVerCode(toCheck: Boolean, pkg: String): Int { return if (toCheck) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) - pm.getPackageInfo(pkg, 0).longVersionCode.and(0xFFFFFFFF).toInt() + context.packageManager.getPackageInfo(pkg, 0).longVersionCode.and(0xFFFFFFFF).toInt() else - pm.getPackageInfo(pkg, 0).versionCode + context.packageManager.getPackageInfo(pkg, 0).versionCode } else 0 } 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 cfedaa89..112577f5 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 @@ -49,7 +49,7 @@ class HomeFragment : Fragment(), View.OnClickListener { binding.viewModel = viewModel val arg = "variant" - val variant = getDefaultSharedPreferences(requireActivity()).getString("vanced_variant") + val variant = getDefaultSharedPreferences(requireActivity()).getString("vanced_variant", "nonroot") with(binding) { when (variant) { @@ -63,9 +63,6 @@ class HomeFragment : Fragment(), View.OnClickListener { } with(binding) { - rootSwitch.setOnClickListener(this@HomeFragment) - nonrootSwitch.setOnClickListener(this@HomeFragment) - includeVancedLayout.vancedInstallbtn.setOnClickListener(this@HomeFragment) includeVancedLayout.vancedUninstallbtn.setOnClickListener(this@HomeFragment) includeMicrogLayout.microgInstallbtn.setOnClickListener(this@HomeFragment) @@ -74,12 +71,12 @@ class HomeFragment : Fragment(), View.OnClickListener { } binding.includeVancedLayout.vancedCard.setOnLongClickListener { - versionToast("Vanced", viewModel.vancedInstalledVersion.get()) + versionToast("Vanced", viewModel.vanced.get()?.getInstalledVersionName()!!) true } binding.includeMicrogLayout.microgCard.setOnLongClickListener { - versionToast("MicroG", viewModel.microgInstalledVersion.get()) + versionToast("MicroG", viewModel.microg.get()?.getInstalledVersionName()!!) true } @@ -117,7 +114,7 @@ class HomeFragment : Fragment(), View.OnClickListener { R.id.vanced_installbtn -> { if (!installing) { if (!viewModel.fetching.get()!!) { - if (variant == "nonroot" && !viewModel.microgInstalled.get()!!) { + if (variant == "nonroot" && !viewModel.microg.get()?.isAppInstalled()!!) { Snackbar.make( binding.homeRefresh, R.string.no_microg, @@ -155,29 +152,10 @@ class HomeFragment : Fragment(), View.OnClickListener { } R.id.microg_uninstallbtn -> PackageHelper.uninstallApk("com.mgoogle.android.gms", requireActivity()) R.id.vanced_uninstallbtn -> PackageHelper.uninstallApk(vancedPkgName, requireActivity()) - R.id.nonroot_switch -> writeToVariantPref("nonroot", R.anim.slide_in_left, R.anim.slide_out_right) - R.id.root_switch -> - if (Shell.rootAccess()) { - writeToVariantPref("root", R.anim.slide_in_right, R.anim.slide_out_left) - } else { - writeToVariantPref("nonroot", R.anim.slide_in_left, R.anim.slide_out_right) - Toast.makeText(requireActivity(), activity?.getString(R.string.root_not_granted), Toast.LENGTH_SHORT).show() - } R.id.changelog_button -> cardExpandCollapse() } } - private fun writeToVariantPref(variant: String, animIn: Int, animOut: Int) { - val prefs = getDefaultSharedPreferences(activity) - if (prefs.getString("vanced_variant", "nonroot") != variant) { - prefs.edit().putString("vanced_variant", variant).apply() - startActivity(Intent(activity, MainActivity::class.java)) - activity?.overridePendingTransition(animIn, animOut) - activity?.finish() - } else - Log.d("VMVariant", "$variant is already selected") - } - private fun versionToast(name: String, app: String?) { val clip = requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager clip.setPrimaryClip(ClipData.newPlainText(name, app)) diff --git a/app/src/main/java/com/vanced/manager/utils/AppUtils.kt b/app/src/main/java/com/vanced/manager/utils/AppUtils.kt index 995755e9..a8717cbf 100644 --- a/app/src/main/java/com/vanced/manager/utils/AppUtils.kt +++ b/app/src/main/java/com/vanced/manager/utils/AppUtils.kt @@ -39,7 +39,7 @@ object AppUtils { status.contains("INSTALL_FAILED_INVALID_APK") -> context.getString(R.string.installation_invalid) status.contains("INSTALL_FAILED_VERSION_DOWNGRADE") -> context.getString(R.string.installation_downgrade) status.contains("INSTALL_PARSE_FAILED_NO_CERTIFICATES") -> context.getString(R.string.installation_signature) - status.contains("Failed_Uninstall") -> context.getString(R.string.Failed_Uninstall) + status.contains("Failed_Uninstall") -> context.getString(R.string.failed_uninstall) status.contains("Chown_Fail") -> context.getString(R.string.chown_fail) status.contains("IFile_Missing") -> context.getString(R.string.ifile_missing) status.contains("ModApk_Missing") -> context.getString(R.string.modapk_missing) diff --git a/app/src/main/res/layout/include_about_app_devs.xml b/app/src/main/res/layout/include_about_app_devs.xml index abfac5c6..cf26f60d 100644 --- a/app/src/main/res/layout/include_about_app_devs.xml +++ b/app/src/main/res/layout/include_about_app_devs.xml @@ -24,7 +24,19 @@ android:layout_height="wrap_content" android:text="- Xinto" android:textSize="18sp" /> + + + + - \ No newline at end of file + diff --git a/app/src/main/res/layout/include_microg.xml b/app/src/main/res/layout/include_microg.xml index 6bcf0d1f..0dd9a7c7 100644 --- a/app/src/main/res/layout/include_microg.xml +++ b/app/src/main/res/layout/include_microg.xml @@ -61,10 +61,10 @@ app:constraint_referenced_ids="microg_installbtn" /> @@ -80,12 +80,12 @@ + app:layout_constraintTop_toBottomOf="@id/microg_remote_container"> @@ -80,12 +80,12 @@ + app:layout_constraintTop_toBottomOf="@id/music_remote_container"> + android:text="@{viewModel.music.installedVersionName}" /> diff --git a/app/src/main/res/layout/include_vanced.xml b/app/src/main/res/layout/include_vanced.xml index 6cf73224..aaa1c4cb 100644 --- a/app/src/main/res/layout/include_vanced.xml +++ b/app/src/main/res/layout/include_vanced.xml @@ -72,10 +72,10 @@ app:srcCompat="@drawable/ic_delete_black_24dp" /> @@ -91,11 +91,11 @@ + app:layout_constraintTop_toBottomOf="@id/vanced_remote_container"> Failed To Chown Apk to system owner, Try Again Error Downloading %1$s Failed to uninstall package %1$s - Files are missing, Failed Download? + Files are missing, Failed Download? Dark/Black.apk Cannot Be Read(Did Storage Get Blocked?) or File Missing Installation failed because user aborted the installation. Installation failed because user blocked the installation. @@ -108,6 +108,6 @@ Installation failed because apk signature verification is enabled. Disable apk signature verification, then try again. Installation failed because MIUI Optimization is enabled. Disable MIUI Optimization, then try again. Installation failed due to a storage error. - Black/Dark apk missing from installer, This should not happen, please clear app data of manager + Black/Dark apk missing from installer, This should not happen, please clear app data of manager