This commit is contained in:
Xinto 2020-11-08 16:46:17 +04:00
parent 4cf99f10a1
commit 63c11b3474
61 changed files with 194 additions and 176 deletions

View File

@ -3,21 +3,14 @@ package com.vanced.manager.core
import android.app.Application
import android.content.res.Configuration
import android.util.Log
import androidx.databinding.ObservableField
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
import com.beust.klaxon.JsonObject
import com.crowdin.platform.Crowdin
import com.crowdin.platform.CrowdinConfig
import com.crowdin.platform.data.model.AuthConfig
import com.crowdin.platform.data.remote.NetworkType
import com.downloader.PRDownloader
import com.vanced.manager.BuildConfig.*
import com.vanced.manager.utils.InternetTools.baseUrl
import com.vanced.manager.utils.InternetTools.loadJson
import com.vanced.manager.utils.JsonHelper.getJson
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
open class App: Application() {

View File

@ -5,7 +5,6 @@ import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.core.App
import com.vanced.manager.utils.DownloadHelper.downloadProgress
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
import com.vanced.manager.utils.InternetTools.microg

View File

@ -6,7 +6,6 @@ import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.core.App
import com.vanced.manager.utils.DownloadHelper.downloadProgress
import com.vanced.manager.utils.InternetTools.baseUrl
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl

View File

@ -3,8 +3,10 @@ package com.vanced.manager.model
import android.content.Context
import android.graphics.drawable.Drawable
import android.os.Build
import androidx.databinding.*
import com.beust.klaxon.JsonArray
import androidx.databinding.Observable
import androidx.databinding.ObservableBoolean
import androidx.databinding.ObservableField
import androidx.databinding.ObservableInt
import com.beust.klaxon.JsonObject
import com.vanced.manager.R
import com.vanced.manager.utils.PackageHelper.isPackageInstalled
@ -18,7 +20,6 @@ open class DataModel(
val appPkg: String,
val appName: String,
val appIcon: Drawable?,
appVersions: ObservableField<JsonArray<String>>? = null
) {
private val versionCode = ObservableInt()
@ -26,7 +27,6 @@ open class DataModel(
val isAppInstalled = ObservableBoolean()
val versionName = ObservableField<String>()
//val versions = ObservableField<Array<AppVersionsModel>>()
val installedVersionName = ObservableField<String>()
val buttonTxt = ObservableField<String>()
val changelog = ObservableField<String>()
@ -35,7 +35,6 @@ open class DataModel(
val jobj = jsonObject.get()
isAppInstalled.set(isPackageInstalled(appPkg, context.packageManager))
versionName.set(jobj?.string("version")?.removeSuffix("-vanced") ?: context.getString(R.string.unavailable))
//versions.set(appVersions?.get()?.value?.convertToAppVersions())
installedVersionName.set(getPkgVersionName(isAppInstalled.get(), appPkg))
versionCode.set(jobj?.int("versionCode") ?: 0)
installedVersionCode.set(getPkgVersionCode(isAppInstalled.get(), appPkg))
@ -50,11 +49,6 @@ open class DataModel(
fetch()
}
})
appVersions?.addOnPropertyChangedCallback(object : Observable.OnPropertyChangedCallback() {
override fun onPropertyChanged(sender: Observable?, propertyId: Int) {
fetch()
}
})
}
private fun getPkgVersionName(toCheck: Boolean, pkg: String): String {

View File

@ -30,4 +30,22 @@ open class SlidingLinearLayout: LinearLayout {
y = newHeight
}
var xFraction: Float
get() {
val width = width
return if (width != 0)
x / getWidth()
else
x
}
set(xFraction) {
val width = width
val newWidth =
if (width > 0)
xFraction * width
else
(1).toFloat()
x = newWidth
}
}

View File

@ -1,33 +0,0 @@
package com.vanced.manager.ui.core
import android.content.Context
import android.util.AttributeSet
import android.widget.LinearLayout
open class SlidingWidthLinearLayout: LinearLayout {
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(
context,
attrs
)
var xFraction: Float
get() {
val width = width
return if (width != 0)
x / getWidth()
else
x
}
set(xFraction) {
val width = width
val newWidth =
if (width > 0)
xFraction * width
else
(1).toFloat()
x = newWidth
}
}

View File

@ -1,5 +1,6 @@
package com.vanced.manager.ui.dialogs
import android.content.DialogInterface
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@ -59,4 +60,9 @@ class AppVersionSelectorDialog(
}
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
VancedPreferencesDialog().show(requireActivity())
}
}

View File

@ -1,4 +1,46 @@
package com.vanced.manager.ui.dialogs
class MusicPreferencesDialog {
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.vanced.manager.R
import com.vanced.manager.databinding.DialogMusicPreferencesBinding
import com.vanced.manager.utils.Extensions.convertToAppVersions
import com.vanced.manager.utils.Extensions.getDefaultPrefs
import com.vanced.manager.utils.Extensions.show
import com.vanced.manager.utils.InternetTools.musicVersions
class MusicPreferencesDialog : BottomSheetDialogFragment() {
private lateinit var binding: DialogMusicPreferencesBinding
private val prefs by lazy { requireActivity().getDefaultPrefs() }
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = DataBindingUtil.inflate(inflater, R.layout.dialog_music_preferences, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
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.openVersionSelector.setOnClickListener {
dismiss()
if (musicVersionsConv != null) {
AppVersionSelectorDialog(musicVersionsConv, "music").show(requireActivity())
}
}
}
}

View File

@ -16,6 +16,7 @@ import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.google.android.material.button.MaterialButton
import com.google.android.material.checkbox.MaterialCheckBox
import com.vanced.manager.R
import com.vanced.manager.utils.Extensions.show
import com.vanced.manager.utils.InternetTools.vanced
import com.vanced.manager.utils.LanguageHelper.getDefaultVancedLanguages
import kotlinx.coroutines.CoroutineScope
@ -32,7 +33,7 @@ class VancedLanguageSelectionDialog : BottomSheetDialogFragment() {
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
return inflater.inflate(R.layout.fragment_vanced_language_selection, container, false)
return inflater.inflate(R.layout.dialog_vanced_language_selection, container, false)
}
@ExperimentalStdlibApi
@ -84,7 +85,7 @@ class VancedLanguageSelectionDialog : BottomSheetDialogFragment() {
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
VancedPreferencesDialog().show(requireActivity().supportFragmentManager, "")
VancedPreferencesDialog().show(requireActivity())
}
}

View File

