From 7aac687b46c0d64ba70ec1b989e1a7931fd4d461 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Thu, 5 Nov 2020 10:36:50 -0500 Subject: [PATCH 1/3] Reorganize third party libraries --- app/build.gradle | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a9241887..8b0781f9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,7 +23,7 @@ android { versionCode 200 versionName "2.0.0 (.nomagiskui)" - vectorDrawables.useSupportLibrary = true + vectorDrawables.useSupportLibrary true buildConfigField "String[]", "MANAGER_LANGUAGES", "{" + surroundWithQuotes(langs) + "}" buildConfigField "Boolean", "ENABLE_CROWDIN_AUTH", "false" @@ -41,7 +41,7 @@ android { } applicationVariants.all { variant -> - variant.resValue "string", "versionName", variant.versionName + resValue "string", "versionName", versionName } buildTypes { @@ -116,20 +116,34 @@ dependencies { implementation 'com.google.android.material:material:1.3.0-alpha03' // Other + // JSON parser implementation 'com.beust:klaxon:5.4' + + // Crowdin implementation 'com.crowdin.platform:mobile-sdk:1.2.0' + + // Tips implementation 'com.github.florent37:viewtooltip:1.2.2' + + // HTTP networking implementation 'com.github.kittinunf.fuel:fuel:2.3.0' implementation 'com.github.kittinunf.fuel:fuel-coroutines:2.2.3' implementation 'com.github.kittinunf.fuel:fuel-json:2.2.3' - implementation 'com.github.topjohnwu.libsu:core:3.0.2' - implementation 'com.github.topjohnwu.libsu:io:3.0.2' - implementation 'com.google.android:flexbox:2.0.1' - implementation 'com.google.firebase:firebase-messaging:21.0.0' - implementation 'com.google.firebase:firebase-perf:19.0.9' - implementation 'com.google.firebase:firebase-analytics-ktx:18.0.0' - implementation 'com.google.firebase:firebase-crashlytics:17.2.2' - implementation 'com.mindorks.android:prdownloader:0.6.0' implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0' + // Root permissions + implementation 'com.github.topjohnwu.libsu:core:3.0.2' + implementation 'com.github.topjohnwu.libsu:io:3.0.2' + + // Layout + implementation 'com.google.android:flexbox:2.0.1' + + // File downloader + implementation 'com.mindorks.android:prdownloader:0.6.0' + + // Firebase + implementation 'com.google.firebase:firebase-analytics-ktx:18.0.0' + implementation 'com.google.firebase:firebase-crashlytics:17.2.2' + implementation 'com.google.firebase:firebase-messaging:21.0.0' + implementation 'com.google.firebase:firebase-perf:19.0.9' } From e856bcbbfe2e7af3982bff46b3ae5fffa2870715 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Thu, 5 Nov 2020 11:07:13 -0500 Subject: [PATCH 2/3] Some Kotlin cleanup --- .../core/downloader/VancedDownloader.kt | 4 +- .../ui/viewmodels/SettingsViewModel.kt | 6 +-- .../com/vanced/manager/utils/JsonHelper.kt | 2 +- .../com/vanced/manager/utils/PackageHelper.kt | 50 ++++++++----------- 4 files changed, 25 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/com/vanced/manager/core/downloader/VancedDownloader.kt b/app/src/main/java/com/vanced/manager/core/downloader/VancedDownloader.kt index 7e78695c..3385b5b9 100644 --- a/app/src/main/java/com/vanced/manager/core/downloader/VancedDownloader.kt +++ b/app/src/main/java/com/vanced/manager/core/downloader/VancedDownloader.kt @@ -121,7 +121,7 @@ object VancedDownloader { "lang" -> { count++ succesfulLangCount++ - if (count < lang?.count()!!) + if (count < lang?.size!!) downloadSplits(context, "lang") else startVancedInstall(context) @@ -133,7 +133,7 @@ object VancedDownloader { if (type == "lang") { count++ when { - count < lang?.count()!! -> downloadSplits(context, "lang") + count < lang?.size!! -> downloadSplits(context, "lang") succesfulLangCount == 0 -> { lang?.add("en") downloadSplits(context, "lang") diff --git a/app/src/main/java/com/vanced/manager/ui/viewmodels/SettingsViewModel.kt b/app/src/main/java/com/vanced/manager/ui/viewmodels/SettingsViewModel.kt index ef538802..f8cbecab 100644 --- a/app/src/main/java/com/vanced/manager/ui/viewmodels/SettingsViewModel.kt +++ b/app/src/main/java/com/vanced/manager/ui/viewmodels/SettingsViewModel.kt @@ -3,8 +3,4 @@ package com.vanced.manager.ui.viewmodels import androidx.fragment.app.FragmentActivity import androidx.lifecycle.ViewModel -class SettingsViewModel(activity: FragmentActivity) : ViewModel() { - - - -} \ No newline at end of file +class SettingsViewModel(activity: FragmentActivity) : ViewModel() \ No newline at end of file diff --git a/app/src/main/java/com/vanced/manager/utils/JsonHelper.kt b/app/src/main/java/com/vanced/manager/utils/JsonHelper.kt index 12a91922..f2d23911 100644 --- a/app/src/main/java/com/vanced/manager/utils/JsonHelper.kt +++ b/app/src/main/java/com/vanced/manager/utils/JsonHelper.kt @@ -9,7 +9,7 @@ import com.github.kittinunf.fuel.httpGet object JsonHelper { - var dataMap: HashMap = HashMap() + private var dataMap: HashMap = HashMap() suspend fun getJson(url: String): JsonObject? { return try { diff --git a/app/src/main/java/com/vanced/manager/utils/PackageHelper.kt b/app/src/main/java/com/vanced/manager/utils/PackageHelper.kt index a39e67f5..ce4727e7 100644 --- a/app/src/main/java/com/vanced/manager/utils/PackageHelper.kt +++ b/app/src/main/java/com/vanced/manager/utils/PackageHelper.kt @@ -29,7 +29,7 @@ import kotlin.collections.ArrayList import kotlin.collections.HashMap object PackageHelper { - + private const val apkInstallPath = "/data/adb/Vanced/" fun isPackageInstalled(packageName: String, packageManager: PackageManager): Boolean { return try { @@ -116,7 +116,7 @@ object PackageHelper { e.printStackTrace() } } - + fun install(path: String, context: Context) { val callbackIntent = Intent(context, AppInstallerService::class.java) val pendingIntent = PendingIntent.getService(context, 0, callbackIntent, 0) @@ -136,7 +136,7 @@ object PackageHelper { outputStream.close() session.commit(pendingIntent.intentSender) } - + fun installVanced(context: Context): Int { val apkFolderPath = context.getExternalFilesDir("vanced/nonroot")?.path.toString() + "/" val nameSizeMap = HashMap() @@ -238,7 +238,7 @@ object PackageHelper { session!!.close() } } - + fun installVancedRoot(context: Context) { CoroutineScope(Dispatchers.IO).launch { Shell.enableVerboseLogging = BuildConfig.DEBUG @@ -254,11 +254,8 @@ object PackageHelper { val apkFilesPath = context.getExternalFilesDir("vanced/root")?.path val fileInfoList = apkFilesPath?.let { it1 -> getFileInfoList(it1) } if (fileInfoList != null) { - var modApk: FileInfo? = null - for (file in fileInfoList) { - if (file.name == "dark.apk" || file.name == "black.apk") { - modApk = file - } + val modApk: FileInfo? = fileInfoList.lastOrNull { + it.name == "dark.apk" || it.name == "black.apk" } if (modApk != null) { if (overwriteBase(modApk, fileInfoList, vancedVersionCode!!, context)) { @@ -281,7 +278,7 @@ object PackageHelper { } } - + private fun installSplitApkFiles(apkFiles: ArrayList, context: Context) : Boolean { var sessionId: Int? Log.d("AppLog", "installing split apk files:$apkFiles") @@ -315,8 +312,8 @@ object PackageHelper { val installResult = Shell.su("pm install-commit $sessionId").exec() if (installResult.isSuccess) { return true - } else - sendFailure(installResult.out, context) + } + sendFailure(installResult.out, context) return false } @@ -333,8 +330,9 @@ object PackageHelper { if (parentFile.exists() && parentFile.canRead()) { val listFiles = parentFile.listFiles() ?: return ArrayList() - for (file in listFiles) - result.add(FileInfo(file.name, file.length(), file)) + listFiles.mapTo(result) { + FileInfo(it.name, it.length(), it) + } return result } val longLines = Shell.su("ls -l $splitApkPath").exec().out @@ -425,9 +423,7 @@ object PackageHelper { } return true } - else { - return fixNoInstall(baseApkFiles, context) - } + return fixNoInstall(baseApkFiles, context) } return fixNoInstall(baseApkFiles, context) } @@ -508,10 +504,8 @@ object PackageHelper { return false } } - else { - sendFailure(listOf("IFile_Missing").toMutableList(), context) - return false - } + sendFailure(listOf("IFile_Missing").toMutableList(), context) + return false } @@ -534,14 +528,12 @@ object PackageHelper { if(execRes.isSuccess) { val result = execRes.out var version = 0 - for(line in result) { - val versionCode = line.substringAfter("=") - val versionCodeFiltered = versionCode.substringBefore(" ") - if(version < Integer.valueOf(versionCodeFiltered)) - { - version = Integer.valueOf(versionCodeFiltered) - } - } + result + .asSequence() + .map { it.substringAfter("=") } + .map { it.substringBefore(" ") } + .filter { version < Integer.valueOf(it) } + .forEach { version = Integer.valueOf(it) } return version } } From cf0b0de4780baf837a65c2b63e5ba6bc41555f92 Mon Sep 17 00:00:00 2001 From: TacoTheDank Date: Thu, 5 Nov 2020 11:35:49 -0500 Subject: [PATCH 3/3] Use some KTX extensions --- .../com/vanced/manager/ui/core/EmptyPreference.kt | 7 ++++--- .../com/vanced/manager/ui/core/PreferenceSwitch.kt | 3 ++- .../com/vanced/manager/ui/dialogs/DialogContainer.kt | 5 +++-- .../manager/ui/dialogs/ManagerAccentColorDialog.kt | 3 ++- .../manager/ui/dialogs/ManagerLanguageDialog.kt | 3 ++- .../vanced/manager/ui/dialogs/ManagerThemeDialog.kt | 3 ++- .../com/vanced/manager/ui/dialogs/SelectAppsDialog.kt | 3 ++- .../com/vanced/manager/ui/dialogs/URLChangeDialog.kt | 3 ++- .../ui/dialogs/VancedLanguageSelectionDialog.kt | 3 ++- .../manager/ui/dialogs/VancedPreferencesDialog.kt | 3 ++- .../com/vanced/manager/ui/fragments/AboutFragment.kt | 3 ++- .../manager/ui/fragments/DevSettingsFragment.kt | 11 +++++++---- .../vanced/manager/ui/fragments/GrantRootFragment.kt | 3 ++- .../com/vanced/manager/ui/fragments/HomeFragment.kt | 9 +++++---- .../vanced/manager/ui/fragments/SelectAppsFragment.kt | 3 ++- .../java/com/vanced/manager/utils/DownloadHelper.kt | 6 ++++-- .../java/com/vanced/manager/utils/InternetTools.kt | 8 ++++---- .../main/java/com/vanced/manager/utils/MiuiHelper.kt | 3 +-- 18 files changed, 50 insertions(+), 32 deletions(-) diff --git a/app/src/main/java/com/vanced/manager/ui/core/EmptyPreference.kt b/app/src/main/java/com/vanced/manager/ui/core/EmptyPreference.kt index 762d8211..0e4521c1 100644 --- a/app/src/main/java/com/vanced/manager/ui/core/EmptyPreference.kt +++ b/app/src/main/java/com/vanced/manager/ui/core/EmptyPreference.kt @@ -3,8 +3,9 @@ package com.vanced.manager.ui.core import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater -import android.view.View import android.widget.FrameLayout +import androidx.core.view.isGone +import androidx.core.view.isVisible import com.vanced.manager.R import kotlinx.android.synthetic.main.view_preference.view.* @@ -26,7 +27,7 @@ class EmptyPreference @JvmOverloads constructor( fun setSummary(newSummary: String) { preference_summary.text = newSummary - preference_summary.visibility = View.VISIBLE + preference_summary.isVisible = true preference_title.setPadding(0, 0, 0, 0) } @@ -38,7 +39,7 @@ class EmptyPreference @JvmOverloads constructor( if (summary != null) { preference_summary.text = summary } else { - preference_summary.visibility = View.GONE + preference_summary.isGone = true preference_title.setPadding(0, 12, 0, 12) } preference_title.text = title diff --git a/app/src/main/java/com/vanced/manager/ui/core/PreferenceSwitch.kt b/app/src/main/java/com/vanced/manager/ui/core/PreferenceSwitch.kt index 65df8e07..d40a9f3d 100644 --- a/app/src/main/java/com/vanced/manager/ui/core/PreferenceSwitch.kt +++ b/app/src/main/java/com/vanced/manager/ui/core/PreferenceSwitch.kt @@ -6,6 +6,7 @@ import android.util.Log import android.view.LayoutInflater import android.widget.CompoundButton import android.widget.FrameLayout +import androidx.core.content.edit import androidx.databinding.BindingAdapter import androidx.preference.PreferenceManager.getDefaultSharedPreferences import com.vanced.manager.R @@ -36,7 +37,7 @@ class PreferenceSwitch @JvmOverloads constructor( Log.d("clickTest", "clicked") } preference_switch.setOnCheckedChangeListener { buttonView, isChecked -> - prefs.edit().putBoolean(prefKey, isChecked).apply() + prefs.edit { putBoolean(prefKey, isChecked) } mListener?.onChecked(buttonView, isChecked) } } diff --git a/app/src/main/java/com/vanced/manager/ui/dialogs/DialogContainer.kt b/app/src/main/java/com/vanced/manager/ui/dialogs/DialogContainer.kt index ac234807..83c1d936 100644 --- a/app/src/main/java/com/vanced/manager/ui/dialogs/DialogContainer.kt +++ b/app/src/main/java/com/vanced/manager/ui/dialogs/DialogContainer.kt @@ -5,6 +5,7 @@ import android.content.ComponentName import android.content.Context import android.content.Intent import androidx.core.content.ContextCompat.startActivity +import androidx.core.content.edit import androidx.preference.PreferenceManager import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.vanced.manager.R @@ -34,7 +35,7 @@ object DialogContainer { show() } val prefs = PreferenceManager.getDefaultSharedPreferences(context) - prefs.edit().putBoolean("firstLaunch", false).apply() + prefs.edit { putBoolean("firstLaunch", false) } } private fun showMiuiDialog(context: Context) { @@ -65,7 +66,7 @@ object DialogContainer { } val prefs = PreferenceManager.getDefaultSharedPreferences(context) - prefs.edit().putBoolean("statement", true).apply() + prefs.edit { putBoolean("statement", true) } } fun installAlertBuilder(msg: String, context: Context) { diff --git a/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerAccentColorDialog.kt b/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerAccentColorDialog.kt index ba90cf7c..7ef7e684 100644 --- a/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerAccentColorDialog.kt +++ b/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerAccentColorDialog.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.content.edit import androidx.databinding.DataBindingUtil import androidx.preference.PreferenceManager.getDefaultSharedPreferences import com.google.android.material.bottomsheet.BottomSheetDialogFragment @@ -33,7 +34,7 @@ class ManagerAccentColorDialog : BottomSheetDialogFragment() { binding.accentSave.setOnClickListener { val newPref = binding.accentRadiogroup.getCheckedButtonTag() if (accent != newPref) { - prefs.edit().putString("manager_accent", newPref).apply() + prefs.edit { putString("manager_accent", newPref) } dismiss() requireActivity().recreate() } else { diff --git a/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerLanguageDialog.kt b/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerLanguageDialog.kt index e6d40e23..8592dd62 100644 --- a/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerLanguageDialog.kt +++ b/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerLanguageDialog.kt @@ -6,6 +6,7 @@ import android.view.View import android.view.ViewGroup import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.view.ViewGroup.LayoutParams.WRAP_CONTENT +import androidx.core.content.edit import androidx.databinding.DataBindingUtil import androidx.preference.PreferenceManager.getDefaultSharedPreferences import com.google.android.material.bottomsheet.BottomSheetDialogFragment @@ -38,7 +39,7 @@ class ManagerLanguageDialog : BottomSheetDialogFragment() { binding.languageSave.setOnClickListener { val newPref = binding.languageRadiogroup.getCheckedButtonTag() if (language != newPref) { - prefs.edit().putString("manager_lang", newPref).apply() + prefs.edit { putString("manager_lang", newPref) } dismiss() requireActivity().recreate() } else { diff --git a/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerThemeDialog.kt b/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerThemeDialog.kt index d33348b5..0cdfb32a 100644 --- a/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerThemeDialog.kt +++ b/app/src/main/java/com/vanced/manager/ui/dialogs/ManagerThemeDialog.kt @@ -4,6 +4,7 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.content.edit import androidx.databinding.DataBindingUtil import androidx.preference.PreferenceManager.getDefaultSharedPreferences import com.google.android.material.bottomsheet.BottomSheetDialogFragment @@ -33,7 +34,7 @@ class ManagerThemeDialog : BottomSheetDialogFragment() { binding.themeSave.setOnClickListener { val newPref = binding.themeRadiogroup.getCheckedButtonTag() if (theme != newPref) { - prefs.edit().putString("manager_theme", newPref).apply() + prefs.edit { putString("manager_theme", newPref) } dismiss() requireActivity().recreate() } else { diff --git a/app/src/main/java/com/vanced/manager/ui/dialogs/SelectAppsDialog.kt b/app/src/main/java/com/vanced/manager/ui/dialogs/SelectAppsDialog.kt index 89a9da5c..1b5d9335 100644 --- a/app/src/main/java/com/vanced/manager/ui/dialogs/SelectAppsDialog.kt +++ b/app/src/main/java/com/vanced/manager/ui/dialogs/SelectAppsDialog.kt @@ -5,6 +5,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.core.content.edit import androidx.databinding.DataBindingUtil import androidx.preference.PreferenceManager.getDefaultSharedPreferences import androidx.recyclerview.widget.LinearLayoutManager @@ -41,7 +42,7 @@ class SelectAppsDialog : BottomSheetDialogFragment() { return@setOnClickListener } ad.apps.forEach { app -> - prefs.edit().putBoolean("enable_${app.tag}", app.isChecked).apply() + prefs.edit { putBoolean("enable_${app.tag}", app.isChecked) } } dismiss() } diff --git a/app/src/main/java/com/vanced/manager/ui/dialogs/URLChangeDialog.kt b/app/src/main/java/com/vanced/manager/ui/dialogs/URLChangeDialog.kt index 24b75db9..2e2a67d3 100644 --- a/app/src/main/java/com/vanced/manager/ui/dialogs/URLChangeDialog.kt +++ b/app/src/main/java/com/vanced/manager/ui/dialogs/URLChangeDialog.kt @@ -8,6 +8,7 @@ import android.view.View import android.view.ViewGroup import android.widget.EditText import android.widget.TextView +import androidx.core.content.edit import androidx.fragment.app.DialogFragment import androidx.preference.PreferenceManager.getDefaultSharedPreferences import com.google.android.material.button.MaterialButton @@ -45,7 +46,7 @@ class URLChangeDialog : DialogFragment() { } private fun saveUrl(url: String) { - getDefaultSharedPreferences(requireActivity()).edit().putString("install_url", url).apply() + getDefaultSharedPreferences(requireActivity()).edit { putString("install_url", url) } requireActivity().fetchData() dismiss() } diff --git a/app/src/main/java/com/vanced/manager/ui/dialogs/VancedLanguageSelectionDialog.kt b/app/src/main/java/com/vanced/manager/ui/dialogs/VancedLanguageSelectionDialog.kt index 5c842e7b..79a5e671 100644 --- a/app/src/main/java/com/vanced/manager/ui/dialogs/VancedLanguageSelectionDialog.kt +++ b/app/src/main/java/com/vanced/manager/ui/dialogs/VancedLanguageSelectionDialog.kt @@ -10,6 +10,7 @@ import android.view.ViewGroup.LayoutParams.MATCH_PARENT import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import android.widget.LinearLayout import android.widget.Toast +import androidx.core.content.edit import androidx.core.content.res.ResourcesCompat import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.button.MaterialButton @@ -54,7 +55,7 @@ class VancedLanguageSelectionDialog : BottomSheetDialogFragment() { return@setOnClickListener } - prefs?.edit()?.putString("lang", chosenLangs.joinToString())?.apply() + prefs?.edit { putString("lang", chosenLangs.joinToString()) } dismiss() } } diff --git a/app/src/main/java/com/vanced/manager/ui/dialogs/VancedPreferencesDialog.kt b/app/src/main/java/com/vanced/manager/ui/dialogs/VancedPreferencesDialog.kt index 2f2397cc..57a26cf1 100644 --- a/app/src/main/java/com/vanced/manager/ui/dialogs/VancedPreferencesDialog.kt +++ b/app/src/main/java/com/vanced/manager/ui/dialogs/VancedPreferencesDialog.kt @@ -7,6 +7,7 @@ import android.view.View import android.view.ViewGroup import android.widget.AdapterView import android.widget.AdapterView.OnItemSelectedListener +import androidx.core.content.edit import androidx.databinding.DataBindingUtil import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.vanced.manager.R @@ -66,7 +67,7 @@ class VancedPreferencesDialog : BottomSheetDialogFragment() { binding.themeSpinner.onItemSelectedListener = object : OnItemSelectedListener { override fun onItemSelected(parent: AdapterView<*>?, view: View, position: Int, id: Long) { - prefs.edit().putString("theme", adapter[position].value).apply() + prefs.edit { putString("theme", adapter[position].value) } } override fun onNothingSelected(parent: AdapterView<*>?) { diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/AboutFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/AboutFragment.kt index 4780a55f..bbdfcca3 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/AboutFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/AboutFragment.kt @@ -7,6 +7,7 @@ import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.core.content.edit import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels @@ -54,7 +55,7 @@ class AboutFragment : Fragment() { val devSettings = prefs.getBoolean("devSettings", false) if (!devSettings) { Toast.makeText(requireContext(), "Dev options unlocked!", Toast.LENGTH_SHORT).show() - prefs.edit().putBoolean("devSettings", true).apply() + prefs.edit { putBoolean("devSettings", true) } } else Toast.makeText(requireContext(), "Dev options already unlocked", Toast.LENGTH_SHORT).show() diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/DevSettingsFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/DevSettingsFragment.kt index 04c144fb..1856213a 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/DevSettingsFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/DevSettingsFragment.kt @@ -1,12 +1,13 @@ package com.vanced.manager.ui.fragments import android.content.Intent -import android.net.Uri import android.os.Build import android.os.Bundle import android.provider.Settings import androidx.annotation.RequiresApi import androidx.appcompat.app.AlertDialog +import androidx.core.content.edit +import androidx.core.net.toUri import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager @@ -39,8 +40,10 @@ class DevSettingsFragment: PreferenceFragmentCompat() { .create() .show() - prefs.edit().putBoolean("firstLaunch", true).apply() - prefs.edit().putBoolean("show_changelog_tooltip", true).apply() + prefs.edit { + putBoolean("firstLaunch", true) + putBoolean("show_changelog_tooltip", true) + } true } @@ -54,7 +57,7 @@ class DevSettingsFragment: PreferenceFragmentCompat() { if (!Settings.canDrawOverlays(requireActivity())) { val intent = Intent( Settings.ACTION_MANAGE_OVERLAY_PERMISSION, - Uri.parse("package:" + requireActivity().packageName) + ("package:" + requireActivity().packageName).toUri() ) startActivityForResult(intent, 69) return@setOnPreferenceClickListener true diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/GrantRootFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/GrantRootFragment.kt index ae7e03f3..08591fc2 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/GrantRootFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/GrantRootFragment.kt @@ -6,6 +6,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.core.content.edit import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.preference.PreferenceManager.getDefaultSharedPreferences @@ -36,7 +37,7 @@ class GrantRootFragment : Fragment(), View.OnClickListener { when (v?.id) { R.id.grant_root_fab -> { if (Shell.rootAccess()) { - getDefaultSharedPreferences(requireActivity()).edit().putString("vanced_variant", "root").apply() + getDefaultSharedPreferences(requireActivity()).edit { putString("vanced_variant", "root") } } else { Toast.makeText(requireActivity(), R.string.root_not_granted, Toast.LENGTH_SHORT).show() } 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 4662d84a..c836ef31 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 @@ -6,6 +6,7 @@ import android.content.Intent import android.content.IntentFilter import android.os.Bundle import android.view.* +import androidx.core.content.edit import androidx.core.content.res.ResourcesCompat import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment @@ -43,7 +44,7 @@ open class HomeFragment : Fragment() { // Toast.makeText(requireActivity(), getString(R.string.root_not_granted), Toast.LENGTH_SHORT).show() // } // val variant = if (tab.position == 1) "root" else "nonroot" -// getDefaultSharedPreferences(requireActivity()).edit().putString("vanced_variant", variant).apply() +// getDefaultSharedPreferences(requireActivity()).edit { putString("vanced_variant", variant) } // } // // override fun onTabUnselected(tab: TabLayout.Tab) { @@ -86,7 +87,7 @@ open class HomeFragment : Fragment() { .withShadow(false) .corner(25) .onHide { - prefs.edit().putBoolean("show_changelog_tooltip", false).apply() + prefs.edit { putBoolean("show_changelog_tooltip", false) } } .text(requireActivity().getString(R.string.app_changelog_tooltip)) @@ -159,7 +160,7 @@ open class HomeFragment : Fragment() { // with(binding) { // if (mainTablayout.visibility != View.GONE) { // mainTablayout.startAnimation(tabHide) -// mainTablayout.visibility = View.GONE +// mainTablayout.isVisible = false // } // mainViewpager.isUserInputEnabled = false // } @@ -169,7 +170,7 @@ open class HomeFragment : Fragment() { // val tabShow = AnimationUtils.loadAnimation(requireActivity(), R.anim.tablayout_enter) // with(binding) { // if (mainTablayout.visibility != View.VISIBLE) { -// mainTablayout.visibility = View.VISIBLE +// mainTablayout.isVisible = true // mainTablayout.startAnimation(tabShow) // } // mainViewpager.isUserInputEnabled = true diff --git a/app/src/main/java/com/vanced/manager/ui/fragments/SelectAppsFragment.kt b/app/src/main/java/com/vanced/manager/ui/fragments/SelectAppsFragment.kt index 66c2f616..40f74739 100644 --- a/app/src/main/java/com/vanced/manager/ui/fragments/SelectAppsFragment.kt +++ b/app/src/main/java/com/vanced/manager/ui/fragments/SelectAppsFragment.kt @@ -5,6 +5,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.core.content.edit import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController @@ -43,7 +44,7 @@ class SelectAppsFragment : Fragment() { } selectAdapter.apps.forEach { app -> - prefs.edit().putBoolean("enable_${app.tag}", app.isChecked).apply() + prefs.edit { putBoolean("enable_${app.tag}", app.isChecked) } } findNavController().navigate(SelectAppsFragmentDirections.selectAppsToGrantRoot()) diff --git a/app/src/main/java/com/vanced/manager/utils/DownloadHelper.kt b/app/src/main/java/com/vanced/manager/utils/DownloadHelper.kt index 1ac5e80d..514f25be 100644 --- a/app/src/main/java/com/vanced/manager/utils/DownloadHelper.kt +++ b/app/src/main/java/com/vanced/manager/utils/DownloadHelper.kt @@ -8,6 +8,8 @@ import android.os.Build import android.util.Log import android.widget.Toast import androidx.core.content.FileProvider +import androidx.core.content.getSystemService +import androidx.core.net.toUri import androidx.databinding.ObservableField import com.downloader.OnDownloadListener import com.downloader.PRDownloader @@ -22,14 +24,14 @@ import java.io.File object DownloadHelper { fun download(url: String, dir: String, child: String, context: Context): Long { - val request = DownloadManager.Request(Uri.parse(url)).apply { + val request = DownloadManager.Request(url.toUri()).apply { setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI) setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE) setTitle(context.getString(R.string.downloading_file, child)) setDestinationInExternalFilesDir(context, dir, child) } - val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager + val downloadManager = context.getSystemService()!! return downloadManager.enqueue(request) } diff --git a/app/src/main/java/com/vanced/manager/utils/InternetTools.kt b/app/src/main/java/com/vanced/manager/utils/InternetTools.kt index 53ede6d1..32f4ff21 100644 --- a/app/src/main/java/com/vanced/manager/utils/InternetTools.kt +++ b/app/src/main/java/com/vanced/manager/utils/InternetTools.kt @@ -2,10 +2,10 @@ package com.vanced.manager.utils import android.content.Context import android.content.Intent -import android.net.Uri import android.util.Log import androidx.browser.customtabs.CustomTabsIntent import androidx.core.content.ContextCompat +import androidx.core.net.toUri import androidx.preference.PreferenceManager.getDefaultSharedPreferences import com.vanced.manager.BuildConfig import com.vanced.manager.R @@ -15,16 +15,16 @@ object InternetTools { private const val TAG = "VMNetTools" - fun openUrl(Url: String, color: Int, context: Context) { + fun openUrl(url: String, color: Int, context: Context) { val customTabPrefs = getDefaultSharedPreferences(context).getBoolean("use_customtabs", true) if (customTabPrefs) { val builder = CustomTabsIntent.Builder() builder.setToolbarColor(ContextCompat.getColor(context, color)) val customTabsIntent = builder.build() customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK - customTabsIntent.launchUrl(context, Uri.parse(Url)) + customTabsIntent.launchUrl(context, url.toUri()) } else - context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(Url)).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) + context.startActivity(Intent(Intent.ACTION_VIEW, url.toUri()).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)) } fun getFileNameFromUrl(url: String) = url.substring(url.lastIndexOf('/')+1, url.length) diff --git a/app/src/main/java/com/vanced/manager/utils/MiuiHelper.kt b/app/src/main/java/com/vanced/manager/utils/MiuiHelper.kt index 57a07a76..96434f46 100644 --- a/app/src/main/java/com/vanced/manager/utils/MiuiHelper.kt +++ b/app/src/main/java/com/vanced/manager/utils/MiuiHelper.kt @@ -1,13 +1,12 @@ package com.vanced.manager.utils -import android.text.TextUtils import java.io.BufferedReader import java.io.IOException import java.io.InputStreamReader object MiuiHelper { - fun isMiui(): Boolean = !TextUtils.isEmpty(getSystemProps("ro.miui.ui.version.name")) + fun isMiui(): Boolean = getSystemProps("ro.miui.ui.version.name")!!.isNotEmpty() private fun getSystemProps(propname: String): String? { val line: String