mirror of
https://github.com/YTVanced/VancedManager
synced 2024-11-25 12:45:12 +00:00
cleanup
This commit is contained in:
parent
108ca5ae5d
commit
82ba0b2615
108 changed files with 624 additions and 387 deletions
|
@ -34,7 +34,8 @@ class ExpandableAppListAdapter(
|
||||||
|
|
||||||
private var isAnimationRunning = false
|
private var isAnimationRunning = false
|
||||||
|
|
||||||
inner class ListViewHolder(private val binding: ViewAppExpandableBinding) : RecyclerView.ViewHolder(binding.root) {
|
inner class ListViewHolder(private val binding: ViewAppExpandableBinding) :
|
||||||
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
private var isExpanded = false
|
private var isExpanded = false
|
||||||
|
|
||||||
fun bind(position: Int) {
|
fun bind(position: Int) {
|
||||||
|
@ -77,7 +78,12 @@ class ExpandableAppListAdapter(
|
||||||
}
|
}
|
||||||
dataModel?.buttonTag?.observe(activity) { buttonTag ->
|
dataModel?.buttonTag?.observe(activity) { buttonTag ->
|
||||||
appDownload.apply {
|
appDownload.apply {
|
||||||
setOnClickListener { viewModel.openInstallDialog(buttonTag, apps[position]) }
|
setOnClickListener {
|
||||||
|
viewModel.openInstallDialog(
|
||||||
|
buttonTag,
|
||||||
|
apps[position]
|
||||||
|
)
|
||||||
|
}
|
||||||
contentDescription = activity.getString(
|
contentDescription = activity.getString(
|
||||||
if (buttonTag == ButtonTag.UPDATE)
|
if (buttonTag == ButtonTag.UPDATE)
|
||||||
R.string.accessibility_update
|
R.string.accessibility_update
|
||||||
|
|
|
@ -10,7 +10,8 @@ import com.vanced.manager.databinding.ViewNotificationSettingBinding
|
||||||
import com.vanced.manager.model.NotifModel
|
import com.vanced.manager.model.NotifModel
|
||||||
import com.vanced.manager.utils.defPrefs
|
import com.vanced.manager.utils.defPrefs
|
||||||
|
|
||||||
class GetNotifAdapter(private val context: Context) : RecyclerView.Adapter<GetNotifAdapter.GetNotifViewHolder>() {
|
class GetNotifAdapter(private val context: Context) :
|
||||||
|
RecyclerView.Adapter<GetNotifAdapter.GetNotifViewHolder>() {
|
||||||
|
|
||||||
private val prefs = context.defPrefs
|
private val prefs = context.defPrefs
|
||||||
|
|
||||||
|
@ -35,7 +36,8 @@ class GetNotifAdapter(private val context: Context) : RecyclerView.Adapter<GetNo
|
||||||
|
|
||||||
private val apps = arrayOf(vanced, music, microg)
|
private val apps = arrayOf(vanced, music, microg)
|
||||||
|
|
||||||
inner class GetNotifViewHolder(val binding: ViewNotificationSettingBinding) : RecyclerView.ViewHolder(binding.root) {
|
inner class GetNotifViewHolder(val binding: ViewNotificationSettingBinding) :
|
||||||
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
val switch = binding.notifSwitch
|
val switch = binding.notifSwitch
|
||||||
fun bind(position: Int) {
|
fun bind(position: Int) {
|
||||||
val app = apps[position]
|
val app = apps[position]
|
||||||
|
@ -44,15 +46,21 @@ class GetNotifAdapter(private val context: Context) : RecyclerView.Adapter<GetNo
|
||||||
setSummary(app.switchSummary)
|
setSummary(app.switchSummary)
|
||||||
setTitle(app.switchTitle)
|
setTitle(app.switchTitle)
|
||||||
setDefaultValue(true)
|
setDefaultValue(true)
|
||||||
with (prefs) {
|
with(prefs) {
|
||||||
setChecked(getBoolean( "enable_" + app.key.substringBefore("_"), true) && getBoolean(app.key, true))
|
setChecked(
|
||||||
|
getBoolean(
|
||||||
|
"enable_" + app.key.substringBefore("_"),
|
||||||
|
true
|
||||||
|
) && getBoolean(app.key, true)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GetNotifViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GetNotifViewHolder {
|
||||||
val view = ViewNotificationSettingBinding.inflate(LayoutInflater.from(context), parent, false)
|
val view =
|
||||||
|
ViewNotificationSettingBinding.inflate(LayoutInflater.from(context), parent, false)
|
||||||
return GetNotifViewHolder(view)
|
return GetNotifViewHolder(view)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,8 @@ class LinkAdapter(
|
||||||
|
|
||||||
val links = arrayOf(instagram, youtube, github, website, telegram, twitter, discord, reddit)
|
val links = arrayOf(instagram, youtube, github, website, telegram, twitter, discord, reddit)
|
||||||
|
|
||||||
inner class LinkViewHolder(private val binding: ViewSocialLinkBinding) : RecyclerView.ViewHolder(binding.root) {
|
inner class LinkViewHolder(private val binding: ViewSocialLinkBinding) :
|
||||||
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
|
|
||||||
val logo = binding.linkImage
|
val logo = binding.linkImage
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,8 @@ class SelectAppsAdapter(private val context: Context) :
|
||||||
|
|
||||||
val apps = arrayOf(vanced, music)
|
val apps = arrayOf(vanced, music)
|
||||||
|
|
||||||
inner class SelectAppsViewHolder(binding: ViewAppCheckboxBinding) : RecyclerView.ViewHolder(binding.root) {
|
inner class SelectAppsViewHolder(binding: ViewAppCheckboxBinding) :
|
||||||
|
RecyclerView.ViewHolder(binding.root) {
|
||||||
val appName = binding.appCheckboxText
|
val appName = binding.appCheckboxText
|
||||||
val appDescription = binding.appCheckboxDescription
|
val appDescription = binding.appCheckboxDescription
|
||||||
val appCard = binding.appCheckboxBg
|
val appCard = binding.appCheckboxBg
|
||||||
|
|
|
@ -18,7 +18,10 @@ class SponsorAdapter(
|
||||||
) : RecyclerView.Adapter<SponsorAdapter.LinkViewHolder>() {
|
) : RecyclerView.Adapter<SponsorAdapter.LinkViewHolder>() {
|
||||||
|
|
||||||
private val brave = SponsorModel(
|
private val brave = SponsorModel(
|
||||||
if (currentTheme == LIGHT) AppCompatResources.getDrawable(context, R.drawable.ic_brave_light) else AppCompatResources.getDrawable(context, R.drawable.ic_brave),
|
if (currentTheme == LIGHT) AppCompatResources.getDrawable(
|
||||||
|
context,
|
||||||
|
R.drawable.ic_brave_light
|
||||||
|
) else AppCompatResources.getDrawable(context, R.drawable.ic_brave),
|
||||||
"Brave",
|
"Brave",
|
||||||
BRAVE
|
BRAVE
|
||||||
)
|
)
|
||||||
|
|
|
@ -17,7 +17,7 @@ import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.SupervisorJob
|
import kotlinx.coroutines.SupervisorJob
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
open class App: Application() {
|
open class App : Application() {
|
||||||
|
|
||||||
private val prefs by lazy { getDefaultSharedPreferences(this) }
|
private val prefs by lazy { getDefaultSharedPreferences(this) }
|
||||||
private val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
private val scope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
||||||
|
@ -26,7 +26,8 @@ open class App: Application() {
|
||||||
scope.launch { loadJson(this@App) }
|
scope.launch { loadJson(this@App) }
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
mutableAccentColor.value = prefs.managerAccent
|
mutableAccentColor.value = prefs.managerAccent
|
||||||
Crowdin.init(this,
|
Crowdin.init(
|
||||||
|
this,
|
||||||
CrowdinConfig.Builder().apply {
|
CrowdinConfig.Builder().apply {
|
||||||
withDistributionHash(CROWDIN_HASH)
|
withDistributionHash(CROWDIN_HASH)
|
||||||
withNetworkType(NetworkType.WIFI)
|
withNetworkType(NetworkType.WIFI)
|
||||||
|
|
|
@ -22,7 +22,9 @@ object MusicDownloader {
|
||||||
|
|
||||||
fun downloadMusic(context: Context, version: String? = null) {
|
fun downloadMusic(context: Context, version: String? = null) {
|
||||||
val prefs = context.defPrefs
|
val prefs = context.defPrefs
|
||||||
musicVersion = version ?: prefs.musicVersion?.getLatestAppVersion(musicVersions.value?.value ?: listOf(""))
|
musicVersion = version ?: prefs.musicVersion?.getLatestAppVersion(
|
||||||
|
musicVersions.value?.value ?: listOf("")
|
||||||
|
)
|
||||||
versionCode = music.value?.int("versionCode")
|
versionCode = music.value?.int("versionCode")
|
||||||
variant = prefs.managerVariant
|
variant = prefs.managerVariant
|
||||||
baseurl = "$baseInstallUrl/music/v$musicVersion"
|
baseurl = "$baseInstallUrl/music/v$musicVersion"
|
||||||
|
@ -35,31 +37,43 @@ object MusicDownloader {
|
||||||
|
|
||||||
private fun downloadApk(context: Context, apk: String = "music") {
|
private fun downloadApk(context: Context, apk: String = "music") {
|
||||||
val url = if (apk == "stock") "$baseurl/stock/${getArch()}.apk" else "$baseurl/$variant.apk"
|
val url = if (apk == "stock") "$baseurl/stock/${getArch()}.apk" else "$baseurl/$variant.apk"
|
||||||
download(url, "$baseurl/", folderName!!, getFileNameFromUrl(url), context, onDownloadComplete = {
|
download(
|
||||||
if (variant == "root" && apk != "stock") {
|
url,
|
||||||
downloadApk(context, "stock")
|
"$baseurl/",
|
||||||
return@download
|
folderName!!,
|
||||||
}
|
getFileNameFromUrl(url),
|
||||||
|
context,
|
||||||
when (apk) {
|
onDownloadComplete = {
|
||||||
"music" -> {
|
if (variant == "root" && apk != "stock") {
|
||||||
if (variant == "root") {
|
downloadApk(context, "stock")
|
||||||
if (validateTheme(downloadPath!!, "root", hashUrl!!, context)) {
|
return@download
|
||||||
if (downloadStockCheck(musicRootPkg, versionCode!!, context))
|
|
||||||
downloadApk(context, "stock")
|
|
||||||
else
|
|
||||||
startMusicInstall(context)
|
|
||||||
} else {
|
|
||||||
downloadApk(context, apk)
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
startMusicInstall(context)
|
|
||||||
}
|
}
|
||||||
"stock" -> startMusicInstall(context)
|
|
||||||
}
|
when (apk) {
|
||||||
}, onError = {
|
"music" -> {
|
||||||
downloadingFile.postValue(context.getString(R.string.error_downloading, getFileNameFromUrl(url)))
|
if (variant == "root") {
|
||||||
})
|
if (validateTheme(downloadPath!!, "root", hashUrl!!, context)) {
|
||||||
|
if (downloadStockCheck(musicRootPkg, versionCode!!, context))
|
||||||
|
downloadApk(context, "stock")
|
||||||
|
else
|
||||||
|
startMusicInstall(context)
|
||||||
|
} else {
|
||||||
|
downloadApk(context, apk)
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
startMusicInstall(context)
|
||||||
|
}
|
||||||
|
"stock" -> startMusicInstall(context)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onError = {
|
||||||
|
downloadingFile.postValue(
|
||||||
|
context.getString(
|
||||||
|
R.string.error_downloading,
|
||||||
|
getFileNameFromUrl(url)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fun startMusicInstall(context: Context) {
|
fun startMusicInstall(context: Context) {
|
||||||
|
|
|
@ -16,7 +16,7 @@ import com.vanced.manager.utils.PackageHelper.installVancedRoot
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
object VancedDownloader {
|
object VancedDownloader {
|
||||||
|
|
||||||
private lateinit var prefs: SharedPreferences
|
private lateinit var prefs: SharedPreferences
|
||||||
private lateinit var defPrefs: SharedPreferences
|
private lateinit var defPrefs: SharedPreferences
|
||||||
private lateinit var arch: String
|
private lateinit var arch: String
|
||||||
|
@ -47,7 +47,9 @@ object VancedDownloader {
|
||||||
lang = it.split(", ").toMutableList()
|
lang = it.split(", ").toMutableList()
|
||||||
}
|
}
|
||||||
theme = prefs.theme
|
theme = prefs.theme
|
||||||
vancedVersion = version ?: defPrefs.vancedVersion?.getLatestAppVersion(vancedVersions.value?.value ?: listOf(""))
|
vancedVersion = version ?: defPrefs.vancedVersion?.getLatestAppVersion(
|
||||||
|
vancedVersions.value?.value ?: listOf("")
|
||||||
|
)
|
||||||
themePath = "$baseInstallUrl/apks/v$vancedVersion/$variant/Theme"
|
themePath = "$baseInstallUrl/apks/v$vancedVersion/$variant/Theme"
|
||||||
hashUrl = "apks/v$vancedVersion/$variant/Theme/hash.json"
|
hashUrl = "apks/v$vancedVersion/$variant/Theme/hash.json"
|
||||||
arch = getArch()
|
arch = getArch()
|
||||||
|
@ -68,53 +70,68 @@ object VancedDownloader {
|
||||||
"theme" -> "$themePath/$theme.apk"
|
"theme" -> "$themePath/$theme.apk"
|
||||||
"arch" -> "$baseInstallUrl/apks/v$vancedVersion/$variant/Arch/split_config.$arch.apk"
|
"arch" -> "$baseInstallUrl/apks/v$vancedVersion/$variant/Arch/split_config.$arch.apk"
|
||||||
"stock" -> "$themePath/stock.apk"
|
"stock" -> "$themePath/stock.apk"
|
||||||
"dpi" -> "$themePath/dpi.apk"
|
"dpi" -> "$themePath/dpi.apk"
|
||||||
"lang" -> "$baseInstallUrl/apks/v$vancedVersion/$variant/Language/split_config.${lang[count]}.apk"
|
"lang" -> "$baseInstallUrl/apks/v$vancedVersion/$variant/Language/split_config.${lang[count]}.apk"
|
||||||
else -> throw NotImplementedError("This type of APK is NOT valid. What the hell did you even do?")
|
else -> throw NotImplementedError("This type of APK is NOT valid. What the hell did you even do?")
|
||||||
}
|
}
|
||||||
|
|
||||||
download(url, "$baseInstallUrl/", folderName!!, getFileNameFromUrl(url), context, onDownloadComplete = {
|
download(
|
||||||
when (type) {
|
url,
|
||||||
"theme" ->
|
"$baseInstallUrl/",
|
||||||
if (variant == "root") {
|
folderName!!,
|
||||||
if (validateTheme(downloadPath!!, theme!!, hashUrl, context)) {
|
getFileNameFromUrl(url),
|
||||||
if (downloadStockCheck(vancedRootPkg, vancedVersionCode, context))
|
context,
|
||||||
downloadSplits(context, "arch")
|
onDownloadComplete = {
|
||||||
else
|
when (type) {
|
||||||
startVancedInstall(context)
|
"theme" ->
|
||||||
|
if (variant == "root") {
|
||||||
|
if (validateTheme(downloadPath!!, theme!!, hashUrl, context)) {
|
||||||
|
if (downloadStockCheck(vancedRootPkg, vancedVersionCode, context))
|
||||||
|
downloadSplits(context, "arch")
|
||||||
|
else
|
||||||
|
startVancedInstall(context)
|
||||||
|
} else
|
||||||
|
downloadSplits(context, "theme")
|
||||||
} else
|
} else
|
||||||
downloadSplits(context, "theme")
|
downloadSplits(context, "arch")
|
||||||
} else
|
"arch" -> if (variant == "root") downloadSplits(
|
||||||
downloadSplits(context, "arch")
|
context,
|
||||||
"arch" -> if (variant == "root") downloadSplits(context, "stock") else downloadSplits(context, "lang")
|
"stock"
|
||||||
"stock" -> downloadSplits(context, "dpi")
|
) else downloadSplits(context, "lang")
|
||||||
"dpi" -> downloadSplits(context, "lang")
|
"stock" -> downloadSplits(context, "dpi")
|
||||||
"lang" -> {
|
"dpi" -> downloadSplits(context, "lang")
|
||||||
count++
|
"lang" -> {
|
||||||
succesfulLangCount++
|
count++
|
||||||
if (count < lang.size)
|
succesfulLangCount++
|
||||||
downloadSplits(context, "lang")
|
if (count < lang.size)
|
||||||
else
|
downloadSplits(context, "lang")
|
||||||
startVancedInstall(context)
|
else
|
||||||
}
|
startVancedInstall(context)
|
||||||
|
|
||||||
}
|
|
||||||
}, onError = {
|
|
||||||
if (type == "lang") {
|
|
||||||
count++
|
|
||||||
when {
|
|
||||||
count < lang.size -> downloadSplits(context, "lang")
|
|
||||||
succesfulLangCount == 0 -> {
|
|
||||||
lang.add("en")
|
|
||||||
downloadSplits(context, "lang")
|
|
||||||
}
|
}
|
||||||
else -> startVancedInstall(context)
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
}
|
||||||
downloadingFile.postValue(context.getString(R.string.error_downloading, getFileNameFromUrl(url)))
|
},
|
||||||
}
|
onError = {
|
||||||
})
|
if (type == "lang") {
|
||||||
|
count++
|
||||||
|
when {
|
||||||
|
count < lang.size -> downloadSplits(context, "lang")
|
||||||
|
succesfulLangCount == 0 -> {
|
||||||
|
lang.add("en")
|
||||||
|
downloadSplits(context, "lang")
|
||||||
|
}
|
||||||
|
else -> startVancedInstall(context)
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
downloadingFile.postValue(
|
||||||
|
context.getString(
|
||||||
|
R.string.error_downloading,
|
||||||
|
getFileNameFromUrl(url)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fun startVancedInstall(context: Context, variant: String? = this.variant) {
|
fun startVancedInstall(context: Context, variant: String? = this.variant) {
|
||||||
|
|
|
@ -9,7 +9,7 @@ import com.vanced.manager.utils.AppUtils.sendCloseDialog
|
||||||
import com.vanced.manager.utils.AppUtils.sendFailure
|
import com.vanced.manager.utils.AppUtils.sendFailure
|
||||||
import com.vanced.manager.utils.AppUtils.sendRefresh
|
import com.vanced.manager.utils.AppUtils.sendRefresh
|
||||||
|
|
||||||
class AppInstallerService: Service() {
|
class AppInstallerService : Service() {
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
|
||||||
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
|
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
|
||||||
|
@ -31,7 +31,7 @@ class AppInstallerService: Service() {
|
||||||
else -> {
|
else -> {
|
||||||
sendCloseDialog(this)
|
sendCloseDialog(this)
|
||||||
intent.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE)?.let {
|
intent.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE)?.let {
|
||||||
sendFailure(it,this)
|
sendFailure(it, this)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import android.os.IBinder
|
||||||
import com.vanced.manager.utils.AppUtils.log
|
import com.vanced.manager.utils.AppUtils.log
|
||||||
import com.vanced.manager.utils.AppUtils.sendRefresh
|
import com.vanced.manager.utils.AppUtils.sendRefresh
|
||||||
|
|
||||||
class AppUninstallerService: Service() {
|
class AppUninstallerService : Service() {
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
val pkgName = intent?.getStringExtra("pkg")
|
val pkgName = intent?.getStringExtra("pkg")
|
||||||
|
|
|
@ -21,7 +21,7 @@ class RootDataModel(
|
||||||
//Although it's impossible for it to be null.
|
//Although it's impossible for it to be null.
|
||||||
//Ironic, isn't it?
|
//Ironic, isn't it?
|
||||||
private val scriptName: String?
|
private val scriptName: String?
|
||||||
): DataModel(
|
) : DataModel(
|
||||||
jsonObject, context, lifecycleOwner, appPkg, appName, appDescription, appIcon
|
jsonObject, context, lifecycleOwner, appPkg, appName, appDescription, appIcon
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ package com.vanced.manager.model
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
|
|
||||||
data class SponsorModel(
|
data class SponsorModel(
|
||||||
val logo: Drawable?,
|
val logo: Drawable?,
|
||||||
val name: String,
|
val name: String,
|
||||||
val url: String
|
val url: String
|
||||||
)
|
)
|
|
@ -86,7 +86,10 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setDisplayHomeAsUpEnabled(isNeeded: Boolean) {
|
private fun setDisplayHomeAsUpEnabled(isNeeded: Boolean) {
|
||||||
binding.toolbar.navigationIcon = if (isNeeded) ContextCompat.getDrawable(this, R.drawable.ic_keyboard_backspace_black_24dp) else null
|
binding.toolbar.navigationIcon = if (isNeeded) ContextCompat.getDrawable(
|
||||||
|
this,
|
||||||
|
R.drawable.ic_keyboard_backspace_black_24dp
|
||||||
|
) else null
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
|
@ -137,7 +140,8 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
R.id.toolbar_update_manager -> {
|
R.id.toolbar_update_manager -> {
|
||||||
ManagerUpdateDialog.newInstance(false).show(supportFragmentManager, "manager_update")
|
ManagerUpdateDialog.newInstance(false)
|
||||||
|
.show(supportFragmentManager, "manager_update")
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
R.id.dev_settings -> {
|
R.id.dev_settings -> {
|
||||||
|
@ -170,8 +174,14 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
when (newConfig.orientation) {
|
when (newConfig.orientation) {
|
||||||
Configuration.ORIENTATION_PORTRAIT -> log("VMUI", "screen orientation changed to portrait")
|
Configuration.ORIENTATION_PORTRAIT -> log(
|
||||||
Configuration.ORIENTATION_LANDSCAPE -> log("VMUI", "screen orientation changed to landscape")
|
"VMUI",
|
||||||
|
"screen orientation changed to portrait"
|
||||||
|
)
|
||||||
|
Configuration.ORIENTATION_LANDSCAPE -> log(
|
||||||
|
"VMUI",
|
||||||
|
"screen orientation changed to landscape"
|
||||||
|
)
|
||||||
else -> log("VMUI", "screen orientation changed to [REDACTED]")
|
else -> log("VMUI", "screen orientation changed to [REDACTED]")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ class WelcomeActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
with (binding) {
|
with(binding) {
|
||||||
if (welcomeViewpager.currentItem == 0) {
|
if (welcomeViewpager.currentItem == 0) {
|
||||||
super.onBackPressed()
|
super.onBackPressed()
|
||||||
} else {
|
} else {
|
||||||
|
@ -63,7 +63,7 @@ class WelcomeActivity : AppCompatActivity() {
|
||||||
//Shit way to implement animation duration, but at least it works
|
//Shit way to implement animation duration, but at least it works
|
||||||
private var ViewPager2.currentPosition: Int
|
private var ViewPager2.currentPosition: Int
|
||||||
get() = currentItem
|
get() = currentItem
|
||||||
set(value) {
|
set(value) {
|
||||||
val pixelsToDrag: Int = width * (value - currentItem)
|
val pixelsToDrag: Int = width * (value - currentItem)
|
||||||
val animator = ValueAnimator.ofInt(0, pixelsToDrag)
|
val animator = ValueAnimator.ofInt(0, pixelsToDrag)
|
||||||
var previousValue = 0
|
var previousValue = 0
|
||||||
|
|
|
@ -31,7 +31,7 @@ class EmptyPreference @JvmOverloads constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setSummary(newSummary: String) {
|
fun setSummary(newSummary: String) {
|
||||||
with (binding) {
|
with(binding) {
|
||||||
preferenceSummary.text = newSummary
|
preferenceSummary.text = newSummary
|
||||||
preferenceSummary.isVisible = true
|
preferenceSummary.isVisible = true
|
||||||
preferenceTitle.setPadding(0, 0, 0, 0)
|
preferenceTitle.setPadding(0, 0, 0, 0)
|
||||||
|
@ -40,10 +40,11 @@ class EmptyPreference @JvmOverloads constructor(
|
||||||
|
|
||||||
private fun initAttrs(context: Context, attrs: AttributeSet?) {
|
private fun initAttrs(context: Context, attrs: AttributeSet?) {
|
||||||
attrs?.let { mAttrs ->
|
attrs?.let { mAttrs ->
|
||||||
val typedArray = context.obtainStyledAttributes(mAttrs, R.styleable.EmptyPreference, 0, 0)
|
val typedArray =
|
||||||
|
context.obtainStyledAttributes(mAttrs, R.styleable.EmptyPreference, 0, 0)
|
||||||
val title = typedArray.getText(R.styleable.EmptyPreference_preference_title)
|
val title = typedArray.getText(R.styleable.EmptyPreference_preference_title)
|
||||||
val summary = typedArray.getText(R.styleable.EmptyPreference_preference_summary)
|
val summary = typedArray.getText(R.styleable.EmptyPreference_preference_summary)
|
||||||
with (binding) {
|
with(binding) {
|
||||||
if (summary != null) {
|
if (summary != null) {
|
||||||
preferenceSummary.text = summary
|
preferenceSummary.text = summary
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -27,7 +27,8 @@ class PreferenceCategory @JvmOverloads constructor(
|
||||||
|
|
||||||
private fun initAttrs(context: Context, attrs: AttributeSet?) {
|
private fun initAttrs(context: Context, attrs: AttributeSet?) {
|
||||||
attrs.let { mAttrs ->
|
attrs.let { mAttrs ->
|
||||||
val typedArray = context.obtainStyledAttributes(mAttrs, R.styleable.PreferenceCategory, 0, 0)
|
val typedArray =
|
||||||
|
context.obtainStyledAttributes(mAttrs, R.styleable.PreferenceCategory, 0, 0)
|
||||||
val title = typedArray.getText(R.styleable.PreferenceCategory_category_title)
|
val title = typedArray.getText(R.styleable.PreferenceCategory_category_title)
|
||||||
|
|
||||||
binding.categoryTitle.text = title
|
binding.categoryTitle.text = title
|
||||||
|
|
|
@ -32,11 +32,12 @@ class PreferenceSwitch @JvmOverloads constructor(
|
||||||
|
|
||||||
private var mListener: OnCheckedListener? = null
|
private var mListener: OnCheckedListener? = null
|
||||||
|
|
||||||
private val prefListener = SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key ->
|
private val prefListener =
|
||||||
if (key == prefKey) {
|
SharedPreferences.OnSharedPreferenceChangeListener { sharedPreferences, key ->
|
||||||
binding.preferenceSwitch.isChecked = sharedPreferences.getBoolean(key, defValue)
|
if (key == prefKey) {
|
||||||
|
binding.preferenceSwitch.isChecked = sharedPreferences.getBoolean(key, defValue)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private var _binding: ViewPreferenceSwitchBinding? = null
|
private var _binding: ViewPreferenceSwitchBinding? = null
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,6 @@ import android.content.Context
|
||||||
import android.content.res.ColorStateList
|
import android.content.res.ColorStateList
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.widget.AppCompatImageButton
|
|
||||||
import com.google.android.material.button.MaterialButton
|
import com.google.android.material.button.MaterialButton
|
||||||
import com.vanced.manager.utils.accentColor
|
import com.vanced.manager.utils.accentColor
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,9 @@ class ThemedOutlinedMaterialButton @JvmOverloads constructor(
|
||||||
|
|
||||||
private fun applyAccent(color: Int) {
|
private fun applyAccent(color: Int) {
|
||||||
setTextColor(color)
|
setTextColor(color)
|
||||||
rippleColor = ColorStateList(arrayOf(intArrayOf()), intArrayOf(ColorUtils.setAlphaComponent(color, 50)))
|
rippleColor = ColorStateList(
|
||||||
|
arrayOf(intArrayOf()),
|
||||||
|
intArrayOf(ColorUtils.setAlphaComponent(color, 50))
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -14,10 +14,17 @@ class ThemedSwipeRefreshlayout @JvmOverloads constructor(
|
||||||
setColorSchemeColors(accentColor.value!!)
|
setColorSchemeColors(accentColor.value!!)
|
||||||
initAttrs(context, attributeSet)
|
initAttrs(context, attributeSet)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initAttrs(context: Context, attributeSet: AttributeSet?) {
|
private fun initAttrs(context: Context, attributeSet: AttributeSet?) {
|
||||||
attributeSet.let {
|
attributeSet.let {
|
||||||
val typedAttrs = context.obtainStyledAttributes(it, R.styleable.ThemedSwipeRefreshlayout, 0, 0)
|
val typedAttrs =
|
||||||
setProgressBackgroundColorSchemeColor(typedAttrs.getColor(R.styleable.ThemedSwipeRefreshlayout_progressBackgroundColor, 0))
|
context.obtainStyledAttributes(it, R.styleable.ThemedSwipeRefreshlayout, 0, 0)
|
||||||
|
setProgressBackgroundColorSchemeColor(
|
||||||
|
typedAttrs.getColor(
|
||||||
|
R.styleable.ThemedSwipeRefreshlayout_progressBackgroundColor,
|
||||||
|
0
|
||||||
|
)
|
||||||
|
)
|
||||||
typedAttrs.recycle()
|
typedAttrs.recycle()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,8 @@ class ThemedSwitchCompat @JvmOverloads constructor(
|
||||||
attributeSet: AttributeSet? = null,
|
attributeSet: AttributeSet? = null,
|
||||||
) : SwitchCompat(context, attributeSet, R.attr.switchStyle) {
|
) : SwitchCompat(context, attributeSet, R.attr.switchStyle) {
|
||||||
|
|
||||||
private val states = arrayOf(intArrayOf(-android.R.attr.state_checked), intArrayOf(android.R.attr.state_checked))
|
private val states =
|
||||||
|
arrayOf(intArrayOf(-android.R.attr.state_checked), intArrayOf(android.R.attr.state_checked))
|
||||||
|
|
||||||
init {
|
init {
|
||||||
context.lifecycleOwner?.let { owner ->
|
context.lifecycleOwner?.let { owner ->
|
||||||
|
@ -29,7 +30,13 @@ class ThemedSwitchCompat @JvmOverloads constructor(
|
||||||
private fun setSwitchColors(color: Int) {
|
private fun setSwitchColors(color: Int) {
|
||||||
val thumbColors = intArrayOf(Color.LTGRAY, color)
|
val thumbColors = intArrayOf(Color.LTGRAY, color)
|
||||||
val trackColors = intArrayOf(Color.GRAY, ColorUtils.setAlphaComponent(color, 70))
|
val trackColors = intArrayOf(Color.GRAY, ColorUtils.setAlphaComponent(color, 70))
|
||||||
DrawableCompat.setTintList(DrawableCompat.wrap(thumbDrawable), ColorStateList(states, thumbColors))
|
DrawableCompat.setTintList(
|
||||||
DrawableCompat.setTintList(DrawableCompat.wrap(trackDrawable), ColorStateList(states, trackColors))
|
DrawableCompat.wrap(thumbDrawable),
|
||||||
|
ColorStateList(states, thumbColors)
|
||||||
|
)
|
||||||
|
DrawableCompat.setTintList(
|
||||||
|
DrawableCompat.wrap(trackDrawable),
|
||||||
|
ColorStateList(states, trackColors)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -73,8 +73,14 @@ class AppDownloadDialog : BindingDialogFragment<DialogAppDownloadBinding>() {
|
||||||
appDownloadHeader.text = app
|
appDownloadHeader.text = app
|
||||||
if (arguments?.getBoolean(TAG_INSTALLING) == false) {
|
if (arguments?.getBoolean(TAG_INSTALLING) == false) {
|
||||||
when (app) {
|
when (app) {
|
||||||
getString(R.string.vanced) -> downloadVanced(requireContext(), arguments?.getString(TAG_VERSION))
|
getString(R.string.vanced) -> downloadVanced(
|
||||||
getString(R.string.music) -> downloadMusic(requireContext(), arguments?.getString(TAG_VERSION))
|
requireContext(),
|
||||||
|
arguments?.getString(TAG_VERSION)
|
||||||
|
)
|
||||||
|
getString(R.string.music) -> downloadMusic(
|
||||||
|
requireContext(),
|
||||||
|
arguments?.getString(TAG_VERSION)
|
||||||
|
)
|
||||||
getString(R.string.microg) -> downloadMicrog(requireContext())
|
getString(R.string.microg) -> downloadMicrog(requireContext())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,11 +11,12 @@ import com.vanced.manager.core.ui.base.BindingBottomSheetDialogFragment
|
||||||
import com.vanced.manager.core.ui.ext.showDialog
|
import com.vanced.manager.core.ui.ext.showDialog
|
||||||
import com.vanced.manager.databinding.DialogBottomRadioButtonBinding
|
import com.vanced.manager.databinding.DialogBottomRadioButtonBinding
|
||||||
import com.vanced.manager.ui.core.ThemedMaterialRadioButton
|
import com.vanced.manager.ui.core.ThemedMaterialRadioButton
|
||||||
|
import com.vanced.manager.utils.checkedButtonTag
|
||||||
import com.vanced.manager.utils.defPrefs
|
import com.vanced.manager.utils.defPrefs
|
||||||
import com.vanced.manager.utils.formatVersion
|
import com.vanced.manager.utils.formatVersion
|
||||||
import com.vanced.manager.utils.checkedButtonTag
|
|
||||||
|
|
||||||
class AppVersionSelectorDialog : BindingBottomSheetDialogFragment<DialogBottomRadioButtonBinding>() {
|
class AppVersionSelectorDialog :
|
||||||
|
BindingBottomSheetDialogFragment<DialogBottomRadioButtonBinding>() {
|
||||||
|
|
||||||
private val prefs by lazy { requireActivity().defPrefs }
|
private val prefs by lazy { requireActivity().defPrefs }
|
||||||
|
|
||||||
|
|
|
@ -5,9 +5,9 @@ import androidx.core.content.edit
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.utils.showWithAccent
|
|
||||||
import com.vanced.manager.utils.isMiuiOptimizationsEnabled
|
import com.vanced.manager.utils.isMiuiOptimizationsEnabled
|
||||||
import com.vanced.manager.utils.openUrl
|
import com.vanced.manager.utils.openUrl
|
||||||
|
import com.vanced.manager.utils.showWithAccent
|
||||||
|
|
||||||
object DialogContainer {
|
object DialogContainer {
|
||||||
|
|
||||||
|
@ -68,24 +68,50 @@ object DialogContainer {
|
||||||
when (msg) {
|
when (msg) {
|
||||||
context.getString(R.string.installation_signature) -> {
|
context.getString(R.string.installation_signature) -> {
|
||||||
setPositiveButton(context.getString(R.string.guide)) { _, _ ->
|
setPositiveButton(context.getString(R.string.guide)) { _, _ ->
|
||||||
openUrl("https://lmgtfy.com/?q=andnixsh+apk+verification+disable", R.color.Twitter, context)
|
openUrl(
|
||||||
|
"https://lmgtfy.com/?q=andnixsh+apk+verification+disable",
|
||||||
|
R.color.Twitter,
|
||||||
|
context
|
||||||
|
)
|
||||||
}
|
}
|
||||||
setNeutralButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
setNeutralButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
||||||
if (fullMsg != null)
|
if (fullMsg != null)
|
||||||
setNegativeButton(context.getString(R.string.advanced)) { _, _ -> basicDialog(context.getString(R.string.advanced), fullMsg, context) }
|
setNegativeButton(context.getString(R.string.advanced)) { _, _ ->
|
||||||
|
basicDialog(
|
||||||
|
context.getString(R.string.advanced),
|
||||||
|
fullMsg,
|
||||||
|
context
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
context.getString(R.string.installation_miui) -> {
|
context.getString(R.string.installation_miui) -> {
|
||||||
setPositiveButton(context.getString(R.string.guide)) { _, _ ->
|
setPositiveButton(context.getString(R.string.guide)) { _, _ ->
|
||||||
openUrl("https://telegra.ph/How-to-install-v15-on-MIUI-02-11", R.color.Telegram, context)
|
openUrl(
|
||||||
|
"https://telegra.ph/How-to-install-v15-on-MIUI-02-11",
|
||||||
|
R.color.Telegram,
|
||||||
|
context
|
||||||
|
)
|
||||||
}
|
}
|
||||||
setNeutralButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
setNeutralButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
||||||
if (fullMsg != null)
|
if (fullMsg != null)
|
||||||
setNegativeButton(context.getString(R.string.advanced)) { _, _ -> basicDialog(context.getString(R.string.advanced), fullMsg, context) }
|
setNegativeButton(context.getString(R.string.advanced)) { _, _ ->
|
||||||
|
basicDialog(
|
||||||
|
context.getString(R.string.advanced),
|
||||||
|
fullMsg,
|
||||||
|
context
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
setPositiveButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
setPositiveButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
||||||
if (fullMsg != null)
|
if (fullMsg != null)
|
||||||
setNegativeButton(context.getString(R.string.advanced)) { _, _ -> basicDialog(context.getString(R.string.advanced), fullMsg, context) }
|
setNegativeButton(context.getString(R.string.advanced)) { _, _ ->
|
||||||
|
basicDialog(
|
||||||
|
context.getString(R.string.advanced),
|
||||||
|
fullMsg,
|
||||||
|
context
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
create()
|
create()
|
||||||
|
|
|
@ -13,7 +13,8 @@ import com.vanced.manager.databinding.DialogInstallationFilesDetectedBinding
|
||||||
import com.vanced.manager.utils.defPrefs
|
import com.vanced.manager.utils.defPrefs
|
||||||
import com.vanced.manager.utils.managerVariant
|
import com.vanced.manager.utils.managerVariant
|
||||||
|
|
||||||
class InstallationFilesDetectedDialog : BindingBottomSheetDialogFragment<DialogInstallationFilesDetectedBinding>() {
|
class InstallationFilesDetectedDialog :
|
||||||
|
BindingBottomSheetDialogFragment<DialogInstallationFilesDetectedBinding>() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
|
@ -40,9 +41,11 @@ class InstallationFilesDetectedDialog : BindingBottomSheetDialogFragment<DialogI
|
||||||
|
|
||||||
private fun bindData() {
|
private fun bindData() {
|
||||||
with(binding) {
|
with(binding) {
|
||||||
val app = arguments?.getString(TAG_APP) ?: throw IllegalArgumentException("app name is null")
|
val app =
|
||||||
|
arguments?.getString(TAG_APP) ?: throw IllegalArgumentException("app name is null")
|
||||||
installationDetectedTitle.text = getString(R.string.app_install_files_detected, app)
|
installationDetectedTitle.text = getString(R.string.app_install_files_detected, app)
|
||||||
installationDetectedSummary.text = getString(R.string.app_install_files_detected_summary, app)
|
installationDetectedSummary.text =
|
||||||
|
getString(R.string.app_install_files_detected_summary, app)
|
||||||
installationDetectedRedownload.setOnClickListener {
|
installationDetectedRedownload.setOnClickListener {
|
||||||
dismiss()
|
dismiss()
|
||||||
when (app) {
|
when (app) {
|
||||||
|
|
|
@ -50,9 +50,20 @@ class ManagerAccentColorDialog : BindingDialogFragment<DialogManagerAccentColorB
|
||||||
hexEdittext.apply {
|
hexEdittext.apply {
|
||||||
setText(accent.toHex(), TextView.BufferType.EDITABLE)
|
setText(accent.toHex(), TextView.BufferType.EDITABLE)
|
||||||
addTextChangedListener(object : TextWatcher {
|
addTextChangedListener(object : TextWatcher {
|
||||||
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {}
|
override fun beforeTextChanged(
|
||||||
|
s: CharSequence?,
|
||||||
|
start: Int,
|
||||||
|
count: Int,
|
||||||
|
after: Int
|
||||||
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
|
override fun onTextChanged(
|
||||||
|
s: CharSequence?,
|
||||||
|
start: Int,
|
||||||
|
before: Int,
|
||||||
|
count: Int
|
||||||
|
) {
|
||||||
if (length() == 0) {
|
if (length() == 0) {
|
||||||
setText("#")
|
setText("#")
|
||||||
setSelection(1)
|
setSelection(1)
|
||||||
|
@ -63,7 +74,8 @@ class ManagerAccentColorDialog : BindingDialogFragment<DialogManagerAccentColorB
|
||||||
val colorFromEditText = Color.parseColor(text.toString())
|
val colorFromEditText = Color.parseColor(text.toString())
|
||||||
accentPicker.setColor(colorFromEditText)
|
accentPicker.setColor(colorFromEditText)
|
||||||
mutableAccentColor.value = colorFromEditText
|
mutableAccentColor.value = colorFromEditText
|
||||||
} catch (e: IllegalArgumentException) {}
|
} catch (e: IllegalArgumentException) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +108,11 @@ class ManagerAccentColorDialog : BindingDialogFragment<DialogManagerAccentColorB
|
||||||
prefs.managerAccent = colorFromEditText
|
prefs.managerAccent = colorFromEditText
|
||||||
} catch (e: IllegalArgumentException) {
|
} catch (e: IllegalArgumentException) {
|
||||||
log("VMTheme", getString(R.string.failed_accent))
|
log("VMTheme", getString(R.string.failed_accent))
|
||||||
Toast.makeText(requireActivity(), getString(R.string.failed_accent), Toast.LENGTH_SHORT).show()
|
Toast.makeText(
|
||||||
|
requireActivity(),
|
||||||
|
getString(R.string.failed_accent),
|
||||||
|
Toast.LENGTH_SHORT
|
||||||
|
).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,8 @@ class ManagerUpdateDialog : BindingDialogFragment<DialogManagerUpdateBinding>()
|
||||||
dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||||
bindData()
|
bindData()
|
||||||
if (arguments?.getBoolean(TAG_FORCE_UPDATE) == true) {
|
if (arguments?.getBoolean(TAG_FORCE_UPDATE) == true) {
|
||||||
binding.managerUpdatePatient.text = requireActivity().getString(R.string.please_be_patient)
|
binding.managerUpdatePatient.text =
|
||||||
|
requireActivity().getString(R.string.please_be_patient)
|
||||||
downloadManager(requireActivity())
|
downloadManager(requireActivity())
|
||||||
} else {
|
} else {
|
||||||
checkUpdates()
|
checkUpdates()
|
||||||
|
@ -99,10 +100,12 @@ class ManagerUpdateDialog : BindingDialogFragment<DialogManagerUpdateBinding>()
|
||||||
|
|
||||||
private fun checkUpdates() {
|
private fun checkUpdates() {
|
||||||
if (manager.value?.int("versionCode") ?: 0 > VERSION_CODE) {
|
if (manager.value?.int("versionCode") ?: 0 > VERSION_CODE) {
|
||||||
binding.managerUpdatePatient.text = requireActivity().getString(R.string.please_be_patient)
|
binding.managerUpdatePatient.text =
|
||||||
|
requireActivity().getString(R.string.please_be_patient)
|
||||||
downloadManager(requireActivity())
|
downloadManager(requireActivity())
|
||||||
} else {
|
} else {
|
||||||
binding.managerUpdatePatient.text = requireActivity().getString(R.string.update_not_found)
|
binding.managerUpdatePatient.text =
|
||||||
|
requireActivity().getString(R.string.update_not_found)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ class ManagerVariantDialog : BindingBottomSheetDialogFragment<DialogManagerVaria
|
||||||
if (variant != newPref) {
|
if (variant != newPref) {
|
||||||
prefs.managerVariant =
|
prefs.managerVariant =
|
||||||
if (newPref == "root" && Shell.rootAccess()) {
|
if (newPref == "root" && Shell.rootAccess()) {
|
||||||
"root"
|
"root"
|
||||||
} else {
|
} else {
|
||||||
"nonroot"
|
"nonroot"
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,8 +33,12 @@ class MusicPreferencesDialog : BindingBottomSheetDialogFragment<DialogMusicPrefe
|
||||||
private fun bindData() {
|
private fun bindData() {
|
||||||
with(binding) {
|
with(binding) {
|
||||||
val musicVersionsConv = musicVersions.value?.value?.convertToAppVersions()
|
val musicVersionsConv = musicVersions.value?.value?.convertToAppVersions()
|
||||||
musicInstallTitle.text = getString(R.string.app_installation_preferences, getString(R.string.music))
|
musicInstallTitle.text =
|
||||||
musicVersion.text = getString(R.string.chosen_version, prefs.musicVersion?.formatVersion(requireActivity()))
|
getString(R.string.app_installation_preferences, getString(R.string.music))
|
||||||
|
musicVersion.text = getString(
|
||||||
|
R.string.chosen_version,
|
||||||
|
prefs.musicVersion?.formatVersion(requireActivity())
|
||||||
|
)
|
||||||
openVersionSelectorLayout.setOnClickListener {
|
openVersionSelectorLayout.setOnClickListener {
|
||||||
dismiss()
|
dismiss()
|
||||||
showDialog(
|
showDialog(
|
||||||
|
|
|
@ -43,7 +43,11 @@ class SelectAppsDialog : BindingBottomSheetDialogFragment<DialogSelectAppsBindin
|
||||||
}
|
}
|
||||||
selectAppsSave.setOnClickListener {
|
selectAppsSave.setOnClickListener {
|
||||||
if (ad.apps.all { app -> !app.isChecked }) {
|
if (ad.apps.all { app -> !app.isChecked }) {
|
||||||
Toast.makeText(requireActivity(), R.string.select_at_least_one_app, Toast.LENGTH_SHORT).show()
|
Toast.makeText(
|
||||||
|
requireActivity(),
|
||||||
|
R.string.select_at_least_one_app,
|
||||||
|
Toast.LENGTH_SHORT
|
||||||
|
).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
prefs.edit {
|
prefs.edit {
|
||||||
|
|
|
@ -32,7 +32,7 @@ class ServiceDTimerDialog : BindingDialogFragment<DialogServicedTimerBinding>()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun bindData() {
|
private fun bindData() {
|
||||||
with (binding) {
|
with(binding) {
|
||||||
servicedSlider.value = prefs.getInt("serviced_sleep_timer", 1).toFloat()
|
servicedSlider.value = prefs.getInt("serviced_sleep_timer", 1).toFloat()
|
||||||
servicedCancel.setOnClickListener {
|
servicedCancel.setOnClickListener {
|
||||||
dismiss()
|
dismiss()
|
||||||
|
@ -41,12 +41,26 @@ class ServiceDTimerDialog : BindingDialogFragment<DialogServicedTimerBinding>()
|
||||||
try {
|
try {
|
||||||
arrayOf("vanced", "music").forEach { app ->
|
arrayOf("vanced", "music").forEach { app ->
|
||||||
if (scriptExists(app)) {
|
if (scriptExists(app)) {
|
||||||
val apkFPath = "${PackageHelper.apkInstallPath}/${app.capitalize(Locale.ROOT)}/base.apk"
|
val apkFPath =
|
||||||
getPackageDir(requireActivity(), getPkgNameRoot(app))?.let { it1 -> requireActivity().writeServiceDScript(apkFPath, it1, app) }
|
"${PackageHelper.apkInstallPath}/${app.capitalize(Locale.ROOT)}/base.apk"
|
||||||
|
getPackageDir(
|
||||||
|
requireActivity(),
|
||||||
|
getPkgNameRoot(app)
|
||||||
|
)?.let { it1 ->
|
||||||
|
requireActivity().writeServiceDScript(
|
||||||
|
apkFPath,
|
||||||
|
it1,
|
||||||
|
app
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
Toast.makeText(requireActivity(), R.string.script_save_failed, Toast.LENGTH_SHORT).show()
|
Toast.makeText(
|
||||||
|
requireActivity(),
|
||||||
|
R.string.script_save_failed,
|
||||||
|
Toast.LENGTH_SHORT
|
||||||
|
).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -45,11 +45,12 @@ class URLChangeDialog : BindingDialogFragment<DialogCustomUrlBinding>() {
|
||||||
TextView.BufferType.EDITABLE
|
TextView.BufferType.EDITABLE
|
||||||
)
|
)
|
||||||
urlSave.setOnClickListener {
|
urlSave.setOnClickListener {
|
||||||
val finalUrl = if (urlInput.text?.startsWith("https://") == true || urlInput.text?.startsWith("http://") == true) {
|
val finalUrl =
|
||||||
urlInput.text?.removeSuffix("/").toString()
|
if (urlInput.text?.startsWith("https://") == true || urlInput.text?.startsWith("http://") == true) {
|
||||||
} else {
|
urlInput.text?.removeSuffix("/").toString()
|
||||||
"https://${urlInput.text}".removeSuffix("/")
|
} else {
|
||||||
}
|
"https://${urlInput.text}".removeSuffix("/")
|
||||||
|
}
|
||||||
saveUrl(finalUrl)
|
saveUrl(finalUrl)
|
||||||
}
|
}
|
||||||
urlReset.setOnClickListener { saveUrl(baseUrl) }
|
urlReset.setOnClickListener { saveUrl(baseUrl) }
|
||||||
|
|
|
@ -19,7 +19,8 @@ import com.vanced.manager.utils.lang
|
||||||
import com.vanced.manager.utils.vanced
|
import com.vanced.manager.utils.vanced
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class VancedLanguageSelectionDialog : BindingBottomSheetDialogFragment<DialogVancedLanguageSelectionBinding>() {
|
class VancedLanguageSelectionDialog :
|
||||||
|
BindingBottomSheetDialogFragment<DialogVancedLanguageSelectionBinding>() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
|
@ -52,7 +53,11 @@ class VancedLanguageSelectionDialog : BindingBottomSheetDialogFragment<DialogVan
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (chosenLangs.isEmpty()) {
|
if (chosenLangs.isEmpty()) {
|
||||||
Toast.makeText(requireActivity(), R.string.select_at_least_one_lang, Toast.LENGTH_SHORT).show()
|
Toast.makeText(
|
||||||
|
requireActivity(),
|
||||||
|
R.string.select_at_least_one_lang,
|
||||||
|
Toast.LENGTH_SHORT
|
||||||
|
).show()
|
||||||
return@setOnClickListener
|
return@setOnClickListener
|
||||||
}
|
}
|
||||||
prefs.lang = chosenLangs.joinToString()
|
prefs.lang = chosenLangs.joinToString()
|
||||||
|
|
|
@ -43,9 +43,16 @@ class VancedPreferencesDialog : BindingBottomSheetDialogFragment<DialogVancedPre
|
||||||
showLang.add(loc.getDisplayLanguage(loc).capitalize(Locale.ROOT))
|
showLang.add(loc.getDisplayLanguage(loc).capitalize(Locale.ROOT))
|
||||||
}
|
}
|
||||||
val vancedVersionsConv = vancedVersions.value?.value?.convertToAppVersions()
|
val vancedVersionsConv = vancedVersions.value?.value?.convertToAppVersions()
|
||||||
vancedInstallTitle.text = getString(R.string.app_installation_preferences, getString(R.string.vanced))
|
vancedInstallTitle.text =
|
||||||
vancedTheme.text = getString(R.string.chosen_theme, installPrefs.theme?.convertToAppTheme(requireActivity()))
|
getString(R.string.app_installation_preferences, getString(R.string.vanced))
|
||||||
vancedVersion.text = getString(R.string.chosen_version, defPrefs.vancedVersion?.formatVersion(requireActivity()))
|
vancedTheme.text = getString(
|
||||||
|
R.string.chosen_theme,
|
||||||
|
installPrefs.theme?.convertToAppTheme(requireActivity())
|
||||||
|
)
|
||||||
|
vancedVersion.text = getString(
|
||||||
|
R.string.chosen_version,
|
||||||
|
defPrefs.vancedVersion?.formatVersion(requireActivity())
|
||||||
|
)
|
||||||
vancedLang.text = getString(R.string.chosen_lang, showLang)
|
vancedLang.text = getString(R.string.chosen_lang, showLang)
|
||||||
openThemeSelectorLayout.setOnClickListener {
|
openThemeSelectorLayout.setOnClickListener {
|
||||||
dismiss()
|
dismiss()
|
||||||
|
@ -79,7 +86,13 @@ class VancedPreferencesDialog : BindingBottomSheetDialogFragment<DialogVancedPre
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (defPrefs.managerVariant == "nonroot" && isMicrogBroken && defPrefs.vancedVersion?.getLatestAppVersion(vancedVersions.value?.value ?: listOf(""))?.take(2)?.toIntOrNull() == 16 && !isPackageInstalled(vancedPkg, requireActivity().packageManager)) {
|
if (defPrefs.managerVariant == "nonroot" && isMicrogBroken && defPrefs.vancedVersion?.getLatestAppVersion(
|
||||||
|
vancedVersions.value?.value ?: listOf("")
|
||||||
|
)?.take(2)?.toIntOrNull() == 16 && !isPackageInstalled(
|
||||||
|
vancedPkg,
|
||||||
|
requireActivity().packageManager
|
||||||
|
)
|
||||||
|
) {
|
||||||
MaterialAlertDialogBuilder(requireActivity()).apply {
|
MaterialAlertDialogBuilder(requireActivity()).apply {
|
||||||
setTitle(R.string.microg_bug)
|
setTitle(R.string.microg_bug)
|
||||||
setMessage(R.string.microg_bug_summary)
|
setMessage(R.string.microg_bug_summary)
|
||||||
|
|
|
@ -10,12 +10,13 @@ import com.vanced.manager.core.ui.base.BindingBottomSheetDialogFragment
|
||||||
import com.vanced.manager.core.ui.ext.showDialog
|
import com.vanced.manager.core.ui.ext.showDialog
|
||||||
import com.vanced.manager.databinding.DialogBottomRadioButtonBinding
|
import com.vanced.manager.databinding.DialogBottomRadioButtonBinding
|
||||||
import com.vanced.manager.ui.core.ThemedMaterialRadioButton
|
import com.vanced.manager.ui.core.ThemedMaterialRadioButton
|
||||||
import com.vanced.manager.utils.convertToAppTheme
|
|
||||||
import com.vanced.manager.utils.checkedButtonTag
|
import com.vanced.manager.utils.checkedButtonTag
|
||||||
|
import com.vanced.manager.utils.convertToAppTheme
|
||||||
import com.vanced.manager.utils.theme
|
import com.vanced.manager.utils.theme
|
||||||
import com.vanced.manager.utils.vanced
|
import com.vanced.manager.utils.vanced
|
||||||
|
|
||||||
class VancedThemeSelectorDialog : BindingBottomSheetDialogFragment<DialogBottomRadioButtonBinding>() {
|
class VancedThemeSelectorDialog :
|
||||||
|
BindingBottomSheetDialogFragment<DialogBottomRadioButtonBinding>() {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
||||||
|
@ -24,7 +25,12 @@ class VancedThemeSelectorDialog : BindingBottomSheetDialogFragment<DialogBottomR
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val prefs by lazy { requireActivity().getSharedPreferences("installPrefs", Context.MODE_PRIVATE) }
|
private val prefs by lazy {
|
||||||
|
requireActivity().getSharedPreferences(
|
||||||
|
"installPrefs",
|
||||||
|
Context.MODE_PRIVATE
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
override fun binding(
|
override fun binding(
|
||||||
inflater: LayoutInflater,
|
inflater: LayoutInflater,
|
||||||
|
@ -60,7 +66,7 @@ class VancedThemeSelectorDialog : BindingBottomSheetDialogFragment<DialogBottomR
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun loadButtons() = vanced.value?.array<String>("themes")?.value?.map {theme ->
|
private fun loadButtons() = vanced.value?.array<String>("themes")?.value?.map { theme ->
|
||||||
ThemedMaterialRadioButton(requireActivity()).apply {
|
ThemedMaterialRadioButton(requireActivity()).apply {
|
||||||
text = theme.convertToAppTheme(requireActivity())
|
text = theme.convertToAppTheme(requireActivity())
|
||||||
tag = theme
|
tag = theme
|
||||||
|
|
|
@ -60,10 +60,18 @@ class AboutFragment : BindingFragment<FragmentAboutBinding>() {
|
||||||
val prefs = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
val prefs = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||||
val devSettings = prefs.getBoolean("devSettings", false)
|
val devSettings = prefs.getBoolean("devSettings", false)
|
||||||
if (!devSettings) {
|
if (!devSettings) {
|
||||||
Toast.makeText(requireContext(), "Dev options unlocked!", Toast.LENGTH_SHORT).show()
|
Toast.makeText(
|
||||||
|
requireContext(),
|
||||||
|
"Dev options unlocked!",
|
||||||
|
Toast.LENGTH_SHORT
|
||||||
|
).show()
|
||||||
prefs.edit { putBoolean("devSettings", true) }
|
prefs.edit { putBoolean("devSettings", true) }
|
||||||
} else
|
} else
|
||||||
Toast.makeText(requireContext(), "Dev options already unlocked", Toast.LENGTH_SHORT).show()
|
Toast.makeText(
|
||||||
|
requireContext(),
|
||||||
|
"Dev options already unlocked",
|
||||||
|
Toast.LENGTH_SHORT
|
||||||
|
).show()
|
||||||
|
|
||||||
}
|
}
|
||||||
return@setOnTouchListener true
|
return@setOnTouchListener true
|
||||||
|
|
|
@ -41,7 +41,12 @@ class GrantRootFragment : BindingFragment<FragmentGrantRootBinding>() {
|
||||||
|
|
||||||
private fun grantRoot() {
|
private fun grantRoot() {
|
||||||
if (Shell.rootAccess()) {
|
if (Shell.rootAccess()) {
|
||||||
getDefaultSharedPreferences(requireActivity()).edit { putString("vanced_variant", "root") }
|
getDefaultSharedPreferences(requireActivity()).edit {
|
||||||
|
putString(
|
||||||
|
"vanced_variant",
|
||||||
|
"root"
|
||||||
|
)
|
||||||
|
}
|
||||||
navigateToFirstLaunch()
|
navigateToFirstLaunch()
|
||||||
} else {
|
} else {
|
||||||
Toast.makeText(requireActivity(), R.string.root_not_granted, Toast.LENGTH_SHORT).show()
|
Toast.makeText(requireActivity(), R.string.root_not_granted, Toast.LENGTH_SHORT).show()
|
||||||
|
|
|
@ -52,13 +52,13 @@ class HomeFragment : BindingFragment<FragmentHomeBinding>() {
|
||||||
private fun bindData() {
|
private fun bindData() {
|
||||||
requireActivity().title = getString(R.string.title_home)
|
requireActivity().title = getString(R.string.title_home)
|
||||||
setHasOptionsMenu(true)
|
setHasOptionsMenu(true)
|
||||||
with (binding) {
|
with(binding) {
|
||||||
homeRefresh.setOnRefreshListener { viewModel.fetchData() }
|
homeRefresh.setOnRefreshListener { viewModel.fetchData() }
|
||||||
isFetching.observe(viewLifecycleOwner) { homeRefresh.isRefreshing = it }
|
isFetching.observe(viewLifecycleOwner) { homeRefresh.isRefreshing = it }
|
||||||
|
|
||||||
recyclerAppList.apply {
|
recyclerAppList.apply {
|
||||||
layoutManager = LinearLayoutManager(requireActivity())
|
layoutManager = LinearLayoutManager(requireActivity())
|
||||||
adapter = ExpandableAppListAdapter(requireActivity(), viewModel /*, tooltip*/ )
|
adapter = ExpandableAppListAdapter(requireActivity(), viewModel /*, tooltip*/)
|
||||||
setHasFixedSize(true)
|
setHasFixedSize(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +98,11 @@ class HomeFragment : BindingFragment<FragmentHomeBinding>() {
|
||||||
private val broadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
|
private val broadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
when (intent.action) {
|
when (intent.action) {
|
||||||
INSTALL_FAILED -> installAlertBuilder(intent.getStringExtra("errorMsg").toString(), intent.getStringExtra("fullErrorMsg"), requireActivity())
|
INSTALL_FAILED -> installAlertBuilder(
|
||||||
|
intent.getStringExtra("errorMsg").toString(),
|
||||||
|
intent.getStringExtra("fullErrorMsg"),
|
||||||
|
requireActivity()
|
||||||
|
)
|
||||||
REFRESH_HOME -> viewModel.fetchData()
|
REFRESH_HOME -> viewModel.fetchData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,7 +38,8 @@ class LogFragment : BindingFragment<FragmentLogBinding>() {
|
||||||
val hour = calendar.get(Calendar.HOUR_OF_DAY)
|
val hour = calendar.get(Calendar.HOUR_OF_DAY)
|
||||||
val minute = calendar.get(Calendar.MINUTE)
|
val minute = calendar.get(Calendar.MINUTE)
|
||||||
val second = calendar.get(Calendar.SECOND)
|
val second = calendar.get(Calendar.SECOND)
|
||||||
val log = File(requireActivity().getExternalFilesDir("logs")?.path + "/$year$month${day}_$hour$minute$second.log")
|
val log =
|
||||||
|
File(requireActivity().getExternalFilesDir("logs")?.path + "/$year$month${day}_$hour$minute$second.log")
|
||||||
FileWriter(log).apply {
|
FileWriter(log).apply {
|
||||||
append(logs)
|
append(logs)
|
||||||
flush()
|
flush()
|
||||||
|
@ -46,7 +47,8 @@ class LogFragment : BindingFragment<FragmentLogBinding>() {
|
||||||
}
|
}
|
||||||
Toast.makeText(requireActivity(), R.string.logs_saved, Toast.LENGTH_SHORT).show()
|
Toast.makeText(requireActivity(), R.string.logs_saved, Toast.LENGTH_SHORT).show()
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
Toast.makeText(requireActivity(), R.string.logs_not_saved, Toast.LENGTH_SHORT).show()
|
Toast.makeText(requireActivity(), R.string.logs_not_saved, Toast.LENGTH_SHORT)
|
||||||
|
.show()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,8 @@ class SelectAppsFragment : BindingFragment<FragmentSelectAppsBinding>() {
|
||||||
|
|
||||||
private fun actionOnClickAppsFab() {
|
private fun actionOnClickAppsFab() {
|
||||||
if (selectAdapter.apps.all { app -> !app.isChecked }) {
|
if (selectAdapter.apps.all { app -> !app.isChecked }) {
|
||||||
Toast.makeText(requireActivity(), R.string.select_at_least_one_app, Toast.LENGTH_SHORT).show()
|
Toast.makeText(requireActivity(), R.string.select_at_least_one_app, Toast.LENGTH_SHORT)
|
||||||
|
.show()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
val prefs = getDefaultSharedPreferences(requireActivity())
|
val prefs = getDefaultSharedPreferences(requireActivity())
|
||||||
|
|
|
@ -96,7 +96,13 @@ class SettingsFragment : BindingFragment<FragmentSettingsBinding>() {
|
||||||
private fun FragmentSettingsBinding.bindClearFiles() {
|
private fun FragmentSettingsBinding.bindClearFiles() {
|
||||||
clearFiles.setOnClickListener {
|
clearFiles.setOnClickListener {
|
||||||
with(requireActivity()) {
|
with(requireActivity()) {
|
||||||
listOf("vanced/nonroot", "vanced/root", "music/nonroot", "music/root", "microg").forEach { dir ->
|
listOf(
|
||||||
|
"vanced/nonroot",
|
||||||
|
"vanced/root",
|
||||||
|
"music/nonroot",
|
||||||
|
"music/root",
|
||||||
|
"microg"
|
||||||
|
).forEach { dir ->
|
||||||
File(getExternalFilesDir(dir)?.path.toString()).deleteRecursively()
|
File(getExternalFilesDir(dir)?.path.toString()).deleteRecursively()
|
||||||
}
|
}
|
||||||
Toast.makeText(this, getString(R.string.cleared_files), Toast.LENGTH_SHORT).show()
|
Toast.makeText(this, getString(R.string.cleared_files), Toast.LENGTH_SHORT).show()
|
||||||
|
@ -119,7 +125,7 @@ class SettingsFragment : BindingFragment<FragmentSettingsBinding>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FragmentSettingsBinding.bindManagerAccentColor() {
|
private fun FragmentSettingsBinding.bindManagerAccentColor() {
|
||||||
managerAccentColor.apply{
|
managerAccentColor.apply {
|
||||||
setSummary(prefs.getInt("manager_accent_color", defAccentColor).toHex())
|
setSummary(prefs.getInt("manager_accent_color", defAccentColor).toHex())
|
||||||
setOnClickListener { showDialog(ManagerAccentColorDialog()) }
|
setOnClickListener { showDialog(ManagerAccentColorDialog()) }
|
||||||
accentColor.observe(viewLifecycleOwner) {
|
accentColor.observe(viewLifecycleOwner) {
|
||||||
|
@ -138,7 +144,8 @@ class SettingsFragment : BindingFragment<FragmentSettingsBinding>() {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||||
val devSettings = getDefaultSharedPreferences(requireActivity()).getBoolean("devSettings", false)
|
val devSettings =
|
||||||
|
getDefaultSharedPreferences(requireActivity()).getBoolean("devSettings", false)
|
||||||
if (devSettings) {
|
if (devSettings) {
|
||||||
inflater.inflate(R.menu.dev_settings_menu, menu)
|
inflater.inflate(R.menu.dev_settings_menu, menu)
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@ import androidx.lifecycle.AndroidViewModel
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.utils.openUrl
|
import com.vanced.manager.utils.openUrl
|
||||||
|
|
||||||
class AboutViewModel(application: Application): AndroidViewModel(application) {
|
class AboutViewModel(application: Application) : AndroidViewModel(application) {
|
||||||
|
|
||||||
fun openUrl(url: String) {
|
fun openUrl(url: String) {
|
||||||
openUrl(url, R.color.GitHub, getApplication())
|
openUrl(url, R.color.GitHub, getApplication())
|
||||||
|
|
|
@ -41,7 +41,7 @@ import kotlinx.coroutines.launch
|
||||||
|
|
||||||
//TODO fix leak
|
//TODO fix leak
|
||||||
@SuppressLint("StaticFieldLeak")
|
@SuppressLint("StaticFieldLeak")
|
||||||
class HomeViewModel(private val activity: FragmentActivity): ViewModel() {
|
class HomeViewModel(private val activity: FragmentActivity) : ViewModel() {
|
||||||
|
|
||||||
private val prefs = getDefaultSharedPreferences(activity)
|
private val prefs = getDefaultSharedPreferences(activity)
|
||||||
private val variant get() = prefs.getString("vanced_variant", "nonroot")
|
private val variant get() = prefs.getString("vanced_variant", "nonroot")
|
||||||
|
@ -59,7 +59,7 @@ class HomeViewModel(private val activity: FragmentActivity): ViewModel() {
|
||||||
Crowdin.forceUpdate(activity)
|
Crowdin.forceUpdate(activity)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val microgToast = Toast.makeText(activity, R.string.no_microg, Toast.LENGTH_LONG)
|
private val microgToast = Toast.makeText(activity, R.string.no_microg, Toast.LENGTH_LONG)
|
||||||
|
|
||||||
fun openUrl(url: String) {
|
fun openUrl(url: String) {
|
||||||
|
@ -72,15 +72,24 @@ class HomeViewModel(private val activity: FragmentActivity): ViewModel() {
|
||||||
BRAVE -> R.color.Brave
|
BRAVE -> R.color.Brave
|
||||||
else -> R.color.Vanced
|
else -> R.color.Vanced
|
||||||
}
|
}
|
||||||
|
|
||||||
openUrl(url, color, activity)
|
openUrl(url, color, activity)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun launchApp(app: String, isRoot: Boolean) {
|
fun launchApp(app: String, isRoot: Boolean) {
|
||||||
val componentName = when (app) {
|
val componentName = when (app) {
|
||||||
activity.getString(R.string.vanced) -> if (isRoot) ComponentName(vancedRootPkg, "$vancedRootPkg.HomeActivity") else ComponentName(vancedPkg, "$vancedRootPkg.HomeActivity")
|
activity.getString(R.string.vanced) -> if (isRoot) ComponentName(
|
||||||
activity.getString(R.string.music) -> if (isRoot) ComponentName(musicRootPkg, "$musicRootPkg.activities.MusicActivity") else ComponentName(musicPkg, "$musicRootPkg.activities.MusicActivity")
|
vancedRootPkg,
|
||||||
activity.getString(R.string.microg) -> ComponentName(microgPkg, "org.microg.gms.ui.SettingsActivity")
|
"$vancedRootPkg.HomeActivity"
|
||||||
|
) else ComponentName(vancedPkg, "$vancedRootPkg.HomeActivity")
|
||||||
|
activity.getString(R.string.music) -> if (isRoot) ComponentName(
|
||||||
|
musicRootPkg,
|
||||||
|
"$musicRootPkg.activities.MusicActivity"
|
||||||
|
) else ComponentName(musicPkg, "$musicRootPkg.activities.MusicActivity")
|
||||||
|
activity.getString(R.string.microg) -> ComponentName(
|
||||||
|
microgPkg,
|
||||||
|
"org.microg.gms.ui.SettingsActivity"
|
||||||
|
)
|
||||||
else -> throw IllegalArgumentException("Can't open this app")
|
else -> throw IllegalArgumentException("Can't open this app")
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
|
@ -101,7 +110,7 @@ class HomeViewModel(private val activity: FragmentActivity): ViewModel() {
|
||||||
when (app) {
|
when (app) {
|
||||||
activity.getString(R.string.vanced) -> VancedPreferencesDialog().show(activity)
|
activity.getString(R.string.vanced) -> VancedPreferencesDialog().show(activity)
|
||||||
activity.getString(R.string.music) -> MusicPreferencesDialog().show(activity)
|
activity.getString(R.string.music) -> MusicPreferencesDialog().show(activity)
|
||||||
else -> AppDownloadDialog.newInstance(app).show(activity)
|
else -> AppDownloadDialog.newInstance(app).show(activity)
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -155,16 +164,66 @@ class HomeViewModel(private val activity: FragmentActivity): ViewModel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
with (activity) {
|
with(activity) {
|
||||||
if (variant == "root") {
|
if (variant == "root") {
|
||||||
vancedRootModel.value = RootDataModel(vanced, this, this, vancedRootPkg, this.getString(R.string.vanced), activity.getString(R.string.description_vanced), R.drawable.ic_vanced, "vanced")
|
vancedRootModel.value = RootDataModel(
|
||||||
musicRootModel.value = RootDataModel(music, this, this, musicRootPkg, this.getString(R.string.music), activity.getString(R.string.description_vanced_music), R.drawable.ic_music, "music")
|
vanced,
|
||||||
|
this,
|
||||||
|
this,
|
||||||
|
vancedRootPkg,
|
||||||
|
this.getString(R.string.vanced),
|
||||||
|
activity.getString(R.string.description_vanced),
|
||||||
|
R.drawable.ic_vanced,
|
||||||
|
"vanced"
|
||||||
|
)
|
||||||
|
musicRootModel.value = RootDataModel(
|
||||||
|
music,
|
||||||
|
this,
|
||||||
|
this,
|
||||||
|
musicRootPkg,
|
||||||
|
this.getString(R.string.music),
|
||||||
|
activity.getString(R.string.description_vanced_music),
|
||||||
|
R.drawable.ic_music,
|
||||||
|
"music"
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
vancedModel.value = DataModel(vanced, this, this, vancedPkg, this.getString(R.string.vanced), activity.getString(R.string.description_vanced), R.drawable.ic_vanced)
|
vancedModel.value = DataModel(
|
||||||
musicModel.value = DataModel(music, this, this, musicPkg, this.getString(R.string.music), activity.getString(R.string.description_vanced_music), R.drawable.ic_music)
|
vanced,
|
||||||
microgModel.value = DataModel(microg, this, this, microgPkg, this.getString(R.string.microg), activity.getString(R.string.description_microg), R.drawable.ic_microg)
|
this,
|
||||||
|
this,
|
||||||
|
vancedPkg,
|
||||||
|
this.getString(R.string.vanced),
|
||||||
|
activity.getString(R.string.description_vanced),
|
||||||
|
R.drawable.ic_vanced
|
||||||
|
)
|
||||||
|
musicModel.value = DataModel(
|
||||||
|
music,
|
||||||
|
this,
|
||||||
|
this,
|
||||||
|
musicPkg,
|
||||||
|
this.getString(R.string.music),
|
||||||
|
activity.getString(R.string.description_vanced_music),
|
||||||
|
R.drawable.ic_music
|
||||||
|
)
|
||||||
|
microgModel.value = DataModel(
|
||||||
|
microg,
|
||||||
|
this,
|
||||||
|
this,
|
||||||
|
microgPkg,
|
||||||
|
this.getString(R.string.microg),
|
||||||
|
activity.getString(R.string.description_microg),
|
||||||
|
R.drawable.ic_microg
|
||||||
|
)
|
||||||
}
|
}
|
||||||
managerModel.value = DataModel(manager, this, this, managerPkg, this.getString(R.string.app_name), "Just manager meh", R.mipmap.ic_launcher)
|
managerModel.value = DataModel(
|
||||||
|
manager,
|
||||||
|
this,
|
||||||
|
this,
|
||||||
|
managerPkg,
|
||||||
|
this.getString(R.string.app_name),
|
||||||
|
"Just manager meh",
|
||||||
|
R.mipmap.ic_launcher
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ import java.io.IOException
|
||||||
import java.security.MessageDigest
|
import java.security.MessageDigest
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
object AppUtils: CoroutineScope by CoroutineScope(Dispatchers.IO) {
|
object AppUtils : CoroutineScope by CoroutineScope(Dispatchers.IO) {
|
||||||
|
|
||||||
const val vancedPkg = "com.vanced.android.youtube"
|
const val vancedPkg = "com.vanced.android.youtube"
|
||||||
const val vancedRootPkg = "com.google.android.youtube"
|
const val vancedRootPkg = "com.google.android.youtube"
|
||||||
|
@ -40,7 +40,12 @@ object AppUtils: CoroutineScope by CoroutineScope(Dispatchers.IO) {
|
||||||
SpannableString("$tag: $message\n").apply {
|
SpannableString("$tag: $message\n").apply {
|
||||||
setSpan(ForegroundColorSpan(Color.parseColor("#2e73ff")), 0, tag.length + 1, 0)
|
setSpan(ForegroundColorSpan(Color.parseColor("#2e73ff")), 0, tag.length + 1, 0)
|
||||||
setSpan(StyleSpan(Typeface.BOLD), 0, tag.length + 1, 0)
|
setSpan(StyleSpan(Typeface.BOLD), 0, tag.length + 1, 0)
|
||||||
setSpan(ForegroundColorSpan(Color.MAGENTA), tag.length + 2, tag.length + message.length + 2, 0)
|
setSpan(
|
||||||
|
ForegroundColorSpan(Color.MAGENTA),
|
||||||
|
tag.length + 2,
|
||||||
|
tag.length + message.length + 2,
|
||||||
|
0
|
||||||
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
Log.d(tag, message)
|
Log.d(tag, message)
|
||||||
|
@ -49,7 +54,8 @@ object AppUtils: CoroutineScope by CoroutineScope(Dispatchers.IO) {
|
||||||
fun sendRefresh(context: Context): Job {
|
fun sendRefresh(context: Context): Job {
|
||||||
return launch {
|
return launch {
|
||||||
delay(700)
|
delay(700)
|
||||||
LocalBroadcastManager.getInstance(context).sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
|
LocalBroadcastManager.getInstance(context)
|
||||||
|
.sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -57,7 +63,8 @@ object AppUtils: CoroutineScope by CoroutineScope(Dispatchers.IO) {
|
||||||
return launch {
|
return launch {
|
||||||
delay(700)
|
delay(700)
|
||||||
installing.postValue(false)
|
installing.postValue(false)
|
||||||
LocalBroadcastManager.getInstance(context).sendBroadcast(Intent(AppDownloadDialog.CLOSE_DIALOG))
|
LocalBroadcastManager.getInstance(context)
|
||||||
|
.sendBroadcast(Intent(AppDownloadDialog.CLOSE_DIALOG))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,7 +99,7 @@ object AppUtils: CoroutineScope by CoroutineScope(Dispatchers.IO) {
|
||||||
private fun printableHexString(data: ByteArray): String {
|
private fun printableHexString(data: ByteArray): String {
|
||||||
// Create Hex String
|
// Create Hex String
|
||||||
val hexString: StringBuilder = StringBuilder()
|
val hexString: StringBuilder = StringBuilder()
|
||||||
for (aMessageDigest:Byte in data) {
|
for (aMessageDigest: Byte in data) {
|
||||||
var h: String = Integer.toHexString(0xFF and aMessageDigest.toInt())
|
var h: String = Integer.toHexString(0xFF and aMessageDigest.toInt())
|
||||||
while (h.length < 2)
|
while (h.length < 2)
|
||||||
h = "0$h"
|
h = "0$h"
|
||||||
|
@ -127,7 +134,9 @@ object AppUtils: CoroutineScope by CoroutineScope(Dispatchers.IO) {
|
||||||
status.contains("ModApk_Missing") -> context.getString(R.string.modapk_missing)
|
status.contains("ModApk_Missing") -> context.getString(R.string.modapk_missing)
|
||||||
status.contains("Files_Missing_VA") -> context.getString(R.string.files_missing_va)
|
status.contains("Files_Missing_VA") -> context.getString(R.string.files_missing_va)
|
||||||
status.contains("Path_Missing") -> context.getString(R.string.path_missing)
|
status.contains("Path_Missing") -> context.getString(R.string.path_missing)
|
||||||
status.contains("INSTALL_FAILED_INTERNAL_ERROR: Permission Denied") -> context.getString(R.string.installation_miui)
|
status.contains("INSTALL_FAILED_INTERNAL_ERROR: Permission Denied") -> context.getString(
|
||||||
|
R.string.installation_miui
|
||||||
|
)
|
||||||
else -> context.getString(R.string.installation_failed)
|
else -> context.getString(R.string.installation_failed)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,12 +49,20 @@ object DownloadHelper : CoroutineScope by CoroutineScope(Dispatchers.IO) {
|
||||||
override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
|
override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) {
|
||||||
if (response.isSuccessful) {
|
if (response.isSuccessful) {
|
||||||
launch {
|
launch {
|
||||||
if (response.body()?.let { writeFile(it, context.getExternalFilesDir(fileFolder)?.path + "/" + fileName) } == true) {
|
if (response.body()?.let {
|
||||||
|
writeFile(
|
||||||
|
it,
|
||||||
|
context.getExternalFilesDir(fileFolder)?.path + "/" + fileName
|
||||||
|
)
|
||||||
|
} == true) {
|
||||||
onDownloadComplete()
|
onDownloadComplete()
|
||||||
} else {
|
} else {
|
||||||
onError("Could not save file")
|
onError("Could not save file")
|
||||||
downloadProgress.postValue(0)
|
downloadProgress.postValue(0)
|
||||||
log("VMDownloader", "Failed to save file: $url\n${response.errorBody()}")
|
log(
|
||||||
|
"VMDownloader",
|
||||||
|
"Failed to save file: $url\n${response.errorBody()}"
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -111,33 +119,40 @@ object DownloadHelper : CoroutineScope by CoroutineScope(Dispatchers.IO) {
|
||||||
|
|
||||||
fun downloadManager(context: Context) {
|
fun downloadManager(context: Context) {
|
||||||
val url = "https://github.com/YTVanced/VancedManager/releases/latest/download/manager.apk"
|
val url = "https://github.com/YTVanced/VancedManager/releases/latest/download/manager.apk"
|
||||||
download(url,"https://github.com/YTVanced/VancedManager/", "manager", "manager.apk", context, onDownloadComplete = {
|
download(
|
||||||
val apk = File("${context.getExternalFilesDir("manager")?.path}/manager.apk")
|
url,
|
||||||
val uri =
|
"https://github.com/YTVanced/VancedManager/",
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
"manager",
|
||||||
FileProvider.getUriForFile(context, "${context.packageName}.provider", apk)
|
"manager.apk",
|
||||||
else
|
context,
|
||||||
Uri.fromFile(apk)
|
onDownloadComplete = {
|
||||||
|
val apk = File("${context.getExternalFilesDir("manager")?.path}/manager.apk")
|
||||||
|
val uri =
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||||
|
FileProvider.getUriForFile(context, "${context.packageName}.provider", apk)
|
||||||
|
else
|
||||||
|
Uri.fromFile(apk)
|
||||||
|
|
||||||
val intent = Intent(Intent.ACTION_VIEW)
|
val intent = Intent(Intent.ACTION_VIEW)
|
||||||
intent.setDataAndType(uri, "application/vnd.android.package-archive")
|
intent.setDataAndType(uri, "application/vnd.android.package-archive")
|
||||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
|
||||||
try {
|
try {
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
} catch (e: ActivityNotFoundException) {
|
} catch (e: ActivityNotFoundException) {
|
||||||
log("VMDownloader", e.stackTraceToString())
|
log("VMDownloader", e.stackTraceToString())
|
||||||
} finally {
|
} finally {
|
||||||
sendCloseDialog(context)
|
sendCloseDialog(context)
|
||||||
}
|
}
|
||||||
}, onError = {
|
},
|
||||||
downloadingFile.postValue(
|
onError = {
|
||||||
context.getString(
|
downloadingFile.postValue(
|
||||||
R.string.error_downloading,
|
context.getString(
|
||||||
"manager.apk"
|
R.string.error_downloading,
|
||||||
|
"manager.apk"
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,10 @@ import com.vanced.manager.R
|
||||||
import com.vanced.manager.utils.AppUtils.log
|
import com.vanced.manager.utils.AppUtils.log
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
val RadioGroup.checkedButtonTag: String? get() = findViewById<MaterialRadioButton>(checkedRadioButtonId)?.tag?.toString()
|
val RadioGroup.checkedButtonTag: String?
|
||||||
|
get() = findViewById<MaterialRadioButton>(
|
||||||
|
checkedRadioButtonId
|
||||||
|
)?.tag?.toString()
|
||||||
|
|
||||||
fun DialogFragment.show(activity: FragmentActivity) {
|
fun DialogFragment.show(activity: FragmentActivity) {
|
||||||
try {
|
try {
|
||||||
|
@ -29,19 +32,25 @@ fun DialogFragment.show(activity: FragmentActivity) {
|
||||||
|
|
||||||
fun List<String>.convertToAppVersions(): List<String> = listOf("latest") + reversed()
|
fun List<String>.convertToAppVersions(): List<String> = listOf("latest") + reversed()
|
||||||
|
|
||||||
fun String.formatVersion(context: Context): String = if (this == "latest") context.getString(R.string.install_latest) else this
|
fun String.formatVersion(context: Context): String =
|
||||||
|
if (this == "latest") context.getString(R.string.install_latest) else this
|
||||||
|
|
||||||
fun String.convertToAppTheme(context: Context): String = with(context) {
|
fun String.convertToAppTheme(context: Context): String = with(context) {
|
||||||
getString(R.string.light_plus_other, if (this@convertToAppTheme == "dark") getString(R.string.vanced_dark) else getString(R.string.vanced_black))
|
getString(
|
||||||
|
R.string.light_plus_other,
|
||||||
|
if (this@convertToAppTheme == "dark") getString(R.string.vanced_dark) else getString(R.string.vanced_black)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun String.getLatestAppVersion(versions: List<String>): String = if (this == "latest") versions.reversed()[0] else this
|
fun String.getLatestAppVersion(versions: List<String>): String =
|
||||||
|
if (this == "latest") versions.reversed()[0] else this
|
||||||
|
|
||||||
val Context.lifecycleOwner: LifecycleOwner? get() = when (this) {
|
val Context.lifecycleOwner: LifecycleOwner?
|
||||||
is LifecycleOwner -> this
|
get() = when (this) {
|
||||||
!is LifecycleOwner -> (this as ContextWrapper).baseContext as LifecycleOwner
|
is LifecycleOwner -> this
|
||||||
else -> null
|
!is LifecycleOwner -> (this as ContextWrapper).baseContext as LifecycleOwner
|
||||||
}
|
else -> null
|
||||||
|
}
|
||||||
|
|
||||||
fun Int.toHex(): String = java.lang.String.format("#%06X", 0xFFFFFF and this)
|
fun Int.toHex(): String = java.lang.String.format("#%06X", 0xFFFFFF and this)
|
||||||
|
|
||||||
|
@ -74,5 +83,5 @@ fun Context.writeServiceDScript(apkFPath: String, path: String, app: String) {
|
||||||
chcon u:object_r:apk_data_file:s0 $apkFPath
|
chcon u:object_r:apk_data_file:s0 $apkFPath
|
||||||
mount -o bind $apkFPath $path
|
mount -o bind $apkFPath $path
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
SuFileOutputStream.open(shellFileZ).use { out -> out.write(script.toByteArray())}
|
SuFileOutputStream.open(shellFileZ).use { out -> out.write(script.toByteArray()) }
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,11 @@ import android.content.Context
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import androidx.core.content.edit
|
import androidx.core.content.edit
|
||||||
|
|
||||||
val Context.installPrefs: SharedPreferences get() = getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
|
val Context.installPrefs: SharedPreferences
|
||||||
|
get() = getSharedPreferences(
|
||||||
|
"installPrefs",
|
||||||
|
Context.MODE_PRIVATE
|
||||||
|
)
|
||||||
|
|
||||||
var SharedPreferences.lang
|
var SharedPreferences.lang
|
||||||
get() = getString("lang", getDefaultVancedLanguages())
|
get() = getString("lang", getDefaultVancedLanguages())
|
||||||
|
|
|
@ -43,16 +43,23 @@ var baseInstallUrl = ""
|
||||||
|
|
||||||
fun openUrl(url: String, color: Int, context: Context) {
|
fun openUrl(url: String, color: Int, context: Context) {
|
||||||
try {
|
try {
|
||||||
val customTabPrefs = getDefaultSharedPreferences(context).getBoolean("use_custom_tabs", true)
|
val customTabPrefs =
|
||||||
|
getDefaultSharedPreferences(context).getBoolean("use_custom_tabs", true)
|
||||||
if (customTabPrefs) {
|
if (customTabPrefs) {
|
||||||
val builder = CustomTabsIntent.Builder()
|
val builder = CustomTabsIntent.Builder()
|
||||||
val params = CustomTabColorSchemeParams.Builder().setToolbarColor(ContextCompat.getColor(context, color))
|
val params = CustomTabColorSchemeParams.Builder()
|
||||||
|
.setToolbarColor(ContextCompat.getColor(context, color))
|
||||||
builder.setDefaultColorSchemeParams(params.build())
|
builder.setDefaultColorSchemeParams(params.build())
|
||||||
val customTabsIntent = builder.build()
|
val customTabsIntent = builder.build()
|
||||||
customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||||
customTabsIntent.launchUrl(context, url.toUri())
|
customTabsIntent.launchUrl(context, url.toUri())
|
||||||
} else
|
} else
|
||||||
context.startActivity(Intent(Intent.ACTION_VIEW, url.toUri()).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
|
context.startActivity(
|
||||||
|
Intent(
|
||||||
|
Intent.ACTION_VIEW,
|
||||||
|
url.toUri()
|
||||||
|
).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
|
)
|
||||||
|
|
||||||
} catch (e: ActivityNotFoundException) {
|
} catch (e: ActivityNotFoundException) {
|
||||||
Toast.makeText(context, R.string.error, Toast.LENGTH_SHORT).show()
|
Toast.makeText(context, R.string.error, Toast.LENGTH_SHORT).show()
|
||||||
|
@ -103,7 +110,7 @@ suspend fun loadJson(context: Context) = withContext(Dispatchers.IO) {
|
||||||
val versions = getJson("$baseInstallUrl/versions.json?$fetchTime")
|
val versions = getJson("$baseInstallUrl/versions.json?$fetchTime")
|
||||||
isMicrogBroken = latest?.boolean("is_microg_broken") ?: false
|
isMicrogBroken = latest?.boolean("is_microg_broken") ?: false
|
||||||
vanced.postValue(latest?.obj("vanced"))
|
vanced.postValue(latest?.obj("vanced"))
|
||||||
vancedVersions.postValue(versions?.array("vanced") )
|
vancedVersions.postValue(versions?.array("vanced"))
|
||||||
music.postValue(latest?.obj("music"))
|
music.postValue(latest?.obj("music"))
|
||||||
musicVersions.postValue(versions?.array("music"))
|
musicVersions.postValue(versions?.array("music"))
|
||||||
microg.postValue(latest?.obj("microg"))
|
microg.postValue(latest?.obj("microg"))
|
||||||
|
|
|
@ -23,7 +23,10 @@ class LanguageContextWrapper(base: Context?) : ContextWrapper(base) {
|
||||||
val sysLocale = Resources.getSystem().configuration.locale
|
val sysLocale = Resources.getSystem().configuration.locale
|
||||||
val locale = when {
|
val locale = when {
|
||||||
pref == "System Default" -> Locale(sysLocale.language, sysLocale.country)
|
pref == "System Default" -> Locale(sysLocale.language, sysLocale.country)
|
||||||
pref?.length!! > 2 -> Locale(pref.substring(0, pref.length - 3), pref.substring(pref.length - 2))
|
pref?.length!! > 2 -> Locale(
|
||||||
|
pref.substring(0, pref.length - 3),
|
||||||
|
pref.substring(pref.length - 2)
|
||||||
|
)
|
||||||
else -> Locale(pref)
|
else -> Locale(pref)
|
||||||
}
|
}
|
||||||
currentLocale = locale
|
currentLocale = locale
|
||||||
|
|
|
@ -34,7 +34,10 @@ fun getLanguageFormat(context: Context, language: String): String {
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
fun getDefaultVancedLanguages(): String {
|
fun getDefaultVancedLanguages(): String {
|
||||||
val serverLangs = vanced.value?.array("langs") ?: mutableListOf("")
|
val serverLangs = vanced.value?.array("langs") ?: mutableListOf("")
|
||||||
val sysLocales = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) Resources.getSystem().configuration.locales.toLangTags() else arrayOf(Resources.getSystem().configuration.locale.language)
|
val sysLocales =
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) Resources.getSystem().configuration.locales.toLangTags() else arrayOf(
|
||||||
|
Resources.getSystem().configuration.locale.language
|
||||||
|
)
|
||||||
val finalLangs = mutableListOf<String>()
|
val finalLangs = mutableListOf<String>()
|
||||||
sysLocales.forEach { sysLocale ->
|
sysLocales.forEach { sysLocale ->
|
||||||
when {
|
when {
|
||||||
|
|
|
@ -5,4 +5,8 @@ import android.provider.Settings
|
||||||
|
|
||||||
private const val MIUI_OPTIMIZATION = "miui_optimization"
|
private const val MIUI_OPTIMIZATION = "miui_optimization"
|
||||||
|
|
||||||
val Context.isMiuiOptimizationsEnabled: Boolean get() = Settings.Secure.getString(contentResolver, MIUI_OPTIMIZATION) == "1"
|
val Context.isMiuiOptimizationsEnabled: Boolean
|
||||||
|
get() = Settings.Secure.getString(
|
||||||
|
contentResolver,
|
||||||
|
MIUI_OPTIMIZATION
|
||||||
|
) == "1"
|
|
@ -32,7 +32,8 @@ object PackageHelper {
|
||||||
|
|
||||||
const val apkInstallPath = "/data/adb"
|
const val apkInstallPath = "/data/adb"
|
||||||
private const val INSTALLER_TAG = "VMInstall"
|
private const val INSTALLER_TAG = "VMInstall"
|
||||||
private val vancedThemes = vanced.value?.array<String>("themes")?.value ?: listOf("black", "dark", "pink", "blue")
|
private val vancedThemes =
|
||||||
|
vanced.value?.array<String>("themes")?.value ?: listOf("black", "dark", "pink", "blue")
|
||||||
|
|
||||||
init {
|
init {
|
||||||
Shell.enableVerboseLogging = BuildConfig.DEBUG
|
Shell.enableVerboseLogging = BuildConfig.DEBUG
|
||||||
|
@ -67,6 +68,7 @@ object PackageHelper {
|
||||||
else -> ""
|
else -> ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isPackageInstalled(packageName: String, packageManager: PackageManager): Boolean {
|
fun isPackageInstalled(packageName: String, packageManager: PackageManager): Boolean {
|
||||||
return try {
|
return try {
|
||||||
packageManager.getPackageInfo(packageName, 0)
|
packageManager.getPackageInfo(packageName, 0)
|
||||||
|
@ -84,7 +86,7 @@ object PackageHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Suppress("DEPRECATION")
|
@Suppress("DEPRECATION")
|
||||||
fun getPkgVerCode(pkg: String, pm:PackageManager): Int? {
|
fun getPkgVerCode(pkg: String, pm: PackageManager): Int? {
|
||||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
|
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
|
||||||
pm.getPackageInfo(pkg, 0)?.longVersionCode?.and(0xFFFFFFFF)?.toInt()
|
pm.getPackageInfo(pkg, 0)?.longVersionCode?.and(0xFFFFFFFF)?.toInt()
|
||||||
else
|
else
|
||||||
|
@ -125,9 +127,15 @@ object PackageHelper {
|
||||||
if (files?.isNotEmpty() == true) {
|
if (files?.isNotEmpty() == true) {
|
||||||
for (file in files) {
|
for (file in files) {
|
||||||
when {
|
when {
|
||||||
vancedThemes.any { file.name == "$it.apk" } && !splitFiles.contains("base") -> splitFiles.add("base")
|
vancedThemes.any { file.name == "$it.apk" } && !splitFiles.contains("base") -> splitFiles.add(
|
||||||
file.name.matches(Regex("split_config\\.(..)\\.apk")) && !splitFiles.contains("lang") -> splitFiles.add("lang")
|
"base"
|
||||||
(file.name.startsWith("split_config.arm") || file.name.startsWith("split_config.x86")) && !splitFiles.contains("arch") -> splitFiles.add("arch")
|
)
|
||||||
|
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")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (splitFiles.size == 3) {
|
if (splitFiles.size == 3) {
|
||||||
|
@ -163,7 +171,8 @@ object PackageHelper {
|
||||||
val callbackIntent = Intent(context, AppInstallerService::class.java)
|
val callbackIntent = Intent(context, AppInstallerService::class.java)
|
||||||
val pendingIntent = PendingIntent.getService(context, 0, callbackIntent, 0)
|
val pendingIntent = PendingIntent.getService(context, 0, callbackIntent, 0)
|
||||||
val packageInstaller = context.packageManager.packageInstaller
|
val packageInstaller = context.packageManager.packageInstaller
|
||||||
val params = PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)
|
val params =
|
||||||
|
PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)
|
||||||
val sessionId: Int
|
val sessionId: Int
|
||||||
var session: PackageInstaller.Session? = null
|
var session: PackageInstaller.Session? = null
|
||||||
try {
|
try {
|
||||||
|
@ -210,7 +219,13 @@ object PackageHelper {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun installRootApp(context: Context, app: String, appVerCode: Int?, pkg: String, modApkBool: (fileName: String) -> Boolean) = CoroutineScope(Dispatchers.IO).launch {
|
private fun installRootApp(
|
||||||
|
context: Context,
|
||||||
|
app: String,
|
||||||
|
appVerCode: Int?,
|
||||||
|
pkg: String,
|
||||||
|
modApkBool: (fileName: String) -> Boolean
|
||||||
|
) = CoroutineScope(Dispatchers.IO).launch {
|
||||||
Shell.getShell {
|
Shell.getShell {
|
||||||
val apkFilesPath = context.getExternalFilesDir("$app/root")?.path
|
val apkFilesPath = context.getExternalFilesDir("$app/root")?.path
|
||||||
val files = File(apkFilesPath.toString()).listFiles()?.toList()
|
val files = File(apkFilesPath.toString()).listFiles()?.toList()
|
||||||
|
@ -271,7 +286,8 @@ object PackageHelper {
|
||||||
val folder = File(context.getExternalFilesDir("$appName/nonroot")?.path.toString())
|
val folder = File(context.getExternalFilesDir("$appName/nonroot")?.path.toString())
|
||||||
var session: PackageInstaller.Session? = null
|
var session: PackageInstaller.Session? = null
|
||||||
val sessionId: Int
|
val sessionId: Int
|
||||||
val sessionParams = PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)
|
val sessionParams =
|
||||||
|
PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)
|
||||||
val callbackIntent = Intent(context, AppInstallerService::class.java)
|
val callbackIntent = Intent(context, AppInstallerService::class.java)
|
||||||
val pendingIntent = PendingIntent.getService(context, 0, callbackIntent, 0)
|
val pendingIntent = PendingIntent.getService(context, 0, callbackIntent, 0)
|
||||||
try {
|
try {
|
||||||
|
@ -302,7 +318,9 @@ object PackageHelper {
|
||||||
private fun installSplitApkFilesRoot(apkFiles: List<File>?, context: Context): Boolean {
|
private fun installSplitApkFilesRoot(apkFiles: List<File>?, context: Context): Boolean {
|
||||||
val filenames = arrayOf("black.apk", "dark.apk", "blue.apk", "pink.apk", "hash.json")
|
val filenames = arrayOf("black.apk", "dark.apk", "blue.apk", "pink.apk", "hash.json")
|
||||||
log(INSTALLER_TAG, "installing split apk files: ${apkFiles?.map { it.name }}")
|
log(INSTALLER_TAG, "installing split apk files: ${apkFiles?.map { it.name }}")
|
||||||
val sessionId = Shell.su("pm install-create -r").exec().out.joinToString(" ").filter { it.isDigit() }.toIntOrNull()
|
val sessionId =
|
||||||
|
Shell.su("pm install-create -r").exec().out.joinToString(" ").filter { it.isDigit() }
|
||||||
|
.toIntOrNull()
|
||||||
|
|
||||||
if (sessionId == null) {
|
if (sessionId == null) {
|
||||||
sendFailure("Session ID is null", context)
|
sendFailure("Session ID is null", context)
|
||||||
|
@ -363,12 +381,18 @@ object PackageHelper {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupScript(apkFPath: String, path: String, app: String, pkg: String, context: Context): Boolean
|
private fun setupScript(
|
||||||
{
|
apkFPath: String,
|
||||||
|
path: String,
|
||||||
|
app: String,
|
||||||
|
pkg: String,
|
||||||
|
context: Context
|
||||||
|
): Boolean {
|
||||||
try {
|
try {
|
||||||
log(INSTALLER_TAG, "Setting up script")
|
log(INSTALLER_TAG, "Setting up script")
|
||||||
context.writeServiceDScript(apkFPath, path, app)
|
context.writeServiceDScript(apkFPath, path, app)
|
||||||
Shell.su("""echo "#!/system/bin/sh\nwhile read line; do echo \${"$"}{line} | grep $pkg | awk '{print \${'$'}2}' | xargs umount -l; done< /proc/mounts" > /data/adb/post-fs-data.d/$app.sh""").exec()
|
Shell.su("""echo "#!/system/bin/sh\nwhile read line; do echo \${"$"}{line} | grep $pkg | awk '{print \${'$'}2}' | xargs umount -l; done< /proc/mounts" > /data/adb/post-fs-data.d/$app.sh""")
|
||||||
|
.exec()
|
||||||
return Shell.su("chmod 744 /data/adb/service.d/$app.sh").exec().isSuccess
|
return Shell.su("chmod 744 /data/adb/service.d/$app.sh").exec().isSuccess
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
sendFailure(e.stackTraceToString(), context)
|
sendFailure(e.stackTraceToString(), context)
|
||||||
|
@ -381,7 +405,8 @@ object PackageHelper {
|
||||||
private fun linkApp(apkFPath: String, pkg: String, path: String): Boolean {
|
private fun linkApp(apkFPath: String, pkg: String, path: String): Boolean {
|
||||||
log(INSTALLER_TAG, "Linking app")
|
log(INSTALLER_TAG, "Linking app")
|
||||||
Shell.su("am force-stop $pkg").exec()
|
Shell.su("am force-stop $pkg").exec()
|
||||||
Shell.su("""for i in ${'$'}(ls /data/app/ | grep $pkg | tr " "); do umount -l "/data/app/${"$"}i/base.apk"; done """).exec()
|
Shell.su("""for i in ${'$'}(ls /data/app/ | grep $pkg | tr " "); do umount -l "/data/app/${"$"}i/base.apk"; done """)
|
||||||
|
.exec()
|
||||||
val response = Shell.su("""su -mm -c "mount -o bind $apkFPath $path"""").exec()
|
val response = Shell.su("""su -mm -c "mount -o bind $apkFPath $path"""").exec()
|
||||||
Thread.sleep(500)
|
Thread.sleep(500)
|
||||||
Shell.su("am force-stop $pkg").exec()
|
Shell.su("am force-stop $pkg").exec()
|
||||||
|
@ -393,12 +418,17 @@ object PackageHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
//check version and perform action based on result
|
//check version and perform action based on result
|
||||||
private fun checkVersion(versionCode: Int, baseApkFiles: List<File>, pkg: String, context: Context): Boolean {
|
private fun checkVersion(
|
||||||
|
versionCode: Int,
|
||||||
|
baseApkFiles: List<File>,
|
||||||
|
pkg: String,
|
||||||
|
context: Context
|
||||||
|
): Boolean {
|
||||||
log(INSTALLER_TAG, "Checking stock version")
|
log(INSTALLER_TAG, "Checking stock version")
|
||||||
val path = getPackageDir(context, pkg)
|
val path = getPackageDir(context, pkg)
|
||||||
if (path != null) {
|
if (path != null) {
|
||||||
if (path.contains("/data/app/")) {
|
if (path.contains("/data/app/")) {
|
||||||
when (getVersionNumber(pkg, context)?.let { compareVersion(it,versionCode) } ) {
|
when (getVersionNumber(pkg, context)?.let { compareVersion(it, versionCode) }) {
|
||||||
1 -> return fixHigherVer(baseApkFiles, pkg, context)
|
1 -> return fixHigherVer(baseApkFiles, pkg, context)
|
||||||
-1 -> return installStock(baseApkFiles, pkg, context)
|
-1 -> return installStock(baseApkFiles, pkg, context)
|
||||||
}
|
}
|
||||||
|
@ -412,7 +442,7 @@ object PackageHelper {
|
||||||
private fun getPkgInfo(pkg: String, context: Context): PackageInfo? {
|
private fun getPkgInfo(pkg: String, context: Context): PackageInfo? {
|
||||||
return try {
|
return try {
|
||||||
context.packageManager.getPackageInfo(pkg, 0)
|
context.packageManager.getPackageInfo(pkg, 0)
|
||||||
} catch (e:Exception) {
|
} catch (e: Exception) {
|
||||||
log(INSTALLER_TAG, "Unable to get package info")
|
log(INSTALLER_TAG, "Unable to get package info")
|
||||||
null
|
null
|
||||||
}
|
}
|
||||||
|
@ -427,10 +457,13 @@ object PackageHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
//uninstall current update and install base that works with patch
|
//uninstall current update and install base that works with patch
|
||||||
private fun fixHigherVer(apkFiles: List<File>, pkg: String, context: Context) : Boolean {
|
private fun fixHigherVer(apkFiles: List<File>, pkg: String, context: Context): Boolean {
|
||||||
log(INSTALLER_TAG, "Downgrading stock")
|
log(INSTALLER_TAG, "Downgrading stock")
|
||||||
if (uninstallRootApk(pkg)) {
|
if (uninstallRootApk(pkg)) {
|
||||||
return if (pkg == vancedRootPkg) installSplitApkFilesRoot(apkFiles, context) else installRootMusic(apkFiles, context)
|
return if (pkg == vancedRootPkg) installSplitApkFilesRoot(
|
||||||
|
apkFiles,
|
||||||
|
context
|
||||||
|
) else installRootMusic(apkFiles, context)
|
||||||
}
|
}
|
||||||
sendFailure(listOf("Failed_Uninstall").toMutableList(), context)
|
sendFailure(listOf("Failed_Uninstall").toMutableList(), context)
|
||||||
sendCloseDialog(context)
|
sendCloseDialog(context)
|
||||||
|
@ -440,7 +473,10 @@ object PackageHelper {
|
||||||
//install stock youtube matching vanced version
|
//install stock youtube matching vanced version
|
||||||
private fun installStock(baseApkFiles: List<File>, pkg: String, context: Context): Boolean {
|
private fun installStock(baseApkFiles: List<File>, pkg: String, context: Context): Boolean {
|
||||||
log(INSTALLER_TAG, "Installing stock")
|
log(INSTALLER_TAG, "Installing stock")
|
||||||
return if (pkg == vancedRootPkg) installSplitApkFilesRoot(baseApkFiles, context) else installRootMusic(baseApkFiles, context)
|
return if (pkg == vancedRootPkg) installSplitApkFilesRoot(
|
||||||
|
baseApkFiles,
|
||||||
|
context
|
||||||
|
) else installRootMusic(baseApkFiles, context)
|
||||||
}
|
}
|
||||||
|
|
||||||
//set chcon to apk_data_file
|
//set chcon to apk_data_file
|
||||||
|
@ -458,20 +494,20 @@ object PackageHelper {
|
||||||
}
|
}
|
||||||
|
|
||||||
//move patch to data/app
|
//move patch to data/app
|
||||||
private fun moveAPK(apkFile: String, path: String, pkg: String, context: Context) : Boolean {
|
private fun moveAPK(apkFile: String, path: String, pkg: String, context: Context): Boolean {
|
||||||
log(INSTALLER_TAG, "Moving app")
|
log(INSTALLER_TAG, "Moving app")
|
||||||
val apkinF = SuFile.open(apkFile)
|
val apkinF = SuFile.open(apkFile)
|
||||||
val apkoutF = SuFile.open(path)
|
val apkoutF = SuFile.open(path)
|
||||||
|
|
||||||
if(apkinF.exists()) {
|
if (apkinF.exists()) {
|
||||||
try {
|
try {
|
||||||
Shell.su("am force-stop $pkg").exec()
|
Shell.su("am force-stop $pkg").exec()
|
||||||
|
|
||||||
//Shell.su("rm -r SuFile.open(path).parent")
|
//Shell.su("rm -r SuFile.open(path).parent")
|
||||||
|
|
||||||
copy(apkinF,apkoutF)
|
copy(apkinF, apkoutF)
|
||||||
Shell.su("chmod 644 $path").exec().isSuccess
|
Shell.su("chmod 644 $path").exec().isSuccess
|
||||||
return if(Shell.su("chown system:system $path").exec().isSuccess) {
|
return if (Shell.su("chown system:system $path").exec().isSuccess) {
|
||||||
true
|
true
|
||||||
} else {
|
} else {
|
||||||
sendFailure(listOf("Chown_Fail").toMutableList(), context)
|
sendFailure(listOf("Chown_Fail").toMutableList(), context)
|
||||||
|
@ -479,9 +515,7 @@ object PackageHelper {
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} catch (e: IOException) {
|
||||||
catch (e: IOException)
|
|
||||||
{
|
|
||||||
sendFailure(listOf("${e.message}").toMutableList(), context)
|
sendFailure(listOf("${e.message}").toMutableList(), context)
|
||||||
sendCloseDialog(context)
|
sendCloseDialog(context)
|
||||||
log(INSTALLER_TAG, e.stackTraceToString())
|
log(INSTALLER_TAG, e.stackTraceToString())
|
||||||
|
@ -504,13 +538,14 @@ object PackageHelper {
|
||||||
private fun getVersionNumber(pkg: String, context: Context): Int? {
|
private fun getVersionNumber(pkg: String, context: Context): Int? {
|
||||||
try {
|
try {
|
||||||
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
|
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
|
||||||
context.packageManager.getPackageInfo(vancedRootPkg, 0).longVersionCode.and(0xFFFFFFFF).toInt()
|
context.packageManager.getPackageInfo(vancedRootPkg, 0).longVersionCode.and(
|
||||||
|
0xFFFFFFFF
|
||||||
|
).toInt()
|
||||||
else
|
else
|
||||||
context.packageManager.getPackageInfo(vancedRootPkg, 0).versionCode
|
context.packageManager.getPackageInfo(vancedRootPkg, 0).versionCode
|
||||||
}
|
} catch (e: Exception) {
|
||||||
catch (e : Exception) {
|
|
||||||
val execRes = Shell.su("dumpsys package $pkg | grep versionCode").exec()
|
val execRes = Shell.su("dumpsys package $pkg | grep versionCode").exec()
|
||||||
if(execRes.isSuccess) {
|
if (execRes.isSuccess) {
|
||||||
val result = execRes.out
|
val result = execRes.out
|
||||||
var version = 0
|
var version = 0
|
||||||
result
|
result
|
||||||
|
@ -534,9 +569,8 @@ object PackageHelper {
|
||||||
val execRes = Shell.su("dumpsys package $pkg | grep codePath").exec()
|
val execRes = Shell.su("dumpsys package $pkg | grep codePath").exec()
|
||||||
if (execRes.isSuccess) {
|
if (execRes.isSuccess) {
|
||||||
val result = execRes.out
|
val result = execRes.out
|
||||||
for (line in result)
|
for (line in result) {
|
||||||
{
|
if (line.contains("data/app")) "${line.substringAfter("=")}/base.apk"
|
||||||
if(line.contains("data/app")) "${line.substringAfter("=")}/base.apk"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
null
|
null
|
||||||
|
@ -548,7 +582,8 @@ object PackageHelper {
|
||||||
try {
|
try {
|
||||||
log(INSTALLER_TAG, "Setting installer package to $installer for $target")
|
log(INSTALLER_TAG, "Setting installer package to $installer for $target")
|
||||||
val installerUid = context.packageManager.getPackageUid(installer, 0)
|
val installerUid = context.packageManager.getPackageUid(installer, 0)
|
||||||
val res = Shell.su("""su $installerUid -c 'pm set-installer $target $installer'""").exec()
|
val res =
|
||||||
|
Shell.su("""su $installerUid -c 'pm set-installer $target $installer'""").exec()
|
||||||
if (res.out.any { line -> line.contains("Success") }) {
|
if (res.out.any { line -> line.contains("Success") }) {
|
||||||
log(INSTALLER_TAG, "Installer package successfully set")
|
log(INSTALLER_TAG, "Installer package successfully set")
|
||||||
return
|
return
|
||||||
|
|
|
@ -7,15 +7,15 @@ import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
||||||
|
|
||||||
val Context.defPrefs: SharedPreferences get() = getDefaultSharedPreferences(this)
|
val Context.defPrefs: SharedPreferences get() = getDefaultSharedPreferences(this)
|
||||||
|
|
||||||
var SharedPreferences.managerTheme
|
var SharedPreferences.managerTheme
|
||||||
get() = getString("manager_theme", "System Default")
|
get() = getString("manager_theme", "System Default")
|
||||||
set(value) = edit { putString("manager_theme", value) }
|
set(value) = edit { putString("manager_theme", value) }
|
||||||
|
|
||||||
var SharedPreferences.managerAccent
|
var SharedPreferences.managerAccent
|
||||||
get() = getInt("manager_accent_color", defAccentColor)
|
get() = getInt("manager_accent_color", defAccentColor)
|
||||||
set(value) = edit { putInt("manager_accent_color", value) }
|
set(value) = edit { putInt("manager_accent_color", value) }
|
||||||
|
|
||||||
var SharedPreferences.managerVariant
|
var SharedPreferences.managerVariant
|
||||||
get() = getString("vanced_variant", "nonroot")
|
get() = getString("vanced_variant", "nonroot")
|
||||||
set(value) = edit { putString("vanced_variant", value) }
|
set(value) = edit { putString("vanced_variant", value) }
|
||||||
|
|
||||||
|
@ -23,11 +23,11 @@ var SharedPreferences.managerLang
|
||||||
get() = getString("manager_lang", "System Default")
|
get() = getString("manager_lang", "System Default")
|
||||||
set(value) = edit { putString("manager_lang", value) }
|
set(value) = edit { putString("manager_lang", value) }
|
||||||
|
|
||||||
var SharedPreferences.installUrl
|
var SharedPreferences.installUrl
|
||||||
get() = getString("install_url", baseUrl)
|
get() = getString("install_url", baseUrl)
|
||||||
set(value) = edit { putString("install_url", value) }
|
set(value) = edit { putString("install_url", value) }
|
||||||
|
|
||||||
var SharedPreferences.vancedVersion
|
var SharedPreferences.vancedVersion
|
||||||
get() = getString("vanced_version", "latest")
|
get() = getString("vanced_version", "latest")
|
||||||
set(value) = edit { putString("vanced_version", value) }
|
set(value) = edit { putString("vanced_version", value) }
|
||||||
|
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:color="@android:color/darker_gray">
|
|
||||||
<item android:id="@android:id/mask">
|
|
||||||
<shape android:shape="oval" >
|
|
||||||
<solid android:color="@android:color/transparent" />
|
|
||||||
</shape>
|
|
||||||
</item>
|
|
||||||
</ripple>
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Welcome</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
||||||
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
||||||
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
||||||
<string name="installation_blocked">Installation failed because the user blocked the installation.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">الإصدار</string>
|
<string name="version">الإصدار</string>
|
||||||
<string name="microg_bug">خطأ في المايكروجي</string>
|
<string name="microg_bug">خطأ في المايكروجي</string>
|
||||||
<string name="microg_bug_summary">نظرًا لوجود خطأ في microG الأساسي، يتطلب تثبيت ڤاسند v16 + أولاً تثبيت الإصدار 15.43.32 ، وفتحه ، ثم تسجيل الدخول وبعد ذلك فقط يمكنك تثبيت الإصدار 16 والإصدارات الأحدث. هل تريد متابعة تثبيت الإصدار 15.43.32؟</string>
|
<string name="microg_bug_summary">نظرًا لوجود خطأ في microG الأساسي، يتطلب تثبيت ڤاسند v16 + أولاً تثبيت الإصدار 15.43.32 ، وفتحه ، ثم تسجيل الدخول وبعد ذلك فقط يمكنك تثبيت الإصدار 16 والإصدارات الأحدث. هل تريد متابعة تثبيت الإصدار 15.43.32؟</string>
|
||||||
<string name="microg_bug_summary_music">نظرًا لوجود خطأ في microG الرئيسي، يتطلب تثبيت Music v4.11 + أولاً تثبيت الإصدار 4.07.51، وفتحه، ثم تسجيل الدخول وعندها فقط يمكنك تثبيت الإصدار 4.11 وما بعده. هل تريد متابعة تثبيت الإصدار 4.07.51؟</string>
|
|
||||||
<string name="please_be_patient">الرجاء عدم الخروج من التطبيق أثناء هذه العملية!</string>
|
<string name="please_be_patient">الرجاء عدم الخروج من التطبيق أثناء هذه العملية!</string>
|
||||||
<string name="welcome">مرحباً بك</string>
|
<string name="welcome">مرحباً بك</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">فشل العثور على الملفات المطلوبة للتثبيت. أعد تحميل ملفات التثبيت، ثم حاول مرة أخرى.</string>
|
<string name="files_missing_va">فشل العثور على الملفات المطلوبة للتثبيت. أعد تحميل ملفات التثبيت، ثم حاول مرة أخرى.</string>
|
||||||
<string name="ifile_missing">فشل العثور على حزمة تثبيت السمة السوداء/المظلمة من وحدة التخزين، الرجاء المحاولة مرة أخرى.</string>
|
<string name="ifile_missing">فشل العثور على حزمة تثبيت السمة السوداء/المظلمة من وحدة التخزين، الرجاء المحاولة مرة أخرى.</string>
|
||||||
<string name="installation_aborted">فشل التثبيت لأن المستخدم ألغى التثبيت.</string>
|
<string name="installation_aborted">فشل التثبيت لأن المستخدم ألغى التثبيت.</string>
|
||||||
<string name="installation_blocked">فشل التثبيت لأن المستخدم قام بحظر التثبيت.</string>
|
|
||||||
<string name="installation_downgrade">فشل التثبيت لأن المستخدم حاول تثبيت إصدار قديم. قم بألغاء تثبيت التحديثات الخاصة باليوتيوب الأصلي، ثم حاول مرة أخرى.</string>
|
<string name="installation_downgrade">فشل التثبيت لأن المستخدم حاول تثبيت إصدار قديم. قم بألغاء تثبيت التحديثات الخاصة باليوتيوب الأصلي، ثم حاول مرة أخرى.</string>
|
||||||
<string name="installation_conflict">فشل التثبيت، لأن هذا التطبيق يتعارض مع تطبيق مثبت بالفعل. قم بإلغاء تثبيت الإصدار الحالي من Vanced، ثم حاول مرة أخرى.</string>
|
<string name="installation_conflict">فشل التثبيت، لأن هذا التطبيق يتعارض مع تطبيق مثبت بالفعل. قم بإلغاء تثبيت الإصدار الحالي من Vanced، ثم حاول مرة أخرى.</string>
|
||||||
<string name="installation_failed">فشل التثبيت لأسباب غير معروفة، انضم إلى تيليجرام أو ديسكورد لمزيد من الدعم. يرجى أيضاً إرفاق لقطة الشاشة من القائمة المتقدمة</string>
|
<string name="installation_failed">فشل التثبيت لأسباب غير معروفة، انضم إلى تيليجرام أو ديسكورد لمزيد من الدعم. يرجى أيضاً إرفاق لقطة الشاشة من القائمة المتقدمة</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versiya</string>
|
<string name="version">Versiya</string>
|
||||||
<string name="microg_bug">Amma microG\'də</string>
|
<string name="microg_bug">Amma microG\'də</string>
|
||||||
<string name="microg_bug_summary">microG\'də olan xəta səbəbindən Vanced 16+ yükləmək üçün əvvəlcə v15.43.32 versiyasını yükləməlisiniz, bunun üçün onu açıb giriş etməlisiniz, ancaq ondan sonra v16 ya da üstünü quraşdıra bilərsiniz. v15.43.32 versiyasını yükləmək istəyirsiniz?</string>
|
<string name="microg_bug_summary">microG\'də olan xəta səbəbindən Vanced 16+ yükləmək üçün əvvəlcə v15.43.32 versiyasını yükləməlisiniz, bunun üçün onu açıb giriş etməlisiniz, ancaq ondan sonra v16 ya da üstünü quraşdıra bilərsiniz. v15.43.32 versiyasını yükləmək istəyirsiniz?</string>
|
||||||
<string name="microg_bug_summary_music">microG\'də olan xəta səbəbindən Music 4.11+ yükləmək üçün əvvəlcə v4.07.51 versiyasını yükləməlisiniz, bunun üçün onu açıb giriş etməlisiniz, ancaq ondan sonra v4.11 ya da üstünü quraşdıra bilərsiniz. v4.15.11 versiyasını yükləmək istəyirsiniz?</string>
|
|
||||||
<string name="please_be_patient">Xahiş olunur iş gedərkən tətbiqi TƏRK ETMƏYİN!</string>
|
<string name="please_be_patient">Xahiş olunur iş gedərkən tətbiqi TƏRK ETMƏYİN!</string>
|
||||||
<string name="welcome">Xoş gəlmisiniz</string>
|
<string name="welcome">Xoş gəlmisiniz</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Quraşdırmaq üçün lazımi fayllar tapılmadı. Quraşdırma fayllarını yenidən endirib təkrar sınayın.</string>
|
<string name="files_missing_va">Quraşdırmaq üçün lazımi fayllar tapılmadı. Quraşdırma fayllarını yenidən endirib təkrar sınayın.</string>
|
||||||
<string name="ifile_missing">Anbarda qara/tünd mövzu üçün apk faylı tapılmadı, yenidən sınayın.</string>
|
<string name="ifile_missing">Anbarda qara/tünd mövzu üçün apk faylı tapılmadı, yenidən sınayın.</string>
|
||||||
<string name="installation_aborted">İstifadəçi quraşdırmanı ləğv etdiyi üçün quraşdırılma uğursuz oldu.</string>
|
<string name="installation_aborted">İstifadəçi quraşdırmanı ləğv etdiyi üçün quraşdırılma uğursuz oldu.</string>
|
||||||
<string name="installation_blocked">İstifadəçi quraşdırmanı əngəllədiyi üçün quraşdırılma uğursuz oldu.</string>
|
|
||||||
<string name="installation_downgrade">İstifadəçi paketi alt versiyaya keçirməyə çalışdığı üçün quraşdırılma uğursuz oldu. Stok YouTube tətbiqindən yeniləmələri silib yenidən sınayın.</string>
|
<string name="installation_downgrade">İstifadəçi paketi alt versiyaya keçirməyə çalışdığı üçün quraşdırılma uğursuz oldu. Stok YouTube tətbiqindən yeniləmələri silib yenidən sınayın.</string>
|
||||||
<string name="installation_conflict">Tətbiq əvvəlcədən quraşdırılmış bir tətbiqlə toqquşduğu üçün quraşdırılma uğursuz oldu. Vanced-in cari versiyasını silib yenidən sınayın.</string>
|
<string name="installation_conflict">Tətbiq əvvəlcədən quraşdırılmış bir tətbiqlə toqquşduğu üçün quraşdırılma uğursuz oldu. Vanced-in cari versiyasını silib yenidən sınayın.</string>
|
||||||
<string name="installation_failed">Bilinməyən səbəblərdən qurma alınmadı, əlavə yardım üçün Telegram və ya Discordumuza qoşulun. Xahiş olunur Qabaqcıl bölməsindən ekran görüntüsü də əlavə edin</string>
|
<string name="installation_failed">Bilinməyən səbəblərdən qurma alınmadı, əlavə yardım üçün Telegram və ya Discordumuza qoşulun. Xahiş olunur Qabaqcıl bölməsindən ekran görüntüsü də əlavə edin</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Версия</string>
|
<string name="version">Версия</string>
|
||||||
<string name="microg_bug">Бъг в microG</string>
|
<string name="microg_bug">Бъг в microG</string>
|
||||||
<string name="microg_bug_summary">Поради бъг в microG инсталирането на Vanced версия 16 изисква първо да се инсталира версия 15.43.32 след това да влезете в профила си след което може да инсталирате 16 и по-нова. Да се инсталира ли версия 15.43.32?</string>
|
<string name="microg_bug_summary">Поради бъг в microG инсталирането на Vanced версия 16 изисква първо да се инсталира версия 15.43.32 след това да влезете в профила си след което може да инсталирате 16 и по-нова. Да се инсталира ли версия 15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Поради бъг в microG инсталирането на Music версия 4.11 изисква първо да се инсталира версия 4.07.51 след това да влезете в профила си след което може да инсталирате 4.11 и по-нова. Да се инсталира ли версия 4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Моля, НЕ излизайте от приложението по време на този процес!</string>
|
<string name="please_be_patient">Моля, НЕ излизайте от приложението по време на този процес!</string>
|
||||||
<string name="welcome">Добре дошли</string>
|
<string name="welcome">Добре дошли</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Необходимите файлове за инсталация не са открити. Изтеглете ги отново и опитайте пак.</string>
|
<string name="files_missing_va">Необходимите файлове за инсталация не са открити. Изтеглете ги отново и опитайте пак.</string>
|
||||||
<string name="ifile_missing">Не може да бъде открит apk файла за черна/тъмна тема, моля опитайте отново.</string>
|
<string name="ifile_missing">Не може да бъде открит apk файла за черна/тъмна тема, моля опитайте отново.</string>
|
||||||
<string name="installation_aborted">Инсталацията е неуспешна, защото е прекратена от потребителя.</string>
|
<string name="installation_aborted">Инсталацията е неуспешна, защото е прекратена от потребителя.</string>
|
||||||
<string name="installation_blocked">Инсталацията е неуспешна, защото е блокирана от потребителя.</string>
|
|
||||||
<string name="installation_downgrade">Инсталацията е неуспешна, защото потребителя се опитва да инсталира по-стара версия на пакета. Деинсталирайте актуализациите на оригиналното приложение и опитайте отново.</string>
|
<string name="installation_downgrade">Инсталацията е неуспешна, защото потребителя се опитва да инсталира по-стара версия на пакета. Деинсталирайте актуализациите на оригиналното приложение и опитайте отново.</string>
|
||||||
<string name="installation_conflict">Инсталацията е неуспешна, поради конфликт с вече инсталирано приложение. Деинсталирайте го и опитайте отново.</string>
|
<string name="installation_conflict">Инсталацията е неуспешна, поради конфликт с вече инсталирано приложение. Деинсталирайте го и опитайте отново.</string>
|
||||||
<string name="installation_failed">Инсталацията не бе успешна по неизвестни причини, присъединете се към нашия Telegram или Discord за допълнителна поддръжка. Моля, прикачете и екранна снимка от меню Разширени</string>
|
<string name="installation_failed">Инсталацията не бе успешна по неизвестни причини, присъединете се към нашия Telegram или Discord за допълнителна поддръжка. Моля, прикачете и екранна снимка от меню Разширени</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">স্বাগতম</string>
|
<string name="welcome">স্বাগতম</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">সফটওয়্যার টি ইনস্টল এর জন্য প্রয়োজনী ফাইল সংগ্রহতে ব্যর্থ হয়েছে। পুনরায় ডাওনলোড এবং ইনস্টল করে চেষ্টা করুন.</string>
|
<string name="files_missing_va">সফটওয়্যার টি ইনস্টল এর জন্য প্রয়োজনী ফাইল সংগ্রহতে ব্যর্থ হয়েছে। পুনরায় ডাওনলোড এবং ইনস্টল করে চেষ্টা করুন.</string>
|
||||||
<string name="ifile_missing">স্টোরেজ থেকে কালো / অন্ধকান থিমের জন্য apk ফাইল সনাক্ত করতে ব্যর্থ হয়েছে, দয়া করে আবার চেষ্টা করুন।.</string>
|
<string name="ifile_missing">স্টোরেজ থেকে কালো / অন্ধকান থিমের জন্য apk ফাইল সনাক্ত করতে ব্যর্থ হয়েছে, দয়া করে আবার চেষ্টা করুন।.</string>
|
||||||
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
||||||
<string name="installation_blocked">Installation failed because the user blocked the installation.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">সংস্করণ</string>
|
<string name="version">সংস্করণ</string>
|
||||||
<string name="microg_bug">মাইক্রোজি তে ত্রুটি</string>
|
<string name="microg_bug">মাইক্রোজি তে ত্রুটি</string>
|
||||||
<string name="microg_bug_summary">আসল মাইক্রোজিতে ত্রুটির কারণে, ভ্যান্সড ভি১৬+ ইনস্টল করার জন্য প্রথমে আপনাকে ভি১৫.৪৩.৩২ ইনস্টল করতে হবে, এটি খুলুন, তারপরে লগইন করুন এবং তারপরেই আপনি ভি১৬ এবং পরবর্তী ভার্সন ইনস্টল করতে পারবেন। আপনি কি ভি১৫.৪৩.৩২ এর ইনস্টলেশনের মধ্য দিয়ে এগিয়ে যেতে চান?</string>
|
<string name="microg_bug_summary">আসল মাইক্রোজিতে ত্রুটির কারণে, ভ্যান্সড ভি১৬+ ইনস্টল করার জন্য প্রথমে আপনাকে ভি১৫.৪৩.৩২ ইনস্টল করতে হবে, এটি খুলুন, তারপরে লগইন করুন এবং তারপরেই আপনি ভি১৬ এবং পরবর্তী ভার্সন ইনস্টল করতে পারবেন। আপনি কি ভি১৫.৪৩.৩২ এর ইনস্টলেশনের মধ্য দিয়ে এগিয়ে যেতে চান?</string>
|
||||||
<string name="microg_bug_summary_music">আসল মাইক্রোজিতে ত্রুটির কারণে, মিউজিক ভি৪.১১+ ইনস্টল করার জন্য প্রথমে আপনাকে ভি৪.০৭.৫১ ইনস্টল করতে হবে, এটি খুলুন, তারপরে লগইন করুন এবং তারপরেই আপনি ভি৪.১১ এবং পরবর্তী ভার্সন ইনস্টল করতে পারবেন। আপনি কি ভি৪.০৭.৫১ এর ইনস্টলেশনের মধ্য দিয়ে এগিয়ে যেতে চান?</string>
|
|
||||||
<string name="please_be_patient">এই প্রক্রিয়া চলাকালীন দয়া করে অ্যাপ্লিকেশন থেকে কোনোমতেই প্রস্থান করবেন না!</string>
|
<string name="please_be_patient">এই প্রক্রিয়া চলাকালীন দয়া করে অ্যাপ্লিকেশন থেকে কোনোমতেই প্রস্থান করবেন না!</string>
|
||||||
<string name="welcome">স্বাগত</string>
|
<string name="welcome">স্বাগত</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">ইনস্টলেশনের জন্য প্রয়োজনীয় ফাইলগুলি খুঁজে পাওয়া যায় নি। ইনস্টল করার জন্য ফাইলগুলি পুনরায় ডাউনলোড করুন, তারপরে আবার চেষ্টা করুন।</string>
|
<string name="files_missing_va">ইনস্টলেশনের জন্য প্রয়োজনীয় ফাইলগুলি খুঁজে পাওয়া যায় নি। ইনস্টল করার জন্য ফাইলগুলি পুনরায় ডাউনলোড করুন, তারপরে আবার চেষ্টা করুন।</string>
|
||||||
<string name="ifile_missing">স্টোরেজ থেকে কালো/গাঢ় থিমের জন্য এপিকে ফাইল সনাক্ত করতে ব্যর্থ, দয়া করে আবার চেষ্টা করুন।</string>
|
<string name="ifile_missing">স্টোরেজ থেকে কালো/গাঢ় থিমের জন্য এপিকে ফাইল সনাক্ত করতে ব্যর্থ, দয়া করে আবার চেষ্টা করুন।</string>
|
||||||
<string name="installation_aborted">ইনস্টল করা যায়নি কারণ ব্যবহারকারী ইনস্টল করা বাতিল করে দিয়েছেন।</string>
|
<string name="installation_aborted">ইনস্টল করা যায়নি কারণ ব্যবহারকারী ইনস্টল করা বাতিল করে দিয়েছেন।</string>
|
||||||
<string name="installation_blocked">ইনস্টল করা যায়নি কারণ ব্যবহারকারী ইনস্টল করা অবরুদ্ধ করেছেন।</string>
|
|
||||||
<string name="installation_downgrade">ইনস্টলেশন ব্যর্থ হয়েছে কারণ ব্যবহারকারী প্যাকেজটি ডাউনগ্রেড করার চেষ্টা করেছিল। স্টক অ্যাপ্লিকেশন থেকে আপডেটগুলি আনইনস্টল করুন, তারপরে আবার চেষ্টা করুন।</string>
|
<string name="installation_downgrade">ইনস্টলেশন ব্যর্থ হয়েছে কারণ ব্যবহারকারী প্যাকেজটি ডাউনগ্রেড করার চেষ্টা করেছিল। স্টক অ্যাপ্লিকেশন থেকে আপডেটগুলি আনইনস্টল করুন, তারপরে আবার চেষ্টা করুন।</string>
|
||||||
<string name="installation_conflict">ইনস্টলেশন ব্যর্থ হয়েছে কারণ অ্যাপ্লিকেশনটি ইতিমধ্যে ইনস্টল হওয়া আরেকটি অ্যাপ্লিকেশানের সাথে দ্বন্দ্ব করেছে। অ্যাপটির বর্তমান সংস্করণটি আনইনস্টল করুন, তারপরে আবার চেষ্টা করুন।</string>
|
<string name="installation_conflict">ইনস্টলেশন ব্যর্থ হয়েছে কারণ অ্যাপ্লিকেশনটি ইতিমধ্যে ইনস্টল হওয়া আরেকটি অ্যাপ্লিকেশানের সাথে দ্বন্দ্ব করেছে। অ্যাপটির বর্তমান সংস্করণটি আনইনস্টল করুন, তারপরে আবার চেষ্টা করুন।</string>
|
||||||
<string name="installation_failed">অজানা কারণে ইনস্টলেশন ব্যর্থ হয়েছে, আরও সহায়তার জন্য আমাদের টেলিগ্রাম বা ডিসকর্ডে যোগ দিন। অ্যাডভান্সড মেনু থেকে স্ক্রিনশটটিও সংযুক্ত করুন</string>
|
<string name="installation_failed">অজানা কারণে ইনস্টলেশন ব্যর্থ হয়েছে, আরও সহায়তার জন্য আমাদের টেলিগ্রাম বা ডিসকর্ডে যোগ দিন। অ্যাডভান্সড মেনু থেকে স্ক্রিনশটটিও সংযুক্ত করুন</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">Benvingut</string>
|
<string name="welcome">Benvingut</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
||||||
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
||||||
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
||||||
<string name="installation_blocked">Installation failed because the user blocked the installation.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">وەشان</string>
|
<string name="version">وەشان</string>
|
||||||
<string name="microg_bug">کێشە لە microG</string>
|
<string name="microg_bug">کێشە لە microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">بەخێربێیت</string>
|
<string name="welcome">بەخێربێیت</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">سەرکەوتو نەبوو لە دۆزینەوەی فایلە پێویستەکان بۆ دامەزراندن، فایلە پێویستیەکان دووبارە دابگرەوە بۆ جێگیرکردن، پاشان دووبارە هەوڵبدەرەوە.</string>
|
<string name="files_missing_va">سەرکەوتو نەبوو لە دۆزینەوەی فایلە پێویستەکان بۆ دامەزراندن، فایلە پێویستیەکان دووبارە دابگرەوە بۆ جێگیرکردن، پاشان دووبارە هەوڵبدەرەوە.</string>
|
||||||
<string name="ifile_missing">سەرکەوتوو نەبوو لەدۆزینەوەی شوێنی فایلی Apk بۆ ڕووکاری ڕەش/تاریک لە بیرگەدا، تکایە دووبارە هەوڵبدەرەوە.</string>
|
<string name="ifile_missing">سەرکەوتوو نەبوو لەدۆزینەوەی شوێنی فایلی Apk بۆ ڕووکاری ڕەش/تاریک لە بیرگەدا، تکایە دووبارە هەوڵبدەرەوە.</string>
|
||||||
<string name="installation_aborted">دامەزراندن سەرکەوتو نەبوو، لەبەر ئەوەی بەکارهێنەر کۆتاییهێنا بە دابەزاندنەکە.</string>
|
<string name="installation_aborted">دامەزراندن سەرکەوتو نەبوو، لەبەر ئەوەی بەکارهێنەر کۆتاییهێنا بە دابەزاندنەکە.</string>
|
||||||
<string name="installation_blocked">دامەزراندن سەرکەوتو نەبوو، لەبەر ئەوەی بەکارهێنەر ڕێگریکرد لە دابەزاندنەکە.</string>
|
|
||||||
<string name="installation_downgrade">دامەزراندن سەرکەوتو نەبوو، لەبەر ئەوەی بەکارهێنەر هەوڵیدا بۆ نزمکردنەوەی وەشان، نوێکارییەکانی بەرنامەی بنەڕەتی YouTube بسڕەوە و دووبارە هەوڵبدەرەوە.</string>
|
<string name="installation_downgrade">دامەزراندن سەرکەوتو نەبوو، لەبەر ئەوەی بەکارهێنەر هەوڵیدا بۆ نزمکردنەوەی وەشان، نوێکارییەکانی بەرنامەی بنەڕەتی YouTube بسڕەوە و دووبارە هەوڵبدەرەوە.</string>
|
||||||
<string name="installation_conflict">دامەزراندن سەرکەوتو نەبوو لەبەرئەوەی وەشانێکی تری بەرنامەکە پێشتر دامەزرێنراوە، وەشانی ئێستای Vanced بسڕەوە و پاشان دووبارە هەوڵبدەرەوە.</string>
|
<string name="installation_conflict">دامەزراندن سەرکەوتو نەبوو لەبەرئەوەی وەشانێکی تری بەرنامەکە پێشتر دامەزرێنراوە، وەشانی ئێستای Vanced بسڕەوە و پاشان دووبارە هەوڵبدەرەوە.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Verze</string>
|
<string name="version">Verze</string>
|
||||||
<string name="microg_bug">Chyba v microG</string>
|
<string name="microg_bug">Chyba v microG</string>
|
||||||
<string name="microg_bug_summary">Kvůli chybě v původním microG, vyžaduje instalace Vanced v16+ nejprve instalaci verze 15.43.32. Otevřete ji, poté se přihlaste ke svému účtu a teprve poté nainstalujte verzi 16 a vyšší. Přejete si pokračovat v instalaci verze 15.43.32?</string>
|
<string name="microg_bug_summary">Kvůli chybě v původním microG, vyžaduje instalace Vanced v16+ nejprve instalaci verze 15.43.32. Otevřete ji, poté se přihlaste ke svému účtu a teprve poté nainstalujte verzi 16 a vyšší. Přejete si pokračovat v instalaci verze 15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Kvůli chybě v původním microG, vyžaduje instalace Music v4.11+ nejprve instalaci verze 4.07.51. Otevřete ji, poté se přihlaste ke svému účtu a teprve poté nainstalujte verzi 4.11 a vyšší. Přejete si pokračovat v instalaci verze 4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Během tohoto procesu NEUKONČUJTE aplikaci!</string>
|
<string name="please_be_patient">Během tohoto procesu NEUKONČUJTE aplikaci!</string>
|
||||||
<string name="welcome">Vítejte</string>
|
<string name="welcome">Vítejte</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Nepodařilo se najít požadované soubory pro instalaci. Stáhněte znovu instalační soubory a poté to zkuste znovu.</string>
|
<string name="files_missing_va">Nepodařilo se najít požadované soubory pro instalaci. Stáhněte znovu instalační soubory a poté to zkuste znovu.</string>
|
||||||
<string name="ifile_missing">Ve vnitřním úložišti se nepodařilo najít soubor APK pro černý/tmavý motiv. Zkuste to prosím znovu.</string>
|
<string name="ifile_missing">Ve vnitřním úložišti se nepodařilo najít soubor APK pro černý/tmavý motiv. Zkuste to prosím znovu.</string>
|
||||||
<string name="installation_aborted">Instalace se nezdařila, protože uživatel přerušil instalaci.</string>
|
<string name="installation_aborted">Instalace se nezdařila, protože uživatel přerušil instalaci.</string>
|
||||||
<string name="installation_blocked">Instalace se nezdařila, protože uživatel zablokoval instalaci.</string>
|
|
||||||
<string name="installation_downgrade">Instalace se nezdařila, protože se uživatel pokusil balíček downgradovat. Odinstalujte aktualizace z výchozí aplikace a poté to zkuste znovu.</string>
|
<string name="installation_downgrade">Instalace se nezdařila, protože se uživatel pokusil balíček downgradovat. Odinstalujte aktualizace z výchozí aplikace a poté to zkuste znovu.</string>
|
||||||
<string name="installation_conflict">Instalace se nezdařila, protože aplikace je v konfliktu s již nainstalovanou aplikací. Odinstalujte aktuální verzi aplikace a poté to zkuste znovu.</string>
|
<string name="installation_conflict">Instalace se nezdařila, protože aplikace je v konfliktu s již nainstalovanou aplikací. Odinstalujte aktuální verzi aplikace a poté to zkuste znovu.</string>
|
||||||
<string name="installation_failed">Instalace se z neznámých důvodů nezdařila. Pro další podporu se připojte k našemu Telegramu nebo Discordu. Připojte také snímek obrazovky z nabídky Pokročilé</string>
|
<string name="installation_failed">Instalace se z neznámých důvodů nezdařila. Pro další podporu se připojte k našemu Telegramu nebo Discordu. Připojte také snímek obrazovky z nabídky Pokročilé</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Fejl i microG</string>
|
<string name="microg_bug">Fejl i microG</string>
|
||||||
<string name="microg_bug_summary">På grund af en fejl i microG, kræver installationen af Vanced 16+ først at du installerer v15.43.32, åbner, logger ind og først derefter kan du installere v16 og over. Vil du fortsætte med at installere v15.43.32?</string>
|
<string name="microg_bug_summary">På grund af en fejl i microG, kræver installationen af Vanced 16+ først at du installerer v15.43.32, åbner, logger ind og først derefter kan du installere v16 og over. Vil du fortsætte med at installere v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">På grund af en fejl i microG, kræver installationen af Music v4.11+ først at du installerer v4.07.51, åbner, logger ind og først derefter kan du installere v4.11 og over. Vil du at fortsætte med at installere v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Afslut venligst IKKE appen under denne proces!</string>
|
<string name="please_be_patient">Afslut venligst IKKE appen under denne proces!</string>
|
||||||
<string name="welcome">Velkommen</string>
|
<string name="welcome">Velkommen</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Kunne ikke finde de påkrævede filer til installation. Download installationsfilerne igen, og prøv igen.</string>
|
<string name="files_missing_va">Kunne ikke finde de påkrævede filer til installation. Download installationsfilerne igen, og prøv igen.</string>
|
||||||
<string name="ifile_missing">Kunne ikke finde apk-fil til sort/mørkt tema fra lager. Prøv venligst igen.</string>
|
<string name="ifile_missing">Kunne ikke finde apk-fil til sort/mørkt tema fra lager. Prøv venligst igen.</string>
|
||||||
<string name="installation_aborted">Installationen fejlede fordi brugeren lukkede installationen.</string>
|
<string name="installation_aborted">Installationen fejlede fordi brugeren lukkede installationen.</string>
|
||||||
<string name="installation_blocked">Installationen fejlede fordi brugeren blokerede installationen.</string>
|
|
||||||
<string name="installation_downgrade">Installationen fejlede fordi brugeren prøvede at nedgradere pakken. Fjern opdateringer fra Youtube appen og prøv igen.</string>
|
<string name="installation_downgrade">Installationen fejlede fordi brugeren prøvede at nedgradere pakken. Fjern opdateringer fra Youtube appen og prøv igen.</string>
|
||||||
<string name="installation_conflict">Installationen fejlede fordi appen konflikter med en allerede installeret app. Fjern den nuværende version af appen og prøv igen.</string>
|
<string name="installation_conflict">Installationen fejlede fordi appen konflikter med en allerede installeret app. Fjern den nuværende version af appen og prøv igen.</string>
|
||||||
<string name="installation_failed">Installation mislykkedes af ukendte årsager, kom på vores Telegram eller Discord for yderligere hjælp. Vedhæft venligst også et skærmbillede fra menuen Avanceret</string>
|
<string name="installation_failed">Installation mislykkedes af ukendte årsager, kom på vores Telegram eller Discord for yderligere hjælp. Vedhæft venligst også et skærmbillede fra menuen Avanceret</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Fehler in MicroG</string>
|
<string name="microg_bug">Fehler in MicroG</string>
|
||||||
<string name="microg_bug_summary">Aufgrund eines Fehlers in MicroG ist es erforderlich, zuerst die Version v15.43.32 zu installieren, öffnen und sich anzumelden, um Vanced v16 und höher zu verwenden. Möchten Sie mit der Installation von v15.43.32 fortfahren?</string>
|
<string name="microg_bug_summary">Aufgrund eines Fehlers in MicroG ist es erforderlich, zuerst die Version v15.43.32 zu installieren, öffnen und sich anzumelden, um Vanced v16 und höher zu verwenden. Möchten Sie mit der Installation von v15.43.32 fortfahren?</string>
|
||||||
<string name="microg_bug_summary_music">Aufgrund eines Fehlers in MicroG, ist es erforderlich zuerst die Version v4.07.51 zu installieren, öffnen und sich anzumelden, um Vanced Music v4.11+ zu verwenden. Möchten Sie mit der Installation von v4.07.51 fortfahren?</string>
|
|
||||||
<string name="please_be_patient">Bitte schließen Sie die App NICHT während dieses Prozesses!</string>
|
<string name="please_be_patient">Bitte schließen Sie die App NICHT während dieses Prozesses!</string>
|
||||||
<string name="welcome">Willkommen</string>
|
<string name="welcome">Willkommen</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Die benötigten Dateien für die Installation konnten nicht gefunden werden. Laden Sie die Installationsdateien erneut herunter und versuchen Sie es erneut.</string>
|
<string name="files_missing_va">Die benötigten Dateien für die Installation konnten nicht gefunden werden. Laden Sie die Installationsdateien erneut herunter und versuchen Sie es erneut.</string>
|
||||||
<string name="ifile_missing">Apk-Datei für schwarzes/dunkles Theme konnte nicht gefunden werden, bitte versuchen Sie es erneut.</string>
|
<string name="ifile_missing">Apk-Datei für schwarzes/dunkles Theme konnte nicht gefunden werden, bitte versuchen Sie es erneut.</string>
|
||||||
<string name="installation_aborted">Installation fehlgeschlagen, da der Benutzer die Installation abgebrochen hat.</string>
|
<string name="installation_aborted">Installation fehlgeschlagen, da der Benutzer die Installation abgebrochen hat.</string>
|
||||||
<string name="installation_blocked">Installation fehlgeschlagen, da der Benutzer die Installation blockiert hat.</string>
|
|
||||||
<string name="installation_downgrade">Installation fehlgeschlagen, da der Benutzer versucht hat, eine ältere Version des Paketes zu installieren. Deinstallieren Sie Updates von der YouTube App und versuchen Sie es erneut.</string>
|
<string name="installation_downgrade">Installation fehlgeschlagen, da der Benutzer versucht hat, eine ältere Version des Paketes zu installieren. Deinstallieren Sie Updates von der YouTube App und versuchen Sie es erneut.</string>
|
||||||
<string name="installation_conflict">Die Installation ist fehlgeschlagen, weil die App in Konflikt mit einer bereits installierten App steht. Deinstalliere die aktuell installierte Version der App und versuchen es dann erneut.</string>
|
<string name="installation_conflict">Die Installation ist fehlgeschlagen, weil die App in Konflikt mit einer bereits installierten App steht. Deinstalliere die aktuell installierte Version der App und versuchen es dann erneut.</string>
|
||||||
<string name="installation_failed">Die Installation ist aus unbekannten Gründen fehlgeschlagen. Betrete unser Telegram Chat oder Discord Server für weitere Unterstützung und halte bitte einen Screenshot aus dem erweiterten Menü bereit</string>
|
<string name="installation_failed">Die Installation ist aus unbekannten Gründen fehlgeschlagen. Betrete unser Telegram Chat oder Discord Server für weitere Unterstützung und halte bitte einen Screenshot aus dem erweiterten Menü bereit</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Έκδοση</string>
|
<string name="version">Έκδοση</string>
|
||||||
<string name="microg_bug">Σφάλμα στο microG</string>
|
<string name="microg_bug">Σφάλμα στο microG</string>
|
||||||
<string name="microg_bug_summary">Λόγο ενός σφάλματος του microG, για να εγκαταστήσετε την έκδοση v16 και άνω, του Vanced, πρέπει πρώτα να εγκαταστήσετε την έκδοση v15.43.32, να την ανοίξετε, και να συνδεθείτε στον λογαριασμό σας, μόνο τότε μπορείτε να εγκαταστήσετε την έκδοση v16 και άνω. Θέλετε να συνεχίσετε με την εγκατάσταση της έκδοσης v15.43.32;</string>
|
<string name="microg_bug_summary">Λόγο ενός σφάλματος του microG, για να εγκαταστήσετε την έκδοση v16 και άνω, του Vanced, πρέπει πρώτα να εγκαταστήσετε την έκδοση v15.43.32, να την ανοίξετε, και να συνδεθείτε στον λογαριασμό σας, μόνο τότε μπορείτε να εγκαταστήσετε την έκδοση v16 και άνω. Θέλετε να συνεχίσετε με την εγκατάσταση της έκδοσης v15.43.32;</string>
|
||||||
<string name="microg_bug_summary_music">Λόγο ενός σφάλματος του microG, για να εγκαταστήσετε την έκδοση v4.11 και άνω, του YouTube Vanced Music, πρέπει πρώτα να εγκαταστήσετε την έκδοση v4.07.51, να την ανοίξετε, και να συνδεθείτε στον λογαριασμό σας, μόνο τότε μπορείτε να εγκαταστήσετε την έκδοση v4.11 και άνω. Θέλετε να συνεχίσετε με την εγκατάσταση της έκδοσης v4.07.51;</string>
|
|
||||||
<string name="please_be_patient">Παρακαλώ ΜΗΝ βγείτε από την εφαρμογή κατά τη διάρκεια αυτής της διαδικασίας!</string>
|
<string name="please_be_patient">Παρακαλώ ΜΗΝ βγείτε από την εφαρμογή κατά τη διάρκεια αυτής της διαδικασίας!</string>
|
||||||
<string name="welcome">Καλώς ορίσατε</string>
|
<string name="welcome">Καλώς ορίσατε</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Αδυναμία εντοπισμού των απαιτούμενων αρχείων για την εγκατάσταση. Κατεβάστε τα αρχεία εγκατάστασης, και προσπαθήστε ξανά.</string>
|
<string name="files_missing_va">Αδυναμία εντοπισμού των απαιτούμενων αρχείων για την εγκατάσταση. Κατεβάστε τα αρχεία εγκατάστασης, και προσπαθήστε ξανά.</string>
|
||||||
<string name="ifile_missing">Αδυναμία εντοπισμού του αρχείου apk σκουρόχρωμου/απολύτου μαύρου θέματος στον αποθηκευτικό χώρο, παρακαλώ προσπαθήστε ξανά.</string>
|
<string name="ifile_missing">Αδυναμία εντοπισμού του αρχείου apk σκουρόχρωμου/απολύτου μαύρου θέματος στον αποθηκευτικό χώρο, παρακαλώ προσπαθήστε ξανά.</string>
|
||||||
<string name="installation_aborted">Η εγκατάσταση απέτυχε διότι ο χρήστης ακύρωσε την εγκατάσταση.</string>
|
<string name="installation_aborted">Η εγκατάσταση απέτυχε διότι ο χρήστης ακύρωσε την εγκατάσταση.</string>
|
||||||
<string name="installation_blocked">Η εγκατάσταση απέτυχε διότι ο χρήστης απέκλεισε την εγκατάσταση.</string>
|
|
||||||
<string name="installation_downgrade">Η εγκατάσταση απέτυχε διότι ο χρήστης προσπάθησε να υποβαθμίσει το πακέτο. Απεγκαταστήστε τις ενημερώσεις της αρχικής εφαρμογής YouTube, στη συνέχεια προσπαθήστε ξανά.</string>
|
<string name="installation_downgrade">Η εγκατάσταση απέτυχε διότι ο χρήστης προσπάθησε να υποβαθμίσει το πακέτο. Απεγκαταστήστε τις ενημερώσεις της αρχικής εφαρμογής YouTube, στη συνέχεια προσπαθήστε ξανά.</string>
|
||||||
<string name="installation_conflict">Η εγκατάσταση απέτυχε διότι η εφαρμογή αντικρούεται με μια ήδη εγκατεστημένη εφαρμογή. Κάντε απεγκατάσταση την τρέχουσα έκδοση της εφαρμογής, και μετά προσπαθήστε ξανά.</string>
|
<string name="installation_conflict">Η εγκατάσταση απέτυχε διότι η εφαρμογή αντικρούεται με μια ήδη εγκατεστημένη εφαρμογή. Κάντε απεγκατάσταση την τρέχουσα έκδοση της εφαρμογής, και μετά προσπαθήστε ξανά.</string>
|
||||||
<string name="installation_failed">Η εγκατάσταση απέτυχε για άγνωστους λόγους, μπείτε στο Telegram ή στο Discord μας για περαιτέρω υποστήριξη. Παρακαλώ επισυνάψτε ένα στιγμιότυπο οθόνης από τις επιλογές για προχωρημένους</string>
|
<string name="installation_failed">Η εγκατάσταση απέτυχε για άγνωστους λόγους, μπείτε στο Telegram ή στο Discord μας για περαιτέρω υποστήριξη. Παρακαλώ επισυνάψτε ένα στιγμιότυπο οθόνης από τις επιλογές για προχωρημένους</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versión</string>
|
<string name="version">Versión</string>
|
||||||
<string name="microg_bug">Error en microG</string>
|
<string name="microg_bug">Error en microG</string>
|
||||||
<string name="microg_bug_summary">Debido a un error en el microG original, la instalación de Vanced v16+ requiere primero la instalación de la versión v15.43.32, abrirla, iniciar sesión y sólo entonces podrás instalar la versión v16 y superior. ¿Quieres proceder con la instalada de la versión v15.43.32?</string>
|
<string name="microg_bug_summary">Debido a un error en el microG original, la instalación de Vanced v16+ requiere primero la instalación de la versión v15.43.32, abrirla, iniciar sesión y sólo entonces podrás instalar la versión v16 y superior. ¿Quieres proceder con la instalada de la versión v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Debido a un error en microG, para poder instalar Vanced v16+ hay que instalar primero la versión v15.11, abrirla, iniciar sesión y solo entonces podrás instalar la versión v16 y superior. ¿Quieres instalar la versión v15.07.51?</string>
|
|
||||||
<string name="please_be_patient">¡Por favor, NO salga de la aplicación durante este proceso!</string>
|
<string name="please_be_patient">¡Por favor, NO salga de la aplicación durante este proceso!</string>
|
||||||
<string name="welcome">Bienvenido</string>
|
<string name="welcome">Bienvenido</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Falla al localizar los archivos necesarios para la instalación. Vuelva a descargar los archivos de instalación y vuelva a intentarlo.</string>
|
<string name="files_missing_va">Falla al localizar los archivos necesarios para la instalación. Vuelva a descargar los archivos de instalación y vuelva a intentarlo.</string>
|
||||||
<string name="ifile_missing">Falla al localizar en el almacenamiento el archivo apk para el tema negro/oscuro, por favor intente otra vez.</string>
|
<string name="ifile_missing">Falla al localizar en el almacenamiento el archivo apk para el tema negro/oscuro, por favor intente otra vez.</string>
|
||||||
<string name="installation_aborted">La instalación ha fallado debido a que el usuario ha abortado la instalación.</string>
|
<string name="installation_aborted">La instalación ha fallado debido a que el usuario ha abortado la instalación.</string>
|
||||||
<string name="installation_blocked">La instalación ha fallado debido a que el usuario bloqueo la instalación.</string>
|
|
||||||
<string name="installation_downgrade">La instalación falló porque el usuario trató de degradar el paquete. Desinstala las actualizaciones de la aplicación original e intenta de nuevo.</string>
|
<string name="installation_downgrade">La instalación falló porque el usuario trató de degradar el paquete. Desinstala las actualizaciones de la aplicación original e intenta de nuevo.</string>
|
||||||
<string name="installation_conflict">La instalación ha fallado porque la aplicación entra en conflicto con una aplicación ya instalada. Desinstala la versión actual de la aplicación y vuelve a intentarlo.</string>
|
<string name="installation_conflict">La instalación ha fallado porque la aplicación entra en conflicto con una aplicación ya instalada. Desinstala la versión actual de la aplicación y vuelve a intentarlo.</string>
|
||||||
<string name="installation_failed">La instalación ha fallado por razones desconocidas, únete a nuestro Telegram o Discord para más soporte. Por favor, también adjunta una captura de pantalla desde el menú Avanzado</string>
|
<string name="installation_failed">La instalación ha fallado por razones desconocidas, únete a nuestro Telegram o Discord para más soporte. Por favor, también adjunta una captura de pantalla desde el menú Avanzado</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versioon</string>
|
<string name="version">Versioon</string>
|
||||||
<string name="microg_bug">microG viga</string>
|
<string name="microg_bug">microG viga</string>
|
||||||
<string name="microg_bug_summary">Seoses originaal microG veaga, vajab Vanced v16+ paigaldus ennem v15.43.32 versiooni paigaldust, sisselogimist ja alles siis saab paigaldada v16 või uuema. Kas soovite jätkata v15.43.32 paigaldusega?</string>
|
<string name="microg_bug_summary">Seoses originaal microG veaga, vajab Vanced v16+ paigaldus ennem v15.43.32 versiooni paigaldust, sisselogimist ja alles siis saab paigaldada v16 või uuema. Kas soovite jätkata v15.43.32 paigaldusega?</string>
|
||||||
<string name="microg_bug_summary_music">Seoses originaal microG veaga, vajab Music v4.11+ paigaldus ennem v4.07.51 versiooni paigaldust, sisselogimist ja alles siis saab paigaldada v4.11 või uuema. Kas soovite jätkata v4.07.51 paigaldusega?</string>
|
|
||||||
<string name="please_be_patient">Palun ärge väljuge rakendusest protsessi ajal!</string>
|
<string name="please_be_patient">Palun ärge väljuge rakendusest protsessi ajal!</string>
|
||||||
<string name="welcome">Tere tulemast</string>
|
<string name="welcome">Tere tulemast</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Paigalduseks vajalike failide leidmine ebaõnnestus. Laadige paigaldusfailid uuesti alla ja proovige uuesti.</string>
|
<string name="files_missing_va">Paigalduseks vajalike failide leidmine ebaõnnestus. Laadige paigaldusfailid uuesti alla ja proovige uuesti.</string>
|
||||||
<string name="ifile_missing">Apk faili musta/tumeda teema jaoks leidmine ebaõnnestus, proovige palun uuesti.</string>
|
<string name="ifile_missing">Apk faili musta/tumeda teema jaoks leidmine ebaõnnestus, proovige palun uuesti.</string>
|
||||||
<string name="installation_aborted">Paigaldamine ebaõnnestus kuna kasutaja katkestas selle.</string>
|
<string name="installation_aborted">Paigaldamine ebaõnnestus kuna kasutaja katkestas selle.</string>
|
||||||
<string name="installation_blocked">Paigaldamine ebaõnnestus kuna kasutaja peatas selle.</string>
|
|
||||||
<string name="installation_downgrade">Paigaldamine ebaõnnestus kuna kasutaja proovis paketti madalamale versioonile üle viia. Eemaldage värskendused originaalrakendusest ja proovige uuesti.</string>
|
<string name="installation_downgrade">Paigaldamine ebaõnnestus kuna kasutaja proovis paketti madalamale versioonile üle viia. Eemaldage värskendused originaalrakendusest ja proovige uuesti.</string>
|
||||||
<string name="installation_conflict">Paigaldamine ebaõnnestus, kuna tekkis konflikt olemasoleva versiooniga. Eemaldage praegune rakenduse versioon, ning proovige uuesti.</string>
|
<string name="installation_conflict">Paigaldamine ebaõnnestus, kuna tekkis konflikt olemasoleva versiooniga. Eemaldage praegune rakenduse versioon, ning proovige uuesti.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versio</string>
|
<string name="version">Versio</string>
|
||||||
<string name="microg_bug">Virhe microG:ssä</string>
|
<string name="microg_bug">Virhe microG:ssä</string>
|
||||||
<string name="microg_bug_summary">Alkuperäisessä microG:ssä olevan bugin takia sinun tulee asentaa Vancedin versio 15.43.32, avata se ja kirjautua sisään, ennen kuin voin asentaa version 16 tai uudemman. Haluatko jatkaa version 15.43.32 asentamista?</string>
|
<string name="microg_bug_summary">Alkuperäisessä microG:ssä olevan bugin takia sinun tulee asentaa Vancedin versio 15.43.32, avata se ja kirjautua sisään, ennen kuin voin asentaa version 16 tai uudemman. Haluatko jatkaa version 15.43.32 asentamista?</string>
|
||||||
<string name="microg_bug_summary_music">Alkuperäisessä microG:ssä olevan bugin takia sinun tulee asentaa Musicin versio 4.07.51, avata se ja kirjautua sisään, ennen kuin voin asentaa version 4.11 tai uudemman. Haluatko jatkaa version 4.07.51 asentamista?</string>
|
|
||||||
<string name="please_be_patient">ÄLÄ poistu sovelluksesta tämän prosessin aikana!</string>
|
<string name="please_be_patient">ÄLÄ poistu sovelluksesta tämän prosessin aikana!</string>
|
||||||
<string name="welcome">Tervetuloa</string>
|
<string name="welcome">Tervetuloa</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Asennukseen vaadittavien tiedostojen paikannus epäonnistui. Yritä ladata asennustiedostot uudelleen.</string>
|
<string name="files_missing_va">Asennukseen vaadittavien tiedostojen paikannus epäonnistui. Yritä ladata asennustiedostot uudelleen.</string>
|
||||||
<string name="ifile_missing">APK-tiedostoa mustalle/tummalle teemalle ei voitu paikantaa tallennustilasta, yritä uudelleen.</string>
|
<string name="ifile_missing">APK-tiedostoa mustalle/tummalle teemalle ei voitu paikantaa tallennustilasta, yritä uudelleen.</string>
|
||||||
<string name="installation_aborted">Asennus epäonnistui, koska käyttäjä keskeytti asennuksen.</string>
|
<string name="installation_aborted">Asennus epäonnistui, koska käyttäjä keskeytti asennuksen.</string>
|
||||||
<string name="installation_blocked">Asennus epäonnistui, koska käyttäjä on estänyt asennuksen.</string>
|
|
||||||
<string name="installation_downgrade">Asennus epäonnistui, koska käyttäjä yritti asentaa paketin vanhempaa versiota. Poista YouTube-sovelluksen päivitykset ja yritä sitten uudelleen.</string>
|
<string name="installation_downgrade">Asennus epäonnistui, koska käyttäjä yritti asentaa paketin vanhempaa versiota. Poista YouTube-sovelluksen päivitykset ja yritä sitten uudelleen.</string>
|
||||||
<string name="installation_conflict">Asennus epäonnistui, koska sovellus on ristiriidassa jo asennetun sovelluksen kanssa. Poista sovelluksen nykyinen versio ja yritä uudelleen.</string>
|
<string name="installation_conflict">Asennus epäonnistui, koska sovellus on ristiriidassa jo asennetun sovelluksen kanssa. Poista sovelluksen nykyinen versio ja yritä uudelleen.</string>
|
||||||
<string name="installation_failed">Asennus epäonnistui tuntemattomasta syystä, liity Vancedin Telegramiin tai Discordiin saadaksesi tukea. Liitä myös kuvankaappaus Lisäasetukset valikosta</string>
|
<string name="installation_failed">Asennus epäonnistui tuntemattomasta syystä, liity Vancedin Telegramiin tai Discordiin saadaksesi tukea. Liitä myös kuvankaappaus Lisäasetukset valikosta</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Bersyon</string>
|
<string name="version">Bersyon</string>
|
||||||
<string name="microg_bug">Bug sa microG</string>
|
<string name="microg_bug">Bug sa microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">Maligayang Pagdating</string>
|
<string name="welcome">Maligayang Pagdating</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Nabigo ang paghanap sa kailangan na files para sa installation. I-download ulit ang mga installation files, at ulitin muli.</string>
|
<string name="files_missing_va">Nabigo ang paghanap sa kailangan na files para sa installation. I-download ulit ang mga installation files, at ulitin muli.</string>
|
||||||
<string name="ifile_missing">Nabigo ang paghanap ng apk file para sa itim na tema galing sa storage, ulitin muli.</string>
|
<string name="ifile_missing">Nabigo ang paghanap ng apk file para sa itim na tema galing sa storage, ulitin muli.</string>
|
||||||
<string name="installation_aborted">Nabigo ang pag-install dahil kinansela ito.</string>
|
<string name="installation_aborted">Nabigo ang pag-install dahil kinansela ito.</string>
|
||||||
<string name="installation_blocked">Nabigo ang pag-install dahil binlock ito.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Nabigo ang pag-install dahil meron hidwaan sa naka-install na app. I-uninstall ang kasalukuyang bersyon ng Vanced, at ulitin muli.</string>
|
<string name="installation_conflict">Nabigo ang pag-install dahil meron hidwaan sa naka-install na app. I-uninstall ang kasalukuyang bersyon ng Vanced, at ulitin muli.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Bug dans microG</string>
|
<string name="microg_bug">Bug dans microG</string>
|
||||||
<string name="microg_bug_summary">En raison d\'un bug dans le microG d\'origine, l\'installation de Vanced v16+ nécessite d\'abord l\'installation de la v15.43.32., ouvrez celle-ci, puis connectez-vous et vous pourrez désormais installer la v16 ou plus. Voulez-vous procéder à l\'installation de la v15.43.32 ?</string>
|
<string name="microg_bug_summary">En raison d\'un bug dans le microG d\'origine, l\'installation de Vanced v16+ nécessite d\'abord l\'installation de la v15.43.32., ouvrez celle-ci, puis connectez-vous et vous pourrez désormais installer la v16 ou plus. Voulez-vous procéder à l\'installation de la v15.43.32 ?</string>
|
||||||
<string name="microg_bug_summary_music">En raison d\'un but dans le microG d\'origine, l\'installation de Music 4.11+ nécessite d\'abord l\'installation de la v4.07.51, ouvrez-la, puis connectez-vous et vous pourrez désormais installer la v14.11 et plus. Voulez-vous procéder à l\'installation de la v4.07.51 ?</string>
|
|
||||||
<string name="please_be_patient">Veuillez NE PAS quitter l\'application pendant que celle-ci est en cours de modification !</string>
|
<string name="please_be_patient">Veuillez NE PAS quitter l\'application pendant que celle-ci est en cours de modification !</string>
|
||||||
<string name="welcome">Bienvenue</string>
|
<string name="welcome">Bienvenue</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Impossible de localiser les fichiers nécessaires à l\'installation. Retéléchargez les fichiers d\'installation, puis réessayez.</string>
|
<string name="files_missing_va">Impossible de localiser les fichiers nécessaires à l\'installation. Retéléchargez les fichiers d\'installation, puis réessayez.</string>
|
||||||
<string name="ifile_missing">Impossible de localiser le fichier apk pour le thème noir/foncé, veuillez réessayer.</string>
|
<string name="ifile_missing">Impossible de localiser le fichier apk pour le thème noir/foncé, veuillez réessayer.</string>
|
||||||
<string name="installation_aborted">L\'installation a échoué car l\'utilisateur a abandonné l\'installation.</string>
|
<string name="installation_aborted">L\'installation a échoué car l\'utilisateur a abandonné l\'installation.</string>
|
||||||
<string name="installation_blocked">L\'installation a échoué, car l\'utilisateur a bloqué l\'installation.</string>
|
|
||||||
<string name="installation_downgrade">L\'installation a échoué parce que l\'utilisateur a essayé de downgrader le paquet. Désinstallez les mises à jour de l\'application d\'origine, puis réessayez.</string>
|
<string name="installation_downgrade">L\'installation a échoué parce que l\'utilisateur a essayé de downgrader le paquet. Désinstallez les mises à jour de l\'application d\'origine, puis réessayez.</string>
|
||||||
<string name="installation_conflict">L\'installation a échoué parce que l\'application est en conflit avec une application déjà installée. Désinstallez la version actuelle de Vanced, puis réessayez.</string>
|
<string name="installation_conflict">L\'installation a échoué parce que l\'application est en conflit avec une application déjà installée. Désinstallez la version actuelle de Vanced, puis réessayez.</string>
|
||||||
<string name="installation_failed">L\'installation a échoué pour des raisons inconnues, rejoignez notre Telegram ou Discord pour plus de support. Veuillez également joindre une capture d\'écran dans le menu Avancé</string>
|
<string name="installation_failed">L\'installation a échoué pour des raisons inconnues, rejoignez notre Telegram ou Discord pour plus de support. Veuillez également joindre une capture d\'écran dans le menu Avancé</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">संस्करण</string>
|
<string name="version">संस्करण</string>
|
||||||
<string name="microg_bug">MicroG में bug</string>
|
<string name="microg_bug">MicroG में bug</string>
|
||||||
<string name="microg_bug_summary">MicroG में एक बग के कारण, Vanced v16 + को स्थापित करने के लिए आपको पहले v15.43.32 स्थापित करना होगा, इसे खोलें, फिर लॉगिन करें और उसके बाद ही आप v16 और उच्चतर स्थापित कर सकते हैं। क्या आप v15.43.32 की स्थापना के साथ आगे बढ़ना चाहते हैं?</string>
|
<string name="microg_bug_summary">MicroG में एक बग के कारण, Vanced v16 + को स्थापित करने के लिए आपको पहले v15.43.32 स्थापित करना होगा, इसे खोलें, फिर लॉगिन करें और उसके बाद ही आप v16 और उच्चतर स्थापित कर सकते हैं। क्या आप v15.43.32 की स्थापना के साथ आगे बढ़ना चाहते हैं?</string>
|
||||||
<string name="microg_bug_summary_music">MicroG में एक बग के कारण, Music v4.11 + को स्थापित करने के लिए आपको पहले v4.07.51 स्थापित करने की आवश्यकता है, इसे खोलें, फिर लॉगिन करें और उसके बाद ही आप v4.11 और उच्चतर स्थापित कर सकते हैं। क्या आप v4.07.51 की स्थापना के साथ आगे बढ़ना चाहते हैं?</string>
|
|
||||||
<string name="please_be_patient">कृपया इस प्रक्रिया के दौरान ऐप को बंद ना करें!</string>
|
<string name="please_be_patient">कृपया इस प्रक्रिया के दौरान ऐप को बंद ना करें!</string>
|
||||||
<string name="welcome">स्वागत है!</string>
|
<string name="welcome">स्वागत है!</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">स्थापना के लिए आवश्यक फ़ाइलों का पता लगाने में विफल। स्थापना फ़ाइलों को फिर से डाउनलोड करें, फिर पुनः प्रयास करें।</string>
|
<string name="files_missing_va">स्थापना के लिए आवश्यक फ़ाइलों का पता लगाने में विफल। स्थापना फ़ाइलों को फिर से डाउनलोड करें, फिर पुनः प्रयास करें।</string>
|
||||||
<string name="ifile_missing">भंडारण से काले / अंधेरे विषय के लिए apk फ़ाइल खोजने में विफल, कृपया पुनः प्रयास करें।</string>
|
<string name="ifile_missing">भंडारण से काले / अंधेरे विषय के लिए apk फ़ाइल खोजने में विफल, कृपया पुनः प्रयास करें।</string>
|
||||||
<string name="installation_aborted">स्थापना विफल रही क्योंकि उपयोगकर्ता ने स्थापना रद्द कर दी।</string>
|
<string name="installation_aborted">स्थापना विफल रही क्योंकि उपयोगकर्ता ने स्थापना रद्द कर दी।</string>
|
||||||
<string name="installation_blocked">स्थापना विफल रही क्योंकि उपयोगकर्ता ने स्थापना को ब्लॉक कर दिया।</string>
|
|
||||||
<string name="installation_downgrade">स्थापना विफल रही क्योंकि उपयोगकर्ता ने पैकेज को डाउनग्रेड करने का प्रयास किया। स्टॉक ऐप से अपडेट अनइंस्टॉल करें, फिर प्रयास करें।</string>
|
<string name="installation_downgrade">स्थापना विफल रही क्योंकि उपयोगकर्ता ने पैकेज को डाउनग्रेड करने का प्रयास किया। स्टॉक ऐप से अपडेट अनइंस्टॉल करें, फिर प्रयास करें।</string>
|
||||||
<string name="installation_conflict">इंस्टॉलेशन विफल रहा क्योंकि ऐप पहले से इंस्टॉल किए गए ऐप के साथ टकराव करता है। एप्लिकेशन के वर्तमान संस्करण को अनइंस्टॉल करें, फिर प्रयास करें।</string>
|
<string name="installation_conflict">इंस्टॉलेशन विफल रहा क्योंकि ऐप पहले से इंस्टॉल किए गए ऐप के साथ टकराव करता है। एप्लिकेशन के वर्तमान संस्करण को अनइंस्टॉल करें, फिर प्रयास करें।</string>
|
||||||
<string name="installation_failed">अज्ञात कारणों से इंस्टॉलेशन विफल हो गया, आगे के समर्थन के लिए हमारे टेलीग्राम या डिस्कॉर्ड में शामिल हों। कृपया उन्नत मेनू से स्क्रीनशॉट भी संलग्न करें ।</string>
|
<string name="installation_failed">अज्ञात कारणों से इंस्टॉलेशन विफल हो गया, आगे के समर्थन के लिए हमारे टेलीग्राम या डिस्कॉर्ड में शामिल हों। कृपया उन्नत मेनू से स्क्रीनशॉट भी संलग्न करें ।</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Inačica</string>
|
<string name="version">Inačica</string>
|
||||||
<string name="microg_bug">Greška u microG aplikaciji</string>
|
<string name="microg_bug">Greška u microG aplikaciji</string>
|
||||||
<string name="microg_bug_summary">Zbog greške u microG, instaliranje Vanced 16+ prvo zahtijeva instalaciju v15.43.32, otvorite, a zatim se prijavite i tek onda možete instalirati v16 i novije inačice. Želite li nastaviti s instalacijom v15.43.32?</string>
|
<string name="microg_bug_summary">Zbog greške u microG, instaliranje Vanced 16+ prvo zahtijeva instalaciju v15.43.32, otvorite, a zatim se prijavite i tek onda možete instalirati v16 i novije inačice. Želite li nastaviti s instalacijom v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Zbog greške u microG, za instalaciju Music 4.11+ prvo je potrebno instalirati v4.07.51, otvoriti, a zatim se prijaviti i tek tada možete instalirati v16 i novije inačice. Želite li nastaviti s instalacijom v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">NE zatvarajte aplikaciju tijekom ovog postupka!</string>
|
<string name="please_be_patient">NE zatvarajte aplikaciju tijekom ovog postupka!</string>
|
||||||
<string name="welcome">Dobrodošli</string>
|
<string name="welcome">Dobrodošli</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Neuspjelo lociranje potrebnih datoteka za instalaciju. Ponovno preuzmite datoteke za instalaciju, zatim ponovno pokušajte.</string>
|
<string name="files_missing_va">Neuspjelo lociranje potrebnih datoteka za instalaciju. Ponovno preuzmite datoteke za instalaciju, zatim ponovno pokušajte.</string>
|
||||||
<string name="ifile_missing">Neuspjelo lociranje apk datoteke za crnu/tamnu temu iz pohrane, pokušajte ponovno.</string>
|
<string name="ifile_missing">Neuspjelo lociranje apk datoteke za crnu/tamnu temu iz pohrane, pokušajte ponovno.</string>
|
||||||
<string name="installation_aborted">Instalacija je prekinuta zato jer ju je korisnik prekinuo.</string>
|
<string name="installation_aborted">Instalacija je prekinuta zato jer ju je korisnik prekinuo.</string>
|
||||||
<string name="installation_blocked">Instalacija nije uspjela jer je korisnik blokirao instalaciju.</string>
|
|
||||||
<string name="installation_downgrade">Instalacija nije uspjela jer je korisnik pokušao instalirati stariju inačicu paketa. Deinstalirajte ažuriranja izvorne YouTube aplikacije, zatim pokušajte ponovno.</string>
|
<string name="installation_downgrade">Instalacija nije uspjela jer je korisnik pokušao instalirati stariju inačicu paketa. Deinstalirajte ažuriranja izvorne YouTube aplikacije, zatim pokušajte ponovno.</string>
|
||||||
<string name="installation_conflict">Instalacija nije uspjela jer je aplikacija u sukobu s već instaliranom aplikacijom. Deinstalirajte trenutnu inačicu aplikacije zatim pokušajte ponovno.</string>
|
<string name="installation_conflict">Instalacija nije uspjela jer je aplikacija u sukobu s već instaliranom aplikacijom. Deinstalirajte trenutnu inačicu aplikacije zatim pokušajte ponovno.</string>
|
||||||
<string name="installation_failed">Neuspjela instalacija, nepoznati razlog. Priključite se našem Telegramu ili Diskordu za našu pomoć. Molimo Vas da priključite sliku ekrana iz Proširenog Menua</string>
|
<string name="installation_failed">Neuspjela instalacija, nepoznati razlog. Priključite se našem Telegramu ili Diskordu za našu pomoć. Molimo Vas da priključite sliku ekrana iz Proširenog Menua</string>
|
||||||
|
|
|
@ -83,8 +83,6 @@ Akarod telepíteni?</string>
|
||||||
<string name="microg_bug">Hiba a microG-ben</string>
|
<string name="microg_bug">Hiba a microG-ben</string>
|
||||||
<string name="microg_bug_summary">Egy, a microG-ben jelenlévő hiba miatt, a Vanced 16+ verzióihoz először telepítse a 15.43.32-es verziót, nyissa meg, jelentkezzen be, majd csak ezután tudja telepíteni a 16-os vagy újabb verziót.
|
<string name="microg_bug_summary">Egy, a microG-ben jelenlévő hiba miatt, a Vanced 16+ verzióihoz először telepítse a 15.43.32-es verziót, nyissa meg, jelentkezzen be, majd csak ezután tudja telepíteni a 16-os vagy újabb verziót.
|
||||||
Akarja folytatni a 15.43.32-es verzió telepítésével?</string>
|
Akarja folytatni a 15.43.32-es verzió telepítésével?</string>
|
||||||
<string name="microg_bug_summary_music">Egy, a microG-ben jelenlévő hiba miatt, a Vanced Music 4.11+ verzióihoz először telepítse a 4.07.51-es verziót, nyissa meg, jelentkezzen be, majd csak ezután tudja telepíteni a 4.11-es vagy újabb verziót.
|
|
||||||
Akarja folytatni a 4.07.51-es verzió telepítésével?</string>
|
|
||||||
<string name="please_be_patient">Kérjük NE lépjen ki a telepítési folyamat alatt!</string>
|
<string name="please_be_patient">Kérjük NE lépjen ki a telepítési folyamat alatt!</string>
|
||||||
<string name="welcome">Üdvözöljük</string>
|
<string name="welcome">Üdvözöljük</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -107,7 +105,6 @@ Akarja folytatni a 4.07.51-es verzió telepítésével?</string>
|
||||||
<string name="files_missing_va">A telepítéshez szükséges file-ok megtalálása meghiúsult. Töltse le újra a telepítőfile-okat és próbálja újra.</string>
|
<string name="files_missing_va">A telepítéshez szükséges file-ok megtalálása meghiúsult. Töltse le újra a telepítőfile-okat és próbálja újra.</string>
|
||||||
<string name="ifile_missing">Nem sikerült az apk file-t megtalálni a fekete/sötét kinézethez, kérjük próbálja újra.</string>
|
<string name="ifile_missing">Nem sikerült az apk file-t megtalálni a fekete/sötét kinézethez, kérjük próbálja újra.</string>
|
||||||
<string name="installation_aborted">A művelet végrehajtása nem sikerült, mert a felhasználó megszakította a telepítést.</string>
|
<string name="installation_aborted">A művelet végrehajtása nem sikerült, mert a felhasználó megszakította a telepítést.</string>
|
||||||
<string name="installation_blocked">A telepítés nem sikerült, mert a felhasználó megszakította azt.</string>
|
|
||||||
<string name="installation_downgrade">A telepítés nem sikerült, mert a felhasználó, régebbi verzióra próbált frissíteni. Távolítsa el az eredeti alkalmazás frissítéseit, majd próbálja újra.</string>
|
<string name="installation_downgrade">A telepítés nem sikerült, mert a felhasználó, régebbi verzióra próbált frissíteni. Távolítsa el az eredeti alkalmazás frissítéseit, majd próbálja újra.</string>
|
||||||
<string name="installation_conflict">A telepítés nem sikerült, mert az alkalmazás egy másik, már telepített alkalmazással ütközik. Távolítsd el a jelenlegi verziót és próbáld újra.</string>
|
<string name="installation_conflict">A telepítés nem sikerült, mert az alkalmazás egy másik, már telepített alkalmazással ütközik. Távolítsd el a jelenlegi verziót és próbáld újra.</string>
|
||||||
<string name="installation_failed">A telepítés ismeretlen ok miatt meghiúsult, kérjük csatlakozzon a Telegram vagy a Discord csatornánkhoz további támogatásért. Kérjük egy képernyőképet is mellékeljen ami a Haladó menüben készült</string>
|
<string name="installation_failed">A telepítés ismeretlen ok miatt meghiúsult, kérjük csatlakozzon a Telegram vagy a Discord csatornánkhoz további támogatásért. Kérjük egy képernyőképet is mellékeljen ami a Haladó menüben készült</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versi</string>
|
<string name="version">Versi</string>
|
||||||
<string name="microg_bug">Bug di microG</string>
|
<string name="microg_bug">Bug di microG</string>
|
||||||
<string name="microg_bug_summary">Dikarenakan bug yang ada pada microG original, memasang Vanced v16+ memerlukan anda untuk terlebih dahulu memasang v15.43.32, buka aplikasinya, lalu login dan sekarang anda dapat memasang v16 keatas. Apakah anda ingin melanjutkan untuk pemasangan v15.43.32?</string>
|
<string name="microg_bug_summary">Dikarenakan bug yang ada pada microG original, memasang Vanced v16+ memerlukan anda untuk terlebih dahulu memasang v15.43.32, buka aplikasinya, lalu login dan sekarang anda dapat memasang v16 keatas. Apakah anda ingin melanjutkan untuk pemasangan v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Dikarenakan bug yang ada pada microG original, memasang Music v4.11+ memerlukan anda untuk terlebih dahulu memasang v4.07.51, buka aplikasinya, lalu login dan sekarang anda dapat memasang v4.11 keatas. Apakah anda ingin melanjutkan untuk pemasangan v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Mohon untuk TIDAK keluar dari aplikasi saat proses ini!</string>
|
<string name="please_be_patient">Mohon untuk TIDAK keluar dari aplikasi saat proses ini!</string>
|
||||||
<string name="welcome">Selamat datang</string>
|
<string name="welcome">Selamat datang</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Gagal untuk menemukan file yang diperlukan untuk instalasi. Unduh ulang file instalasi, lalu coba lagi.</string>
|
<string name="files_missing_va">Gagal untuk menemukan file yang diperlukan untuk instalasi. Unduh ulang file instalasi, lalu coba lagi.</string>
|
||||||
<string name="ifile_missing">Gagal untuk menemukan file apk untuk tema hitam/gelap dari penyimpanan, mohon coba lagi.</string>
|
<string name="ifile_missing">Gagal untuk menemukan file apk untuk tema hitam/gelap dari penyimpanan, mohon coba lagi.</string>
|
||||||
<string name="installation_aborted">Pemasangan gagal dikarenakan pengguna membatalkan pemasangan.</string>
|
<string name="installation_aborted">Pemasangan gagal dikarenakan pengguna membatalkan pemasangan.</string>
|
||||||
<string name="installation_blocked">Pemasangan gagal dikarenakan pengguna memblokir pemasangan.</string>
|
|
||||||
<string name="installation_downgrade">Pemasangan gagal dikarenakan pengguna mencoba menurunkan versi paket. Hapus pembaruan dari aplikasi bawaan, lalu coba lagi.</string>
|
<string name="installation_downgrade">Pemasangan gagal dikarenakan pengguna mencoba menurunkan versi paket. Hapus pembaruan dari aplikasi bawaan, lalu coba lagi.</string>
|
||||||
<string name="installation_conflict">Pemasangan gagal dikarenakan aplikasi konflik dengan aplikasi yang sudah terpasang. Copot pemasangan aplikasi versi saat ini, lalu coba lagi.</string>
|
<string name="installation_conflict">Pemasangan gagal dikarenakan aplikasi konflik dengan aplikasi yang sudah terpasang. Copot pemasangan aplikasi versi saat ini, lalu coba lagi.</string>
|
||||||
<string name="installation_failed">Pemasangan gagal untuk alasan yang tidak diketahui, gabung Telegram atau Discord kami untuk bantuan lebih lanjut. Mohon untuk melampirkan screenshot dari menu Tingkat Lanjut</string>
|
<string name="installation_failed">Pemasangan gagal untuk alasan yang tidak diketahui, gabung Telegram atau Discord kami untuk bantuan lebih lanjut. Mohon untuk melampirkan screenshot dari menu Tingkat Lanjut</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versione</string>
|
<string name="version">Versione</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">A causa di un bug nel microG originale, l\'installazione di Vanced v16+ richiede prima l\'installazione della v15.43.32, avviarla, quindi effettuare il login e solo allora è possibile installare la v16 e versioni successive. Vuoi procedere con l\'installazione della v15.43.32?</string>
|
<string name="microg_bug_summary">A causa di un bug nel microG originale, l\'installazione di Vanced v16+ richiede prima l\'installazione della v15.43.32, avviarla, quindi effettuare il login e solo allora è possibile installare la v16 e versioni successive. Vuoi procedere con l\'installazione della v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">A causa di un bug nel microG originale, l\'installazione di Music v4.11+ richiede prima l\'installazione della v4.07.51, avviarla, quindi effettuare il login e solo allora è possibile installare la v4.11 e successive. Vuoi procedere con l\'installazione della v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Si prega di NON uscire dall\'app durante questo processo!</string>
|
<string name="please_be_patient">Si prega di NON uscire dall\'app durante questo processo!</string>
|
||||||
<string name="welcome">Benvenuto</string>
|
<string name="welcome">Benvenuto</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Impossibile individuare i file richiesti per l\'installazione. Scaricali nuovamente e riprova.</string>
|
<string name="files_missing_va">Impossibile individuare i file richiesti per l\'installazione. Scaricali nuovamente e riprova.</string>
|
||||||
<string name="ifile_missing">Impossibile individuare il file apk per il tema nero/scuro dalla memoria, per favore riprova.</string>
|
<string name="ifile_missing">Impossibile individuare il file apk per il tema nero/scuro dalla memoria, per favore riprova.</string>
|
||||||
<string name="installation_aborted">Installazione non riuscita. L\'utente ha annullato l\'installazione.</string>
|
<string name="installation_aborted">Installazione non riuscita. L\'utente ha annullato l\'installazione.</string>
|
||||||
<string name="installation_blocked">Installazione non riuscita. L\'utente ha bloccato l\'installazione.</string>
|
|
||||||
<string name="installation_downgrade">Installazione fallita. È stato effettuato un tentativo di downgrade del pacchetto. Disinstalla gli aggiornamenti dall\'app stock, quindi riprova.</string>
|
<string name="installation_downgrade">Installazione fallita. È stato effettuato un tentativo di downgrade del pacchetto. Disinstalla gli aggiornamenti dall\'app stock, quindi riprova.</string>
|
||||||
<string name="installation_conflict">Installazione fallita perché l\'applicazione è in conflitto con un\'app già installata. Disinstallare la versione corrente dell\'applicazione, quindi riprovare.</string>
|
<string name="installation_conflict">Installazione fallita perché l\'applicazione è in conflitto con un\'app già installata. Disinstallare la versione corrente dell\'applicazione, quindi riprovare.</string>
|
||||||
<string name="installation_failed">Installazione non riuscita per motivi sconosciuti, unisciti al nostro Telegram o Discord per ulteriore supporto. Allega anche uno screenshot dal menu Avanzate</string>
|
<string name="installation_failed">Installazione non riuscita per motivi sconosciuti, unisciti al nostro Telegram o Discord per ulteriore supporto. Allega anche uno screenshot dal menu Avanzate</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">גרסא</string>
|
<string name="version">גרסא</string>
|
||||||
<string name="microg_bug">באג בmicroG</string>
|
<string name="microg_bug">באג בmicroG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">ברוכים הבאים</string>
|
<string name="welcome">ברוכים הבאים</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">איתור הקבצים הנדרשים להתקנה נכשל. הורד מחדש את קבצי ההתקנה ונסה שוב.</string>
|
<string name="files_missing_va">איתור הקבצים הנדרשים להתקנה נכשל. הורד מחדש את קבצי ההתקנה ונסה שוב.</string>
|
||||||
<string name="ifile_missing">נכשל האיתור של קובץ APK לערכת נושא שחורה/כהה מהאחסון, אנא נסה שוב.</string>
|
<string name="ifile_missing">נכשל האיתור של קובץ APK לערכת נושא שחורה/כהה מהאחסון, אנא נסה שוב.</string>
|
||||||
<string name="installation_aborted">ההתקנה נכשלה כיוון שהמשתמש ביטל אותה.</string>
|
<string name="installation_aborted">ההתקנה נכשלה כיוון שהמשתמש ביטל אותה.</string>
|
||||||
<string name="installation_blocked">ההתקנה נכשלה כיוון שהמשתמש חסם אותה.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">ההתקנה נכשלה כיוון שהאפליקציה מתנגשת עם גרסה מותקנת שלה, מחק את הגרסה הנוכחית של Vanced ולאחר מכן נסה שוב.</string>
|
<string name="installation_conflict">ההתקנה נכשלה כיוון שהאפליקציה מתנגשת עם גרסה מותקנת שלה, מחק את הגרסה הנוכחית של Vanced ולאחר מכן נסה שוב.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">バージョン</string>
|
<string name="version">バージョン</string>
|
||||||
<string name="microg_bug">microG のバグ</string>
|
<string name="microg_bug">microG のバグ</string>
|
||||||
<string name="microg_bug_summary">最新版の microG のバグにより、Vanced のバージョン16以上をインストールするには、先にバージョン15.43.32をインストールし、起動して、ログインする必要があります。バージョン15.43.32をインストールしますか?</string>
|
<string name="microg_bug_summary">最新版の microG のバグにより、Vanced のバージョン16以上をインストールするには、先にバージョン15.43.32をインストールし、起動して、ログインする必要があります。バージョン15.43.32をインストールしますか?</string>
|
||||||
<string name="microg_bug_summary_music">最新版の microG のバグにより、Music のバージョン4.11以上をインストールするには、先にバージョン4.07.51をインストールし、起動して、ログインする必要があります。バージョン4.07.51をインストールしますか?</string>
|
|
||||||
<string name="please_be_patient">この処理中はアプリを終了しないでください!</string>
|
<string name="please_be_patient">この処理中はアプリを終了しないでください!</string>
|
||||||
<string name="welcome">ようこそ</string>
|
<string name="welcome">ようこそ</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">インストールに必要なファイルが見つかりませんでした。再ダウンロードし、もう一度お試しください。</string>
|
<string name="files_missing_va">インストールに必要なファイルが見つかりませんでした。再ダウンロードし、もう一度お試しください。</string>
|
||||||
<string name="ifile_missing">ストレージからブラック/ダークテーマの APK ファイルが見つかりませんでした。もう一度お試しください。</string>
|
<string name="ifile_missing">ストレージからブラック/ダークテーマの APK ファイルが見つかりませんでした。もう一度お試しください。</string>
|
||||||
<string name="installation_aborted">ユーザーがインストールを中断したためインストールに失敗しました。</string>
|
<string name="installation_aborted">ユーザーがインストールを中断したためインストールに失敗しました。</string>
|
||||||
<string name="installation_blocked">ユーザーがインストールをブロックしたためインストールに失敗しました。</string>
|
|
||||||
<string name="installation_downgrade">アプリをダウングレードしようとしたため、インストールに失敗しました。インストールされたアプリをアンインストールしてから、再度お試しください。</string>
|
<string name="installation_downgrade">アプリをダウングレードしようとしたため、インストールに失敗しました。インストールされたアプリをアンインストールしてから、再度お試しください。</string>
|
||||||
<string name="installation_conflict">既にインストールされたアプリと競合したため、インストールに失敗しました。インストールされたアプリをアンインストールしてから、もう一度やり直してください。</string>
|
<string name="installation_conflict">既にインストールされたアプリと競合したため、インストールに失敗しました。インストールされたアプリをアンインストールしてから、もう一度やり直してください。</string>
|
||||||
<string name="installation_failed">不明な理由でインストールに失敗しました。さらなるサポートのためには、Telegram か Discord に参加してください。詳細メニューからスクリーンショットを添付してください。</string>
|
<string name="installation_failed">不明な理由でインストールに失敗しました。さらなるサポートのためには、Telegram か Discord に参加してください。詳細メニューからスクリーンショットを添付してください。</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">ვერსია</string>
|
<string name="version">ვერსია</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">მოგესალმებით</string>
|
<string name="welcome">მოგესალმებით</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
||||||
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
||||||
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
||||||
<string name="installation_blocked">Installation failed because the user blocked the installation.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versiyon</string>
|
<string name="version">Versiyon</string>
|
||||||
<string name="microg_bug">Çewtî di MicroG de</string>
|
<string name="microg_bug">Çewtî di MicroG de</string>
|
||||||
<string name="microg_bug_summary">Ji ber çewtiyek di mîkroG ya orîjînal de, sazkirina Vanced v16+ yekem hewce dike ku hûn v15.43.32 saz bikin, vekin, paşê têbikevin û tenê paşê hûn dikarin v16 û bilindtir saz bikin. Hûn dixwazin sazkirina v15.43.32 berdewam bikin?</string>
|
<string name="microg_bug_summary">Ji ber çewtiyek di mîkroG ya orîjînal de, sazkirina Vanced v16+ yekem hewce dike ku hûn v15.43.32 saz bikin, vekin, paşê têbikevin û tenê paşê hûn dikarin v16 û bilindtir saz bikin. Hûn dixwazin sazkirina v15.43.32 berdewam bikin?</string>
|
||||||
<string name="microg_bug_summary_music">Ji ber çewtiyek di microG ya orîjînal de, sazkirina Music v4.11+ yekem hewce dike ku hûn v4.07.51 saz bikin, vekin, paşê têbikevin û tenê paşê hûn dikarin v4.11 û bilindtir saz bikin. Hûn dixwazin sazkirina v4.07.51 berdewam bikin?</string>
|
|
||||||
<string name="please_be_patient">Ji kerema xwe di vê pêvajoyê de ji sepanê dernakeve!</string>
|
<string name="please_be_patient">Ji kerema xwe di vê pêvajoyê de ji sepanê dernakeve!</string>
|
||||||
<string name="welcome">Bi xêr hatî</string>
|
<string name="welcome">Bi xêr hatî</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Sazkirina pelên pêwîst bi ser neket. Pelên sazkirinê ji nû ve dakêşin, piştre dîsa biceribînin.</string>
|
<string name="files_missing_va">Sazkirina pelên pêwîst bi ser neket. Pelên sazkirinê ji nû ve dakêşin, piştre dîsa biceribînin.</string>
|
||||||
<string name="ifile_missing">Nekarî pelê apk ji bo dirba reş/tarî ji hilanînê bicîh bike, ji kerema xwe re dîsa biceribîne.</string>
|
<string name="ifile_missing">Nekarî pelê apk ji bo dirba reş/tarî ji hilanînê bicîh bike, ji kerema xwe re dîsa biceribîne.</string>
|
||||||
<string name="installation_aborted">Sazkirin bi ser neket ji ber ku bikarhêner sazkirin bete betalkirin.</string>
|
<string name="installation_aborted">Sazkirin bi ser neket ji ber ku bikarhêner sazkirin bete betalkirin.</string>
|
||||||
<string name="installation_blocked">Sazkirin bi ser neket ji ber ku bikarhêner sazkirin asteng kir.</string>
|
|
||||||
<string name="installation_downgrade">Sazkirin bi ser neket ji ber ku bikarhêner hewl da pakêtê kêm bike. Nûvekirinên ji parsûyê rabike, paşê dîsa biceribîne.</string>
|
<string name="installation_downgrade">Sazkirin bi ser neket ji ber ku bikarhêner hewl da pakêtê kêm bike. Nûvekirinên ji parsûyê rabike, paşê dîsa biceribîne.</string>
|
||||||
<string name="installation_conflict">Sazkirin bi ser neket ji ber ku pêvek bi pêvek berê sazkirî re naqede. Vê versiyona heyî ya vê appê saz bike, paşê dîsa biceribîne.</string>
|
<string name="installation_conflict">Sazkirin bi ser neket ji ber ku pêvek bi pêvek berê sazkirî re naqede. Vê versiyona heyî ya vê appê saz bike, paşê dîsa biceribîne.</string>
|
||||||
<string name="installation_failed">Sazkirin ji ber sedemên nediyar têk çû, ji bo piştgiriya zêdetir tevlî Telegram an Jî Discordê me bibin. Ji kerema xwe dîmenek ekranê jî ji menuya Pêşkeftî ve girêdayî bikin</string>
|
<string name="installation_failed">Sazkirin ji ber sedemên nediyar têk çû, ji bo piştgiriya zêdetir tevlî Telegram an Jî Discordê me bibin. Ji kerema xwe dîmenek ekranê jî ji menuya Pêşkeftî ve girêdayî bikin</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">버전</string>
|
<string name="version">버전</string>
|
||||||
<string name="microg_bug">microG의 버그</string>
|
<string name="microg_bug">microG의 버그</string>
|
||||||
<string name="microg_bug_summary">기존 microG의 버그로 인해 v15.43.32를 먼저 설치하고 연 다음 로그인해야 Vanced v16 이상을 설치할 수 있습니다. v15.43.32 설치를 진행하시겠습니까?</string>
|
<string name="microg_bug_summary">기존 microG의 버그로 인해 v15.43.32를 먼저 설치하고 연 다음 로그인해야 Vanced v16 이상을 설치할 수 있습니다. v15.43.32 설치를 진행하시겠습니까?</string>
|
||||||
<string name="microg_bug_summary_music">기존 microG의 버그로 인해 v4.07.51를 먼저 설치하고 연 다음 로그인해야 Music v4.11 이상을 설치할 수 있습니다. v4.07.51 설치를 진행하시겠습니까?</string>
|
|
||||||
<string name="please_be_patient">이 작업을 하는 동안 이 앱에서 나가지 마세요!</string>
|
<string name="please_be_patient">이 작업을 하는 동안 이 앱에서 나가지 마세요!</string>
|
||||||
<string name="welcome">환영합니다</string>
|
<string name="welcome">환영합니다</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">설치에 필요한 파일을 찾지 못했습니다. 설치 파일을 다시 다운로드한 다음 재시도하십시오.</string>
|
<string name="files_missing_va">설치에 필요한 파일을 찾지 못했습니다. 설치 파일을 다시 다운로드한 다음 재시도하십시오.</string>
|
||||||
<string name="ifile_missing">저장소에서 블랙/다크 테마에 대한 apk 파일을 찾지 못했습니다. 다시 시도하십시오.</string>
|
<string name="ifile_missing">저장소에서 블랙/다크 테마에 대한 apk 파일을 찾지 못했습니다. 다시 시도하십시오.</string>
|
||||||
<string name="installation_aborted">사용자가 설치를 중단했기 때문에 앱을 설치하지 못했습니다.</string>
|
<string name="installation_aborted">사용자가 설치를 중단했기 때문에 앱을 설치하지 못했습니다.</string>
|
||||||
<string name="installation_blocked">사용자가 설치를 차단했기 때문에 앱을 설치하지 못했습니다.</string>
|
|
||||||
<string name="installation_downgrade">사용자가 패키지를 이전 버전으로 변경하려고 하여 앱을 설치하지 못했습니다. 기본 앱의 업데이트를 제거한 후, 설치를 다시 시도해주세요.</string>
|
<string name="installation_downgrade">사용자가 패키지를 이전 버전으로 변경하려고 하여 앱을 설치하지 못했습니다. 기본 앱의 업데이트를 제거한 후, 설치를 다시 시도해주세요.</string>
|
||||||
<string name="installation_conflict">앱이 이미 설치된 앱과 충돌하여 설치하지 못했습니다. 현재 버전의 앱을 제거한 다음 다시 시도하십시오.</string>
|
<string name="installation_conflict">앱이 이미 설치된 앱과 충돌하여 설치하지 못했습니다. 현재 버전의 앱을 제거한 다음 다시 시도하십시오.</string>
|
||||||
<string name="installation_failed">알 수 없는 이유로 인해 설치가 실패했습니다. 저희 텔레그램 또는 디스코드에 알려주시면 도와드리겠습니다. \'고급\' 메뉴의 스크린샷도 첨부하여 주십시오.</string>
|
<string name="installation_failed">알 수 없는 이유로 인해 설치가 실패했습니다. 저희 텔레그램 또는 디스코드에 알려주시면 도와드리겠습니다. \'고급\' 메뉴의 스크린샷도 첨부하여 주십시오.</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Guherto</string>
|
<string name="version">Guherto</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">Bi xêr hatî</string>
|
<string name="welcome">Bi xêr hatî</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Dozîna dosiyên pêwîst ji bo sazkirinê bi ser neket. Dosiyên sazkirinê dîsa daxîne, paşê dubare biceribîne.</string>
|
<string name="files_missing_va">Dozîna dosiyên pêwîst ji bo sazkirinê bi ser neket. Dosiyên sazkirinê dîsa daxîne, paşê dubare biceribîne.</string>
|
||||||
<string name="ifile_missing">Dozîna dosiya apk ji bo rûkara reş/tarî ji bîrgehê bi ser neket, jkx dîsa biceribîne.</string>
|
<string name="ifile_missing">Dozîna dosiya apk ji bo rûkara reş/tarî ji bîrgehê bi ser neket, jkx dîsa biceribîne.</string>
|
||||||
<string name="installation_aborted">Sazkirin bi ser neket ji ber ku bikarîner dawî li pêvajoya sazkirinê anî.</string>
|
<string name="installation_aborted">Sazkirin bi ser neket ji ber ku bikarîner dawî li pêvajoya sazkirinê anî.</string>
|
||||||
<string name="installation_blocked">Sazkirin bi ser neket ji ber ku bikarînerê sazkirin asteng kir.</string>
|
|
||||||
<string name="installation_downgrade">Sazkirin bi ser neket ji ber ku bikarîner hewl dida derecebendiya pakêtê kêm bike. Hildeman ji bernameya YouTube\'ê ya heyî rakin, paşê dîsa biceribînin.</string>
|
<string name="installation_downgrade">Sazkirin bi ser neket ji ber ku bikarîner hewl dida derecebendiya pakêtê kêm bike. Hildeman ji bernameya YouTube\'ê ya heyî rakin, paşê dîsa biceribînin.</string>
|
||||||
<string name="installation_conflict">Sazkirin bi ser neket ji ber ku ev bernameya ligel bernameyeke din ya sazkirî li hev nake. Guhertoya heyî ya Vanced\'ê rakin, paşê dîsa biceribînin.</string>
|
<string name="installation_conflict">Sazkirin bi ser neket ji ber ku ev bernameya ligel bernameyeke din ya sazkirî li hev nake. Guhertoya heyî ya Vanced\'ê rakin, paşê dîsa biceribînin.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">പതിപ്പ്</string>
|
<string name="version">പതിപ്പ്</string>
|
||||||
<string name="microg_bug">മൈക്രോജിയിൽ ബഗ്</string>
|
<string name="microg_bug">മൈക്രോജിയിൽ ബഗ്</string>
|
||||||
<string name="microg_bug_summary">യഥാർത്ഥ മൈക്രോജിയിലെ ഒരു ബഗ് കാരണം, ആദ്യം വാൻസ്ഡ് വി 16 + ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് നിങ്ങൾ വി 15.43.32 ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്, അത് തുറക്കുക, തുടർന്ന് ലോഗിൻ ചെയ്യുക, അതിനുശേഷം മാത്രമേ നിങ്ങൾക്ക് വി 16 ഉം അതിലും ഉയർന്നതും ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയൂ. V15.43.32 ഇൻസ്റ്റാളേഷൻ തുടരാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?</string>
|
<string name="microg_bug_summary">യഥാർത്ഥ മൈക്രോജിയിലെ ഒരു ബഗ് കാരണം, ആദ്യം വാൻസ്ഡ് വി 16 + ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് നിങ്ങൾ വി 15.43.32 ഇൻസ്റ്റാൾ ചെയ്യേണ്ടതുണ്ട്, അത് തുറക്കുക, തുടർന്ന് ലോഗിൻ ചെയ്യുക, അതിനുശേഷം മാത്രമേ നിങ്ങൾക്ക് വി 16 ഉം അതിലും ഉയർന്നതും ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയൂ. V15.43.32 ഇൻസ്റ്റാളേഷൻ തുടരാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?</string>
|
||||||
<string name="microg_bug_summary_music">യഥാർത്ഥ മൈക്രോജിയിലെ ഒരു ബഗ് കാരണം, ആദ്യം മ്യൂസിക് v4.11 + ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന് നിങ്ങൾ ആദ്യം v4.07.51 ഇൻസ്റ്റാൾ ചെയ്യണം, അത് തുറക്കുക, തുടർന്ന് ലോഗിൻ ചെയ്യുക, അപ്പോൾ മാത്രമേ നിങ്ങൾക്ക് v4.11 ഉം അതിലും ഉയർന്നതും ഇൻസ്റ്റാൾ ചെയ്യാൻ കഴിയൂ. V4.07.51 ഇൻസ്റ്റാളേഷൻ തുടരാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുണ്ടോ?</string>
|
|
||||||
<string name="please_be_patient">പ്രോസസ്സ് സമയത്ത് അപ്ലിക്കേഷനിൽ നിന്ന് പുറത്തുകടക്കരുത്!</string>
|
<string name="please_be_patient">പ്രോസസ്സ് സമയത്ത് അപ്ലിക്കേഷനിൽ നിന്ന് പുറത്തുകടക്കരുത്!</string>
|
||||||
<string name="welcome">സ്വാഗതം</string>
|
<string name="welcome">സ്വാഗതം</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">ഇൻസ്റ്റാളേഷന് ആവശ്യമായ ഫയലുകൾ കണ്ടെത്തുന്നതിൽ പരാജയപ്പെട്ടു. ഇൻസ്റ്റാളേഷൻ ഫയലുകൾ വീണ്ടും ഡ download ൺലോഡ് ചെയ്യുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.</string>
|
<string name="files_missing_va">ഇൻസ്റ്റാളേഷന് ആവശ്യമായ ഫയലുകൾ കണ്ടെത്തുന്നതിൽ പരാജയപ്പെട്ടു. ഇൻസ്റ്റാളേഷൻ ഫയലുകൾ വീണ്ടും ഡ download ൺലോഡ് ചെയ്യുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.</string>
|
||||||
<string name="ifile_missing">സംഭരണത്തിൽ നിന്ന് കറുപ്പ് / ഇരുണ്ട തീമിനായി Apk ഫയൽ കണ്ടെത്തുന്നതിൽ പരാജയപ്പെട്ടു, ദയവായി വീണ്ടും ശ്രമിക്കുക.</string>
|
<string name="ifile_missing">സംഭരണത്തിൽ നിന്ന് കറുപ്പ് / ഇരുണ്ട തീമിനായി Apk ഫയൽ കണ്ടെത്തുന്നതിൽ പരാജയപ്പെട്ടു, ദയവായി വീണ്ടും ശ്രമിക്കുക.</string>
|
||||||
<string name="installation_aborted">ഉപയോക്താവ് ഇൻസ്റ്റാളേഷൻ നിർത്തലാക്കിയതിനാൽ ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു.</string>
|
<string name="installation_aborted">ഉപയോക്താവ് ഇൻസ്റ്റാളേഷൻ നിർത്തലാക്കിയതിനാൽ ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു.</string>
|
||||||
<string name="installation_blocked">ഉപയോക്താവ് ഇൻസ്റ്റാളേഷൻ തടഞ്ഞതിനാൽ ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു.</string>
|
|
||||||
<string name="installation_downgrade">ഉപയോക്താവ് പാക്കേജ് തരംതാഴ്ത്താൻ ശ്രമിച്ചതിനാൽ ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു. സ്റ്റോക്ക് അപ്ലിക്കേഷനിൽ നിന്ന് അപ്ഡേറ്റുകൾ അൺഇൻസ്റ്റാൾ ചെയ്യുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.</string>
|
<string name="installation_downgrade">ഉപയോക്താവ് പാക്കേജ് തരംതാഴ്ത്താൻ ശ്രമിച്ചതിനാൽ ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു. സ്റ്റോക്ക് അപ്ലിക്കേഷനിൽ നിന്ന് അപ്ഡേറ്റുകൾ അൺഇൻസ്റ്റാൾ ചെയ്യുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.</string>
|
||||||
<string name="installation_conflict">ഇതിനകം ഇൻസ്റ്റാളുചെയ്ത അപ്ലിക്കേഷനുമായി അപ്ലിക്കേഷൻ പൊരുത്തപ്പെടുന്നതിനാൽ ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു. അപ്ലിക്കേഷന്റെ നിലവിലെ പതിപ്പ് അൺഇൻസ്റ്റാൾ ചെയ്യുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.</string>
|
<string name="installation_conflict">ഇതിനകം ഇൻസ്റ്റാളുചെയ്ത അപ്ലിക്കേഷനുമായി അപ്ലിക്കേഷൻ പൊരുത്തപ്പെടുന്നതിനാൽ ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു. അപ്ലിക്കേഷന്റെ നിലവിലെ പതിപ്പ് അൺഇൻസ്റ്റാൾ ചെയ്യുക, തുടർന്ന് വീണ്ടും ശ്രമിക്കുക.</string>
|
||||||
<string name="installation_failed">അജ്ഞാതമായ കാരണങ്ങളാൽ ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു, കൂടുതൽ പിന്തുണയ്ക്കായി ഞങ്ങളുടെ ടെലിഗ്രാം അല്ലെങ്കിൽ ഡിസ്കോർഡിൽ ചേരുക. വിപുലമായ മെനുവിൽ നിന്ന് ഒരു സ്ക്രീൻഷോട്ട് അറ്റാച്ചുചെയ്യുക</string>
|
<string name="installation_failed">അജ്ഞാതമായ കാരണങ്ങളാൽ ഇൻസ്റ്റാളേഷൻ പരാജയപ്പെട്ടു, കൂടുതൽ പിന്തുണയ്ക്കായി ഞങ്ങളുടെ ടെലിഗ്രാം അല്ലെങ്കിൽ ഡിസ്കോർഡിൽ ചേരുക. വിപുലമായ മെനുവിൽ നിന്ന് ഒരു സ്ക്രീൻഷോട്ട് അറ്റാച്ചുചെയ്യുക</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Welcome</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
||||||
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
||||||
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
||||||
<string name="installation_blocked">Installation failed because the user blocked the installation.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versie</string>
|
<string name="version">Versie</string>
|
||||||
<string name="microg_bug">Probleem met microG</string>
|
<string name="microg_bug">Probleem met microG</string>
|
||||||
<string name="microg_bug_summary">Als gevolg van een fout in microG, vereist de installatie van Vanced 16+ dat je v15.43.32 eerst installeert, die opent en je aanmeldt en pas daarna kan je versie v16 en hoger installeren. Wil je doorgaan met de installatie van v15.43.32?</string>
|
<string name="microg_bug_summary">Als gevolg van een fout in microG, vereist de installatie van Vanced 16+ dat je v15.43.32 eerst installeert, die opent en je aanmeldt en pas daarna kan je versie v16 en hoger installeren. Wil je doorgaan met de installatie van v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Als gevolg van een fout in microG, vereist de installatie van Music v4.11+ dat je v4.07.51 eerst installeert, die opent en je aanmeldt en pas daarna kan je versie v4.11 en hoger installeren. Wil je doorgaan met de installatie van v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Gelieve de app NIET af te sluiten tijdens dit proces!</string>
|
<string name="please_be_patient">Gelieve de app NIET af te sluiten tijdens dit proces!</string>
|
||||||
<string name="welcome">Welkom</string>
|
<string name="welcome">Welkom</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Kan de vereiste bestanden voor de installatie niet vinden. Download de installatiebestanden opnieuw en probeer het opnieuw.</string>
|
<string name="files_missing_va">Kan de vereiste bestanden voor de installatie niet vinden. Download de installatiebestanden opnieuw en probeer het opnieuw.</string>
|
||||||
<string name="ifile_missing">Kan het apk-bestand voor zwart/donker thema niet vinden in opslag. Probeer het opnieuw.</string>
|
<string name="ifile_missing">Kan het apk-bestand voor zwart/donker thema niet vinden in opslag. Probeer het opnieuw.</string>
|
||||||
<string name="installation_aborted">Installatie mislukt omdat de gebruiker de installatie heeft afgebroken.</string>
|
<string name="installation_aborted">Installatie mislukt omdat de gebruiker de installatie heeft afgebroken.</string>
|
||||||
<string name="installation_blocked">Installatie mislukt omdat de gebruiker de installatie heeft geblokkeerd.</string>
|
|
||||||
<string name="installation_downgrade">Installatie mislukt omdat de gebruiker het pakket probeerde te downgraden. Verwijder updates van de standaard app en probeer het daarna opnieuw.</string>
|
<string name="installation_downgrade">Installatie mislukt omdat de gebruiker het pakket probeerde te downgraden. Verwijder updates van de standaard app en probeer het daarna opnieuw.</string>
|
||||||
<string name="installation_conflict">Installatie mislukt omdat de app conflicten heeft met een reeds geïnstalleerde app. Verwijder de huidige versie van die app en probeer het opnieuw.</string>
|
<string name="installation_conflict">Installatie mislukt omdat de app conflicten heeft met een reeds geïnstalleerde app. Verwijder de huidige versie van die app en probeer het opnieuw.</string>
|
||||||
<string name="installation_failed">Installatie is mislukt om onbekende redenen, ga naar Telegram of Discord voor verdere ondersteuning. Voeg een screenshot toe via het menu Geavanceerd.</string>
|
<string name="installation_failed">Installatie is mislukt om onbekende redenen, ga naar Telegram of Discord voor verdere ondersteuning. Voeg een screenshot toe via het menu Geavanceerd.</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versjon</string>
|
<string name="version">Versjon</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">Velkommen</string>
|
<string name="welcome">Velkommen</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Kunne ikke finne de nødvendige filene for installasjon. Last ned installasjonsfilene på nytt, og prøv på nytt.</string>
|
<string name="files_missing_va">Kunne ikke finne de nødvendige filene for installasjon. Last ned installasjonsfilene på nytt, og prøv på nytt.</string>
|
||||||
<string name="ifile_missing">Klarte ikke å finne apk-filen for svart/mørkt tema på enheten, vennligst prøv igjen.</string>
|
<string name="ifile_missing">Klarte ikke å finne apk-filen for svart/mørkt tema på enheten, vennligst prøv igjen.</string>
|
||||||
<string name="installation_aborted">Installasjonen mislyktes fordi brukeren avbrutt installasjonen.</string>
|
<string name="installation_aborted">Installasjonen mislyktes fordi brukeren avbrutt installasjonen.</string>
|
||||||
<string name="installation_blocked">Installasjonen mislyktes på grunn av at brukeren blokkerte installasjonen.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">ਵਰਜਨ</string>
|
<string name="version">ਵਰਜਨ</string>
|
||||||
<string name="microg_bug">ਮਾਈਕਰੋਜੀ ਵਿੱਚ ਬੱਗ</string>
|
<string name="microg_bug">ਮਾਈਕਰੋਜੀ ਵਿੱਚ ਬੱਗ</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">ਜੀ ਆਇਆਂ ਨੂੰ</string>
|
<string name="welcome">ਜੀ ਆਇਆਂ ਨੂੰ</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">ਇੰਸਟਾਲੇਸ਼ਨ ਲਈ ਲੋੜੀਂਦੀਆਂ ਫਾਈਲਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਵਿੱਚ ਅਸਫਲ. ਇੰਸਟਾਲੇਸ਼ਨ ਫਾਈਲਾਂ ਨੂੰ ਮੁੜ ਡਾਉਨਲੋਡ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ.</string>
|
<string name="files_missing_va">ਇੰਸਟਾਲੇਸ਼ਨ ਲਈ ਲੋੜੀਂਦੀਆਂ ਫਾਈਲਾਂ ਦਾ ਪਤਾ ਲਗਾਉਣ ਵਿੱਚ ਅਸਫਲ. ਇੰਸਟਾਲੇਸ਼ਨ ਫਾਈਲਾਂ ਨੂੰ ਮੁੜ ਡਾਉਨਲੋਡ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ.</string>
|
||||||
<string name="ifile_missing">ਸਟੋਰੇਜ ਤੋਂ ਕਾਲੇ / ਹਨੇਰੇ ਥੀਮ ਲਈ ਏਪੀਕੇ ਫਾਈਲ ਲੱਭਣ ਵਿੱਚ ਅਸਫਲ, ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ.</string>
|
<string name="ifile_missing">ਸਟੋਰੇਜ ਤੋਂ ਕਾਲੇ / ਹਨੇਰੇ ਥੀਮ ਲਈ ਏਪੀਕੇ ਫਾਈਲ ਲੱਭਣ ਵਿੱਚ ਅਸਫਲ, ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ.</string>
|
||||||
<string name="installation_aborted">ਇੰਸਟਾਲ ਨਾਕਾਮ ਰਹੀ ਕਿਓਂਕਿ ਉਪਯੋਗਕਰਤਾ ਨੇ ਇੰਸਟਾਲੇਸ਼ਨ ਰੱਦ ਕਰ ਦਿੱਤੀ.</string>
|
<string name="installation_aborted">ਇੰਸਟਾਲ ਨਾਕਾਮ ਰਹੀ ਕਿਓਂਕਿ ਉਪਯੋਗਕਰਤਾ ਨੇ ਇੰਸਟਾਲੇਸ਼ਨ ਰੱਦ ਕਰ ਦਿੱਤੀ.</string>
|
||||||
<string name="installation_blocked">ਇੰਸਟਾਲੇਸ਼ਨ ਨਾਕਾਮ ਰਹੀ ਕਿਓਂਕਿ ਉਪਯੋਗਕਰਤਾ ਨੇ ਇੰਸਟਾਲੇਸ਼ਨ ਬਲਾਕ ਕਰ ਦਿੱਤੀ.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">ਸਥਾਪਨਾ ਅਸਫਲ ਕਿਉਂਕਿ ਐਪ ਪਹਿਲਾਂ ਤੋਂ ਸਥਾਪਤ ਐਪ ਨਾਲ ਟਕਰਾਉਂਦੀ ਹੈ. ਐਪ ਦੇ ਮੌਜੂਦਾ ਸੰਸਕਰਣ ਨੂੰ ਅਣਇੰਸਟੌਲ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ.</string>
|
<string name="installation_conflict">ਸਥਾਪਨਾ ਅਸਫਲ ਕਿਉਂਕਿ ਐਪ ਪਹਿਲਾਂ ਤੋਂ ਸਥਾਪਤ ਐਪ ਨਾਲ ਟਕਰਾਉਂਦੀ ਹੈ. ਐਪ ਦੇ ਮੌਜੂਦਾ ਸੰਸਕਰਣ ਨੂੰ ਅਣਇੰਸਟੌਲ ਕਰੋ, ਫਿਰ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Welcome</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
||||||
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
||||||
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
||||||
<string name="installation_blocked">Installation failed because the user blocked the installation.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Wersja</string>
|
<string name="version">Wersja</string>
|
||||||
<string name="microg_bug">Błąd w microG</string>
|
<string name="microg_bug">Błąd w microG</string>
|
||||||
<string name="microg_bug_summary">Ze względu na błąd w microG, instalacja Vanced 16+ wymaga najpierw instalacji v15.43.32, otwórz go, a następnie zaloguj się i tylko wtedy możesz zainstalować v16 i nowsze. Czy chcesz kontynuować instalację v15.43.32?</string>
|
<string name="microg_bug_summary">Ze względu na błąd w microG, instalacja Vanced 16+ wymaga najpierw instalacji v15.43.32, otwórz go, a następnie zaloguj się i tylko wtedy możesz zainstalować v16 i nowsze. Czy chcesz kontynuować instalację v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Ze względu na błąd w microG głównej, instalacja Muzyka v4.11+ wymaga najpierw instalacji v4.07.51, otwórz go, a następnie zaloguj się i tylko wtedy możesz zainstalować v4.11 i nowsze. Czy chcesz kontynuować instalację v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">NIE wychodź z aplikacji podczas trwania tego procesu!</string>
|
<string name="please_be_patient">NIE wychodź z aplikacji podczas trwania tego procesu!</string>
|
||||||
<string name="welcome">Witaj</string>
|
<string name="welcome">Witaj</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Nie udało się zlokalizować wymaganych plików do instalacji. Pobierz ponownie pliki instalacyjne, a następnie spróbuj ponownie.</string>
|
<string name="files_missing_va">Nie udało się zlokalizować wymaganych plików do instalacji. Pobierz ponownie pliki instalacyjne, a następnie spróbuj ponownie.</string>
|
||||||
<string name="ifile_missing">Nie udało się zlokalizować pliku apk dla czarnego/ciemnego motywu, spróbuj ponownie.</string>
|
<string name="ifile_missing">Nie udało się zlokalizować pliku apk dla czarnego/ciemnego motywu, spróbuj ponownie.</string>
|
||||||
<string name="installation_aborted">Instalacja nie powiodła się, ponieważ użytkownik przerwał instalację.</string>
|
<string name="installation_aborted">Instalacja nie powiodła się, ponieważ użytkownik przerwał instalację.</string>
|
||||||
<string name="installation_blocked">Instalacja nie powiodła się, ponieważ użytkownik zablokował instalację.</string>
|
|
||||||
<string name="installation_downgrade">Instalacja nie powiodła się, ponieważ użytkownik próbował obniżyć paczkę. Odinstaluj aktualizacje z domyślnej aplikacji YouTube, a następnie spróbuj ponownie.</string>
|
<string name="installation_downgrade">Instalacja nie powiodła się, ponieważ użytkownik próbował obniżyć paczkę. Odinstaluj aktualizacje z domyślnej aplikacji YouTube, a następnie spróbuj ponownie.</string>
|
||||||
<string name="installation_conflict">Instalacja nie powiodła się ponieważ aplikacja konfliktuje z już zainstalowaną aplikacją. Odinstaluj aktualną wersję aplikacji a następnie spróbuj ponownie.</string>
|
<string name="installation_conflict">Instalacja nie powiodła się ponieważ aplikacja konfliktuje z już zainstalowaną aplikacją. Odinstaluj aktualną wersję aplikacji a następnie spróbuj ponownie.</string>
|
||||||
<string name="installation_failed">Instalacja nie powiodła się z nieznanych powodów, dołącz do naszego Telegrama lub Discorda, aby uzyskać dalsze wsparcie. Proszę również dołączyć zrzut ekranu z zaawansowanego menu</string>
|
<string name="installation_failed">Instalacja nie powiodła się z nieznanych powodów, dołącz do naszego Telegrama lub Discorda, aby uzyskać dalsze wsparcie. Proszę również dołączyć zrzut ekranu z zaawansowanego menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Welcome</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
||||||
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
||||||
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
||||||
<string name="installation_blocked">Installation failed because the user blocked the installation.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versão</string>
|
<string name="version">Versão</string>
|
||||||
<string name="microg_bug">Bug no microG</string>
|
<string name="microg_bug">Bug no microG</string>
|
||||||
<string name="microg_bug_summary">Devido a um bug no microG original, instalar a versão 16+ requer que você instale a versão 15.43.32, abra ela, faça login e só então você pode instalar a versão 16 em diante. Você deseja proceder com a instalação da versão 15.43.32?</string>
|
<string name="microg_bug_summary">Devido a um bug no microG original, instalar a versão 16+ requer que você instale a versão 15.43.32, abra ela, faça login e só então você pode instalar a versão 16 em diante. Você deseja proceder com a instalação da versão 15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Devido a um erro no microG original, instalar a versão 4.11+ do Music primeiro requer que você instale a versão 4.07.51, abra ela, faça login e só então você pode instalar a versão 4.11 e adiante. Você deseja proceder com a instalação da versão 4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Por favor NÃO saia do aplicativo durante este processo!</string>
|
<string name="please_be_patient">Por favor NÃO saia do aplicativo durante este processo!</string>
|
||||||
<string name="welcome">Bem-vindo</string>
|
<string name="welcome">Bem-vindo</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Falha ao localizar os arquivos necessários para instalação. Baixe novamente os arquivos de instalação e tente novamente.</string>
|
<string name="files_missing_va">Falha ao localizar os arquivos necessários para instalação. Baixe novamente os arquivos de instalação e tente novamente.</string>
|
||||||
<string name="ifile_missing">Falha ao localizar o arquivo apk para o tema preto/escuro a partir do armazenamento, por favor tente novamente.</string>
|
<string name="ifile_missing">Falha ao localizar o arquivo apk para o tema preto/escuro a partir do armazenamento, por favor tente novamente.</string>
|
||||||
<string name="installation_aborted">A instalação falhou porque o usuário abortou a instalação.</string>
|
<string name="installation_aborted">A instalação falhou porque o usuário abortou a instalação.</string>
|
||||||
<string name="installation_blocked">A instalação falhou porque o usuário bloqueou a instalação.</string>
|
|
||||||
<string name="installation_downgrade">A instalação falhou porque o usuário tentou fazer o downgrade do pacote. Desinstale as atualizações do aplicativo padrão e tente novamente.</string>
|
<string name="installation_downgrade">A instalação falhou porque o usuário tentou fazer o downgrade do pacote. Desinstale as atualizações do aplicativo padrão e tente novamente.</string>
|
||||||
<string name="installation_conflict">A instalação falhou porque o app está em conflito com um app já instalado. Desinstale a versão atual do aplicativo e tente novamente.</string>
|
<string name="installation_conflict">A instalação falhou porque o app está em conflito com um app já instalado. Desinstale a versão atual do aplicativo e tente novamente.</string>
|
||||||
<string name="installation_failed">A instalação falhou por razões desconhecidas, junte-se ao nosso Telegram ou Discord para obter mais suporte. Por favor, anexe também uma captura de tela do menu Avançado</string>
|
<string name="installation_failed">A instalação falhou por razões desconhecidas, junte-se ao nosso Telegram ou Discord para obter mais suporte. Por favor, anexe também uma captura de tela do menu Avançado</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versão</string>
|
<string name="version">Versão</string>
|
||||||
<string name="microg_bug">Bug no microG</string>
|
<string name="microg_bug">Bug no microG</string>
|
||||||
<string name="microg_bug_summary">Devido a um bug no microG original, instalar o Vanced v16+ primeiro requer que você instale o v15.43. 2, abra-o, em seguida, faça o login e só depois poderá instalar a v16 ou superior. Você deseja prosseguir com a instalação da v15.43.32?</string>
|
<string name="microg_bug_summary">Devido a um bug no microG original, instalar o Vanced v16+ primeiro requer que você instale o v15.43. 2, abra-o, em seguida, faça o login e só depois poderá instalar a v16 ou superior. Você deseja prosseguir com a instalação da v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Devido a um erro no microG original, instalar o Music v4.11+ primeiro requer que você instale o v4.07. 1, abra-o, depois faça o login e só depois você pode instalar o v4.11 e superior. Você deseja prosseguir com a instalação da v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Por favor NÃO saia do aplicativo durante este processo!</string>
|
<string name="please_be_patient">Por favor NÃO saia do aplicativo durante este processo!</string>
|
||||||
<string name="welcome">Bem-Vindo</string>
|
<string name="welcome">Bem-Vindo</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Falha ao localizar os arquivos necessários para instalação. Faça o download dos arquivos de instalação e tente novamente.</string>
|
<string name="files_missing_va">Falha ao localizar os arquivos necessários para instalação. Faça o download dos arquivos de instalação e tente novamente.</string>
|
||||||
<string name="ifile_missing">Falha ao localizar o apk para o tema preto/escuro no armazenamento, por favor, tente novamente.</string>
|
<string name="ifile_missing">Falha ao localizar o apk para o tema preto/escuro no armazenamento, por favor, tente novamente.</string>
|
||||||
<string name="installation_aborted">A instalação falhou porque o usuário abortou a instalação.</string>
|
<string name="installation_aborted">A instalação falhou porque o usuário abortou a instalação.</string>
|
||||||
<string name="installation_blocked">A instalação falhou porque o usuário bloqueou a instalação.</string>
|
|
||||||
<string name="installation_downgrade">A instalação falhou porque o usuário tentou fazer o downgrade do pacote. Desinstale as atualizações do app do YouTube e, em seguida, tente novamente.</string>
|
<string name="installation_downgrade">A instalação falhou porque o usuário tentou fazer o downgrade do pacote. Desinstale as atualizações do app do YouTube e, em seguida, tente novamente.</string>
|
||||||
<string name="installation_conflict">A instalação falhou porque o app entra em conflito com um app já instalado. Desinstale a versão atual do app e tente novamente.</string>
|
<string name="installation_conflict">A instalação falhou porque o app entra em conflito com um app já instalado. Desinstale a versão atual do app e tente novamente.</string>
|
||||||
<string name="installation_failed">A instalação falhou por razões desconhecidas, junte-se ao nosso Telegram ou Discord para mais suporte. Por favor, anexe também uma captura de tela do menu Avançado</string>
|
<string name="installation_failed">A instalação falhou por razões desconhecidas, junte-se ao nosso Telegram ou Discord para mais suporte. Por favor, anexe também uma captura de tela do menu Avançado</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Versiune</string>
|
<string name="version">Versiune</string>
|
||||||
<string name="microg_bug">Eroare la microG</string>
|
<string name="microg_bug">Eroare la microG</string>
|
||||||
<string name="microg_bug_summary">Din cauza unei erori în microG, pentru a instala Vanced versiunea 16, este nevoie mai întâi să instalați versiunea 15.43.32, să o deschideți, apoi să vă autentificați și abia apoi puteți instala versiunea 16 și alte versiuni ulterioare. Doriți să continuați cu instalarea versiunii 15.43.32?</string>
|
<string name="microg_bug_summary">Din cauza unei erori în microG, pentru a instala Vanced versiunea 16, este nevoie mai întâi să instalați versiunea 15.43.32, să o deschideți, apoi să vă autentificați și abia apoi puteți instala versiunea 16 și alte versiuni ulterioare. Doriți să continuați cu instalarea versiunii 15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Din cauza unei erori în microG, pentru a instala Music Vanced versiunea 4.11, este nevoie mai întâi să instalați versiunea 4.07.51, să o deschideți, apoi să vă autentificați și abia apoi puteți instala versiunea 4.11 și alte versiuni ulterioare. Doriți să continuați cu instalarea versiunii 4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Vă rugăm să NU ieșiți din aplicație în timpul acestui proces!</string>
|
<string name="please_be_patient">Vă rugăm să NU ieșiți din aplicație în timpul acestui proces!</string>
|
||||||
<string name="welcome">Bun venit</string>
|
<string name="welcome">Bun venit</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Nu s-a reușit localizarea fișierelor necesare pentru instalare. Redescărcați fișierele de instalare, apoi încercați din nou.</string>
|
<string name="files_missing_va">Nu s-a reușit localizarea fișierelor necesare pentru instalare. Redescărcați fișierele de instalare, apoi încercați din nou.</string>
|
||||||
<string name="ifile_missing">Nu s-a reuşit localizarea fişierului apk pentru tema neagră/întunecată din stocare, vă rugăm să încercaţi din nou.</string>
|
<string name="ifile_missing">Nu s-a reuşit localizarea fişierului apk pentru tema neagră/întunecată din stocare, vă rugăm să încercaţi din nou.</string>
|
||||||
<string name="installation_aborted">Instalarea a eșuat deoarece utilizatorul a anulat instalarea.</string>
|
<string name="installation_aborted">Instalarea a eșuat deoarece utilizatorul a anulat instalarea.</string>
|
||||||
<string name="installation_blocked">Instalarea a eșuat deoarece utilizatorul a blocat instalarea.</string>
|
|
||||||
<string name="installation_downgrade">Instalarea a eșuat deoarece utilizatorul a încercat să retrogradeze pachetul. Dezinstalați actualizările din aplicația stock YouTube, apoi încercați din nou.</string>
|
<string name="installation_downgrade">Instalarea a eșuat deoarece utilizatorul a încercat să retrogradeze pachetul. Dezinstalați actualizările din aplicația stock YouTube, apoi încercați din nou.</string>
|
||||||
<string name="installation_conflict">Instalarea a eșuat deoarece aplicația intră în conflict cu o aplicație deja instalată. Dezinstalați versiunea curentă a aplicației, apoi încercați din nou.</string>
|
<string name="installation_conflict">Instalarea a eșuat deoarece aplicația intră în conflict cu o aplicație deja instalată. Dezinstalați versiunea curentă a aplicației, apoi încercați din nou.</string>
|
||||||
<string name="installation_failed">Instalarea a eșuat din motive necunoscute. Pentru asistență, intră pe grupul nostru de Telegram sau Discord. Te rugăm să atașezi și o captură de ecran din meniul Avansat</string>
|
<string name="installation_failed">Instalarea a eșuat din motive necunoscute. Pentru asistență, intră pe grupul nostru de Telegram sau Discord. Te rugăm să atașezi și o captură de ecran din meniul Avansat</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Версия</string>
|
<string name="version">Версия</string>
|
||||||
<string name="microg_bug">Ошибка в microG</string>
|
<string name="microg_bug">Ошибка в microG</string>
|
||||||
<string name="microg_bug_summary">В связи с ошибкой в microG, установка Vanced версии 16+ сначала требует установку версии 15.43.32, затем необходимо открыть приложение, авторизоваться в аккаунте и только после этого можно будет установить версию 16 и выше. Вы хотите продолжить установку версии 15.43.32?</string>
|
<string name="microg_bug_summary">В связи с ошибкой в microG, установка Vanced версии 16+ сначала требует установку версии 15.43.32, затем необходимо открыть приложение, авторизоваться в аккаунте и только после этого можно будет установить версию 16 и выше. Вы хотите продолжить установку версии 15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">В связи с ошибкой в microG, установка Music версии 4.11+ сначала требует установку версии 4.07.51, затем необходимо открыть приложение, авторизоваться в аккаунте и только после этого можно будет установить версию 4.11 и выше. Вы хотите продолжить установку версии 4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Пожалуйста, НЕ выходите из приложения в течение этого процесса!</string>
|
<string name="please_be_patient">Пожалуйста, НЕ выходите из приложения в течение этого процесса!</string>
|
||||||
<string name="welcome">Добро пожаловать</string>
|
<string name="welcome">Добро пожаловать</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Не удалось найти необходимые файлы для установки. Повторно загрузите установочные файлы и попробуйте еще раз.</string>
|
<string name="files_missing_va">Не удалось найти необходимые файлы для установки. Повторно загрузите установочные файлы и попробуйте еще раз.</string>
|
||||||
<string name="ifile_missing">Не удалось найти apk-файл для черной/темной темы в памяти устройства, повторите попытку.</string>
|
<string name="ifile_missing">Не удалось найти apk-файл для черной/темной темы в памяти устройства, повторите попытку.</string>
|
||||||
<string name="installation_aborted">Установка не была выполнена, поскольку пользователь прервал установку.</string>
|
<string name="installation_aborted">Установка не была выполнена, поскольку пользователь прервал установку.</string>
|
||||||
<string name="installation_blocked">Установка не была выполнена, поскольку пользователь заблокировал установку.</string>
|
|
||||||
<string name="installation_downgrade">Установка не удалась, так как пользователь попытался понизить версию приложения. Удалите обновления обычного приложения YouTube, затем повторите попытку.</string>
|
<string name="installation_downgrade">Установка не удалась, так как пользователь попытался понизить версию приложения. Удалите обновления обычного приложения YouTube, затем повторите попытку.</string>
|
||||||
<string name="installation_conflict">Установка не удалась, так как приложение конфликтует с уже установленным приложением. Удалите текущую версию приложения, затем повторите попытку.</string>
|
<string name="installation_conflict">Установка не удалась, так как приложение конфликтует с уже установленным приложением. Удалите текущую версию приложения, затем повторите попытку.</string>
|
||||||
<string name="installation_failed">Установка не удалась по неизвестным причинам, присоединитесь к нашим каналам Telegram или Discord для дальнейшей поддержки. Пожалуйста, также прикрепите скриншот из расширенного меню</string>
|
<string name="installation_failed">Установка не удалась по неизвестным причинам, присоединитесь к нашим каналам Telegram или Discord для дальнейшей поддержки. Пожалуйста, также прикрепите скриншот из расширенного меню</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">අනුවාදය</string>
|
<string name="version">අනුවාදය</string>
|
||||||
<string name="microg_bug">Bug in microG</string>
|
<string name="microg_bug">Bug in microG</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">ආයුබෝවන්</string>
|
<string name="welcome">ආයුබෝවන්</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
<string name="files_missing_va">Failed to locate the required files for installation. Re-download the installation files, then try again.</string>
|
||||||
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
<string name="ifile_missing">Failed to locate apk file for black/dark theme from storage, please try again.</string>
|
||||||
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Installation failed because the user aborted the installation.</string>
|
||||||
<string name="installation_blocked">Installation failed because the user blocked the installation.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
<string name="installation_conflict">Installation failed because the app conflicts with an already installed app. Uninstall the current version of the app, then try again.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Verzia</string>
|
<string name="version">Verzia</string>
|
||||||
<string name="microg_bug">Chyba v microG</string>
|
<string name="microg_bug">Chyba v microG</string>
|
||||||
<string name="microg_bug_summary">Kvôli chybe v pôvodnom microG si inštalácia Vanced v16+ vyžaduje najskôr inštaláciu v15.43.32, otvorenie, následné prihlásenie a až potom môžete nainštalovať v16 a vyššiu. Chcete pokračovať v inštalácii verzie 15.43.32?</string>
|
<string name="microg_bug_summary">Kvôli chybe v pôvodnom microG si inštalácia Vanced v16+ vyžaduje najskôr inštaláciu v15.43.32, otvorenie, následné prihlásenie a až potom môžete nainštalovať v16 a vyššiu. Chcete pokračovať v inštalácii verzie 15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Kvôli chybe v pôvodnom microG si inštalácia aplikácie Music v4.11+ vyžaduje najskôr inštaláciu verzie 4.0.0.51, otvorenie, následné prihlásenie a až potom môžete nainštalovať verziu 4.14 a vyššiu. Chcete pokračovať v inštalácii verzie v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Počas tohto procesu NEODCHÁDZAJTE z aplikácie!</string>
|
<string name="please_be_patient">Počas tohto procesu NEODCHÁDZAJTE z aplikácie!</string>
|
||||||
<string name="welcome">Vitajte</string>
|
<string name="welcome">Vitajte</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Nepodarilo sa nájsť požadované súbory na inštaláciu. Opätovne stiahnite inštalačné súbory a skúste to znova.</string>
|
<string name="files_missing_va">Nepodarilo sa nájsť požadované súbory na inštaláciu. Opätovne stiahnite inštalačné súbory a skúste to znova.</string>
|
||||||
<string name="ifile_missing">V lokálnom úložisku sa nepodarilo nájsť APK súbor pre čiernu/tmavú tému. Skúste to prosím znova.</string>
|
<string name="ifile_missing">V lokálnom úložisku sa nepodarilo nájsť APK súbor pre čiernu/tmavú tému. Skúste to prosím znova.</string>
|
||||||
<string name="installation_aborted">Inštalácia zlyhala, kvôli zrušeniu užívateľom.</string>
|
<string name="installation_aborted">Inštalácia zlyhala, kvôli zrušeniu užívateľom.</string>
|
||||||
<string name="installation_blocked">Inštalácia zlyhala, kvôli zablokovaniu užívateľom.</string>
|
|
||||||
<string name="installation_downgrade">Inštalácia zlyhala, pretože užívateľ sa pokúsil downgradovať balík. Odinštalujte aktualizácie z pôvodnej aplikácie a potom to skúste znova.</string>
|
<string name="installation_downgrade">Inštalácia zlyhala, pretože užívateľ sa pokúsil downgradovať balík. Odinštalujte aktualizácie z pôvodnej aplikácie a potom to skúste znova.</string>
|
||||||
<string name="installation_conflict">Inštalácia zlyhala, pretože aplikácia je v konflikte s už nainštalovanou aplikáciou. Odinštalujte aktuálnu verziu aplikácie a potom to skúste znova.</string>
|
<string name="installation_conflict">Inštalácia zlyhala, pretože aplikácia je v konflikte s už nainštalovanou aplikáciou. Odinštalujte aktuálnu verziu aplikácie a potom to skúste znova.</string>
|
||||||
<string name="installation_failed">Inštalácia zlyhala z neznámych dôvodov. Pre poskytnutie podpory sa pripojte sa k nášmu Telegramu alebo Discordu. Pripojte tiež snímky obrazovky z ponuky Pokročilé</string>
|
<string name="installation_failed">Inštalácia zlyhala z neznámych dôvodov. Pre poskytnutie podpory sa pripojte sa k nášmu Telegramu alebo Discordu. Pripojte tiež snímky obrazovky z ponuky Pokročilé</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Tirsiga</string>
|
<string name="version">Tirsiga</string>
|
||||||
<string name="microg_bug">Cillad xaga microG ah</string>
|
<string name="microg_bug">Cillad xaga microG ah</string>
|
||||||
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
<string name="microg_bug_summary">Due to a bug in the original microG, installing Vanced v16+ first requires you to install v15.43.32, open it, then login and only then can you install v16 and higher. Do you want to proceed with the installation of v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Due to a bug in the original microG, installing Music v4.11+ first requires you to install v4.07.51, open it, then login and only then can you install v4.11 and higher. Do you want to proceed with the installation of v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
<string name="please_be_patient">Please do NOT exit the app during this process!</string>
|
||||||
<string name="welcome">Soo dhawoow</string>
|
<string name="welcome">Soo dhawoow</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Laguma guulaysan in la helo faylashii ku shubi lahaa. Dib-usoodaji faylasha, kadibna isku day markale.</string>
|
<string name="files_missing_va">Laguma guulaysan in la helo faylashii ku shubi lahaa. Dib-usoodaji faylasha, kadibna isku day markale.</string>
|
||||||
<string name="ifile_missing">Laguma guulaysanin in faylka apk-ga ee nashqada madow/mugdiga laga helo kaydka aalaada, fadlan markale isku day.</string>
|
<string name="ifile_missing">Laguma guulaysanin in faylka apk-ga ee nashqada madow/mugdiga laga helo kaydka aalaada, fadlan markale isku day.</string>
|
||||||
<string name="installation_aborted">Ku shubidii way guuldaraysatay sababtoo ah qofka aalada isticmaalaya ayaa joojiyay.</string>
|
<string name="installation_aborted">Ku shubidii way guuldaraysatay sababtoo ah qofka aalada isticmaalaya ayaa joojiyay.</string>
|
||||||
<string name="installation_blocked">Ku shubidii way guuldaraysatay sababtoo ah qofka aalada isticmaalaya ayaa xanibay.</string>
|
|
||||||
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
<string name="installation_downgrade">Installation failed because the user tried to downgrade the package. Uninstall updates from the stock app, then try again.</string>
|
||||||
<string name="installation_conflict">Ku shubidii way guuldaraysatay sababtoo ah app-ka waxay iskhilaafeen mid horay ugu jiray aalada. Ka saar nooca hadda ee kujira, kadib markale ku celi.</string>
|
<string name="installation_conflict">Ku shubidii way guuldaraysatay sababtoo ah app-ka waxay iskhilaafeen mid horay ugu jiray aalada. Ka saar nooca hadda ee kujira, kadib markale ku celi.</string>
|
||||||
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
<string name="installation_failed">Installation failed for unknown reasons, join our Telegram or Discord for further support. Please also attach a screenshot from the Advanced menu</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Верзија</string>
|
<string name="version">Верзија</string>
|
||||||
<string name="microg_bug">Грешка у МикроГ апликацији</string>
|
<string name="microg_bug">Грешка у МикроГ апликацији</string>
|
||||||
<string name="microg_bug_summary">Услед грешке у оригиналној МикроГ апликацији инсталација Vanced v16+ захтева инсталирање v15.43.32 апликације, отворите улогујете се и онда инсталирати v16 или новију верзију. Желите да наставите инсталацију v15.43.32?</string>
|
<string name="microg_bug_summary">Услед грешке у оригиналној МикроГ апликацији инсталација Vanced v16+ захтева инсталирање v15.43.32 апликације, отворите улогујете се и онда инсталирати v16 или новију верзију. Желите да наставите инсталацију v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">Услед грешке у оригиналној МикроГ апликацији инсталација Music v4.11+ захтева инсталирање v4.07.51 апликације, отворите улогујете се и онда инсталирати v4.11 или новију верзију. Желите да наставите инсталацију v4.07.51?</string>
|
|
||||||
<string name="please_be_patient">Немојте излазити из апликације у току овога процеса!</string>
|
<string name="please_be_patient">Немојте излазити из апликације у току овога процеса!</string>
|
||||||
<string name="welcome">Добро дошли</string>
|
<string name="welcome">Добро дошли</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Није могуће пронаћи датотеке за инсталацију. Преузмите их поново и поновите инсталацију.</string>
|
<string name="files_missing_va">Није могуће пронаћи датотеке за инсталацију. Преузмите их поново и поновите инсталацију.</string>
|
||||||
<string name="ifile_missing">Није могуће пронаћи apk датотеку за црно/тамну тему у меморијском простору, покушајте поново.</string>
|
<string name="ifile_missing">Није могуће пронаћи apk датотеку за црно/тамну тему у меморијском простору, покушајте поново.</string>
|
||||||
<string name="installation_aborted">Инсталација није успешна, корисник је обуставио инсталацију.</string>
|
<string name="installation_aborted">Инсталација није успешна, корисник је обуставио инсталацију.</string>
|
||||||
<string name="installation_blocked">Инсталација није успешна, корисник је блокирао инсталацију.</string>
|
|
||||||
<string name="installation_downgrade">Инсталација није успешна, корисник је покушао да инсталира старију верзију преко новије верзије апликације. Деинсталирајте све до предодређене инсталиране верзије YouTubе апликације, затим покушајте поново.</string>
|
<string name="installation_downgrade">Инсталација није успешна, корисник је покушао да инсталира старију верзију преко новије верзије апликације. Деинсталирајте све до предодређене инсталиране верзије YouTubе апликације, затим покушајте поново.</string>
|
||||||
<string name="installation_conflict">Инсталација неуспешна, зато што је дошло до конфликта са већ инсталираном верзијом. Деинсталирајте тренутну верзију Vanced-а и затим покушајте поново.</string>
|
<string name="installation_conflict">Инсталација неуспешна, зато што је дошло до конфликта са већ инсталираном верзијом. Деинсталирајте тренутну верзију Vanced-а и затим покушајте поново.</string>
|
||||||
<string name="installation_failed">Неуспешна инсталација услед непознатих разлога, Прикључите се нашем Telegram или Discord каналима за помоћ. Молимо да прикључите снимак екрана из Проширеног Менија</string>
|
<string name="installation_failed">Неуспешна инсталација услед непознатих разлога, Прикључите се нашем Telegram или Discord каналима за помоћ. Молимо да прикључите снимак екрана из Проширеног Менија</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">Version</string>
|
<string name="version">Version</string>
|
||||||
<string name="microg_bug">Bugg i microG</string>
|
<string name="microg_bug">Bugg i microG</string>
|
||||||
<string name="microg_bug_summary">På grund av en bugg i mainline microG, måste du installera Vanced v16+ först installera v15.43. 2, öppna den, sedan logga in och endast då kan du installera v16 och högre. Vill du fortsätta med installationen av v15.43.32?</string>
|
<string name="microg_bug_summary">På grund av en bugg i mainline microG, måste du installera Vanced v16+ först installera v15.43. 2, öppna den, sedan logga in och endast då kan du installera v16 och högre. Vill du fortsätta med installationen av v15.43.32?</string>
|
||||||
<string name="microg_bug_summary_music">På grund av en bugg i mainline microG, måste du installera Vanced v16+ först installera v15.43. 2, öppna den, sedan logga in och endast då kan du installera v16 och högre. Vill du fortsätta med installationen av v15.11?</string>
|
|
||||||
<string name="please_be_patient">Vänligen avsluta INTE appen under denna process!</string>
|
<string name="please_be_patient">Vänligen avsluta INTE appen under denna process!</string>
|
||||||
<string name="welcome">Välkommen</string>
|
<string name="welcome">Välkommen</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">Det gick inte att hitta de nödvändiga filerna för installationen. Ladda ner installationsfilerna igen och försök igen.</string>
|
<string name="files_missing_va">Det gick inte att hitta de nödvändiga filerna för installationen. Ladda ner installationsfilerna igen och försök igen.</string>
|
||||||
<string name="ifile_missing">Det gick inte att hitta apk-fil för svart/mörkt tema från lagring, försök igen.</string>
|
<string name="ifile_missing">Det gick inte att hitta apk-fil för svart/mörkt tema från lagring, försök igen.</string>
|
||||||
<string name="installation_aborted">Åtgärden misslyckades eftersom användaren avbröt installationen.</string>
|
<string name="installation_aborted">Åtgärden misslyckades eftersom användaren avbröt installationen.</string>
|
||||||
<string name="installation_blocked">Åtgärden misslyckades eftersom användaren avbröt installationen.</string>
|
|
||||||
<string name="installation_downgrade">Installationen misslyckades eftersom användaren försökte nedgradera paketet. Avinstallera uppdateringar från lagerappen YouTube, försök sedan igen.</string>
|
<string name="installation_downgrade">Installationen misslyckades eftersom användaren försökte nedgradera paketet. Avinstallera uppdateringar från lagerappen YouTube, försök sedan igen.</string>
|
||||||
<string name="installation_conflict">Installationen misslyckades eftersom appen står i konflikt med en redan installerad app. Avinstallera den aktuella versionen av Vanced, försök sedan igen.</string>
|
<string name="installation_conflict">Installationen misslyckades eftersom appen står i konflikt med en redan installerad app. Avinstallera den aktuella versionen av Vanced, försök sedan igen.</string>
|
||||||
<string name="installation_failed">Installationen misslyckades av okända skäl, gå med i vårt Telegram eller Discord för ytterligare stöd. Vänligen bifoga även en skärmdump från menyn Avancerat</string>
|
<string name="installation_failed">Installationen misslyckades av okända skäl, gå med i vårt Telegram eller Discord för ytterligare stöd. Vänligen bifoga även en skärmdump från menyn Avancerat</string>
|
||||||
|
|
|
@ -81,7 +81,6 @@
|
||||||
<string name="version">பதிப்பு</string>
|
<string name="version">பதிப்பு</string>
|
||||||
<string name="microg_bug">மைக்ரோஜியில் பிழை</string>
|
<string name="microg_bug">மைக்ரோஜியில் பிழை</string>
|
||||||
<string name="microg_bug_summary">அசல் மைக்ரோஜில் ஒரு பிழை காரணமாக, Vanced V16 + ஐ நிறுவுதல் நீங்கள் V15.43.32 ஐ நிறுவ வேண்டும், அதைத் திறக்க வேண்டும், பின்னர் உள்நுழைந்து, பின்னர் நீங்கள் V16 மற்றும் அதிக நிறுவ முடியும். V15.43.32 இன் நிறுவலுடன் தொடர வேண்டுமா?</string>
|
<string name="microg_bug_summary">அசல் மைக்ரோஜில் ஒரு பிழை காரணமாக, Vanced V16 + ஐ நிறுவுதல் நீங்கள் V15.43.32 ஐ நிறுவ வேண்டும், அதைத் திறக்க வேண்டும், பின்னர் உள்நுழைந்து, பின்னர் நீங்கள் V16 மற்றும் அதிக நிறுவ முடியும். V15.43.32 இன் நிறுவலுடன் தொடர வேண்டுமா?</string>
|
||||||
<string name="microg_bug_summary_music">அசல் மைக்ரோக்கில் ஒரு பிழை காரணமாக, இசை v4.11 + ஐ நிறுவுதல் முதலில் நீங்கள் V4.07.51 ஐ நிறுவ வேண்டும், அதைத் திறக்க வேண்டும், பின்னர் உள்நுழைந்து, பின்னர் நீங்கள் V4.11 ஐ நிறுவலாம். V4.07.51 இன் நிறுவலுடன் தொடர வேண்டுமா?</string>
|
|
||||||
<string name="please_be_patient">இந்த செயல்முறையின் போது பயன்பாட்டை விட்டு வெளியேற வேண்டாம்!</string>
|
<string name="please_be_patient">இந்த செயல்முறையின் போது பயன்பாட்டை விட்டு வெளியேற வேண்டாம்!</string>
|
||||||
<string name="welcome">வரவேற்பு</string>
|
<string name="welcome">வரவேற்பு</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
@ -104,7 +103,6 @@
|
||||||
<string name="files_missing_va">நிறுவலுக்கு தேவையான கோப்புகளை கண்டுபிடிப்பதில் தோல்வி. நிறுவல் கோப்புகளை மீண்டும் பதிவிறக்கவும், பின்னர் மீண்டும் முயற்சிக்கவும்.</string>
|
<string name="files_missing_va">நிறுவலுக்கு தேவையான கோப்புகளை கண்டுபிடிப்பதில் தோல்வி. நிறுவல் கோப்புகளை மீண்டும் பதிவிறக்கவும், பின்னர் மீண்டும் முயற்சிக்கவும்.</string>
|
||||||
<string name="ifile_missing">சேமிப்பகத்திலிருந்து கருப்பு / இருண்ட கருப்பொருளுக்கான Apk கோப்பை கண்டுபிடிப்பதில் தோல்வி, தயவுசெய்து மீண்டும் முயற்சிக்கவும்.</string>
|
<string name="ifile_missing">சேமிப்பகத்திலிருந்து கருப்பு / இருண்ட கருப்பொருளுக்கான Apk கோப்பை கண்டுபிடிப்பதில் தோல்வி, தயவுசெய்து மீண்டும் முயற்சிக்கவும்.</string>
|
||||||
<string name="installation_aborted">பயனர் நிறுவலை நிறுத்தியதால் நிறுவல் தோல்வியடைந்தது.</string>
|
<string name="installation_aborted">பயனர் நிறுவலை நிறுத்தியதால் நிறுவல் தோல்வியடைந்தது.</string>
|
||||||
<string name="installation_blocked">பயனர் நிறுவலைத் தடுத்ததால் நிறுவல் தோல்வியடைந்தது.</string>
|
|
||||||
<string name="installation_downgrade">பயனர் தொகுப்பை தரமிறக்க முயற்சித்ததால் நிறுவல் தோல்வியடைந்தது. பங்கு பயன்பாட்டிலிருந்து புதுப்பிப்புகளை நிறுவல் நீக்க, பின்னர் மீண்டும் முயற்சிக்கவும்.</string>
|
<string name="installation_downgrade">பயனர் தொகுப்பை தரமிறக்க முயற்சித்ததால் நிறுவல் தோல்வியடைந்தது. பங்கு பயன்பாட்டிலிருந்து புதுப்பிப்புகளை நிறுவல் நீக்க, பின்னர் மீண்டும் முயற்சிக்கவும்.</string>
|
||||||
<string name="installation_conflict">ஏற்கனவே நிறுவப்பட்ட பயன்பாட்டுடன் பயன்பாடு முரண்படுவதால் நிறுவல் தோல்வியடைந்தது. பயன்பாட்டின் தற்போதைய பதிப்பை நிறுவல் நீக்கி, பின்னர் மீண்டும் முயற்சிக்கவும்.</string>
|
<string name="installation_conflict">ஏற்கனவே நிறுவப்பட்ட பயன்பாட்டுடன் பயன்பாடு முரண்படுவதால் நிறுவல் தோல்வியடைந்தது. பயன்பாட்டின் தற்போதைய பதிப்பை நிறுவல் நீக்கி, பின்னர் மீண்டும் முயற்சிக்கவும்.</string>
|
||||||
<string name="installation_failed">நிறுவல் அறியப்படாத காரணங்களுக்காக தோல்வியடைந்தது, எங்கள் டெலிகிராம் அல்லது மேலும் ஆதரவுக்கு இணக்கமாக இருக்கலாம். மேம்பட்ட மெனுவிலிருந்து ஒரு ஸ்கிரீன் ஷாட்டை இணைக்கவும்</string>
|
<string name="installation_failed">நிறுவல் அறியப்படாத காரணங்களுக்காக தோல்வியடைந்தது, எங்கள் டெலிகிராம் அல்லது மேலும் ஆதரவுக்கு இணக்கமாக இருக்கலாம். மேம்பட்ட மெனுவிலிருந்து ஒரு ஸ்கிரீன் ஷாட்டை இணைக்கவும்</string>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue