some improvements
This commit is contained in:
parent
0d7d19ac2b
commit
6d883e3fd7
|
@ -8,9 +8,11 @@ import com.downloader.PRDownloader
|
|||
import com.vanced.manager.R
|
||||
import com.vanced.manager.utils.DeviceUtils.getArch
|
||||
import com.vanced.manager.utils.DownloadHelper.downloadProgress
|
||||
import com.vanced.manager.utils.Extensions.getLatestAppVersion
|
||||
import com.vanced.manager.utils.InternetTools.baseUrl
|
||||
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
|
||||
import com.vanced.manager.utils.InternetTools.music
|
||||
import com.vanced.manager.utils.InternetTools.musicVersions
|
||||
import com.vanced.manager.utils.PackageHelper.install
|
||||
import com.vanced.manager.utils.PackageHelper.installMusicRoot
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
|
@ -25,18 +27,20 @@ object MusicDownloader {
|
|||
|
||||
fun downloadMusic(context: Context) {
|
||||
val prefs = getDefaultSharedPreferences(context)
|
||||
version = prefs.getString("music_version", music.get()?.string("version"))
|
||||
version = prefs.getString("music_version", "latest")?.getLatestAppVersion(musicVersions.get()?.value ?: listOf(""))
|
||||
variant = prefs.getString("vanced_variant", "nonroot")
|
||||
baseurl = "${prefs.getString("install_url", baseUrl)}/music/"
|
||||
baseurl = "${prefs.getString("install_url", baseUrl)}/music/v$version"
|
||||
|
||||
downloadApk(context)
|
||||
}
|
||||
|
||||
fun downloadMusic(context: Context, apk: String = "music") {
|
||||
private fun downloadApk(context: Context, apk: String = "music") {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
val url =
|
||||
if (apk == "stock")
|
||||
"$baseurl/stock/v${version}/${getArch()}.apk"
|
||||
"$baseurl/stock/${getArch()}.apk"
|
||||
else
|
||||
"$baseurl/$variant/v${version}.apk"
|
||||
"$baseurl/$variant.apk"
|
||||
|
||||
downloadProgress.get()?.currentDownload = PRDownloader.download(url, context.getExternalFilesDir("music/$variant")?.path, "music.apk")
|
||||
.build()
|
||||
|
@ -49,7 +53,7 @@ object MusicDownloader {
|
|||
.start(object : OnDownloadListener {
|
||||
override fun onDownloadComplete() {
|
||||
if (variant == "root" && apk != "stock") {
|
||||
downloadMusic(context, "stock")
|
||||
downloadApk(context, "stock")
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ package com.vanced.manager.core.downloader
|
|||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Build
|
||||
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
||||
import com.downloader.Error
|
||||
import com.downloader.OnDownloadListener
|
||||
|
@ -13,7 +12,7 @@ import com.vanced.manager.R
|
|||
import com.vanced.manager.utils.AppUtils.vancedRootPkg
|
||||
import com.vanced.manager.utils.DeviceUtils.getArch
|
||||
import com.vanced.manager.utils.DownloadHelper.downloadProgress
|
||||
import com.vanced.manager.utils.Extensions.convertToAppVersions
|
||||
import com.vanced.manager.utils.Extensions.getLatestAppVersion
|
||||
import com.vanced.manager.utils.InternetTools
|
||||
import com.vanced.manager.utils.InternetTools.baseUrl
|
||||
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
|
||||
|
@ -56,15 +55,15 @@ object VancedDownloader {
|
|||
private var downloadPath: String? = null
|
||||
|
||||
fun downloadVanced(context: Context) {
|
||||
defPrefs = getDefaultSharedPreferences(context)
|
||||
installUrl = defPrefs.getString("install_url", baseUrl)
|
||||
prefs = context.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
|
||||
variant = defPrefs.getString("vanced_variant", "nonroot")
|
||||
downloadPath = context.getExternalFilesDir("vanced/$variant")?.path
|
||||
File(downloadPath.toString()).deleteRecursively()
|
||||
defPrefs = getDefaultSharedPreferences(context)
|
||||
installUrl = defPrefs.getString("install_url", baseUrl)
|
||||
prefs = context.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
|
||||
lang = prefs.getString("lang", getDefaultVancedLanguages())?.split(", ")?.toMutableList()
|
||||
theme = prefs.getString("theme", "dark")
|
||||
vancedVersion = defPrefs.getString("vanced_version", vancedVersions.get()?.value?.convertToAppVersions()?.get(0)?.value)
|
||||
vancedVersion = defPrefs.getString("vanced_version", "latest")?.getLatestAppVersion(vancedVersions.get()?.value ?: listOf(""))
|
||||
themePath = "$installUrl/apks/v$vancedVersion/$variant/Theme"
|
||||
hashUrl = "apks/v$vancedVersion/$variant/Theme/hash.json"
|
||||
//newInstaller = defPrefs.getBoolean("new_installer", false)
|
||||
|
|
|
@ -41,7 +41,7 @@ class AppInstallerService: Service() {
|
|||
return null
|
||||
}
|
||||
|
||||
companion object{
|
||||
companion object {
|
||||
const val TAG = "VMInstall"
|
||||
}
|
||||
|
||||
|
|
|
@ -11,13 +11,12 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
|||
import com.google.android.material.radiobutton.MaterialRadioButton
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.databinding.DialogBottomRadioButtonBinding
|
||||
import com.vanced.manager.model.AppVersionsModel
|
||||
import com.vanced.manager.utils.Extensions.getCheckedButtonTag
|
||||
import com.vanced.manager.utils.Extensions.getCheckedButtonText
|
||||
import com.vanced.manager.utils.Extensions.getDefaultPrefs
|
||||
import com.vanced.manager.utils.Extensions.show
|
||||
|
||||
class AppVersionSelectorDialog(
|
||||
private val versions: Array<AppVersionsModel>,
|
||||
private val versions: List<String>,
|
||||
private val app: String
|
||||
) : BottomSheetDialogFragment() {
|
||||
|
||||
|
@ -36,14 +35,13 @@ class AppVersionSelectorDialog(
|
|||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
loadBoxes()
|
||||
view.findViewWithTag<MaterialRadioButton>(prefs.getString("${app}_version", versions[0].value)).isChecked = true
|
||||
view.findViewWithTag<MaterialRadioButton>(prefs.getString("${app}_version", "latest")).isChecked = true
|
||||
binding.dialogTitle.text = requireActivity().getString(R.string.version)
|
||||
binding.dialogSave.setOnClickListener {
|
||||
prefs.edit {
|
||||
putString("${app}_version", binding.dialogRadiogroup.getCheckedButtonTag())
|
||||
putString("${app}_version", binding.dialogRadiogroup.getCheckedButtonText())
|
||||
}
|
||||
dismiss()
|
||||
VancedPreferencesDialog().show(requireActivity())
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,8 +49,7 @@ class AppVersionSelectorDialog(
|
|||
requireActivity().runOnUiThread {
|
||||
for (i in versions.indices) {
|
||||
val rb = MaterialRadioButton(requireActivity()).apply {
|
||||
text = versions[i].version
|
||||
tag = versions[i].value
|
||||
text = versions[i]
|
||||
textSize = 18f
|
||||
}
|
||||
binding.dialogRadiogroup.addView(rb, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
|
@ -62,7 +59,10 @@ class AppVersionSelectorDialog(
|
|||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
super.onDismiss(dialog)
|
||||
VancedPreferencesDialog().show(requireActivity())
|
||||
if (app == "vanced")
|
||||
VancedPreferencesDialog().show(requireActivity())
|
||||
else
|
||||
MusicPreferencesDialog().show(requireActivity())
|
||||
}
|
||||
|
||||
}
|
|
@ -33,7 +33,7 @@ class MusicPreferencesDialog : BottomSheetDialogFragment() {
|
|||
val musicVersionsConv = musicVersions.get()?.value?.reversed()?.convertToAppVersions()
|
||||
|
||||
binding.musicInstallTitle.text = requireActivity().getString(R.string.app_installation_preferences, requireActivity().getString(R.string.music))
|
||||
binding.musicVersion.text = requireActivity().getString(R.string.chosen_version, prefs.getString("music_version", musicVersionsConv?.get(0)?.value ?: ""))
|
||||
binding.musicVersion.text = requireActivity().getString(R.string.chosen_version, prefs.getString("music_version", musicVersionsConv?.get(0) ?: ""))
|
||||
|
||||
binding.openVersionSelector.setOnClickListener {
|
||||
dismiss()
|
||||
|
@ -41,6 +41,10 @@ class MusicPreferencesDialog : BottomSheetDialogFragment() {
|
|||
AppVersionSelectorDialog(musicVersionsConv, "music").show(requireActivity())
|
||||
}
|
||||
}
|
||||
binding.musicInstall.setOnClickListener {
|
||||
dismiss()
|
||||
AppDownloadDialog(requireActivity().getString(R.string.music)).show(requireActivity())
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -10,7 +10,6 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
|||
import com.vanced.manager.R
|
||||
import com.vanced.manager.databinding.DialogVancedPreferencesBinding
|
||||
import com.vanced.manager.utils.Extensions.convertToAppTheme
|
||||
import com.vanced.manager.utils.Extensions.convertToAppVersions
|
||||
import com.vanced.manager.utils.Extensions.show
|
||||
import com.vanced.manager.utils.InternetTools.vancedVersions
|
||||
import com.vanced.manager.utils.LanguageHelper.getDefaultVancedLanguages
|
||||
|
@ -42,12 +41,12 @@ class VancedPreferencesDialog : BottomSheetDialogFragment() {
|
|||
}
|
||||
}
|
||||
|
||||
val vancedVersionsConv = vancedVersions.get()?.value?.reversed()?.convertToAppVersions()
|
||||
val vancedVersionsConv = vancedVersions.get()?.value?.reversed()
|
||||
|
||||
binding.vancedInstallTitle.text = requireActivity().getString(R.string.app_installation_preferences, requireActivity().getString(R.string.vanced))
|
||||
|
||||
binding.vancedTheme.text = requireActivity().getString(R.string.chosen_theme, prefs.getString("theme", "dark")?.convertToAppTheme(requireActivity()))
|
||||
binding.vancedVersion.text = requireActivity().getString(R.string.chosen_version, prefs.getString("vanced_version", vancedVersionsConv?.get(0)?.value ?: ""))
|
||||
binding.vancedVersion.text = requireActivity().getString(R.string.chosen_version, prefs.getString("vanced_version", "latest"))
|
||||
binding.vancedLang.text = requireActivity().getString(R.string.chosen_lang, showLang)
|
||||
|
||||
binding.openThemeSelector.setOnClickListener {
|
||||
|
@ -69,7 +68,7 @@ class VancedPreferencesDialog : BottomSheetDialogFragment() {
|
|||
|
||||
binding.vancedInstall.setOnClickListener {
|
||||
dismiss()
|
||||
AppDownloadDialog(requireActivity().getString(R.string.vanced)).show(requireActivity().supportFragmentManager, "InstallVanced")
|
||||
AppDownloadDialog(requireActivity().getString(R.string.vanced)).show(requireActivity())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,7 +38,6 @@ class VancedThemeSelectorDialog : BottomSheetDialogFragment() {
|
|||
binding.dialogSave.setOnClickListener {
|
||||
prefs.edit { putString("theme", binding.dialogRadiogroup.getCheckedButtonTag()) }
|
||||
dismiss()
|
||||
VancedPreferencesDialog().show(requireActivity())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -25,16 +25,16 @@ object AppUtils {
|
|||
|
||||
fun sendRefresh(context: Context) {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
delay(500)
|
||||
delay(700)
|
||||
LocalBroadcastManager.getInstance(context).sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
|
||||
}
|
||||
}
|
||||
|
||||
fun sendCloseDialog(context: Context) {
|
||||
downloadProgress.get()?.installing?.set(false)
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
delay(500)
|
||||
delay(700)
|
||||
LocalBroadcastManager.getInstance(context).sendBroadcast(Intent(AppDownloadDialog.CLOSE_DIALOG))
|
||||
downloadProgress.get()?.installing?.set(false)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@ object AppUtils {
|
|||
downloadProgress.get()?.installing?.set(false)
|
||||
//Delay error broadcast until activity (and fragment) get back to the screen
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
delay(500)
|
||||
delay(700)
|
||||
val intent = Intent(HomeFragment.INSTALL_FAILED)
|
||||
intent.putExtra("errorMsg", getErrorMessage(status, context))
|
||||
LocalBroadcastManager.getInstance(context).sendBroadcast(intent)
|
||||
|
|
|
@ -20,6 +20,10 @@ object Extensions {
|
|||
return findViewById<MaterialRadioButton>(checkedRadioButtonId).tag.toString()
|
||||
}
|
||||
|
||||
fun RadioGroup.getCheckedButtonText(): String {
|
||||
return findViewById<MaterialRadioButton>(checkedRadioButtonId).text.toString()
|
||||
}
|
||||
|
||||
fun DialogFragment.show(activity: FragmentActivity) {
|
||||
show(activity.supportFragmentManager, "")
|
||||
}
|
||||
|
@ -49,16 +53,20 @@ object Extensions {
|
|||
//Not sure how much this can affect performance
|
||||
//but if anyone can improve this even slightly,
|
||||
//feel free to open a PR
|
||||
fun List<String>.convertToAppVersions(): Array<AppVersionsModel> {
|
||||
val versionsModel = arrayListOf(AppVersionsModel("latest", this[0]))
|
||||
fun List<String>.convertToAppVersions(): List<String> {
|
||||
val versionsModel = arrayListOf("latest")
|
||||
for (i in reversed().indices) {
|
||||
versionsModel.add(AppVersionsModel(this[i], this[i]))
|
||||
versionsModel.add(this[i])
|
||||
}
|
||||
return versionsModel.toTypedArray()
|
||||
return versionsModel
|
||||
}
|
||||
|
||||
fun String.convertToAppTheme(context: Context): String {
|
||||
return context.getString(R.string.light_plus_other, this.capitalize(Locale.ROOT))
|
||||
}
|
||||
|
||||
fun String.getLatestAppVersion(versions: List<String>): String {
|
||||
return if (this == "latest") versions.reversed()[0] else this
|
||||
}
|
||||
|
||||
}
|
|
@ -49,8 +49,8 @@ object InternetTools {
|
|||
|
||||
fun loadJson(context: Context) = CoroutineScope(Dispatchers.IO).launch {
|
||||
val installUrl = context.getDefaultPrefs().getString("install_url", baseUrl)
|
||||
val latest = JsonHelper.getJson("$installUrl/latest.json?fetchTime=${SimpleDateFormat("HHmmss", Locale.getDefault())}")
|
||||
val versions = JsonHelper.getJson("$installUrl/versions.json?fetchTime=${SimpleDateFormat("HHmmss", Locale.getDefault())}")
|
||||
val latest = JsonHelper.getJson("$installUrl/latest.json?fetchTime=${SimpleDateFormat("HHmmss", Locale.ROOT)}")
|
||||
val versions = JsonHelper.getJson("$installUrl/versions.json?fetchTime=${SimpleDateFormat("HHmmss", Locale.ROOT)}")
|
||||
// braveTiers.apply {
|
||||
// set(getJson("$installUrl/sponsor.json"))
|
||||
// notifyChange()
|
||||
|
|
|
@ -19,6 +19,7 @@ class LanguageContextWrapper(base: Context?) : ContextWrapper(base) {
|
|||
return LanguageContextWrapper(context)
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
private fun setLocale(config: Configuration, context: Context): Configuration {
|
||||
val pref = PreferenceManager.getDefaultSharedPreferences(context).getString("manager_lang", "System Default")
|
||||
val sysLocale = Resources.getSystem().configuration.locale
|
||||
|
|
|
@ -33,6 +33,8 @@ import kotlin.collections.HashMap
|
|||
object PackageHelper {
|
||||
|
||||
private const val apkInstallPath = "/data/adb/Vanced/"
|
||||
private val vancedThemes = arrayOf("black", "dark", "pink", "blue")
|
||||
|
||||
fun isPackageInstalled(packageName: String, packageManager: PackageManager): Boolean {
|
||||
return try {
|
||||
packageManager.getPackageInfo(packageName, 0)
|
||||
|
@ -84,7 +86,7 @@ object PackageHelper {
|
|||
for (file in files) {
|
||||
|
||||
when {
|
||||
(file.name == "black.apk" || file.name == "dark.apk") && !splitFiles.contains("base") -> splitFiles.add("base")
|
||||
vancedThemes.any { file.name == "$it.apk" } && !splitFiles.contains("base") -> splitFiles.add("base")
|
||||
file.name.matches(Regex("split_config\\.(..)\\.apk")) && !splitFiles.contains("lang") -> splitFiles.add("lang")
|
||||
(file.name.startsWith("split_config.arm") || file.name.startsWith("split_config.x86")) && !splitFiles.contains("arch") -> splitFiles.add("arch")
|
||||
}
|
||||
|
@ -292,8 +294,8 @@ object PackageHelper {
|
|||
val apkFilesPath = context.getExternalFilesDir("vanced/root")?.path
|
||||
val fileInfoList = apkFilesPath?.let { it1 -> getFileInfoList(it1) }
|
||||
if (fileInfoList != null) {
|
||||
val modApk: FileInfo? = fileInfoList.lastOrNull {
|
||||
it.name == "dark.apk" || it.name == "black.apk"
|
||||
val modApk: FileInfo? = fileInfoList.lastOrNull { file ->
|
||||
vancedThemes.any { file.name == "$it.apk" }
|
||||
}
|
||||
if (modApk != null) {
|
||||
if (overwriteBase(modApk, fileInfoList, vancedVersionCode!!, vancedRootPkg, context)) {
|
||||
|
|
|
@ -1,14 +1,7 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="29.605dp"
|
||||
android:height="34.271dp"
|
||||
android:viewportWidth="29.605"
|
||||
android:viewportHeight="34.271">
|
||||
<path
|
||||
android:strokeWidth="1"
|
||||
android:pathData="M25.766,0.5h-21.9a3.352,3.352 0,0 0,-3.361 3.361v22.087a3.373,3.373 0,0 0,3.361 3.361h18.522l-0.859,-3.028 2.1,1.954 1.954,1.825 3.522,3.1v-29.3A3.334,3.334 0,0 0,25.766 0.5Z"
|
||||
android:fillColor="#00000000"
|
||||
android:strokeColor="#000000"/>
|
||||
<path
|
||||
android:pathData="M22.055,9.782a7.865,7.865 0,0 0,-4.56 -1.737l-0.235,0.26a10.6,10.6 0,0 1,4.037 2.106,13.138 13.138,0 0,0 -4.87,-1.607 13.679,13.679 0,0 0,-3.289 0.054,1.292 1.292,0 0,0 -0.288,0.022 12.15,12.15 0,0 0,-3.674 1.031,6.119 6.119,0 0,0 -0.908,0.478 10.878,10.878 0,0 1,4.218 -2.16l-0.182,-0.185a7.864,7.864 0,0 0,-4.56 1.737,22.555 22.555,0 0,0 -2.328,9.64 5.871,5.871 0,0 0,4.944 2.5s0.6,-0.738 1.089,-1.368a5.13,5.13 0,0 1,-2.819 -1.921,2.3 2.3,0 0,1 0.438,0.239c0.021,0.022 0.021,0.054 0.053,0.054a0.361,0.361 0,0 0,0.16 0.076,8.514 8.514,0 0,0 1.2,0.575 13.145,13.145 0,0 0,2.381 0.706,10.773 10.773,0 0,0 4.218,0 10.444,10.444 0,0 0,2.36 -0.706,9.122 9.122,0 0,0 1.869,-0.977 5.206,5.206 0,0 1,-2.958 1.976c0.491,0.63 1.089,1.346 1.089,1.346a6.013,6.013 0,0 0,4.976 -2.5A22.319,22.319 0,0 0,22.055 9.782ZM11.878,17.869a1.838,1.838 0,1 1,1.655 -1.813A1.745,1.745 0,0 1,11.878 17.866ZM17.805,17.869a1.838,1.838 0,1 1,1.655 -1.813A1.718,1.718 0,0 1,17.805 17.866Z"
|
||||
android:fillColor="#000000"/>
|
||||
<vector android:height="40.516296dp" android:viewportHeight="34.271"
|
||||
android:viewportWidth="29.605" android:width="35dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#00000000"
|
||||
android:pathData="M25.766,0.5h-21.9a3.352,3.352 0,0 0,-3.361 3.361v22.087a3.373,3.373 0,0 0,3.361 3.361h18.522l-0.859,-3.028 2.1,1.954 1.954,1.825 3.522,3.1v-29.3A3.334,3.334 0,0 0,25.766 0.5Z"
|
||||
android:strokeColor="#000000" android:strokeWidth="1"/>
|
||||
<path android:fillColor="#000000" android:pathData="M22.055,9.782a7.865,7.865 0,0 0,-4.56 -1.737l-0.235,0.26a10.6,10.6 0,0 1,4.037 2.106,13.138 13.138,0 0,0 -4.87,-1.607 13.679,13.679 0,0 0,-3.289 0.054,1.292 1.292,0 0,0 -0.288,0.022 12.15,12.15 0,0 0,-3.674 1.031,6.119 6.119,0 0,0 -0.908,0.478 10.878,10.878 0,0 1,4.218 -2.16l-0.182,-0.185a7.864,7.864 0,0 0,-4.56 1.737,22.555 22.555,0 0,0 -2.328,9.64 5.871,5.871 0,0 0,4.944 2.5s0.6,-0.738 1.089,-1.368a5.13,5.13 0,0 1,-2.819 -1.921,2.3 2.3,0 0,1 0.438,0.239c0.021,0.022 0.021,0.054 0.053,0.054a0.361,0.361 0,0 0,0.16 0.076,8.514 8.514,0 0,0 1.2,0.575 13.145,13.145 0,0 0,2.381 0.706,10.773 10.773,0 0,0 4.218,0 10.444,10.444 0,0 0,2.36 -0.706,9.122 9.122,0 0,0 1.869,-0.977 5.206,5.206 0,0 1,-2.958 1.976c0.491,0.63 1.089,1.346 1.089,1.346a6.013,6.013 0,0 0,4.976 -2.5A22.319,22.319 0,0 0,22.055 9.782ZM11.878,17.869a1.838,1.838 0,1 1,1.655 -1.813A1.745,1.745 0,0 1,11.878 17.866ZM17.805,17.869a1.838,1.838 0,1 1,1.655 -1.813A1.718,1.718 0,0 1,17.805 17.866Z"/>
|
||||
</vector>
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="36.367dp"
|
||||
android:height="35.5dp"
|
||||
android:viewportWidth="36.367"
|
||||
android:viewportHeight="35.5">
|
||||
<path
|
||||
android:strokeWidth="1"
|
||||
android:pathData="M18.183,0.5a17.687,17.687 0,0 0,-5.59 34.466c0.879,0.163 1.2,-0.38 1.2,-0.858 0,-0.423 -0.011,-1.531 -0.022,-3.007 -4.917,1.064 -5.96,-2.366 -5.96,-2.366a4.67,4.67 0,0 0,-1.965 -2.584c-1.607,-1.1 0.119,-1.075 0.119,-1.075a3.758,3.758 0,0 1,2.714 1.824,3.758 3.758,0 0,0 5.145,1.465 3.843,3.843 0,0 1,1.118 -2.366c-3.93,-0.445 -8.055,-1.965 -8.055,-8.739a6.8,6.8 0,0 1,1.824 -4.744,6.321 6.321,0 0,1 0.174,-4.679s1.487,-0.478 4.863,1.813a16.727,16.727 0,0 1,8.858 0c3.376,-2.29 4.863,-1.813 4.863,-1.813a6.321,6.321 0,0 1,0.174 4.679,6.836 6.836,0 0,1 1.813,4.744c0,6.8 -4.136,8.283 -8.076,8.728a4.243,4.243 0,0 1,1.2 3.278c0,2.366 -0.022,4.266 -0.022,4.852 0,0.478 0.315,1.02 1.216,0.847a17.689,17.689 0,0 0,-5.6 -34.466Z"
|
||||
android:fillColor="#00000000"
|
||||
android:fillType="evenOdd"
|
||||
android:strokeColor="#000000"/>
|
||||
<vector android:height="36.508373dp" android:viewportHeight="35.5"
|
||||
android:viewportWidth="36.367" android:width="37.4dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="#00000000" android:fillType="evenOdd"
|
||||
android:pathData="M18.183,0.5a17.687,17.687 0,0 0,-5.59 34.466c0.879,0.163 1.2,-0.38 1.2,-0.858 0,-0.423 -0.011,-1.531 -0.022,-3.007 -4.917,1.064 -5.96,-2.366 -5.96,-2.366a4.67,4.67 0,0 0,-1.965 -2.584c-1.607,-1.1 0.119,-1.075 0.119,-1.075a3.758,3.758 0,0 1,2.714 1.824,3.758 3.758,0 0,0 5.145,1.465 3.843,3.843 0,0 1,1.118 -2.366c-3.93,-0.445 -8.055,-1.965 -8.055,-8.739a6.8,6.8 0,0 1,1.824 -4.744,6.321 6.321,0 0,1 0.174,-4.679s1.487,-0.478 4.863,1.813a16.727,16.727 0,0 1,8.858 0c3.376,-2.29 4.863,-1.813 4.863,-1.813a6.321,6.321 0,0 1,0.174 4.679,6.836 6.836,0 0,1 1.813,4.744c0,6.8 -4.136,8.283 -8.076,8.728a4.243,4.243 0,0 1,1.2 3.278c0,2.366 -0.022,4.266 -0.022,4.852 0,0.478 0.315,1.02 1.216,0.847a17.689,17.689 0,0 0,-5.6 -34.466Z"
|
||||
android:strokeColor="#000000" android:strokeWidth="1"/>
|
||||
</vector>
|
||||
|
|
|
@ -51,7 +51,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="8dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:nestedScrollingEnabled="false"
|
||||
tools:itemCount="2"
|
||||
|
|
|
@ -98,20 +98,14 @@
|
|||
app:layout_constraintTop_toBottomOf="@id/app_name">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:letterSpacing="0.02"
|
||||
android:text="@string/latest"
|
||||
android:textSize="14sp" />
|
||||
style="@style/AppVersionText"
|
||||
android:text="@string/latest" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app_remote_version"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/AppVersionText"
|
||||
android:layout_marginStart="4dp"
|
||||
android:letterSpacing="0.02"
|
||||
android:text="@{dataModel.versionName}"
|
||||
android:textSize="14sp" />
|
||||
android:text="@{dataModel.versionName}" />
|
||||
|
||||
</com.google.android.flexbox.FlexboxLayout>
|
||||
|
||||
|
@ -127,18 +121,13 @@
|
|||
app:layout_constraintTop_toBottomOf="@id/app_remote_version_container">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:letterSpacing="0.02"
|
||||
android:text="@string/version_installed"
|
||||
android:textSize="14sp" />
|
||||
style="@style/AppVersionText"
|
||||
android:text="@string/version_installed" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/app_installed_version"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
style="@style/AppVersionText"
|
||||
android:layout_marginStart="4dp"
|
||||
android:letterSpacing="0.02"
|
||||
android:text="@{dataModel.installedVersionName}" />
|
||||
|
||||
</com.google.android.flexbox.FlexboxLayout>
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
app:cardBackgroundColor="?colorLinkBG"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="0dp"
|
||||
app:contentPaddingTop="8dp">
|
||||
app:contentPaddingTop="12dp">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -45,6 +45,7 @@
|
|||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@{sponsor.name}"
|
||||
android:textColor="?colorLinkImage"
|
||||
app:layout_constraintBottom_toTopOf="@id/sponsor_description"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -55,6 +56,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/support_us"
|
||||
android:textColor="?colorLinkImage"
|
||||
android:textAlignment="center"
|
||||
android:textSize="18sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
|
|
|
@ -122,6 +122,13 @@
|
|||
<item name="android:layout_marginTop">@dimen/top_header_margin</item>
|
||||
</style>
|
||||
|
||||
<style name="AppVersionText" parent="Widget.AppCompat.TextView">
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:letterSpacing">0.02</item>
|
||||
<item name="android:textColor">?colorLinkImage</item>
|
||||
</style>
|
||||
|
||||
<style name="AboutDevNames" parent="Widget.AppCompat.TextView">
|
||||
<item name="android:textSize">15sp</item>
|
||||
<item name="android:textColor">?colorWelcomeHeaderSubtitle</item>
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
<item name="iconColor">?colorPrimaryVariant</item>
|
||||
<item name="toolbarIconColor">?colorOnPrimary</item>
|
||||
<item name="DialogBG">#111111</item>
|
||||
<item name="colorLinkImage">#74FFFFFF</item>
|
||||
<item name="colorLinkImage">#FFFFFF</item>
|
||||
<item name="colorLinkBG">#161616</item>
|
||||
<item name="colorSettingsTitle">#ffffff</item>
|
||||
<item name="colorSecondaryText">#B3FFFFFF</item>
|
||||
|
|
Loading…
Reference in New Issue