@ -8,8 +8,7 @@ import android.view.ViewGroup
import androidx.databinding.DataBindingUtil
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.vanced.manager.R
import com.vanced.manager.databinding.DialogInstallationPreferencesBinding
import com.vanced.manager.model.AppVersionsModel
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
@ -19,13 +18,13 @@ import java.util.*
class VancedPreferencesDialog : BottomSheetDialogFragment() {
private lateinit var binding: DialogInstallationPreferencesBinding
private lateinit var binding: DialogVancedPreferencesBinding
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = DataBindingUtil.inflate(inflater, R.layout.dialog_installation_preferences, container, false)
binding = DataBindingUtil.inflate(inflater, R.layout.dialog_vanced_preferences, container, false)
return binding.root
}
@ -42,29 +41,33 @@ class VancedPreferencesDialog : BottomSheetDialogFragment() {
showLang.add(loc.getDisplayLanguage(loc).capitalize(Locale.ROOT))
}
}
val vancedVersionsConv = vancedVersions.get()?.value?.convertToAppVersions() ?: arrayOf(AppVersionsModel("", ""))
binding.chosenTheme.text = requireActivity().getString(R.string.chosen_theme, prefs.getString("theme", "dark")?.convertToAppTheme(requireActivity()))
binding.chosenVersion.text = requireActivity().getString(R.string.chosen_version, prefs.getString("vanced_version", vancedVersionsConv[0].value))
binding.chosenLang.text = requireActivity().getString(R.string.chosen_lang, showLang)
val vancedVersionsConv = vancedVersions.get()?.value?.reversed()?.convertToAppVersions()
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.vancedLang.text = requireActivity().getString(R.string.chosen_lang, showLang)
binding.openThemeSelector.setOnClickListener {
dismiss()
VancedThemeDialog().show(requireActivity())
VancedThemeSelectorDialog().show(requireActivity())
}
binding.openVersionSelector.setOnClickListener {
dismiss()
AppVersionSelectorDialog(vancedVersionsConv, "vanced").show(requireActivity())
if (vancedVersionsConv != null) {
AppVersionSelectorDialog(vancedVersionsConv, "vanced").show(requireActivity())
}
}
binding.chosenLang.text = requireActivity().getString(R.string.chosen_lang, showLang)
binding.openLanguageSelector.setOnClickListener {
dismiss()
VancedLanguageSelectionDialog().show(requireActivity())
}
binding.chosenPrefsInstall.setOnClickListener {
binding.vancedInstall.setOnClickListener {
dismiss()
AppDownloadDialog(requireActivity().getString(R.string.vanced)).show(requireActivity().supportFragmentManager, "InstallVanced")
}

View File

@ -1,6 +1,7 @@
package com.vanced.manager.ui.dialogs
import android.content.Context
import android.content.DialogInterface
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
@ -16,7 +17,7 @@ import com.vanced.manager.utils.Extensions.getCheckedButtonTag
import com.vanced.manager.utils.Extensions.show
import com.vanced.manager.utils.InternetTools.vanced
class VancedThemeDialog : BottomSheetDialogFragment() {
class VancedThemeSelectorDialog : BottomSheetDialogFragment() {
private lateinit var binding: DialogBottomRadioButtonBinding
private val prefs by lazy { requireActivity().getSharedPreferences("installPrefs", Context.MODE_PRIVATE) }
@ -54,4 +55,9 @@ class VancedThemeDialog : BottomSheetDialogFragment() {
}
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
VancedPreferencesDialog().show(requireActivity())
}
}

View File

@ -12,7 +12,6 @@ import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.navigation.findNavController
import androidx.preference.PreferenceManager
import androidx.recyclerview.widget.LinearLayoutManager
import com.crowdin.platform.util.inflateWithCrowdin
@ -50,12 +49,6 @@ open class HomeFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
viewModel.navigateDestination.observe(viewLifecycleOwner, {
val content = it.getContentIfNotHandled()
if (content != null){
view.findNavController().navigate(content)
}
})
with(binding) {
viewModel = this@HomeFragment.viewModel

View File

@ -9,8 +9,6 @@ import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.startActivity
import androidx.databinding.ObservableField
import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
import com.crowdin.platform.Crowdin
@ -19,8 +17,8 @@ import com.vanced.manager.R
import com.vanced.manager.model.DataModel
import com.vanced.manager.ui.dialogs.AppDownloadDialog
import com.vanced.manager.ui.dialogs.InstallationFilesDetectedDialog
import com.vanced.manager.ui.dialogs.MusicPreferencesDialog
import com.vanced.manager.ui.dialogs.VancedPreferencesDialog
import com.vanced.manager.ui.events.Event
import com.vanced.manager.utils.AppUtils.managerPkg
import com.vanced.manager.utils.AppUtils.microgPkg
import com.vanced.manager.utils.AppUtils.musicPkg
@ -32,8 +30,6 @@ import com.vanced.manager.utils.Extensions.setRefreshing
import com.vanced.manager.utils.Extensions.show
import com.vanced.manager.utils.InternetTools
import com.vanced.manager.utils.InternetTools.loadJson
import com.vanced.manager.utils.InternetTools.musicVersions
import com.vanced.manager.utils.InternetTools.vancedVersions
import com.vanced.manager.utils.PackageHelper.apkExist
import com.vanced.manager.utils.PackageHelper.musicApkExists
import com.vanced.manager.utils.PackageHelper.uninstallApk
@ -51,10 +47,6 @@ open class HomeViewModel(private val activity: FragmentActivity): ViewModel() {
val musicRoot = ObservableField<DataModel>()
val manager = ObservableField<DataModel>()
private var _navigateDestination = MutableLiveData<Event<Int>>()
val navigateDestination : LiveData<Event<Int>> = _navigateDestination
fun fetchData() {
activity.setRefreshing(true)
loadJson(activity)
@ -101,10 +93,11 @@ open class HomeViewModel(private val activity: FragmentActivity): ViewModel() {
}
if ((view as MaterialButton).text == activity.getString(R.string.update)) {
if (app == activity.getString(R.string.vanced))
VancedPreferencesDialog().show(activity)
else
AppDownloadDialog(app).show(activity)
when (app) {
activity.getString(R.string.vanced) -> VancedPreferencesDialog().show(activity)
activity.getString(R.string.music) -> MusicPreferencesDialog().show(activity)
else -> AppDownloadDialog(app).show(activity)
}
return
}
@ -118,8 +111,8 @@ open class HomeViewModel(private val activity: FragmentActivity): ViewModel() {
}
activity.getString(R.string.music) -> {
when (variant) {
"nonroot" -> if (musicApkExists(activity)) InstallationFilesDetectedDialog(app).show(activity) else AppDownloadDialog(app).show(activity)
"root" -> AppDownloadDialog(app).show(activity)
"nonroot" -> if (musicApkExists(activity)) InstallationFilesDetectedDialog(app).show(activity) else MusicPreferencesDialog().show(activity)
"root" -> MusicPreferencesDialog().show(activity)
}
}
activity.getString(R.string.microg) -> {
@ -133,10 +126,10 @@ open class HomeViewModel(private val activity: FragmentActivity): ViewModel() {
init {
activity.setRefreshing(true)
vanced.set(DataModel(InternetTools.vanced, activity, vancedPkg, activity.getString(R.string.vanced), ContextCompat.getDrawable(activity, R.drawable.ic_vanced), vancedVersions))
vancedRoot.set(DataModel(InternetTools.vanced, activity, vancedRootPkg, activity.getString(R.string.vanced), ContextCompat.getDrawable(activity, R.drawable.ic_vanced), vancedVersions))
music.set(DataModel(InternetTools.music, activity, musicPkg, activity.getString(R.string.music), ContextCompat.getDrawable(activity, R.drawable.ic_music), musicVersions))
musicRoot.set(DataModel(InternetTools.music, activity, musicRootPkg, activity.getString(R.string.music), ContextCompat.getDrawable(activity, R.drawable.ic_music), musicVersions))
vanced.set(DataModel(InternetTools.vanced, activity, vancedPkg, activity.getString(R.string.vanced), ContextCompat.getDrawable(activity, R.drawable.ic_vanced)))
vancedRoot.set(DataModel(InternetTools.vanced, activity, vancedRootPkg, activity.getString(R.string.vanced), ContextCompat.getDrawable(activity, R.drawable.ic_vanced)))
music.set(DataModel(InternetTools.music, activity, musicPkg, activity.getString(R.string.music), ContextCompat.getDrawable(activity, R.drawable.ic_music)))
musicRoot.set(DataModel(InternetTools.music, activity, musicRootPkg, activity.getString(R.string.music), ContextCompat.getDrawable(activity, R.drawable.ic_music)))
microg.set(DataModel(InternetTools.microg, activity, microgPkg, activity.getString(R.string.microg), ContextCompat.getDrawable(activity, R.drawable.ic_microg)))
manager.set(DataModel(InternetTools.manager, activity, managerPkg, activity.getString(R.string.app_name), ContextCompat.getDrawable(activity, R.mipmap.ic_launcher)))
activity.setRefreshing(false)

View File

@ -5,8 +5,8 @@ import android.content.Intent
import android.util.Log
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.ContextCompat
import androidx.databinding.ObservableField
import androidx.core.net.toUri
import androidx.databinding.ObservableField
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
import com.beust.klaxon.JsonArray
import com.beust.klaxon.JsonObject
@ -34,7 +34,7 @@ object InternetTools {
//var braveTiers = ObservableField<JsonObject?>()
fun openUrl(url: String, color: Int, context: Context) {
val customTabPrefs = getDefaultSharedPreferences(context).getBoolean("use_customtabs", true)
val customTabPrefs = getDefaultSharedPreferences(context).getBoolean("use_custom_tabs", true)
if (customTabPrefs) {
val builder = CustomTabsIntent.Builder()
builder.setToolbarColor(ContextCompat.getColor(context, color))

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
style="@style/DialogCard">
<LinearLayout
@ -19,7 +20,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
app:boxStrokeWidth="2dp">
app:hintEnabled="true"
android:hint="URL"
app:boxStrokeWidth="2dp"
tools:ignore="HardcodedText">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/url_input"

View File

@ -1,6 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent">
<layout>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/BottomDialogCard">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/music_install_title"
style="@style/BottomDialogCardTitle" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="12dp">
<TextView
android:id="@+id/music_version"
style="@style/BottomDialogCardTextItem"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:layout_toStartOf="@id/open_version_selector" />
<ImageButton
android:id="@+id/open_version_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:background="@android:color/transparent"
android:maxWidth="24dp"
android:maxHeight="24dp"
android:src="@drawable/ic_baseline_navigate_next_36" />
</RelativeLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/music_install"
style="@style/BottomDialogButtonStyle"
android:text="@string/install" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</layout>

View File

@ -13,8 +13,8 @@
android:orientation="vertical">
<TextView
style="@style/BottomDialogCardTitle"
android:text="@string/vanced_installation_preferences" />
android:id="@+id/vanced_install_title"
style="@style/BottomDialogCardTitle" />
<RelativeLayout
android:layout_width="match_parent"
@ -22,7 +22,7 @@
android:layout_marginTop="12dp">
<TextView
android:id="@+id/chosen_theme"
android:id="@+id/vanced_theme"
style="@style/BottomDialogCardTextItem"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
@ -46,7 +46,7 @@
android:layout_marginTop="12dp">
<TextView
android:id="@+id/chosen_version"
android:id="@+id/vanced_version"
style="@style/BottomDialogCardTextItem"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
@ -70,7 +70,7 @@
android:layout_marginTop="8dp">
<TextView
android:id="@+id/chosen_lang"
android:id="@+id/vanced_lang"
style="@style/BottomDialogCardTextItem"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
@ -89,7 +89,7 @@
</RelativeLayout>
<com.google.android.material.button.MaterialButton
android:id="@+id/chosen_prefs_install"
android:id="@+id/vanced_install"
style="@style/BottomDialogButtonStyle"
android:text="@string/install" />

View File

@ -13,7 +13,7 @@
</data>
<com.vanced.manager.ui.core.SlidingSwipeRefreshLayout
<androidx.swiperefreshlayout.widget.SwipeRefreshLayout
android:id="@+id/home_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
@ -71,6 +71,6 @@
</androidx.core.widget.NestedScrollView>
</com.vanced.manager.ui.core.SlidingSwipeRefreshLayout>
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
</layout>

View File

@ -25,7 +25,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:switch_def_value="true"
app:switch_key="use_customtabs"
app:switch_key="@{@string/use_custom_tabs}"
app:switch_summary="@string/link_custom_tabs"
app:switch_title="@string/link_title" />
@ -42,7 +42,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:switch_def_value="true"
app:switch_key="firebase"
app:switch_key="@{@string/firebase}"
app:switch_summary="@string/firebase_summary"
app:switch_title="@string/firebase_title" />

View File

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<layout>
<com.vanced.manager.ui.core.SlidingConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
<com.vanced.manager.ui.core.SlidingConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"

View File

@ -1,21 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable
name="app"
type="com.vanced.manager.model.NotifModel" />
</data>
<com.vanced.manager.ui.core.PreferenceSwitch xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/notif_switch"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:switch_def_value="true"
app:switch_key="@{app.key}"
app:switch_summary="@{app.switchSummary}"
app:switch_title="@{app.switchTitle}" />
</layout>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="vanced_installation_preferences">Chosen installation preferences</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">أرجواني</string>
<string name="accent_red">احمر</string>
<string name="accent_yellow">اصفر</string>
<string name="vanced_installation_preferences">تفضيلات التثبيت المختارة</string>
<string name="chosen_lang">اللغة/اللغات: %1$s</string>
<string name="clear_files">مسح الملفات التي تم تنزيلها</string>
<string name="cleared_files">تم مسح الملفات بنجاح</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">গাঢ় বেগুনী</string>
<string name="accent_red">লাল</string>
<string name="accent_yellow">হলুদ</string>
<string name="vanced_installation_preferences">নির্বাচিত ইনস্টলেশন পছন্দগুলি</string>
<string name="chosen_lang">ভাষা (গুলি):%1$s</string>
<string name="clear_files">ডাউনলোড করা ফাইল সাফ করুন</string>
<string name="cleared_files">সাফল্যের সাথে ফাইলগুলি সাফ করা হয়েছে</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">বেগুনি</string>
<string name="accent_red">লাল</string>
<string name="accent_yellow">হলুদ</string>
<string name="vanced_installation_preferences">নির্বাচিত ইনস্টলেশন পছন্দগুলি</string>
<string name="chosen_lang">ভাষা(গুলি): %1$s</string>
<string name="clear_files">ডাউনলোড করা ফাইলগুলি মুছে ফেলুন</string>
<string name="cleared_files">সফলভাবে ফাইলগুলি মুছে ফেলা হয়েছে</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Porpra</string>
<string name="accent_red">Vermell</string>
<string name="accent_yellow">Groc</string>
<string name="vanced_installation_preferences">Preferències d\'instal·lació triades</string>
<string name="chosen_lang">Idioma: %1$s</string>
<string name="clear_files">Esborrar fitxers descarregats</string>
<string name="cleared_files">Fitxers netejats correctament</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Fialová</string>
<string name="accent_red">Červená</string>
<string name="accent_yellow">Žlutá</string>
<string name="vanced_installation_preferences">Vybrané předvolby instalace</string>
<string name="chosen_lang">Jazyk: %1$s</string>
<string name="clear_files">Vymazat stažené soubory</string>
<string name="cleared_files">Vymazání souborů proběhlo úspěšně</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Lilla</string>
<string name="accent_red">Rød</string>
<string name="accent_yellow">Gul</string>
<string name="vanced_installation_preferences">Valgte installations præferencer</string>
<string name="chosen_lang">Sprog:%1$s</string>
<string name="clear_files">Ryd hentede filer</string>
<string name="cleared_files">Filer ryddet succesfuldt</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Lila</string>
<string name="accent_red">Rot</string>
<string name="accent_yellow">Gelb</string>
<string name="vanced_installation_preferences">Ausgewählte Installationsoptionen</string>
<string name="chosen_lang">Sprache(n): %1$s</string>
<string name="clear_files">Heruntergeladene Dateien löschen</string>
<string name="cleared_files">Daten erfolgreich gelöscht</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Μωβ</string>
<string name="accent_red">Κόκκινο</string>
<string name="accent_yellow">Κίτρινο</string>
<string name="vanced_installation_preferences">Επιλεγμένες προτιμήσεις εγκατάστασης</string>
<string name="chosen_lang">Γλώσσα(/ες): %1$s</string>
<string name="clear_files">Εκκαθάριση ληφθέντων αρχείων</string>
<string name="cleared_files">Επιτυχής εκκαθάριση αρχείων</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Purpura</string>
<string name="accent_red">Rojo</string>
<string name="accent_yellow">Amarillo</string>
<string name="vanced_installation_preferences">Preferencias de instalación elegidas</string>
<string name="chosen_lang">Idioma(s): %1$s</string>
<string name="clear_files">Limpiar archivos descargados</string>
<string name="cleared_files">Archivos limpiados exitosamente</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Violetti</string>
<string name="accent_red">Punainen</string>
<string name="accent_yellow">Keltainen</string>
<string name="vanced_installation_preferences">Valitut asennusasetukset</string>
<string name="chosen_lang">Kieli: %1$s</string>
<string name="clear_files">Tyhjennä ladatut tiedostot</string>
<string name="cleared_files">Tiedostot tyhjennettiin onnistuneesti</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Violet</string>
<string name="accent_red">Rouge</string>
<string name="accent_yellow">Jaune</string>
<string name="vanced_installation_preferences">Préférences d\'installation sélectionnées</string>
<string name="chosen_lang">Langue(s) : %1$s</string>
<string name="clear_files">Effacer les fichiers téléchargés</string>
<string name="cleared_files">Données effacées avec succès</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">बैंगनी</string>
<string name="accent_red">लाल</string>
<string name="accent_yellow">पीला</string>
<string name="vanced_installation_preferences">स्थापना प्राथमिकताएँ चुना</string>
<string name="chosen_lang">भाषा (एं): %1$s</string>
<string name="clear_files">डाउनलोड की गई फ़ाइलें साफ़ करें</string>
<string name="cleared_files">फ़ाइलें सफलतापूर्वक साफ़ की गई</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Lila</string>
<string name="accent_red">Vörös</string>
<string name="accent_yellow">Sárga</string>
<string name="vanced_installation_preferences">Telepítési preferencia</string>
<string name="chosen_lang">Nyelv: %1$s</string>
<string name="clear_files">Letöltött fájlok törlése</string>
<string name="cleared_files">Sikeresen törölte a fájlokat</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Ungu</string>
<string name="accent_red">Merah</string>
<string name="accent_yellow">Kuning</string>
<string name="vanced_installation_preferences">Preferensi pemasangan yang dipilih</string>
<string name="chosen_lang">Bahasa: %1$s</string>
<string name="clear_files">Hapus file yang diunduh</string>
<string name="cleared_files">Berhasil menghapus file</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Viola</string>
<string name="accent_red">Rosso</string>
<string name="accent_yellow">Giallo</string>
<string name="vanced_installation_preferences">Preferenze di installazione scelte</string>
<string name="chosen_lang">Lingue: %1$s</string>
<string name="clear_files">Cancella i file scaricati</string>
<string name="cleared_files">File cancellati con successo</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">סגול</string>
<string name="accent_red">אדום</string>
<string name="accent_yellow">צהוב</string>
<string name="vanced_installation_preferences">העדפות התקנה שנבחרו</string>
<string name="chosen_lang">שפה: %1$s</string>
<string name="clear_files">מחק קבצים שהורדו</string>
<string name="cleared_files">מחיקת הקבצים הסתיימה בהצלחה</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple"></string>
<string name="accent_red"></string>
<string name="accent_yellow"></string>
<string name="vanced_installation_preferences">選択されたインストール設定</string>
<string name="chosen_lang">言語: %1$s</string>
<string name="clear_files">ダウンロード済みファイルを消去</string>
<string name="cleared_files">ファイルを消去しました</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">იისფერი</string>
<string name="accent_red">წითელი</string>
<string name="accent_yellow">ყვითელი</string>
<string name="vanced_installation_preferences">არჩეული ინსტალაციის რეჟიმები</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">보라색</string>
<string name="accent_red">빨간색</string>
<string name="accent_yellow">노란색</string>
<string name="vanced_installation_preferences">선택된 설치값</string>
<string name="chosen_lang">언어: %1$s</string>
<string name="clear_files">다운로드된 파일 모두 지우기</string>
<string name="cleared_files">다운로드된 파일을 모두 삭제했습니다</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Paars</string>
<string name="accent_red">Rood</string>
<string name="accent_yellow">Geel</string>
<string name="vanced_installation_preferences">Gekozen installatievoorkeuren</string>
<string name="chosen_lang">Talen: %1$s</string>
<string name="clear_files">Gedownloade bestanden verwijderen</string>
<string name="cleared_files">Bestanden succesvol verwijderd</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">ਬੈਂਗਣੀ</string>
<string name="accent_red">ਲਾਲ</string>
<string name="accent_yellow">ਪੀਲਾ</string>
<string name="vanced_installation_preferences">ਸਥਾਪਨਾ ਪ੍ਰਾਥਮਿਕਤਾਵਾਂ ਚੁਣੋ</string>
<string name="chosen_lang">ਭਾਸ਼ਾ (ਇ): %1$s</string>
<string name="clear_files">ਡਾਉਨਲੋਡ ਕੀਤੀਆਂ ਫਾਇਲਾਂ ਸਾਫ਼ ਕਰੋ</string>
<string name="cleared_files">ਫਾਇਲਾਂ ਸਫਲਤਾਪੂਰਵਕ ਸਾਫ਼ ਕੀਤੀ ਗਈ</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Fioletowy</string>
<string name="accent_red">Czerwony</string>
<string name="accent_yellow">Żółty</string>
<string name="vanced_installation_preferences">Wybrane preferencje instalacji</string>
<string name="chosen_lang">Język(i): %1$s</string>
<string name="clear_files">Wyczyść pobrane pliki</string>
<string name="cleared_files">Pomyślnie wyczyszczono pliki</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Roxo</string>
<string name="accent_red">Vermelho</string>
<string name="accent_yellow">Amarelo</string>
<string name="vanced_installation_preferences">Valores de instalação escolhidos</string>
<string name="chosen_lang">Idioma(s): %1$s</string>
<string name="clear_files">Limpar arquivos baixados</string>
<string name="cleared_files">Arquivos limpos com sucesso</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Roxo</string>
<string name="accent_red">Vermelho</string>
<string name="accent_yellow">Amarelo</string>
<string name="vanced_installation_preferences">Predefinições de instalação escolhidas</string>
<string name="chosen_lang">Língua(s): %1$s</string>
<string name="clear_files">Limpar ficheiros descarregados</string>
<string name="cleared_files">Arquivos limpos com sucesso</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Violet</string>
<string name="accent_red">Roşu</string>
<string name="accent_yellow">Galben</string>
<string name="vanced_installation_preferences">Preferințe de instalare selectate</string>
<string name="chosen_lang">Limbă: %1$s</string>
<string name="clear_files">Ştergeţi fişierele descărcate</string>
<string name="cleared_files">Fişiere şterse cu succes</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Пурпурный</string>
<string name="accent_red">Красный</string>
<string name="accent_yellow">Жёлтый</string>
<string name="vanced_installation_preferences">Выбранные значения установки</string>
<string name="chosen_lang">Язык(и): %1$s</string>
<string name="clear_files">Удалить загруженные файлы</string>
<string name="cleared_files">Файлы успешно удалены</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">දම්</string>
<string name="accent_red">රතු</string>
<string name="accent_yellow">කහ</string>
<string name="vanced_installation_preferences">Chosen installation preferences</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Љубичаста</string>
<string name="accent_red">Црвена</string>
<string name="accent_yellow">Жута</string>
<string name="vanced_installation_preferences">Изабрана инсталациона подешавања</string>
<string name="chosen_lang">Језик (Језици):%1$s</string>
<string name="clear_files">Обриши преузете датотеке</string>
<string name="cleared_files">Успешно брисање датотека</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Lila</string>
<string name="accent_red">Röd</string>
<string name="accent_yellow">Gul</string>
<string name="vanced_installation_preferences">Valda installationsinställningar</string>
<string name="chosen_lang">Språk: %1$s</string>
<string name="clear_files">Rensa nedladdade filer</string>
<string name="cleared_files">Rensade data</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">ஊதா</string>
<string name="accent_red">சிவப்பு</string>
<string name="accent_yellow">மஞ்சள்</string>
<string name="vanced_installation_preferences">நிறுவல் விருப்பத்தேர்வுகளைத் தேர்ந்தெடுத்தது</string>
<string name="chosen_lang">மொழி: %1$s</string>
<string name="clear_files">பதிவிறக்கிய கோப்புகளை அழிக்கவும்</string>
<string name="cleared_files">கோப்புகளை வெற்றிகரமாக அழித்துவிட்டது</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Mor</string>
<string name="accent_red">Kırmızı</string>
<string name="accent_yellow">Sarı</string>
<string name="vanced_installation_preferences">Seçilen yükleme tercihleri </string>
<string name="chosen_lang">Dil(ler): %1$s</string>
<string name="clear_files">İndirilen dosyaları temizle</string>
<string name="cleared_files">Dosyalar başarıyla temizlendi</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Фіолетовий</string>
<string name="accent_red">Червоний</string>
<string name="accent_yellow">Жовтий</string>
<string name="vanced_installation_preferences">Вибрані налаштування встановлення</string>
<string name="chosen_lang">Мова(и): %1$s</string>
<string name="clear_files">Очистити завантажені файли</string>
<string name="cleared_files">Файли було успішно очищено</string>

View File

@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="LightTheme_Blue" parent="BaseLight_Blue">
<item name="android:windowLightStatusBar">true</item>
<item name="android:statusBarColor">?colorSurface</item>
</style>
</resources>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">Tím</string>
<string name="accent_red">Đỏ</string>
<string name="accent_yellow">Vàng</string>
<string name="vanced_installation_preferences">Kiểu cài đặt ưa thích</string>
<string name="chosen_lang">Ngôn ngữ: %1$s</string>
<string name="clear_files">Xóa các tệp tin đã tải về</string>
<string name="cleared_files">Xóa các tệp tin thành công</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">紫色</string>
<string name="accent_red">红色</string>
<string name="accent_yellow">黄色</string>
<string name="vanced_installation_preferences">已选择安装偏好</string>
<string name="chosen_lang">语言: %1$s</string>
<string name="clear_files">清除已下载的档案</string>
<string name="cleared_files">成功清除档案</string>

View File

@ -28,7 +28,6 @@
<string name="accent_purple">紫色</string>
<string name="accent_red">紅色</string>
<string name="accent_yellow">黃色</string>
<string name="vanced_installation_preferences">已選安裝偏好設定</string>
<string name="chosen_lang">語言: %1$s</string>
<string name="clear_files">清除已下載的檔案</string>
<string name="cleared_files">成功清除檔案</string>

View File

@ -6,4 +6,8 @@
<string name="microg" translatable="false">Vanced microG</string>
<string name="music" translatable="false">YouTube Music</string>
<!-- prefs -->
<string name="firebase" translatable="false">firebase</string>
<string name="use_custom_tabs" translatable="false">use_custom_tabs</string>
</resources>

View File

@ -16,7 +16,7 @@
<!-- Welcome Page -->
<string name="select_at_least_one_app">Select at least one app!</string>
<string name="are_you_rooted">Are You Rooted?</string>
<string name="are_you_rooted">Is Your Device Rooted?</string>
<string name="willing_to_use_root">Willing to use root version? Just hit the button below, else tap to continue</string>
<string name="grant_root">Grant Root Permission</string>
@ -78,9 +78,9 @@
<string name="miui_one">In order to install Vanced, you MUST disable MIUI Optimisations in the developer settings. (You can ignore this warning if you are using 20.2.20 or later xiaomi.eu based ROM)</string>
<string name="error">Error</string>
<string name="redownload">Redownload</string>
<string name="security_context">Make sure that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="security_context">Make sure that you downloaded the app from vancedapp.com, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installation_preferences">Vanced Installation Preferences</string>
<string name="app_installation_preferences">%1$s Installation Preferences</string>
<string name="vanced_installed">Vanced has successfully been installed! Open now?</string>
<string name="version">Version</string>
<string name="music_installed">Vanced Music has successfully been installed! Open now?</string>

View File

@ -1,9 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- LIGHT -->
<style name="LightTheme_Blue" parent="Theme.MaterialComponents.Light.NoActionBar">
<!-- BASE LIGHT -->
<style name="BaseLight_Blue" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">#2e73ff</item>
<item name="colorPrimaryVariant">#2C7EB9</item>
@ -25,7 +24,7 @@
<item name="iconColor">?colorPrimaryVariant</item>
<item name="toolbarIconColor">#111111</item>
<item name="DialogBG">#ffffff</item>
<item name="colorLinkImage">#72000000</item>
<item name="colorLinkImage">#000000</item>
<item name="colorLinkBG">#F7F7F7</item>
<item name="colorSettingsTitle">#000000</item>
<item name="colorSecondaryText">#B3000000</item>
@ -40,6 +39,10 @@
</style>
<!-- LIGHT -->
<style name="LightTheme_Blue" parent="BaseLight_Blue"/>
<style name="LightTheme_Red" parent="LightTheme_Blue">
<item name="colorPrimary">#D71414</item>