Merge pull request #110 from YTVanced/dev

1.2.0 Update
This commit is contained in:
KevinX8 2020-08-09 00:06:55 +03:00 committed by GitHub
commit 31262606d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
119 changed files with 3208 additions and 2759 deletions

View File

@ -18,17 +18,22 @@ jobs:
with:
java-version: 1.8
- name: Write firebase config to file
run: echo $FIREBASE_CONFIG > app/google-services.json
env:
FIREBASE_CONFIG: ${{ secrets.FIREBASE_CONFIG }}
- name: Grant rights
run: chmod +x ./gradlew
- name: Build project with Gradle
run: ./gradlew build
- name: Build Release APK with Gradle
- name: Build Debug APK with Gradle
run: ./gradlew assembleDebug
- name: Upload to GitHub
- name: Upload Debug
uses: actions/upload-artifact@v2
with:
name: 'Vanced-Manager'
name: 'Manager'
path: app/build/outputs/apk/debug/app-debug.apk

1
.gitignore vendored
View File

@ -3,6 +3,7 @@
build/
out/
app/src/main/java/com/vanced/manager/core/base/DummyJava.java
app/google-services.json
local.properties
/.github/
*.iml

View File

@ -23,4 +23,5 @@ After 3 months of development, we are finally ready to introduce Vanced Manager
- topjohnwu for his wonderful [LibSU](https://github.com/topjohnwu/libsu)
- Mindorks for their amazing [PRDownloader](https://github.com/MindorksOpenSource/PRDownloader)
- aefyr for [SAI](https://github.com/aefyr/SAI), which was an inspiration for our Manager
- 100rabhkr for their [GetJson](https://github.com/100rabhkr/getjson) library
- kittinunf for the [Fuel](https://github.com/kittinunf/Fuel) library
- cbeust for the [klaxon](https://github.com/cbeust/klaxon) library

View File

@ -2,17 +2,20 @@ apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: 'com.google.firebase.crashlytics'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
compileSdkVersion 30
buildToolsVersion "30.0.1"
defaultConfig {
applicationId "com.vanced.manager"
minSdkVersion 21
targetSdkVersion 29
versionCode 11
versionName "1.1.0 (Big Sur)"
targetSdkVersion 30
versionCode 12
versionName "1.2.0 (Niko)"
vectorDrawables.useSupportLibrary = true
}
@ -54,25 +57,38 @@ android {
}
dependencies {
// Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
// AndroidX
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.activity:activity:1.1.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.browser:browser:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.core:core-ktx:1.3.0'
implementation 'androidx.core:core-ktx:1.3.1'
implementation 'androidx.fragment:fragment-ktx:1.2.5'
implementation 'androidx.lifecycle:lifecycle-livedata-core-ktx:2.2.0'
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2'
implementation 'androidx.navigation:navigation-ui-ktx:2.2.2'
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.0'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.0'
implementation 'androidx.preference:preference-ktx:1.1.1'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'com.google.android.material:material:1.3.0-alpha02'
// Other
implementation 'com.github.100rabhkr:GetJSON:1.0'
implementation 'com.github.topjohnwu.libsu:core:2.5.1'
implementation 'com.beust:klaxon:5.3'
implementation 'com.crowdin.platform:mobile-sdk:1.1.6'
implementation 'com.github.kittinunf.fuel:fuel:2.2.3'
implementation 'com.github.kittinunf.fuel:fuel-coroutines:2.2.3'
implementation 'com.github.kittinunf.fuel:fuel-json:2.2.3'
implementation 'com.github.topjohnwu.libsu:core:3.0.1'
implementation 'com.google.firebase:firebase-messaging:20.2.4'
implementation 'com.google.firebase:firebase-perf:19.0.8'
implementation 'com.mindorks.android:prdownloader:0.6.0'
implementation 'com.google.firebase:firebase-analytics-ktx:17.4.4'
implementation 'com.google.firebase:firebase-crashlytics:17.1.1'
}

View File

@ -7,8 +7,7 @@
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<application
android:name=".core.App"
@ -18,8 +17,7 @@
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
tools:ignore="UnusedAttribute"
tools:replace="android:allowBackup">
tools:ignore="UnusedAttribute">
<activity
android:name=".ui.core.SplashScreenActivity"
@ -38,7 +36,8 @@
</activity>
<activity
android:name=".ui.MainActivity"
android:label="@string/app_name" />
android:label="@string/app_name"
android:theme="@style/DarkTheme.Blue"/>
<meta-data
android:name="preloaded_fonts"
@ -56,6 +55,20 @@
</provider>
<service
android:name=".core.firebase.CloudMessaging"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/ic_stat_name" />
<service android:name=".core.installer.SplitInstallerService" />
<service android:name=".core.installer.RootSplitInstallerService" />
<service android:name=".core.installer.SplitInstaller" />

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

View File

@ -8,19 +8,15 @@ import com.vanced.manager.ui.fragments.VancedChangelogFragment
class SectionPageAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
private val fragmentItems = 3
override fun getItemCount(): Int {
return fragmentItems
}
override fun getItemCount(): Int = 3
override fun createFragment(position: Int): Fragment {
var fragment: Fragment? = null
when (position) {
0 -> fragment = VancedChangelogFragment()
1 -> fragment = MicrogChangelogFragment()
2 -> fragment = ManagerChangelogFragment()
return when (position) {
0 -> VancedChangelogFragment()
1 -> MicrogChangelogFragment()
2 -> ManagerChangelogFragment()
else -> throw NotImplementedError()
}
return fragment!!
}
}

View File

@ -7,18 +7,14 @@ import com.vanced.manager.ui.fragments.VancedChangelogFragment
class SectionPageRootAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
private val fragmentItems = 2
override fun getItemCount(): Int {
return fragmentItems
}
override fun getItemCount(): Int = 2
override fun createFragment(position: Int): Fragment {
var fragment: Fragment? = null
when (position) {
0 -> fragment = VancedChangelogFragment()
1 -> fragment = ManagerChangelogFragment()
return when (position) {
0 -> VancedChangelogFragment()
1 -> ManagerChangelogFragment()
else -> throw NotImplementedError()
}
return fragment!!
}
}

View File

@ -1,15 +1,29 @@
package com.vanced.manager.core
import android.app.Application
import com.crowdin.platform.Crowdin
import com.crowdin.platform.CrowdinConfig
import com.crowdin.platform.data.remote.NetworkType
import com.downloader.PRDownloader
import com.vanced.manager.utils.NotificationHelper.createNotifChannel
class App: Application() {
override fun onCreate() {
super.onCreate()
PRDownloader.initialize(this)
createNotifChannel(this)
Crowdin.init(this,
CrowdinConfig.Builder()
.withDistributionHash("36c51aed3180a4f43073d28j4s6")
.withNetworkType(NetworkType.WIFI)
.build())
}
/*
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
Crowdin.onConfigurationChanged()
}
*/
}

View File

@ -1,61 +0,0 @@
package com.vanced.manager.core
import android.annotation.SuppressLint
import android.content.Context
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.preference.PreferenceManager
import com.dezlum.codelabs.getjson.GetJson
import com.vanced.manager.R
import com.vanced.manager.ui.dialogs.DialogContainer.basicDialog
import com.vanced.manager.ui.dialogs.DialogContainer.showRootDialog
import com.vanced.manager.ui.dialogs.DialogContainer.showSecurityDialog
import com.vanced.manager.ui.dialogs.DialogContainer.statementFalse
import com.vanced.manager.ui.fragments.UpdateCheckFragment
import com.vanced.manager.utils.InternetTools.isUpdateAvailable
import com.vanced.manager.utils.PackageHelper.getPackageVersionName
// This activity will NOT be used in manifest
// since MainActivity will extend it
@SuppressLint("Registered")
open class Main: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val prefs = PreferenceManager.getDefaultSharedPreferences(this)
val variant = prefs.getString("vanced_variant", "nonroot")
val showRootDialog = prefs.getBoolean("show_root_dialog", true)
when {
prefs.getBoolean("firstStart", true) -> showSecurityDialog(this)
!prefs.getBoolean("statement", true) -> statementFalse(this)
variant == "root" -> {
if (showRootDialog)
showRootDialog(this)
if (getPackageVersionName("com.google.android.youtube", packageManager) == "14.21.54")
basicDialog(getString(R.string.hold_on), getString(R.string.magisk_vanced), this)
}
}
checkUpdates()
}
override fun onPause() {
getSharedPreferences("installPrefs", Context.MODE_PRIVATE).edit().putBoolean("isInstalling", false).apply()
getSharedPreferences("installPrefs", Context.MODE_PRIVATE).edit().putBoolean("isVancedDownloading", false).apply()
getSharedPreferences("installPrefs", Context.MODE_PRIVATE).edit().putBoolean("isMicrogDownloading", false).apply()
super.onPause()
}
private fun checkUpdates() {
if (GetJson().isConnected(this) && isUpdateAvailable()) {
val fm = supportFragmentManager
UpdateCheckFragment().show(fm, "UpdateCheck")
}
}
}

View File

@ -1,72 +1,87 @@
package com.vanced.manager.core.downloader
import android.app.Service
import android.content.Context
import android.content.Intent
import android.os.IBinder
import android.widget.Toast
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.preference.PreferenceManager
import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.OnStartOrResumeListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.core.installer.AppInstaller
import com.vanced.manager.ui.fragments.HomeFragment
import com.vanced.manager.utils.AppUtils.installing
import com.vanced.manager.utils.InternetTools.baseUrl
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
import com.vanced.manager.utils.InternetTools.getObjectFromJson
import com.vanced.manager.utils.NotificationHelper
import com.vanced.manager.utils.NotificationHelper.cancelNotif
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MicrogDownloadService: Service() {
//private var downloadId: Long = 0
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
//registerReceiver(receiver, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
downloadMicrog()
stopSelf()
return START_NOT_STICKY
}
private fun downloadMicrog() {
val prefs = getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
CoroutineScope(Dispatchers.IO).launch {
val url = getObjectFromJson(
"${PreferenceManager.getDefaultSharedPreferences(this@MicrogDownloadService)
.getString("install_url", baseUrl)}/microg.json", "url"
)
val apkUrl = getObjectFromJson("https://vanced.app/api/v1/microg.json", "url", this)
//downloadId = download(url, "apk", "microg.apk", this@MicrogDownloadService)
val channel = 420
PRDownloader.download(apkUrl, filesDir.path, "microg.apk")
.build()
.setOnStartOrResumeListener { OnStartOrResumeListener { prefs?.edit()?.putBoolean("isMicrogDownloading", true)?.apply() } }
.setOnProgressListener { progress ->
val mProgress = progress.currentBytes * 100 / progress.totalBytes
NotificationHelper.displayDownloadNotif(
channel,
mProgress.toInt(),
getFileNameFromUrl(apkUrl),
this
)
PRDownloader.download(url, getExternalFilesDir("apk")?.path, "microg.apk")
.build()
.setOnStartOrResumeListener { installing = true }
.setOnProgressListener { progress ->
val mProgress = progress.currentBytes * 100 / progress.totalBytes
localBroadcastManager.sendBroadcast(Intent(HomeFragment.MICROG_DOWNLOADING).putExtra("progress", mProgress.toInt()).putExtra("file", getFileNameFromUrl(url)))
}
.start(object : OnDownloadListener {
override fun onDownloadComplete() {
val intent = Intent(this@MicrogDownloadService, AppInstaller::class.java)
intent.putExtra("path", "${getExternalFilesDir("apk")}/microg.apk")
intent.putExtra("pkg", "com.mgoogle.android.gms")
localBroadcastManager.sendBroadcast(Intent(HomeFragment.MICROG_INSTALLING))
startService(intent)
}
override fun onError(error: Error?) {
installing = false
Toast.makeText(this@MicrogDownloadService, getString(R.string.error_downloading, "microG"), Toast.LENGTH_SHORT).show()
}
})
}
}
/*
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1) == downloadId) {
//prefs?.edit()?.putBoolean("isMicrogDownloading", false)?.apply()
//cancelNotif(channel, this@MicrogDownloadService)
val bIntent = Intent(this@MicrogDownloadService, AppInstaller::class.java)
bIntent.putExtra("path", "${getExternalFilesDir("apk")}/microg.apk")
bIntent.putExtra("pkg", "com.mgoogle.android.gms")
startService(bIntent)
}
.start(object : OnDownloadListener {
override fun onDownloadComplete() {
prefs?.edit()?.putBoolean("isMicrogDownloading", false)?.apply()
cancelNotif(channel, this@MicrogDownloadService)
val intent = Intent(this@MicrogDownloadService, AppInstaller::class.java)
intent.putExtra("path", "${filesDir.path}/microg.apk")
intent.putExtra("pkg", "com.mgoogle.android.gms")
val mIntent = Intent(HomeFragment.MICROG_DOWNLOADED)
mIntent.action = HomeFragment.MICROG_DOWNLOADED
LocalBroadcastManager.getInstance(this@MicrogDownloadService).sendBroadcast(mIntent)
startService(intent)
}
override fun onError(error: Error) {
prefs?.edit()?.putBoolean("isMicrogDownloading", false)?.apply()
createBasicNotif(getString(R.string.error_downloading, "Microg"), channel, this@MicrogDownloadService)
}
})
}
}
*/
override fun onDestroy() {
super.onDestroy()
cancelNotif(420, this)
}
override fun onBind(intent: Intent?): IBinder? {
return null

View File

@ -5,27 +5,34 @@ import android.content.Context
import android.content.Intent
import android.os.Build
import android.os.IBinder
import android.widget.Toast
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.preference.PreferenceManager
import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.OnStartOrResumeListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.core.installer.RootSplitInstallerService
import com.vanced.manager.core.installer.SplitInstaller
import com.vanced.manager.ui.fragments.HomeFragment
import com.vanced.manager.utils.AppUtils.installing
import com.vanced.manager.utils.InternetTools.baseUrl
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
import com.vanced.manager.utils.InternetTools.getObjectFromJson
import com.vanced.manager.utils.NotificationHelper.cancelNotif
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
import com.vanced.manager.utils.NotificationHelper.displayDownloadNotif
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.io.File
class VancedDownloadService: Service() {
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
//private var downloadId: Long = 0
//private var apkType: String = "arch"
private var count: Int = 0
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
//registerReceiver(receiver, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
downloadSplits()
stopSelf()
return START_NOT_STICKY
@ -34,36 +41,40 @@ class VancedDownloadService: Service() {
private fun downloadSplits(
type: String = "arch"
) {
val baseUrl = PreferenceManager.getDefaultSharedPreferences(this).getString("install_url", baseUrl)
val vancedVer = getObjectFromJson("https://vanced.app/api/v1/vanced.json", "version", this)
CoroutineScope(Dispatchers.IO).launch {
File(getExternalFilesDir("apk")?.path as String).deleteRecursively()
val defPrefs = PreferenceManager.getDefaultSharedPreferences(this@VancedDownloadService)
val installUrl = defPrefs.getString("install_url", baseUrl)
val vancedVer = getObjectFromJson("$installUrl/vanced.json", "version")
val prefs = getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val variant = PreferenceManager.getDefaultSharedPreferences(this).getString("vanced_variant", "nonroot")
val lang = prefs?.getString("lang", "en")
val theme = prefs?.getString("theme", "dark")
val arch =
when {
Build.SUPPORTED_ABIS.contains("x86") -> "x86"
Build.SUPPORTED_ABIS.contains("arm64-v8a") -> "arm64_v8a"
else -> "armeabi_v7a"
}
val url =
when (type) {
"arch" -> "$baseUrl/apks/v$vancedVer/$variant/Arch/split_config.$arch.apk"
"theme" -> "$baseUrl/apks/v$vancedVer/$variant/Theme/$theme.apk"
"lang" -> "$baseUrl/apks/v$vancedVer/$variant/Language/split_config.$lang.apk"
"enlang" -> "$baseUrl/apks/v$vancedVer/$variant/Language/split_config.en.apk"
else -> throw NotImplementedError("This type of APK is NOT valid. What the hell did you even do?")
}
val prefs = getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val variant = defPrefs.getString("vanced_variant", "nonroot")
val lang = prefs?.getString("lang", "en")?.split(", ")?.toTypedArray()
val theme = prefs?.getString("theme", "dark")
val arch =
when {
Build.SUPPORTED_ABIS.contains("x86") -> "x86"
Build.SUPPORTED_ABIS.contains("arm64-v8a") -> "arm64_v8a"
else -> "armeabi_v7a"
}
val url =
when (type) {
"arch" -> "$installUrl/apks/v$vancedVer/$variant/Arch/split_config.$arch.apk"
"theme" -> "$installUrl/apks/v$vancedVer/$variant/Theme/$theme.apk"
"lang" -> "$installUrl/apks/v$vancedVer/$variant/Language/split_config.${lang?.get(count)}.apk"
else -> throw NotImplementedError("This type of APK is NOT valid. What the hell did you even do?")
}
//apkType = type
//downloadId = download(url, "apks", getFileNameFromUrl(url), this@VancedDownloadService)
val channel = 69
PRDownloader
.download(url, cacheDir.path, getFileNameFromUrl(url))
.download(url, getExternalFilesDir("apks")?.path, getFileNameFromUrl(url))
.build()
.setOnStartOrResumeListener { OnStartOrResumeListener { prefs?.edit()?.putBoolean("isVancedDownloading", true)?.apply() } }
.setOnStartOrResumeListener{ installing = true }
.setOnProgressListener { progress ->
val mProgress = progress.currentBytes * 100 / progress.totalBytes
displayDownloadNotif(channel, mProgress.toInt(), getFileNameFromUrl(url), this)
localBroadcastManager.sendBroadcast(Intent(HomeFragment.VANCED_DOWNLOADING).putExtra("progress", mProgress.toInt()).putExtra("file", getFileNameFromUrl(url)))
}
.start(object : OnDownloadListener {
override fun onDownloadComplete() {
@ -71,41 +82,59 @@ class VancedDownloadService: Service() {
"arch" -> downloadSplits("theme")
"theme" -> downloadSplits("lang")
"lang" -> {
if (lang == "en") {
count++
if (count < lang?.count()!!)
downloadSplits("lang")
else
prepareInstall(variant!!)
cancelNotif(channel, this@VancedDownloadService)
} else {
downloadSplits("enlang")
}
}
"enlang" -> {
prepareInstall(variant!!)
cancelNotif(channel, this@VancedDownloadService)
}
}
}
override fun onError(error: Error) {
createBasicNotif(getString(R.string.error_downloading, "Vanced"), channel, this@VancedDownloadService)
override fun onError(error: Error?) {
installing = false
Toast.makeText(this@VancedDownloadService, getString(R.string.error_downloading, "Vanced"), Toast.LENGTH_SHORT).show()
}
})
}
}
/*
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
val prefs = context?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val variant = PreferenceManager.getDefaultSharedPreferences(this@VancedDownloadService).getString("vanced_variant", "nonroot")
val lang = prefs?.getString("lang", "en")
if (intent?.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1) == downloadId) {
when (apkType) {
"arch" -> downloadSplits("theme")
"theme" -> downloadSplits("lang")
"lang" -> {
if (lang == "en") {
prepareInstall(variant!!)
//cancelNotif(channel, this@VancedDownloadService)
} else {
downloadSplits("enlang")
}
}
"enlang" -> {
prepareInstall(variant!!)
//cancelNotif(channel, this@VancedDownloadService)
}
}
}
}
}
*/
private fun prepareInstall(variant: String) {
val intent = Intent(HomeFragment.VANCED_DOWNLOADED)
intent.action = HomeFragment.VANCED_DOWNLOADED
LocalBroadcastManager.getInstance(this).sendBroadcast(intent)
localBroadcastManager.sendBroadcast(Intent(HomeFragment.VANCED_INSTALLING))
if (variant == "root")
startService(Intent(this, RootSplitInstallerService::class.java))
else
startService(Intent(this, SplitInstaller::class.java))
}
override fun onDestroy() {
super.onDestroy()
cancelNotif(69, this)
}
override fun onBind(intent: Intent?): IBinder? {
return null
}

View File

@ -0,0 +1,13 @@
package com.vanced.manager.core.firebase
import android.util.Log
import com.google.firebase.messaging.FirebaseMessagingService
class CloudMessaging: FirebaseMessagingService() {
override fun onNewToken(p0: String) {
super.onNewToken(p0)
Log.d("VMC", "Generated new token: $p0")
}
}

View File

@ -1,48 +0,0 @@
package com.vanced.manager.core.fragments
import android.annotation.SuppressLint
import android.os.Bundle
import android.view.MotionEvent
import android.view.View
import android.widget.Toast
import androidx.preference.PreferenceManager
import com.vanced.manager.core.base.BaseFragment
open class About : BaseFragment() {
private var count = 0
private var startMillSec: Long = 0
@SuppressLint("ClickableViewAccessibility")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
view.setOnTouchListener { _, event: MotionEvent ->
val eventAction = event.action
if (eventAction == MotionEvent.ACTION_UP) {
val time = System.currentTimeMillis()
if (startMillSec == 0L || time - startMillSec > 3000) {
startMillSec = time
count = 1
} else {
count++
}
if (count == 5) {
val prefs = PreferenceManager.getDefaultSharedPreferences(requireContext())
val devSettings = prefs.getBoolean("devSettings", false)
if (!devSettings) {
Toast.makeText(requireContext(), "Dev options unlocked!", Toast.LENGTH_SHORT).show()
prefs.edit().putBoolean("devSettings", true).apply()
} else
Toast.makeText(requireContext(), "Dev options already unlocked", Toast.LENGTH_SHORT).show()
}
return@setOnTouchListener true
}
false
}
}
}

View File

@ -1,117 +0,0 @@
package com.vanced.manager.core.fragments
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.ImageView
import android.widget.Toast
import androidx.navigation.findNavController
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
import com.google.android.material.button.MaterialButton
import com.topjohnwu.superuser.Shell
import com.vanced.manager.R
import com.vanced.manager.core.base.BaseFragment
import com.vanced.manager.core.downloader.MicrogDownloadService
import com.vanced.manager.core.downloader.VancedDownloadService
import com.vanced.manager.ui.MainActivity
import com.vanced.manager.utils.PackageHelper.uninstallApk
open class Home : BaseFragment(), View.OnClickListener {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val microginstallbtn = view.findViewById<MaterialButton>(R.id.microg_installbtn)
val vancedinstallbtn = view.findViewById<MaterialButton>(R.id.vanced_installbtn)
val microguninstallbtn = view.findViewById<ImageView>(R.id.microg_uninstallbtn)
val vanceduninstallbtn = view.findViewById<ImageView>(R.id.vanced_uninstallbtn)
val rootswitch = view.findViewById<MaterialButton>(R.id.root_switch)
val nonrootswitch = view.findViewById<MaterialButton>(R.id.nonroot_switch)
vancedinstallbtn.setOnClickListener(this)
microginstallbtn.setOnClickListener(this)
microguninstallbtn.setOnClickListener(this)
vanceduninstallbtn.setOnClickListener(this)
rootswitch.setOnClickListener(this)
nonrootswitch.setOnClickListener(this)
}
override fun onResume() {
super.onResume()
val prefs = activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val isInstalling = prefs?.getBoolean("isInstalling", false)
if (isInstalling!!) {
activity?.startService(Intent(activity, VancedDownloadService::class.java))
prefs.edit().putBoolean("isInstalling", false).apply()
}
}
override fun onClick(v: View?) {
val prefs = activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val isVancedDownloading: Boolean? = prefs?.getBoolean("isVancedDownloading", false)
val isMicrogDownloading: Boolean? = prefs?.getBoolean("isMicrogDownloading", false)
val variant = getDefaultSharedPreferences(activity).getString("vanced_variant", "nonroot")
val vancedPkgName =
if (variant == "root") {
"com.google.android.youtube"
} else {
"com.vanced.android.youtube"
}
when (v?.id) {
R.id.vanced_installbtn -> {
if (!isVancedDownloading!!) {
try {
activity?.cacheDir?.deleteRecursively()
} catch (e: Exception) {
Log.d("VMCache", "Unable to delete cacheDir")
}
if (prefs.getBoolean("valuesModified", false)) {
activity?.startService(
Intent(
activity,
VancedDownloadService::class.java
)
)
} else {
view?.findNavController()?.navigate(R.id.toInstallThemeFragment)
}
} else {
Toast.makeText(activity, activity?.getString(R.string.installation_wait), Toast.LENGTH_SHORT).show()
}
}
R.id.microg_installbtn -> {
if (!isMicrogDownloading!!) {
activity?.startService(Intent(activity, MicrogDownloadService::class.java))
} else {
Toast.makeText(activity, activity?.getString(R.string.installation_wait), Toast.LENGTH_SHORT).show()
}
}
R.id.microg_uninstallbtn -> activity?.let { uninstallApk("com.mgoogle.android.gms", it) }
R.id.vanced_uninstallbtn -> activity?.let { uninstallApk(vancedPkgName, it) }
R.id.nonroot_switch -> writeToVariantPref("nonroot", R.anim.slide_in_left, R.anim.slide_out_right)
R.id.root_switch ->
if (Shell.rootAccess()) {
writeToVariantPref("root", R.anim.slide_in_right, R.anim.slide_out_left)
} else {
writeToVariantPref("nonroot", R.anim.slide_in_left, R.anim.slide_out_right)
Toast.makeText(activity, activity?.getString(R.string.root_not_granted), Toast.LENGTH_SHORT).show()
}
}
}
private fun writeToVariantPref(variant: String, animIn: Int, animOut: Int) {
val prefs = getDefaultSharedPreferences(activity)
if (prefs.getString("vanced_variant", "nonroot") != variant) {
prefs.edit().putString("vanced_variant", variant).apply()
startActivity(Intent(activity, MainActivity::class.java))
activity?.overridePendingTransition(animIn, animOut)
activity?.finish()
} else
Log.d("VMVariant", "$variant is already selected")
}
}

View File

@ -1,37 +0,0 @@
package com.vanced.manager.core.fragments
import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.RadioButton
import android.widget.RadioGroup
import androidx.navigation.findNavController
import com.vanced.manager.R
import com.vanced.manager.core.base.BaseFragment
open class LanguageInstall : BaseFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val finishButton = view.findViewById<Button>(R.id.vanced_install_finish)
val langGroup = view.findViewById<RadioGroup>(R.id.lang_radiogroup)
val prefs = activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val langPref = prefs?.getString("lang", "en")
val button = langGroup.findViewWithTag<RadioButton>(langPref)
button.isChecked = true
finishButton.setOnClickListener {
val selectedLangId = langGroup.checkedRadioButtonId
val selectedButton = view.findViewById<RadioButton>(selectedLangId)
prefs?.edit()?.putString("lang", selectedButton.tag.toString())?.apply()
prefs?.edit()?.putBoolean("isInstalling", true)?.apply()
prefs?.edit()?.putBoolean("valuesModified", true)?.apply()
view.findNavController().navigate(R.id.action_installTo_homeFragment)
}
}
}

View File

@ -1,34 +0,0 @@
package com.vanced.manager.core.fragments
import android.content.Context
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.RadioButton
import android.widget.RadioGroup
import androidx.navigation.findNavController
import com.vanced.manager.R
import com.vanced.manager.core.base.BaseFragment
open class ThemeInstall : BaseFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val nextButton = view.findViewById<Button>(R.id.vanced_next_to_variant)
val themeGroup = view.findViewById<RadioGroup>(R.id.theme_radiogroup)
val prefs = activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val themePref = prefs?.getString("theme", "dark")
val button = themeGroup.findViewWithTag<RadioButton>(themePref)
button.isChecked = true
nextButton.setOnClickListener {
val selectedThemeId = themeGroup.checkedRadioButtonId
val selectedButton = view.findViewById<RadioButton>(selectedThemeId)
prefs?.edit()?.putString("theme", selectedButton.tag.toString())?.apply()
view.findNavController().navigate(R.id.toInstallLanguageFragment)
}
}
}

View File

@ -29,6 +29,7 @@ class AppInstaller: Service() {
inputStream.close()
outputStream.close()
session.commit(pendingIntent.intentSender)
stopSelf()
return START_NOT_STICKY
}

View File

@ -1,84 +1,44 @@
package com.vanced.manager.core.installer
import android.app.Service
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInstaller
import android.os.IBinder
import android.util.Log
import android.widget.Toast
import androidx.annotation.Nullable
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.vanced.manager.R
import com.vanced.manager.ui.MainActivity
import com.vanced.manager.utils.MiuiHelper
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
import com.vanced.manager.ui.fragments.HomeFragment
import com.vanced.manager.utils.AppUtils.sendFailure
class AppInstallerService: Service() {
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
val notifId = 42
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
Toast.makeText(this, "Installing...", Toast.LENGTH_SHORT).show()
Log.d(TAG, "Requesting user confirmation for installation")
createBasicNotif(getString(R.string.installing_app, "MicroG"), notifId, this)
localBroadcastManager.sendBroadcast(Intent(HomeFragment.MICROG_INSTALLING))
val confirmationIntent = intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
confirmationIntent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
try {
startActivity(confirmationIntent)
} catch (e: Exception) {
Log.d("VMInstall", "Unable to start installation")
}
}
PackageInstaller.STATUS_SUCCESS -> {
Log.d(TAG, "Installation succeed")
getSharedPreferences("installPrefs", Context.MODE_PRIVATE).edit().putBoolean("isInstalling", false).apply()
val mIntent = Intent(MainActivity.INSTALL_COMPLETED)
mIntent.action = MainActivity.INSTALL_COMPLETED
mIntent.putExtra("package", "normal")
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
createBasicNotif(getString(
R.string.successfully_installed,
"Microg"
), notifId, this)
}
else -> {
sendFailure(intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999))
createBasicNotif(
getErrorMessage(intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)),
notifId,
this
)
with(localBroadcastManager) {
sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
sendBroadcast(Intent(HomeFragment.MICROG_INSTALLED))
}
}
else -> sendFailure(intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999), this)
}
stopSelf()
return START_NOT_STICKY
}
private fun sendFailure(status: Int) {
val mIntent = Intent(MainActivity.INSTALL_FAILED)
mIntent.action = MainActivity.INSTALL_FAILED
mIntent.putExtra("errorMsg", getErrorMessage(status))
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
}
private fun getErrorMessage(status: Int): String {
return when (status) {
PackageInstaller.STATUS_FAILURE_ABORTED -> getString(R.string.installation_aborted)
PackageInstaller.STATUS_FAILURE_BLOCKED -> getString(R.string.installation_blocked)
PackageInstaller.STATUS_FAILURE_STORAGE -> getString(R.string.installation_storage)
PackageInstaller.STATUS_FAILURE_INVALID -> getString(R.string.installation_invalid)
PackageInstaller.STATUS_FAILURE_INCOMPATIBLE -> getString(R.string.installation_incompatible)
PackageInstaller.STATUS_FAILURE_CONFLICT -> getString(R.string.installation_conflict)
else ->
if (MiuiHelper.isMiui())
getString(R.string.installation_miui)
else
getString(R.string.installation_failed)
}
}
@Nullable
override fun onBind(intent: Intent?): IBinder? {
return null
}

View File

@ -3,14 +3,16 @@ package com.vanced.manager.core.installer
import android.app.Service
import android.content.Intent
import android.content.pm.PackageInstaller
import android.os.Handler
import android.os.IBinder
import android.util.Log
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.vanced.manager.ui.MainActivity
import com.vanced.manager.ui.fragments.HomeFragment
import kotlinx.coroutines.*
class AppUninstallerService: Service() {
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
val pkgName = intent?.getStringExtra("pkg")
when (intent?.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
@ -23,22 +25,20 @@ class AppUninstallerService: Service() {
} catch (e: Exception) {
}
}
//Delay broadcast until activity (and fragment) show up on screen
PackageInstaller.STATUS_SUCCESS -> {
Handler().postDelayed({
val mIntent = Intent()
mIntent.action = MainActivity.APP_UNINSTALLED
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
CoroutineScope(Dispatchers.IO).launch {
delay(500)
localBroadcastManager.sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
Log.d("VMpm", "Successfully uninstalled $pkgName")
}, 500)
}
}
PackageInstaller.STATUS_FAILURE -> {
Handler().postDelayed({
val mIntent = Intent()
mIntent.action = MainActivity.APP_NOT_UNINSTALLED
mIntent.putExtra("pkgName", pkgName)
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
CoroutineScope(Dispatchers.IO).launch {
delay(500)
localBroadcastManager.sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
Log.d("VMpm", "Failed to uninstall $pkgName")
}, 500)
}
}
}
stopSelf()

View File

@ -1,9 +1,7 @@
package com.vanced.manager.core.installer
import android.app.Service
import android.content.Context
import android.content.Intent
import android.os.AsyncTask
import android.os.Build
import android.os.IBinder
import android.util.Log
@ -11,12 +9,13 @@ import androidx.annotation.Nullable
import androidx.annotation.WorkerThread
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.topjohnwu.superuser.Shell
import com.vanced.manager.R
import com.vanced.manager.ui.MainActivity
import com.vanced.manager.ui.fragments.HomeFragment
import com.vanced.manager.utils.AppUtils.sendFailure
import com.vanced.manager.utils.FileInfo
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import java.io.File
import java.nio.charset.Charset
import java.text.SimpleDateFormat
import java.util.*
import java.util.regex.Pattern
@ -24,15 +23,18 @@ import kotlin.collections.ArrayList
class RootSplitInstallerService: Service() {
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Shell.getShell {
val isRoot = it.isRoot
Log.d("AppLog", "isRoot ?$isRoot ")
AsyncTask.execute {
val apkFilesPath = cacheDir.path
val fileInfoList = getFileInfoList(apkFilesPath)
installSplitApkFiles(fileInfoList)
CoroutineScope(Dispatchers.IO).launch {
val apkFilesPath = getExternalFilesDir("apks")?.path
val fileInfoList = apkFilesPath?.let { it1 -> getFileInfoList(it1) }
if (fileInfoList != null) {
installSplitApkFiles(fileInfoList)
}
}
}
stopSelf()
return START_NOT_STICKY
@ -41,7 +43,6 @@ class RootSplitInstallerService: Service() {
@WorkerThread
private fun installSplitApkFiles(apkFiles: ArrayList<FileInfo>) {
var sessionId: Int?
val notifId = 666
Log.d("AppLog", "installing split apk files:$apkFiles")
run {
val sessionIdResult = Shell.su("pm install-create -r -t").exec().out
@ -50,9 +51,8 @@ class RootSplitInstallerService: Service() {
sessionIdMatcher.find()
sessionId = Integer.parseInt(sessionIdMatcher.group(1)!!)
}
for (apkFile in apkFiles) {
apkFiles.forEach { apkFile ->
Log.d("AppLog", "installing APK : ${apkFile.name} ${apkFile.fileSize} ")
createBasicNotif(getString(R.string.installing_app, "Vanced"), notifId, this)
val command = arrayOf("su", "-c", "pm", "install-write", "-S", "${apkFile.fileSize}", "$sessionId", apkFile.name)
val process: Process = Runtime.getRuntime().exec(command)
val inputPipe = apkFile.getInputStream()
@ -67,28 +67,16 @@ class RootSplitInstallerService: Service() {
throw RuntimeException(e)
}
process.waitFor()
val inputStr = process.inputStream.readBytes().toString(Charset.defaultCharset())
val errStr = process.errorStream.readBytes().toString(Charset.defaultCharset())
val isSucceeded = process.exitValue() == 0
Log.d("AppLog", "isSucceeded?$isSucceeded inputStr:$inputStr errStr:$errStr")
}
Log.d("AppLog", "committing...")
val installResult = Shell.su("pm install-commit $sessionId").exec()
Log.d("AppLog", "succeeded installing?${installResult.isSuccess}")
getSharedPreferences("installPrefs", Context.MODE_PRIVATE).edit().putBoolean("isInstalling", false).apply()
if (installResult.isSuccess) {
val mIntent = Intent(MainActivity.INSTALL_COMPLETED)
mIntent.action = MainActivity.INSTALL_COMPLETED
mIntent.putExtra("package", "split")
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
createBasicNotif(getString(R.string.successfully_installed, "Vanced"), notifId, this)
} else {
val mIntent = Intent(MainActivity.INSTALL_FAILED)
mIntent.action = MainActivity.INSTALL_FAILED
mIntent.putExtra("errorMsg", getString(R.string.installation_signature))
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
createBasicNotif(getString(R.string.installation_signature), notifId, this)
}
with(localBroadcastManager) {
sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
sendBroadcast(Intent(HomeFragment.VANCED_INSTALLED))
}
} else
sendFailure(installResult.out, this)
}
private fun SimpleDateFormat.tryParse(str: String) = try {

View File

@ -21,7 +21,7 @@ class SplitInstaller: Service() {
}
private fun installSplitApk(context: Context): Int {
val apkFolderPath = context.cacheDir.path + "/"
val apkFolderPath = context.getExternalFilesDir("apks")?.path + "/"
val nameSizeMap = HashMap<String, Long>()
var totalSize: Long = 0
var sessionId = 0

View File

@ -1,32 +1,24 @@
package com.vanced.manager.core.installer
import android.app.Notification
import android.app.Service
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInstaller
import android.os.Build
import android.os.IBinder
import android.util.Log
import android.widget.Toast
import androidx.annotation.Nullable
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.vanced.manager.R
import com.vanced.manager.ui.MainActivity
import com.vanced.manager.utils.MiuiHelper.isMiui
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
import com.vanced.manager.ui.fragments.HomeFragment
import com.vanced.manager.utils.AppUtils.sendFailure
class SplitInstallerService: Service() {
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
val notifId = 666
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
Toast.makeText(this, "Installing...", Toast.LENGTH_SHORT).show()
createBasicNotif(getString(R.string.installing_app, "Vanced"), notifId, this)
localBroadcastManager.sendBroadcast(Intent(HomeFragment.VANCED_INSTALLING))
Log.d(TAG, "Requesting user confirmation for installation")
val confirmationIntent =
intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
val confirmationIntent = intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
confirmationIntent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
try {
startActivity(confirmationIntent)
@ -35,71 +27,18 @@ class SplitInstallerService: Service() {
}
PackageInstaller.STATUS_SUCCESS -> {
Log.d(TAG, "Installation succeed")
getSharedPreferences("installPrefs", Context.MODE_PRIVATE).edit().putBoolean("isInstalling", false).apply()
val mIntent = Intent(MainActivity.INSTALL_COMPLETED)
mIntent.action = MainActivity.INSTALL_COMPLETED
mIntent.putExtra("package", "split")
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
createBasicNotif(
getString(R.string.successfully_installed, "Vanced"),
notifId,
this
)
}
else -> {
sendFailure(intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999))
createBasicNotif(
getErrorMessage(intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)),
notifId,
this
)
with(localBroadcastManager) {
sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
sendBroadcast(Intent(HomeFragment.VANCED_INSTALLED))
}
}
else -> sendFailure(intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999), this)
}
stopSelf()
return START_NOT_STICKY
}
private fun sendFailure(status: Int) {
val mIntent = Intent(MainActivity.INSTALL_FAILED)
mIntent.action = MainActivity.INSTALL_FAILED
mIntent.putExtra("errorMsg", getErrorMessage(status))
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
}
private fun getErrorMessage(status: Int): String {
return when (status) {
PackageInstaller.STATUS_FAILURE_ABORTED -> getString(R.string.installation_aborted)
PackageInstaller.STATUS_FAILURE_BLOCKED -> getString(R.string.installation_blocked)
PackageInstaller.STATUS_FAILURE_STORAGE -> getString(R.string.installation_storage)
PackageInstaller.STATUS_FAILURE_INVALID -> getString(R.string.installation_invalid)
PackageInstaller.STATUS_FAILURE_INCOMPATIBLE -> getString(R.string.installation_incompatible)
PackageInstaller.STATUS_FAILURE_CONFLICT -> getString(R.string.installation_conflict)
else ->
if (isMiui())
getString(R.string.installation_miui)
else
getString(R.string.installation_failed)
}
}
private fun startForegroundNotif(text: String) {
val notifBuilder =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
Notification.Builder(this, 666.toString()).setChannelId("69420")
else
Notification.Builder(this).setPriority(Notification.PRIORITY_DEFAULT)
notifBuilder.apply {
setContentTitle(getString(R.string.app_name))
setContentText(text)
setSmallIcon(R.drawable.ic_stat_name)
}
val notif = notifBuilder.build()
startForeground(666, notif)
}
@Nullable
override fun onBind(intent: Intent?): IBinder? {
return null
}

View File

@ -1,49 +1,46 @@
package com.vanced.manager.ui
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.Bundle
import android.util.Log
import android.view.MenuItem
import androidx.appcompat.app.AppCompatActivity
import androidx.databinding.DataBindingUtil
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.navigation.NavDestination
import androidx.navigation.findNavController
import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.setupWithNavController
import androidx.preference.PreferenceManager
import com.crowdin.platform.Crowdin
import com.crowdin.platform.LoadingStateListener
import com.google.firebase.messaging.FirebaseMessaging
import com.vanced.manager.R
import com.vanced.manager.core.Main
import com.vanced.manager.databinding.ActivityMainBinding
import com.vanced.manager.ui.dialogs.DialogContainer.installAlertBuilder
import com.vanced.manager.ui.dialogs.DialogContainer.launchVanced
import com.vanced.manager.ui.dialogs.DialogContainer.regularPackageInstalled
import com.vanced.manager.ui.dialogs.DialogContainer
import com.vanced.manager.ui.fragments.UpdateCheckFragment
import com.vanced.manager.utils.AppUtils.installing
import com.vanced.manager.utils.InternetTools
import com.vanced.manager.utils.PackageHelper
import com.vanced.manager.utils.ThemeHelper.setFinalTheme
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MainActivity : Main() {
class MainActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private val navHost by lazy { findNavController(R.id.bottom_nav_host) }
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
private val broadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
when (intent.action) {
INSTALL_COMPLETED -> {
if (intent.getStringExtra("package") == "split")
launchVanced(this@MainActivity)
else
regularPackageInstalled(getString(R.string.successfully_installed, "MicroG"), this@MainActivity)
}
INSTALL_FAILED -> installAlertBuilder(intent.getStringExtra("errorMsg") as String, this@MainActivity)
APP_UNINSTALLED -> {
restartActivity()
Log.d("VMpm", "test")
}
APP_NOT_UNINSTALLED -> installAlertBuilder(getString(R.string.failed_uninstall, intent.getStringExtra("pkgName")), this@MainActivity)
}
private val loadingObserver = object : LoadingStateListener {
val tag = "VMLocalisation"
override fun onDataChanged() {
Log.d(tag, "Loaded data")
}
override fun onFailure(throwable: Throwable) {
Log.d(tag, "Failed to load data")
}
}
override fun onCreate(savedInstanceState: Bundle?) {
@ -61,21 +58,26 @@ class MainActivity : Main() {
navHost.addOnDestinationChangedListener { _, currFrag: NavDestination, _ ->
setDisplayHomeAsUpEnabled(currFrag.id != R.id.home_fragment)
}
initDialogs()
}
override fun onPause() {
super.onPause()
localBroadcastManager.unregisterReceiver(broadcastReceiver)
Crowdin.unregisterDataLoadingObserver(loadingObserver)
}
override fun onResume() {
setFinalTheme(this)
super.onResume()
registerReceivers()
Crowdin.registerDataLoadingObserver(loadingObserver)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
val navHost = findNavController(R.id.bottom_nav_host)
if (installing) {
return false
}
when (item.itemId) {
android.R.id.home -> {
onBackPressed()
@ -95,34 +97,57 @@ class MainActivity : Main() {
}
else -> super.onOptionsItemSelected(item)
}
return false
}
private fun setDisplayHomeAsUpEnabled(isNeeded: Boolean) {
binding.homeToolbar.navigationIcon = if (isNeeded) getDrawable(R.drawable.ic_keyboard_backspace_black_24dp) else null
}
private fun registerReceivers() {
val intentFilter = IntentFilter()
intentFilter.addAction(INSTALL_COMPLETED)
intentFilter.addAction(INSTALL_FAILED)
intentFilter.addAction(APP_UNINSTALLED)
intentFilter.addAction(APP_NOT_UNINSTALLED)
localBroadcastManager.registerReceiver(broadcastReceiver, intentFilter)
override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(Crowdin.wrapContext(newBase))
}
fun restartActivity() {
startActivity(Intent(this@MainActivity, MainActivity::class.java))
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
finish()
private fun initDialogs() {
val prefs = PreferenceManager.getDefaultSharedPreferences(this)
val variant = prefs.getString("vanced_variant", "nonroot")
val showRootDialog = prefs.getBoolean("show_root_dialog", true)
when {
prefs.getBoolean("firstStart", true) -> {
DialogContainer.showSecurityDialog(this)
with(FirebaseMessaging.getInstance()) {
subscribeToTopic("Vanced-Update")
subscribeToTopic("MicroG-Update")
}
}
!prefs.getBoolean("statement", true) -> DialogContainer.statementFalse(this)
variant == "root" -> {
if (showRootDialog)
DialogContainer.showRootDialog(this)
if (PackageHelper.getPackageVersionName(
"com.google.android.youtube",
packageManager
) == "14.21.54")
DialogContainer.basicDialog(
getString(R.string.hold_on),
getString(R.string.magisk_vanced),
this
)
}
}
checkUpdates()
}
companion object {
const val INSTALL_COMPLETED = "install_completed"
const val INSTALL_FAILED = "install_failed"
const val APP_UNINSTALLED = "app_uninstalled"
const val APP_NOT_UNINSTALLED = "app_not_installed"
private fun checkUpdates() {
CoroutineScope(Dispatchers.Main).launch {
if (InternetTools.isUpdateAvailable()) {
UpdateCheckFragment().show(supportFragmentManager, "UpdateCheck")
}
}
}
}

View File

@ -2,9 +2,10 @@ package com.vanced.manager.ui.core
import android.content.Context
import android.util.AttributeSet
import androidx.core.widget.NestedScrollView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
open class SlidingSwipeRefreshLayout : SwipeRefreshLayout {
open class SlidingNestedScrollView : NestedScrollView {
constructor(context: Context?) : super(context!!)
constructor(context: Context?, attrs: AttributeSet?) : super(
context!!,

View File

@ -3,13 +3,11 @@ package com.vanced.manager.ui.core
import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.vanced.manager.R
import com.vanced.manager.ui.MainActivity
class SplashScreenActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
setTheme(R.style.SplashTheme)
super.onCreate(savedInstanceState)
startActivity(Intent(this@SplashScreenActivity, MainActivity::class.java))

View File

@ -4,142 +4,165 @@ import android.app.Activity
import android.content.ComponentName
import android.content.Context
import android.content.Intent
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat.startActivity
import androidx.preference.PreferenceManager
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.vanced.manager.R
import com.vanced.manager.ui.MainActivity
import com.vanced.manager.core.downloader.VancedDownloadService
import com.vanced.manager.core.installer.SplitInstaller
import com.vanced.manager.utils.InternetTools.openUrl
import com.vanced.manager.utils.MiuiHelper
object DialogContainer {
fun showSecurityDialog(context: Context) {
AlertDialog.Builder(context)
.setTitle(context.resources.getString(R.string.welcome))
.setMessage(context.resources.getString(R.string.security_context))
.setCancelable(false)
.setPositiveButton(context.resources.getString(R.string.close)) { dialog, _ ->
run {
dialog.dismiss()
if (MiuiHelper.isMiui()) {
showMiuiDialog(context)
}
MaterialAlertDialogBuilder(context).apply {
setTitle(context.resources.getString(R.string.welcome))
setMessage(context.resources.getString(R.string.security_context))
setPositiveButton(context.resources.getString(R.string.close)) { dialog, _ ->
dialog.dismiss()
}
setOnDismissListener {
if (MiuiHelper.isMiui()) {
showMiuiDialog(context)
}
}
.create()
.show()
setOnCancelListener {
if (MiuiHelper.isMiui()) {
showMiuiDialog(context)
}
}
create()
show()
}
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
prefs.edit().putBoolean("firstStart", false).apply()
}
private fun showMiuiDialog(context: Context) {
AlertDialog.Builder(context)
.setTitle(context.getString(R.string.miui_one_title))
.setMessage(context.getString(R.string.miui_one))
.setPositiveButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
.setNeutralButton(context.getString(R.string.guide)) { _, _ ->
openUrl("https://telegra.ph/How-to-install-v15-on-MIUI-02-11", R.color.Telegram, context)
MaterialAlertDialogBuilder(context).apply {
setTitle(context.getString(R.string.miui_one_title))
setMessage(context.getString(R.string.miui_one))
setNeutralButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
setPositiveButton(context.getString(R.string.guide)) { _, _ ->
openUrl(
"https://telegra.ph/How-to-install-v15-on-MIUI-02-11",
R.color.Telegram,
context
)
}
.create()
.show()
setCancelable(false)
create()
show()
}
}
//TODO
fun installOrDownload(context: Context) {
MaterialAlertDialogBuilder(context).apply {
setTitle("")
setMessage("")
setNegativeButton("") { dialog, _ ->
context.startService(Intent(context, VancedDownloadService::class.java))
dialog.dismiss()
}
setPositiveButton(context.getString(R.string.button_reinstall)) { dialog, _ ->
context.startService(Intent(context, SplitInstaller::class.java))
dialog.dismiss()
}
}
}
fun showRootDialog(activity: Activity) {
AlertDialog.Builder(activity)
.setTitle(activity.getString(R.string.hold_on))
.setMessage(activity.getString(R.string.disable_signature))
.setPositiveButton(activity.getString(R.string.button_dismiss)) { dialog, _ ->
MaterialAlertDialogBuilder(activity).apply {
setTitle(activity.getString(R.string.hold_on))
setMessage(activity.getString(R.string.disable_signature))
setNeutralButton(activity.getString(R.string.button_dismiss)) { dialog, _ ->
dialog.dismiss()
}
.setNeutralButton(activity.getString(R.string.guide)) { _, _ ->
openUrl("https://lmgtfy.com/?q=andnixsh+apk+verification+disable", R.color.Twitter, activity)
setPositiveButton(activity.getString(R.string.guide)) { _, _ ->
openUrl(
"https://lmgtfy.com/?q=andnixsh+apk+verification+disable",
R.color.Twitter,
activity
)
}
.setOnDismissListener { PreferenceManager.getDefaultSharedPreferences(activity).edit().putBoolean("show_root_dialog", false).apply() }
.create()
.show()
setCancelable(false)
create()
show()
}
PreferenceManager.getDefaultSharedPreferences(activity).edit()
.putBoolean("show_root_dialog", false).apply()
}
//Easter Egg
fun statementFalse(context: Context) {
AlertDialog.Builder(context)
.setTitle("Wait what?")
.setMessage("So this statement is false huh? I'll go with True!")
.setPositiveButton("wut?") { dialog, _ -> dialog.dismiss() }
.create()
.show()
MaterialAlertDialogBuilder(context).apply {
setTitle("Wait what?")
setMessage("So this statement is false huh? I'll go with True!")
setPositiveButton("wut?") { dialog, _ -> dialog.dismiss() }
create()
show()
}
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
prefs.edit().putBoolean("statement", true).apply()
}
fun installAlertBuilder(msg: String, context: Context) {
AlertDialog.Builder(context).apply {
MaterialAlertDialogBuilder(context).apply {
setTitle(context.getString(R.string.error))
setMessage(msg)
setPositiveButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
when (msg) {
context.getString(R.string.installation_signature) -> {
setNeutralButton(context.getString(R.string.guide)) { _, _ ->
setPositiveButton(context.getString(R.string.guide)) { _, _ ->
openUrl("https://lmgtfy.com/?q=andnixsh+apk+verification+disable", R.color.Twitter, context)
}
setNeutralButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
}
context.getString(R.string.installation_miui) -> {
setNeutralButton(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)
}
setNeutralButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
}
else -> setPositiveButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
}
create()
show()
}
}
fun regularPackageInstalled(msg: String, activity: MainActivity) {
AlertDialog.Builder(activity)
.setTitle(activity.getString(R.string.success))
.setMessage(msg)
.setPositiveButton(activity.getString(R.string.close)) { _, _ -> activity.restartActivity() }
.setCancelable(false)
.create()
.show()
}
fun basicDialog(title: String, msg: String, activity: Activity) {
AlertDialog.Builder(activity)
.setTitle(title)
.setMessage(msg)
.setPositiveButton(activity.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
.create()
.show()
MaterialAlertDialogBuilder(activity).apply {
setTitle(title)
setMessage(msg)
setPositiveButton(activity.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
create()
show()
}
}
fun launchVanced(activity: MainActivity) {
fun launchVanced(activity: Activity) {
val intent = Intent()
intent.component =
if (PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "nonroot") == "root")
ComponentName("com.google.android.youtube", "com.google.android.youtube.HomeActivity")
else
ComponentName("com.vanced.android.youtube", "com.google.android.youtube.HomeActivity")
AlertDialog.Builder(activity)
.setTitle(activity.getString(R.string.success))
.setMessage(activity.getString(R.string.vanced_installed))
.setPositiveButton(activity.getString(R.string.launch)) { _, _ ->
MaterialAlertDialogBuilder(activity).apply {
setTitle(activity.getString(R.string.success))
setMessage(activity.getString(R.string.vanced_installed))
setPositiveButton(activity.getString(R.string.launch)) { _, _ ->
run {
startActivity(activity, intent, null)
activity.finish()
}
}
.setNegativeButton(activity.getString(R.string.close)) { dialog, _ ->
run {
dialog.dismiss()
activity.restartActivity()
}
}
.setCancelable(false)
.create()
.show()
setNegativeButton(activity.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
create()
show()
}
}
}

View File

@ -1,19 +1,25 @@
package com.vanced.manager.ui.fragments
import android.annotation.SuppressLint
import android.os.Bundle
import android.view.LayoutInflater
import android.view.MotionEvent
import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.preference.PreferenceManager
import com.vanced.manager.R
import com.vanced.manager.core.fragments.About
import com.vanced.manager.databinding.FragmentAboutBinding
import com.vanced.manager.ui.viewmodels.AboutViewModel
class AboutFragment : About() {
class AboutFragment : Fragment() {
private lateinit var binding: FragmentAboutBinding
private var count = 0
private var startMillSec: Long = 0
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@ -24,11 +30,39 @@ class AboutFragment : About() {
return binding.root
}
@SuppressLint("ClickableViewAccessibility")
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val viewModel: AboutViewModel by viewModels()
binding.viewModel = viewModel
}
view.setOnTouchListener { _, event: MotionEvent ->
val eventAction = event.action
if (eventAction == MotionEvent.ACTION_UP) {
val time = System.currentTimeMillis()
if (startMillSec == 0L || time - startMillSec > 3000) {
startMillSec = time
count = 1
} else {
count++
}
if (count == 5) {
val prefs = PreferenceManager.getDefaultSharedPreferences(requireContext())
val devSettings = prefs.getBoolean("devSettings", false)
if (!devSettings) {
Toast.makeText(requireContext(), "Dev options unlocked!", Toast.LENGTH_SHORT).show()
prefs.edit().putBoolean("devSettings", true).apply()
} else
Toast.makeText(requireContext(), "Dev options already unlocked", Toast.LENGTH_SHORT).show()
}
return@setOnTouchListener true
}
false
}
}
}

View File

@ -12,6 +12,7 @@ import androidx.databinding.DataBindingUtil
import androidx.fragment.app.DialogFragment
import com.vanced.manager.R
import com.vanced.manager.databinding.FragmentChosenPreferencesBinding
import java.util.*
class ChosenPreferenceDialogFragment : DialogFragment() {
@ -26,13 +27,21 @@ class ChosenPreferenceDialogFragment : DialogFragment() {
return binding.root
}
@ExperimentalStdlibApi
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val prefs = requireActivity().getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
binding.chosenTheme.text = requireActivity().getString(R.string.chosen_theme, prefs.getString("theme", "dark"))
binding.chosenLang.text = requireActivity().getString(R.string.chosen_lang, prefs.getString("lang", "en"))
val langPrefs = prefs.getString("lang", "en")?.split(", ")?.toTypedArray()
val newPrefs = mutableListOf<String>()
if (langPrefs != null) {
for (lang in langPrefs) {
val loc = Locale(lang)
newPrefs.add(loc.getDisplayLanguage(loc).capitalize(Locale.ROOT))
}
}
binding.chosenTheme.text = requireActivity().getString(R.string.chosen_theme, prefs.getString("theme", "dark")?.capitalize(Locale.ROOT))
binding.chosenLang.text = requireActivity().getString(R.string.chosen_lang, newPrefs.joinToString())
binding.chosenPrefsClose.setOnClickListener { dismiss() }
binding.chosenPrefsReset.setOnClickListener {

View File

@ -1,14 +1,23 @@
package com.vanced.manager.ui.fragments
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.appcompat.app.AlertDialog
import androidx.core.content.FileProvider
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
import com.downloader.OnDownloadListener
import com.downloader.PRDownloader
import com.vanced.manager.R
import com.vanced.manager.ui.MainActivity
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import java.io.File
class DevSettingsFragment: PreferenceFragmentCompat() {
@ -45,5 +54,43 @@ class DevSettingsFragment: PreferenceFragmentCompat() {
archPref?.summary = "32bit"
}
val forceUpdate: Preference? = findPreference("force_update")
forceUpdate?.setOnPreferenceClickListener {
runBlocking {
launch {
val url = "https://github.com/YTVanced/VancedManager/releases/latest/download/manager.apk"
//downloadId = activity?.let { download(url, "apk", "manager.apk", it) }!!
PRDownloader.download(url, activity?.getExternalFilesDir("apk")?.path, "manager.apk")
.build()
.start(object : OnDownloadListener {
override fun onDownloadComplete() {
activity?.let {
val apk = File("${activity?.getExternalFilesDir("apk")?.path}/manager.apk")
val uri =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
FileProvider.getUriForFile(activity!!, "${activity?.packageName}.provider", apk)
else
Uri.fromFile(apk)
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri, "application/vnd.android.package-archive")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
startActivity(intent)
}
}
override fun onError(error: com.downloader.Error?) {
Toast.makeText(activity, error.toString(), Toast.LENGTH_SHORT).show()
Log.e("VMUpgrade", error.toString())
}
})
}
}
true
}
}
}

View File

@ -1,24 +1,33 @@
package com.vanced.manager.ui.fragments
import android.content.*
import android.content.res.ColorStateList
import android.graphics.Color
import android.os.Bundle
import android.util.Log
import android.view.*
import android.view.animation.AccelerateDecelerateInterpolator
import android.widget.Toast
import androidx.databinding.DataBindingUtil
import androidx.fragment.app.Fragment
import androidx.fragment.app.viewModels
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.navigation.findNavController
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.tabs.TabLayoutMediator
import com.topjohnwu.superuser.Shell
import com.vanced.manager.R
import com.vanced.manager.adapter.*
import com.vanced.manager.core.fragments.Home
import com.vanced.manager.core.downloader.MicrogDownloadService
import com.vanced.manager.core.downloader.VancedDownloadService
import com.vanced.manager.databinding.FragmentHomeBinding
import com.vanced.manager.ui.MainActivity
import com.vanced.manager.ui.dialogs.DialogContainer.installAlertBuilder
import com.vanced.manager.ui.dialogs.DialogContainer.launchVanced
import com.vanced.manager.ui.viewmodels.HomeViewModel
import com.vanced.manager.utils.AppUtils.installing
import com.vanced.manager.utils.PackageHelper
class HomeFragment : Home() {
class HomeFragment : Fragment(), View.OnClickListener {
private lateinit var binding: FragmentHomeBinding
private var isExpanded: Boolean = false
@ -26,8 +35,8 @@ class HomeFragment : Home() {
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(requireActivity()) }
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
requireActivity().title = getString(R.string.title_home)
setHasOptionsMenu(true)
@ -39,38 +48,127 @@ class HomeFragment : Home() {
super.onViewCreated(view, savedInstanceState)
binding.viewModel = viewModel
val variantPref = getDefaultSharedPreferences(activity).getString("vanced_variant", "nonroot")
registerReceivers()
val variantPref = getDefaultSharedPreferences(requireActivity()).getString("vanced_variant", "nonroot")
if (variantPref == "root")
attachRootChangelog()
else {
attachNonrootChangelog()
if (!viewModel.microgInstalled) {
disableVancedButton()
}
}
with(binding) {
rootSwitch.setOnClickListener(this@HomeFragment)
nonrootSwitch.setOnClickListener(this@HomeFragment)
binding.includeChangelogsLayout.changelogButton.setOnClickListener {
cardExpandCollapse()
includeVancedLayout.vancedInstallbtn.setOnClickListener(this@HomeFragment)
includeVancedLayout.vancedUninstallbtn.setOnClickListener(this@HomeFragment)
includeMicrogLayout.microgInstallbtn.setOnClickListener(this@HomeFragment)
includeMicrogLayout.microgUninstallbtn.setOnClickListener(this@HomeFragment)
includeChangelogsLayout.changelogButton.setOnClickListener(this@HomeFragment)
}
binding.includeVancedLayout.vancedCard.setOnLongClickListener {
val clip = requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
clip.setPrimaryClip(ClipData.newPlainText("vanced", this.viewModel.vancedInstalledVersion.value))
versionToast("Vanced")
versionToast("Vanced", viewModel.vancedInstalledVersion.get())
true
}
binding.includeMicrogLayout.microgCard.setOnLongClickListener {
val clip = requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
clip.setPrimaryClip(ClipData.newPlainText("microg", viewModel.microgInstalledVersion.value))
versionToast("MicroG")
versionToast("MicroG", viewModel.microgInstalledVersion.get())
true
}
with(binding.includeChangelogsLayout) {
viewpager.adapter = if (variantPref == "root") SectionPageRootAdapter(this@HomeFragment) else SectionPageAdapter(this@HomeFragment)
TabLayoutMediator(tablayout, viewpager) { tab, position ->
if (variantPref == "root")
when (position) {
0 -> tab.text = "Vanced"
1 -> tab.text = "Manager"
}
else
when (position) {
0 -> tab.text = "Vanced"
1 -> tab.text = "MicroG"
2 -> tab.text = "Manager"
}
}.attach()
}
}
override fun onClick(v: View?) {
val prefs = requireActivity().getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
val variant = getDefaultSharedPreferences(requireActivity()).getString("vanced_variant", "nonroot")
val vancedPkgName =
if (variant == "root") {
"com.google.android.youtube"
} else {
"com.vanced.android.youtube"
}
when (v?.id) {
R.id.vanced_installbtn -> {
if (!installing) {
if (!viewModel.fetching.get()!!) {
if (variant == "nonroot" && !viewModel.microgInstalled.get()!!) {
Snackbar.make(
binding.homeRefresh,
R.string.no_microg,
Snackbar.LENGTH_LONG
)
.setAction(R.string.install) {
requireActivity().startService(
Intent(
requireActivity(),
MicrogDownloadService::class.java
)
)
}.show()
} else {
if (prefs?.getBoolean("valuesModified", false)!!) {
requireActivity().startService(
Intent(
requireActivity(),
VancedDownloadService::class.java
)
)
} else {
view?.findNavController()?.navigate(R.id.toInstallThemeFragment)
}
}
}
} else
Toast.makeText(requireActivity(), R.string.installation_wait, Toast.LENGTH_SHORT).show()
}
R.id.microg_installbtn -> {
if (!installing)
requireActivity().startService(Intent(requireActivity(), MicrogDownloadService::class.java))
else
Toast.makeText(requireActivity(), R.string.installation_wait, Toast.LENGTH_SHORT).show()
}
R.id.microg_uninstallbtn -> PackageHelper.uninstallApk("com.mgoogle.android.gms", requireActivity())
R.id.vanced_uninstallbtn -> PackageHelper.uninstallApk(vancedPkgName, requireActivity())
R.id.nonroot_switch -> writeToVariantPref("nonroot", R.anim.slide_in_left, R.anim.slide_out_right)
R.id.root_switch ->
if (Shell.rootAccess()) {
writeToVariantPref("root", R.anim.slide_in_right, R.anim.slide_out_left)
} else {
writeToVariantPref("nonroot", R.anim.slide_in_left, R.anim.slide_out_right)
Toast.makeText(requireActivity(), activity?.getString(R.string.root_not_granted), Toast.LENGTH_SHORT).show()
}
R.id.changelog_button -> cardExpandCollapse()
}
}
private fun versionToast(name: String) {
private fun writeToVariantPref(variant: String, animIn: Int, animOut: Int) {
val prefs = getDefaultSharedPreferences(activity)
if (prefs.getString("vanced_variant", "nonroot") != variant) {
prefs.edit().putString("vanced_variant", variant).apply()
startActivity(Intent(activity, MainActivity::class.java))
activity?.overridePendingTransition(animIn, animOut)
activity?.finish()
} else
Log.d("VMVariant", "$variant is already selected")
}
private fun versionToast(name: String, app: String?) {
val clip = requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
clip.setPrimaryClip(ClipData.newPlainText(name, app))
Toast.makeText(activity, getString(R.string.version_toast, name), Toast.LENGTH_LONG).show()
}
@ -91,15 +189,64 @@ class HomeFragment : Home() {
super.onPause()
}
override fun onResume() {
super.onResume()
registerReceivers()
}
private val broadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
when (intent.action) {
MICROG_DOWNLOADED -> {
binding.includeMicrogLayout.microgInstalling.visibility = View.VISIBLE
//activity?.let { installApp(it, it.filesDir.path + "/microg.apk", "com.mgoogle.android.gms") }
VANCED_DOWNLOADING -> {
with(binding.includeVancedLayout) {
vancedDownloading.visibility = View.VISIBLE
vancedDownloading.progress = intent.getIntExtra("progress", 0)
vancedDownloadingTxt.visibility = View.VISIBLE
vancedDownloadingTxt.text = requireActivity().getString(R.string.downloading_file, intent.getStringExtra("file"))
}
}
VANCED_DOWNLOADED -> {
binding.includeVancedLayout.vancedInstalling.visibility = View.VISIBLE
MICROG_DOWNLOADING -> {
with(binding.includeMicrogLayout) {
microgDownloading.visibility = View.VISIBLE
microgDownloading.progress = intent.getIntExtra("progress", 0)
microgDownloadingTxt.visibility = View.VISIBLE
microgDownloadingTxt.text = requireActivity().getString(R.string.downloading_file, "microg.apk")
}
}
MICROG_INSTALLING -> {
with (binding.includeMicrogLayout) {
microgDownloading.visibility = View.GONE
microgDownloadingTxt.visibility = View.GONE
microgInstalling.visibility = View.VISIBLE
}
}
VANCED_INSTALLING -> {
with (binding.includeVancedLayout) {
vancedDownloading.visibility = View.GONE
vancedDownloadingTxt.visibility = View.GONE
vancedInstalling.visibility = View.VISIBLE
}
}
VANCED_INSTALLED -> {
binding.includeVancedLayout.vancedInstalling.visibility = View.GONE
launchVanced(requireActivity())
installing = false
}
MICROG_INSTALLED -> {
binding.includeMicrogLayout.microgInstalling.visibility = View.GONE
installing = false
}
INSTALL_FAILED -> {
with(binding) {
includeMicrogLayout.microgInstalling.visibility = View.GONE
includeVancedLayout.vancedInstalling.visibility = View.GONE
}
installAlertBuilder(intent.getStringExtra("errorMsg") as String, requireActivity())
installing = false
}
REFRESH_HOME -> {
Log.d("VMRefresh", "Refreshing home page")
viewModel.fetchData()
}
}
}
@ -107,55 +254,31 @@ class HomeFragment : Home() {
private fun registerReceivers() {
val intentFilter = IntentFilter()
intentFilter.addAction(VANCED_DOWNLOADED)
intentFilter.addAction(MICROG_DOWNLOADED)
intentFilter.addAction(VANCED_DOWNLOADING)
intentFilter.addAction(MICROG_DOWNLOADING)
intentFilter.addAction(VANCED_INSTALLING)
intentFilter.addAction(MICROG_INSTALLING)
intentFilter.addAction(VANCED_INSTALLED)
intentFilter.addAction(MICROG_INSTALLED)
intentFilter.addAction(REFRESH_HOME)
intentFilter.addAction(INSTALL_FAILED)
localBroadcastManager.registerReceiver(broadcastReceiver, intentFilter)
}
private fun attachNonrootChangelog() {
val sectionPageRootAdapter = SectionPageAdapter(this)
with(binding.includeChangelogsLayout) {
viewpager.adapter = sectionPageRootAdapter
TabLayoutMediator(tablayout, viewpager) { tab, position ->
when (position) {
0 -> tab.text = "Vanced"
1 -> tab.text = "MicroG"
2 -> tab.text = "Manager"
}
}.attach()
}
}
private fun attachRootChangelog() {
val sectionPageRootAdapter = SectionPageRootAdapter(this)
with(binding.includeChangelogsLayout) {
viewpager.adapter = sectionPageRootAdapter
TabLayoutMediator(tablayout, viewpager) { tab, position ->
when (position) {
0 -> tab.text = "Vanced"
1 -> tab.text = "Manager"
}
}.attach()
}
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.toolbar_menu, menu)
super.onCreateOptionsMenu(menu, inflater)
}
private fun disableVancedButton() {
binding.includeVancedLayout.vancedInstallbtn.apply {
icon = null
isEnabled = false
backgroundTintList = ColorStateList.valueOf(Color.DKGRAY)
setTextColor(ColorStateList.valueOf(Color.GRAY))
}
}
companion object {
const val VANCED_DOWNLOADED = "vanced_downloaded"
const val MICROG_DOWNLOADED = "microg_downloaded"
const val VANCED_DOWNLOADING = "vanced_downloading"
const val MICROG_DOWNLOADING = "microg_downloading"
const val VANCED_INSTALLING = "vanced_installing"
const val MICROG_INSTALLING = "microg_installing"
const val VANCED_INSTALLED = "vanced_installed"
const val MICROG_INSTALLED = "microg_installed"
const val INSTALL_FAILED = "install_failed"
const val REFRESH_HOME = "refresh_home"
}
}

View File

@ -6,8 +6,11 @@ import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.Fragment
import com.dezlum.codelabs.getjson.GetJson
import com.vanced.manager.R
import com.vanced.manager.utils.InternetTools
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class ManagerChangelogFragment : Fragment() {
@ -20,13 +23,9 @@ class ManagerChangelogFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val changelogTxt = view.findViewById<TextView>(R.id.manager_changelog)
if (GetJson().isConnected(activity)) {
val checkUrl = GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/manager.json")
val changelog = checkUrl.get("changelog").asString
changelogTxt.text = changelog
CoroutineScope(Dispatchers.Main).launch {
val changelog = InternetTools.getObjectFromJson("https://x1nto.github.io/VancedFiles/manager.json", "changelog")
view.findViewById<TextView>(R.id.manager_changelog).text = changelog
}
}
}

View File

@ -6,8 +6,12 @@ import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.Fragment
import com.dezlum.codelabs.getjson.GetJson
import androidx.preference.PreferenceManager
import com.vanced.manager.R
import com.vanced.manager.utils.InternetTools
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class MicrogChangelogFragment : Fragment() {
@ -20,13 +24,9 @@ class MicrogChangelogFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val changelogTxt = view.findViewById<TextView>(R.id.microg_changelog)
if (GetJson().isConnected(activity)) {
val checkUrl = GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/microg.json")
val changelog = checkUrl.get("changelog").asString
changelogTxt.text = changelog
CoroutineScope(Dispatchers.Main).launch {
val baseUrl = PreferenceManager.getDefaultSharedPreferences(activity).getString("install_url", InternetTools.baseUrl)
view.findViewById<TextView>(R.id.microg_changelog).text = InternetTools.getObjectFromJson("$baseUrl/microg.json", "changelog")
}
}
}

View File

@ -3,11 +3,11 @@ package com.vanced.manager.ui.fragments
import android.os.Bundle
import android.view.Menu
import android.view.MenuInflater
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
import android.widget.Toast
import androidx.preference.*
import com.google.firebase.messaging.FirebaseMessaging
import com.vanced.manager.R
import java.io.File
class SettingsFragment : PreferenceFragmentCompat() {
@ -17,57 +17,88 @@ class SettingsFragment : PreferenceFragmentCompat() {
activity?.title = getString(R.string.title_settings)
setHasOptionsMenu(true)
val updateCheck: Preference? = findPreference("update_check")
updateCheck?.setOnPreferenceClickListener {
val fm = childFragmentManager.beginTransaction()
val updateDialog = UpdateCheckFragment()
updateDialog.show(fm, "Update Center")
findPreference<Preference>("update_check")?.setOnPreferenceClickListener {
UpdateCheckFragment().show(childFragmentManager.beginTransaction(), "Update Center")
true
}
val themeSwitch: ListPreference? = findPreference("theme_mode")
findPreference<SwitchPreference>("vanced_notifs")?.apply {
title = getString(R.string.push_notifications, "Vanced")
summary = getString(R.string.push_notifications_summary, "Vanced")
setOnPreferenceChangeListener { _, newValue ->
when (newValue) {
true -> FirebaseMessaging.getInstance().subscribeToTopic("Vanced-Update")
false -> FirebaseMessaging.getInstance().unsubscribeFromTopic("Vanced-Update")
}
true
}
}
findPreference<SwitchPreference>("microg_notifs")?.apply {
title = getString(R.string.push_notifications, "microG")
summary = getString(R.string.push_notifications_summary, "microG")
setOnPreferenceChangeListener { _, newValue ->
when (newValue) {
true -> FirebaseMessaging.getInstance().subscribeToTopic("MicroG-Update")
false -> FirebaseMessaging.getInstance().unsubscribeFromTopic("MicroG-Update")
}
true
}
}
val themePref = preferenceScreen.sharedPreferences.getString("theme_mode", "Follow System")
themeSwitch?.summary =
when (themePref) {
"Light" -> getString(R.string.theme_light)
"Dark" -> getString(R.string.theme_dark)
"Follow System" -> getString(R.string.theme_follow)
else -> ""
findPreference<ListPreference>("theme_mode")?.apply {
summary = when (themePref) {
"Light" -> getString(R.string.theme_light)
"Dark" -> getString(R.string.theme_dark)
else -> getString(R.string.theme_follow)
}
setOnPreferenceChangeListener { _, newValue ->
if (themePref != newValue) {
requireActivity().recreate()
return@setOnPreferenceChangeListener true
}
false
}
themeSwitch?.setOnPreferenceChangeListener { _, _ ->
activity?.recreate()
true
}
val accentSwitch: ListPreference? = findPreference("accent_color")
val accentPref = preferenceScreen.sharedPreferences.getString("accent_color", "Blue")
accentSwitch?.summary =
when (accentPref) {
"Blue" -> getString(R.string.accent_blue)
"Red" -> getString(R.string.accent_red)
"Green" -> getString(R.string.accent_green)
"Yellow" -> getString(R.string.accent_yellow)
"Purple" -> getString(R.string.accent_purple)
else -> ""
findPreference<ListPreference>("accent_color")?.apply {
summary = when (accentPref) {
"Blue" -> getString(R.string.accent_blue)
"Red" -> getString(R.string.accent_red)
"Green" -> getString(R.string.accent_green)
"Yellow" -> getString(R.string.accent_yellow)
else -> getString(R.string.accent_purple)
}
setOnPreferenceChangeListener { _, newValue ->
if (accentPref != newValue) {
requireActivity().recreate()
return@setOnPreferenceChangeListener true
}
false
}
accentSwitch?.setOnPreferenceChangeListener { _, _ ->
activity?.recreate()
}
findPreference<Preference>("vanced_chosen_modes")?.setOnPreferenceClickListener {
ChosenPreferenceDialogFragment().show(childFragmentManager.beginTransaction(), "Chosen Preferences")
true
}
val chosenPrefs: Preference? = findPreference("vanced_chosen_modes")
chosenPrefs?.setOnPreferenceClickListener {
val fm = childFragmentManager.beginTransaction()
val chosenPrefsDialog = ChosenPreferenceDialogFragment()
chosenPrefsDialog.show(fm, "Chosen Preferences")
findPreference<Preference>("install_url")?.setOnPreferenceClickListener {
URLChangeFragment().show(childFragmentManager.beginTransaction(), "Install URL")
true
}
val installUrl: Preference? = findPreference("install_url")
installUrl?.setOnPreferenceClickListener {
val fm = childFragmentManager.beginTransaction()
val chosenPrefsDialog = URLChangeFragment()
chosenPrefsDialog.show(fm, "Install URL")
findPreference<Preference>("clear_files")?.setOnPreferenceClickListener {
with(requireActivity()) {
listOf("apk", "apks").forEach { dir ->
File(getExternalFilesDir(dir)?.path as String).deleteRecursively()
}
Toast.makeText(this, getString(R.string.cleared_files), Toast.LENGTH_SHORT).show()
}
true
}

View File

@ -7,6 +7,7 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.EditText
import android.widget.TextView
import androidx.fragment.app.DialogFragment
import androidx.preference.PreferenceManager
import com.google.android.material.button.MaterialButton
@ -29,9 +30,16 @@ class URLChangeFragment : DialogFragment() {
super.onViewCreated(view, savedInstanceState)
val urlField = view.findViewById<EditText>(R.id.url_input)
val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
urlField.hint = prefs.getString("install_url", baseUrl)
urlField.setText(prefs.getString("install_url", baseUrl), TextView.BufferType.EDITABLE)
view.findViewById<MaterialButton>(R.id.url_save).setOnClickListener {
prefs.edit().putString("install_url", urlField.text.toString()).apply()
val finalUrl =
if (urlField.text.startsWith("https://") || urlField.text.startsWith("http://"))
urlField.text.removeSuffix("/").toString()
else
"https://${urlField.text}".removeSuffix("/")
prefs.edit().putString("install_url", finalUrl).apply()
dismiss()
}
view.findViewById<MaterialButton>(R.id.url_reset).setOnClickListener {

View File

@ -16,17 +16,19 @@ import android.widget.TextView
import android.widget.Toast
import androidx.core.content.FileProvider
import androidx.fragment.app.DialogFragment
import com.dezlum.codelabs.getjson.GetJson
import com.downloader.Error
import com.downloader.OnDownloadListener
import com.downloader.PRDownloader
import com.google.android.material.button.MaterialButton
import com.vanced.manager.R
import com.vanced.manager.utils.InternetTools.isUpdateAvailable
import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking
import java.io.File
class UpdateCheckFragment : DialogFragment() {
//private var downloadId: Long = 0
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -39,67 +41,99 @@ class UpdateCheckFragment : DialogFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
//activity?.registerReceiver(receiver, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
checkUpdates()
view.findViewById<Button>(R.id.update_center_dismiss).setOnClickListener { dismiss() }
view.findViewById<MaterialButton>(R.id.update_center_recheck).setOnClickListener{ checkUpdates() }
}
/*
override fun onPause() {
super.onPause()
activity?.unregisterReceiver(receiver)
}
*/
private fun checkUpdates() {
val updatebtn = view?.findViewById<Button>(R.id.update_center_update)
val checkingTxt = view?.findViewById<TextView>(R.id.update_center_checking)
if (GetJson().isConnected(requireContext())) {
runBlocking {
if (isUpdateAvailable()) {
view?.findViewById<Button>(R.id.update_center_recheck)?.visibility = View.GONE
checkingTxt?.text = getString(R.string.update_found)
updatebtn?.setOnClickListener {
upgradeManager()
}
} else checkingTxt?.text = getString(R.string.update_notfound)
} else {
checkingTxt?.text = getString(R.string.network_error)
updatebtn?.setOnClickListener { upgradeManager() }
} else
checkingTxt?.text = getString(R.string.update_notfound)
}
}
private fun upgradeManager() {
val dwnldUrl = GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/manager.json").get("url").asString
val loadBar = view?.findViewById<ProgressBar>(R.id.update_center_progressbar)
PRDownloader.download(dwnldUrl, activity?.filesDir?.path, "manager.apk")
.build()
.setOnProgressListener { progress ->
val mProgress = progress.currentBytes * 100 / progress.totalBytes
loadBar?.visibility = View.VISIBLE
loadBar?.progress = mProgress.toInt()
}
.start(object : OnDownloadListener{
override fun onDownloadComplete() {
activity?.let {
val apk = File("${activity?.filesDir?.path}/manager.apk")
val uri =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
FileProvider.getUriForFile(activity!!, "${activity?.packageName}.provider", apk)
else
Uri.fromFile(apk)
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri, "application/vnd.android.package-archive")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
startActivity(intent)
runBlocking {
launch {
val loadBar = view?.findViewById<ProgressBar>(R.id.update_center_progressbar)
val url = "https://github.com/YTVanced/VancedManager/releases/latest/download/manager.apk"
//downloadId = activity?.let { download(url, "apk", "manager.apk", it) }!!
PRDownloader.download(url, activity?.getExternalFilesDir("apk")?.path, "manager.apk")
.build()
.setOnProgressListener { progress ->
val mProgress = progress.currentBytes * 100 / progress.totalBytes
loadBar?.visibility = View.VISIBLE
loadBar?.progress = mProgress.toInt()
}
}
.start(object : OnDownloadListener {
override fun onDownloadComplete() {
activity?.let {
val apk = File("${activity?.getExternalFilesDir("apk")?.path}/manager.apk")
val uri =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
FileProvider.getUriForFile(activity!!, "${activity?.packageName}.provider", apk)
else
Uri.fromFile(apk)
override fun onError(error: Error?) {
Toast.makeText(activity, error.toString(), Toast.LENGTH_SHORT).show()
Log.e("VMUpgrade", error.toString())
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri, "application/vnd.android.package-archive")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
startActivity(intent)
}
}
override fun onError(error: com.downloader.Error?) {
Toast.makeText(activity, error.toString(), Toast.LENGTH_SHORT).show()
Log.e("VMUpgrade", error.toString())
}
})
}
}
}
/*
private val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if (intent?.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1) == downloadId) {
activity?.let {
val apk = File("${activity?.getExternalFilesDir("apk")}/manager.apk")
val uri =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
FileProvider.getUriForFile(activity!!, "${activity?.packageName}.provider", apk)
else
Uri.fromFile(apk)
val mIntent = Intent(Intent.ACTION_VIEW)
mIntent.setDataAndType(uri, "application/vnd.android.package-archive")
mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
mIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
startActivity(mIntent)
}
})
}
}
}
*/

View File

@ -6,8 +6,12 @@ import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.fragment.app.Fragment
import com.dezlum.codelabs.getjson.GetJson
import androidx.preference.PreferenceManager
import com.vanced.manager.R
import com.vanced.manager.utils.InternetTools
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class VancedChangelogFragment : Fragment() {
@ -20,15 +24,12 @@ class VancedChangelogFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
CoroutineScope(Dispatchers.Main).launch {
val vancedVersion = activity?.let { InternetTools.getJsonString("vanced.json", "version", it).replace('.', '_') }
val baseUrl = PreferenceManager.getDefaultSharedPreferences(activity).getString("install_url", InternetTools.baseUrl)
val changelogTxt = view.findViewById<TextView>(R.id.vanced_changelog)
if (GetJson().isConnected(activity)) {
val checkUrl = GetJson().AsJSONObject("https://vanced.app/api/v1/changelog/15_05_54.json")
val changelog = checkUrl.get("message").asString
changelogTxt.text = changelog
val changelog = InternetTools.getObjectFromJson("$baseUrl/changelog/$vancedVersion.json", "message")
view.findViewById<TextView>(R.id.vanced_changelog).text = changelog
}
}
}

View File

@ -1,13 +1,30 @@
package com.vanced.manager.ui.fragments
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.view.ViewGroup.LayoutParams.WRAP_CONTENT
import android.widget.LinearLayout
import androidx.core.content.res.ResourcesCompat
import androidx.fragment.app.Fragment
import androidx.navigation.findNavController
import androidx.preference.PreferenceManager
import com.google.android.material.button.MaterialButton
import com.google.android.material.checkbox.MaterialCheckBox
import com.vanced.manager.R
import com.vanced.manager.core.fragments.LanguageInstall
import com.vanced.manager.core.downloader.VancedDownloadService
import com.vanced.manager.utils.InternetTools.baseUrl
import com.vanced.manager.utils.InternetTools.getArrayFromJson
import kotlinx.coroutines.*
import java.util.*
class VancedLanguageSelectionFragment : LanguageInstall() {
class VancedLanguageSelectionFragment : Fragment() {
private lateinit var langs: MutableList<String>
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@ -17,4 +34,45 @@ class VancedLanguageSelectionFragment : LanguageInstall() {
return inflater.inflate(R.layout.fragment_vanced_language_selection, container, false)
}
@ExperimentalStdlibApi
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val langcor = CoroutineScope(Dispatchers.IO).async {
langs = getArrayFromJson("${PreferenceManager.getDefaultSharedPreferences(requireActivity()).getString("install_url", baseUrl)}/vanced.json", "langs")
}
CoroutineScope(Dispatchers.Main).launch {
langcor.await()
if (!langs.contains("null")) {
langs.forEach { lang ->
val loc = Locale(lang)
val box: MaterialCheckBox = MaterialCheckBox(requireActivity()).apply {
tag = lang
text = loc.getDisplayLanguage(loc).capitalize(Locale.ROOT)
textSize = 18F
typeface = ResourcesCompat.getFont(requireActivity(), R.font.exo_bold)
}
view.findViewById<LinearLayout>(R.id.lang_button_ll)
.addView(box, MATCH_PARENT, WRAP_CONTENT)
}
}
}
view.findViewById<MaterialButton>(R.id.vanced_install_finish).setOnClickListener {
val chosenLangs = mutableListOf("en")
if (!langs.contains("null"))
langs.forEach { lang ->
if (view.findViewWithTag<MaterialCheckBox>(lang).isChecked) {
chosenLangs.add(lang)
}
}
with(requireActivity()) {
getSharedPreferences("installPrefs", Context.MODE_PRIVATE)?.edit()?.apply {
putString("lang", chosenLangs.joinToString())?.apply()
putBoolean("valuesModified", true).apply()
}
startService(Intent(this, VancedDownloadService::class.java))
}
view.findNavController().navigate(R.id.action_installTo_homeFragment)
}
}
}

View File

@ -1,13 +1,19 @@
package com.vanced.manager.ui.fragments
import android.content.Context
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.RadioButton
import android.widget.RadioGroup
import androidx.fragment.app.Fragment
import androidx.navigation.findNavController
import com.google.android.material.radiobutton.MaterialRadioButton
import com.vanced.manager.R
import com.vanced.manager.core.fragments.ThemeInstall
class VancedThemeSelectionFragment : ThemeInstall() {
class VancedThemeSelectionFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
@ -17,4 +23,19 @@ class VancedThemeSelectionFragment : ThemeInstall() {
return inflater.inflate(R.layout.fragment_vanced_theme_selection, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val nextButton = view.findViewById<Button>(R.id.vanced_next_to_variant)
val themeGroup = view.findViewById<RadioGroup>(R.id.theme_radiogroup)
val prefs = activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
themeGroup.findViewWithTag<MaterialRadioButton>(prefs?.getString("theme", "dark")).isChecked = true
nextButton.setOnClickListener {
val selectedButton = view.findViewById<MaterialRadioButton>(themeGroup.checkedRadioButtonId)
prefs?.edit()?.putString("theme", selectedButton.tag.toString())?.apply()
view.findNavController().navigate(R.id.toInstallLanguageFragment)
}
}
}

View File

@ -6,16 +6,24 @@ import android.net.Uri
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.ContextCompat
import androidx.lifecycle.AndroidViewModel
import androidx.preference.PreferenceManager
import com.vanced.manager.R
open class AboutViewModel(application: Application): AndroidViewModel(application) {
class AboutViewModel(application: Application): AndroidViewModel(application) {
fun openUrl(Url: String) {
val builder = CustomTabsIntent.Builder()
builder.setToolbarColor(ContextCompat.getColor(getApplication(), R.color.GitHub))
val customTabsIntent = builder.build()
customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
customTabsIntent.launchUrl(getApplication(), Uri.parse(Url))
val customTabPrefs = PreferenceManager.getDefaultSharedPreferences(getApplication()).getBoolean("use_customtabs", true)
if (customTabPrefs) {
val builder = CustomTabsIntent.Builder()
builder.setToolbarColor(ContextCompat.getColor(getApplication(), R.color.GitHub))
val customTabsIntent = builder.build()
customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
customTabsIntent.launchUrl(getApplication(), Uri.parse(Url))
} else {
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(Url))
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
ContextCompat.startActivity(getApplication(), intent, null)
}
}
}

View File

@ -7,24 +7,29 @@ import android.content.Intent
import android.graphics.drawable.Drawable
import android.net.Uri
import android.os.Build
import android.util.Log
import android.widget.Toast
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.ContextCompat
import androidx.core.content.ContextCompat.startActivity
import androidx.databinding.ObservableField
import androidx.lifecycle.AndroidViewModel
import androidx.lifecycle.MutableLiveData
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
import com.crowdin.platform.Crowdin
import com.vanced.manager.R
import com.vanced.manager.utils.InternetTools.displayJsonInt
import com.vanced.manager.utils.InternetTools.displayJsonString
import com.vanced.manager.utils.InternetTools.getJsonInt
import com.vanced.manager.utils.InternetTools.getJsonString
import com.vanced.manager.utils.PackageHelper.isPackageInstalled
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class HomeViewModel(application: Application): AndroidViewModel(application) {
open class HomeViewModel(application: Application): AndroidViewModel(application) {
private val variant = getDefaultSharedPreferences(application).getString("vanced_variant", "nonroot")
private val vancedPkgName: String =
if (variant== "root") {
if (variant == "root") {
"com.google.android.youtube"
} else {
"com.vanced.android.youtube"
@ -32,29 +37,58 @@ class HomeViewModel(application: Application): AndroidViewModel(application) {
private val pm = application.packageManager
val vancedInstallButtonTxt: MutableLiveData<String> = MutableLiveData()
val vancedInstallButtonIcon: MutableLiveData<Drawable> = MutableLiveData()
private val vancedInstalledVersionCode = ObservableField<Int>()
private val microgInstalledVersionCode = ObservableField<Int>()
val microgInstalled: Boolean = isPackageInstalled("com.mgoogle.android.gms", application.packageManager)
val vancedInstalled: Boolean = isPackageInstalled(vancedPkgName, application.packageManager)
private val vancedVersionCode = ObservableField<Int>()
private val microgVersionCode = ObservableField<Int>()
val vancedInstalledVersion: MutableLiveData<String> = MutableLiveData()
val microgInstalledVersion: MutableLiveData<String> = MutableLiveData()
val vancedVersion: MutableLiveData<String> = MutableLiveData()
val microgVersion: MutableLiveData<String> = MutableLiveData()
private val vancedInstalledVersionCode = getPkgVerCode(vancedInstalled, vancedPkgName)
private val microgInstalledVersionCode = getPkgVerCode(microgInstalled, "com.mgoogle.android.gms")
private val vancedVersionCode = displayJsonInt("vanced.json", "versionCode", application)
private val microgVersionCode = displayJsonInt("microg.json", "versionCode", application)
val microgInstallButtonTxt = compareInt(microgInstalledVersionCode, microgVersionCode, application)
val microgInstallButtonIcon = compareIntDrawable(microgInstalledVersionCode, microgVersionCode, application)
//this is fucking retarded
val vancedInstallButtonTxt = ObservableField<String>()
val vancedInstallButtonIcon = ObservableField<Drawable>()
val microgInstalled = ObservableField<Boolean>()
val vancedInstalled = ObservableField<Boolean>()
val vancedInstalledVersion = ObservableField<String>()
val microgInstalledVersion = ObservableField<String>()
val vancedVersion = ObservableField<String>()
val microgVersion = ObservableField<String>()
val microgInstallButtonTxt = ObservableField<String>()
val microgInstallButtonIcon = ObservableField<Drawable>()
val nonrootModeSelected: Boolean = variant == "nonroot"
val fetching = ObservableField<Boolean>()
private val shouldBeDisabled = ObservableField<Boolean>()
//this too
fun fetchData() {
CoroutineScope(Dispatchers.IO).launch {
fetching.set(true)
try {
Crowdin.forceUpdate(getApplication())
} catch (e: Exception) {
Log.d("VMLocalisation", "Error: ", e)
}
vancedVersion.set(getJsonString("vanced.json", "version", getApplication()))
microgVersion.set(getJsonString("microg.json", "version", getApplication()))
microgInstalled.set(isPackageInstalled("com.mgoogle.android.gms", pm))
vancedInstalled.set(isPackageInstalled(vancedPkgName, pm))
vancedInstalledVersion.set(getPkgInfo(vancedInstalled.get()!!, vancedPkgName, getApplication()))
microgInstalledVersion.set(getPkgInfo(microgInstalled.get()!!, "com.mgoogle.android.gms", getApplication()).removeSuffix("-vanced"))
vancedVersionCode.set(getJsonInt("vanced.json", "versionCode", getApplication()))
microgVersionCode.set(getJsonInt("microg.json", "versionCode", getApplication()))
vancedInstalledVersionCode.set(getPkgVerCode(vancedInstalled.get()!!, vancedPkgName))
microgInstalledVersionCode.set(getPkgVerCode(microgInstalled.get()!!, "com.mgoogle.android.gms"))
microgInstallButtonTxt.set(compareInt(microgInstalledVersionCode.get()!!, microgVersionCode.get()!!, getApplication()))
microgInstallButtonIcon.set(compareIntDrawable(microgInstalledVersionCode.get()!!, microgVersionCode.get()!!, getApplication()))
shouldBeDisabled.set(nonrootModeSelected && !microgInstalled.get()!!)
vancedInstallButtonIcon.set(compareIntDrawable(vancedInstalledVersionCode.get()!!, vancedVersionCode.get()!!, getApplication()))
vancedInstallButtonTxt.set(compareInt(vancedInstalledVersionCode.get()!!, vancedVersionCode.get()!!, getApplication()))
fetching.set(false)
}
}
fun openMicrogSettings() {
try {
val intent = Intent()
@ -103,6 +137,7 @@ class HomeViewModel(application: Application): AndroidViewModel(application) {
}
}
@Suppress("DEPRECATION")
private fun getPkgVerCode(toCheck: Boolean, pkg: String): Int {
return if (toCheck) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
@ -114,8 +149,8 @@ class HomeViewModel(application: Application): AndroidViewModel(application) {
private fun compareInt(int1: Int, int2: Int, application: Application): String {
return when {
int2 == 0 -> application.getString(R.string.install)
int1 > int2 -> application.getString(R.string.update)
int1 == 0 -> application.getString(R.string.install)
int2 > int1 -> application.getString(R.string.update)
int2 == int1 -> application.getString(R.string.button_reinstall)
else -> application.getString(R.string.install)
}
@ -124,37 +159,16 @@ class HomeViewModel(application: Application): AndroidViewModel(application) {
private fun compareIntDrawable(int1: Int, int2: Int, application: Application): Drawable? {
return when {
int2 == 0 -> application.getDrawable(R.drawable.ic_download)
int1 > int2 -> application.getDrawable(R.drawable.ic_update)
int1 == 0 -> application.getDrawable(R.drawable.ic_download)
int2 > int1 -> application.getDrawable(R.drawable.ic_update)
int2 == int1 -> application.getDrawable(R.drawable.ic_done)
else -> application.getDrawable(R.drawable.ic_download)
}
}
init {
vancedVersion.value = displayJsonString("vanced.json", "version", application)
microgVersion.value = displayJsonString("microg.json", "version", application)
vancedInstalledVersion.value = getPkgInfo(vancedInstalled, vancedPkgName, application)
microgInstalledVersion.value = getPkgInfo(microgInstalled, "com.mgoogle.android.gms", application)
vancedInstallButtonIcon.value =
if (variant == "nonroot") {
if (microgInstalled)
compareIntDrawable(vancedVersionCode, vancedInstalledVersionCode, application)
else
null
} else
compareIntDrawable(vancedVersionCode, vancedInstalledVersionCode, application)
vancedInstallButtonTxt.value =
if (variant == "nonroot") {
if (microgInstalled) {
compareInt(vancedVersionCode, vancedInstalledVersionCode, application)
} else {
application.getString(R.string.no_microg)
}
} else
compareInt(vancedVersionCode, vancedInstalledVersionCode, application)
fetching.set(false)
fetchData()
}
}

View File

@ -0,0 +1,67 @@
package com.vanced.manager.utils
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInstaller
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import com.vanced.manager.R
import com.vanced.manager.ui.fragments.HomeFragment
import kotlinx.coroutines.*
object AppUtils {
var installing = false
fun sendFailure(status: Int, context: Context) {
//Delay error broadcast until activity (and fragment) get back to the screen
CoroutineScope(Dispatchers.IO).launch {
delay(500)
val intent = Intent(HomeFragment.INSTALL_FAILED)
intent.putExtra("errorMsg", getErrorMessage(status, context))
LocalBroadcastManager.getInstance(context).sendBroadcast(intent)
}
}
fun sendFailure(error: MutableList<String>, context: Context) {
CoroutineScope(Dispatchers.IO).launch {
val intent = Intent(HomeFragment.INSTALL_FAILED)
intent.putExtra("errorMsg", getErrorMessage(error.joinToString(), context))
LocalBroadcastManager.getInstance(context).sendBroadcast(intent)
}
}
private fun getErrorMessage(status: String, context: Context): String {
return when {
status.contains("INSTALL_FAILED_ABORTED") -> context.getString(R.string.installation_aborted)
status.contains("INSTALL_FAILED_ALREADY_EXISTS") -> context.getString(R.string.installation_conflict)
status.contains("INSTALL_FAILED_CPU_ABI_INCOMPATIBLE") -> context.getString(R.string.installation_incompatible)
status.contains("INSTALL_FAILED_INSUFFICIENT_STORAGE") -> context.getString(R.string.installation_storage)
status.contains("INSTALL_FAILED_INVALID_APK") -> context.getString(R.string.installation_invalid)
status.contains("INSTALL_FAILED_VERSION_DOWNGRADE") -> context.getString(R.string.installation_downgrade)
status.contains("INSTALL_PARSE_FAILED_NO_CERTIFICATES") -> context.getString(R.string.installation_signature)
else ->
if (MiuiHelper.isMiui())
context.getString(R.string.installation_miui)
else
context.getString(R.string.installation_failed)
}
}
private fun getErrorMessage(status: Int, context: Context): String {
return when (status) {
PackageInstaller.STATUS_FAILURE_ABORTED -> context.getString(R.string.installation_aborted)
PackageInstaller.STATUS_FAILURE_BLOCKED -> context.getString(R.string.installation_blocked)
PackageInstaller.STATUS_FAILURE_CONFLICT -> context.getString(R.string.installation_conflict)
PackageInstaller.STATUS_FAILURE_INCOMPATIBLE -> context.getString(R.string.installation_incompatible)
PackageInstaller.STATUS_FAILURE_INVALID -> context.getString(R.string.installation_invalid)
PackageInstaller.STATUS_FAILURE_STORAGE -> context.getString(R.string.installation_storage)
else ->
if (MiuiHelper.isMiui())
context.getString(R.string.installation_miui)
else
context.getString(R.string.installation_failed)
}
}
}

View File

@ -0,0 +1,22 @@
package com.vanced.manager.utils
import android.app.DownloadManager
import android.content.Context
import android.net.Uri
import com.vanced.manager.R
object DownloadHelper {
fun download(url: String, dir: String, child: String, context: Context): Long {
val request = DownloadManager.Request(Uri.parse(url)).apply {
setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI)
setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE)
setTitle(context.getString(R.string.downloading_file, child))
setDestinationInExternalFilesDir(context, dir, child)
}
val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
return downloadManager.enqueue(request)
}
}

View File

@ -3,15 +3,17 @@ package com.vanced.manager.utils
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.util.Log
import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.content.ContextCompat
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
import com.vanced.manager.BuildConfig
import com.dezlum.codelabs.getjson.GetJson
import com.vanced.manager.R
object InternetTools {
private const val TAG = "VMNetTools"
fun openUrl(Url: String, color: Int, context: Context) {
val customTabPrefs = getDefaultSharedPreferences(context).getBoolean("use_customtabs", true)
if (customTabPrefs) {
@ -25,35 +27,52 @@ object InternetTools {
fun getFileNameFromUrl(url: String) = url.substring(url.lastIndexOf('/')+1, url.length)
fun displayJsonString(json: String, obj: String, context: Context): String {
val installUrl = getDefaultSharedPreferences(context).getString("install_url", baseUrl)
return if (GetJson().isConnected(context))
GetJson().AsJSONObject("$installUrl/$json").get(obj).asString
else
context.getString(R.string.unavailable)
}
fun displayJsonInt(json: String, obj: String, context: Context): Int {
val installUrl = getDefaultSharedPreferences(context).getString("install_url", baseUrl)
return if (GetJson().isConnected(context))
GetJson().AsJSONObject("$installUrl/$json").get(obj).asInt
else
0
}
fun getObjectFromJson(url: String, obj: String, context: Context): String {
return if (GetJson().isConnected(context))
GetJson().AsJSONObject(url).get(obj).asString
else
suspend fun getObjectFromJson(url: String, obj: String): String {
return try {
JsonHelper.getJson(url).string(obj) ?: ""
} catch (e: Exception) {
Log.e(TAG, "Error: ", e)
""
}
}
fun isUpdateAvailable(): Boolean {
val checkUrl = GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/manager.json")
val remoteVersion = checkUrl.get("versionCode").asInt
suspend fun getArrayFromJson(url: String, array: String): MutableList<String> {
return try {
JsonHelper.getJson(url).array<String>(array)?.value ?: mutableListOf("null")
} catch (e: Exception) {
Log.e(TAG, "Error: ", e)
mutableListOf("null")
}
}
return remoteVersion > BuildConfig.VERSION_CODE
suspend fun getJsonInt(file: String, obj: String, context: Context): Int {
val installUrl = getDefaultSharedPreferences(context).getString("install_url", baseUrl)
return try {
JsonHelper.getJson("$installUrl/$file").int(obj) ?: 0
} catch (e: Exception) {
Log.e(TAG, "Error: ", e)
0
}
}
suspend fun getJsonString(file: String, obj: String, context: Context): String {
val installUrl = getDefaultSharedPreferences(context).getString("install_url", baseUrl)
return try {
JsonHelper.getJson("$installUrl/$file").string(obj) ?: context.getString(R.string.unavailable)
} catch (e: Exception) {
Log.e(TAG, "Error: ", e)
context.getString(R.string.unavailable)
}
}
suspend fun isUpdateAvailable(): Boolean {
val result = try {
JsonHelper.getJson("https://x1nto.github.io/VancedFiles/manager.json").int("versionCode") ?: 0
} catch (e: Exception) {
0
}
return result > BuildConfig.VERSION_CODE
}
const val baseUrl = "https://vanced.app/api/v1"

View File

@ -0,0 +1,25 @@
package com.vanced.manager.utils
import com.beust.klaxon.JsonArray
import com.beust.klaxon.JsonObject
import com.beust.klaxon.Klaxon
import com.beust.klaxon.Parser
import com.github.kittinunf.fuel.coroutines.awaitString
import com.github.kittinunf.fuel.httpGet
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
object JsonHelper {
suspend fun getJson(url: String): JsonObject =
Parser.default().parse(
StringBuilder(url.httpGet().awaitString())
) as JsonObject
suspend fun getJsonArray(url: String): JsonArray<String> =
Klaxon().parseArray<String>(
url.httpGet().awaitString()
) as JsonArray<String>
}

View File

@ -1,72 +0,0 @@
package com.vanced.manager.utils
import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
import android.os.Build
import com.vanced.manager.R
object NotificationHelper {
fun createNotifChannel(context: Context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
val notifChannel = NotificationChannel(
"69420",
context.getString(R.string.notif_channel_name),
NotificationManager.IMPORTANCE_HIGH
)
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(notifChannel)
}
}
fun displayDownloadNotif(channel: Int, progress:Int, filename: String, context: Context) {
val notifBuilder =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
Notification.Builder(context, channel.toString()).setChannelId("69420")
else
Notification.Builder(context).setPriority(Notification.PRIORITY_HIGH)
notifBuilder.apply {
setContentTitle(context.getString(R.string.app_name))
setContentText(context.getString(R.string.downloading_file, filename))
setSmallIcon(R.drawable.ic_stat_name)
setOnlyAlertOnce(true)
setOngoing(true)
}
val notif = notifBuilder.build()
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.apply {
notifBuilder.setProgress(100, progress, false)
notify(channel, notif)
}
}
fun createBasicNotif(text: String, channel: Int, context: Context) {
val notifBuilder =
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
Notification.Builder(context, channel.toString()).setChannelId("69420")
else
Notification.Builder(context).setPriority(Notification.PRIORITY_DEFAULT)
notifBuilder.apply {
setContentTitle(context.getString(R.string.app_name))
setContentText(text)
style = Notification.BigTextStyle().bigText(text)
setSmallIcon(R.drawable.ic_stat_name)
}
val notif = notifBuilder.build()
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.notify(channel, notif)
}
fun cancelNotif(id: Int, context: Context) {
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationManager.cancel(id)
}
}

View File

@ -1,13 +1,13 @@
package com.vanced.manager.utils
import android.app.Activity
import android.content.res.Configuration
import androidx.preference.PreferenceManager
import com.vanced.manager.R
import com.vanced.manager.ui.MainActivity
object ThemeHelper {
fun setFinalTheme(activity: MainActivity) {
fun setFinalTheme(activity: Activity) {
val currentAccent = PreferenceManager.getDefaultSharedPreferences(activity).getString("accent_color", "Blue")
when (PreferenceManager.getDefaultSharedPreferences(activity)
.getString("theme_mode", "Follow System")) {

View File

@ -5,14 +5,14 @@
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleX"
android:valueFrom="0.8"
android:valueFrom="0.9"
android:valueTo="1"
android:valueType="floatType"/>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleY"
android:valueFrom="0.8"
android:valueFrom="0.9"
android:valueTo="1"
android:valueType="floatType"/>

View File

@ -6,14 +6,14 @@
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleX"
android:valueFrom="1"
android:valueTo="0.8"
android:valueTo="1.1"
android:valueType="floatType"/>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleY"
android:valueFrom="1"
android:valueTo="0.8"
android:valueTo="1.1"
android:valueType="floatType"/>
<objectAnimator

View File

@ -6,14 +6,14 @@
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleX"
android:valueFrom="1"
android:valueTo="1.1"
android:valueTo="0.9"
android:valueType="floatType"/>
<objectAnimator
android:duration="@android:integer/config_shortAnimTime"
android:propertyName="scaleX"
android:propertyName="scaleY"
android:valueFrom="1"
android:valueTo="1.1"
android:valueTo="0.9"
android:valueType="floatType"/>
<objectAnimator

View File

@ -2,44 +2,67 @@
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="3448.276"
android:viewportHeight="3448.276">
<group android:translateX="724.13794"
android:translateY="724.13794">
<path
android:pathData="M1004.92,1881.1c-38.2,0.05 -76.47,-1.45 -114.57,0.42c-51.76,2.55 -81.84,-18.16 -90.74,-70.96c-7.49,-44.41 -13.2,-90.61 -30.51,-131.43c-15.34,-36.18 -40.29,-72.3 -70.22,-97.5c-83.85,-70.62 -178.04,-88.12 -279.91,-36c-16.76,8.57 -36.28,11.64 -54.35,17.76c-44.7,15.15 -76.87,1.99 -100.01,-39.68c-37.07,-66.74 -75.6,-132.69 -114.44,-198.43c-26.16,-44.27 -21.81,-81.72 19.36,-114.5c18.97,-15.11 34.6,-34.64 54.31,-48.55c72.54,-51.21 94,-120.05 91.6,-207.5c-2.02,-73.79 -23.93,-128.07 -79.03,-177.07c-131.04,-116.54 -130.5,-96.77 -38.4,-254.62c19.24,-32.97 38.08,-66.16 57.32,-99.13c41.41,-70.96 54.33,-75.72 134.39,-49.89c34.65,11.18 69.02,23.28 103.91,33.66c101.86,30.29 254.34,-57.92 278.42,-161.01c11.05,-47.28 20.7,-94.88 31.43,-142.24c8.42,-37.18 32.04,-56.47 70.31,-56.57c83.34,-0.23 166.68,0.02 250.01,-0.19c40.55,-0.11 65.26,19.16 73.99,58.78c10.44,47.42 14.73,97.39 33.08,141.51c15.63,37.56 42.09,74.68 73.09,100.99c82.04,69.63 174.55,87.18 274.79,35.85c18.26,-9.35 39.69,-12.3 59.29,-19.26c42.92,-15.23 73.52,-2.18 95.76,37.26c39.19,69.52 79.65,138.32 119.78,207.31c22.41,38.53 18.11,72.63 -15.69,102.47c-13.01,11.49 -24.36,25.49 -38.81,34.62c-105.9,66.87 -127.21,167.78 -109.49,281c5,31.96 22.73,65.36 43.68,90.58c29.68,35.74 67.12,65.23 102.43,96.04c33.98,29.66 40.49,63.13 18.36,101.95c-40.4,70.85 -81.55,141.28 -121.74,212.25c-21.43,37.85 -52.64,47.95 -92.63,35.44c-43.04,-13.47 -85.74,-28.06 -128.91,-41.12c-106.14,-32.11 -256.7,54.16 -281.98,161.54c-10.73,45.58 -20.37,91.42 -30.39,137.17c-8.68,39.59 -32.96,59.33 -73.71,59.05C1084.79,1880.83 1044.85,1881.04 1004.92,1881.1z"
android:strokeLineJoin="round"
android:strokeWidth="76"
android:fillColor="#00000000"
android:strokeLineCap="round">
<aapt:attr name="android:strokeColor">
<gradient
android:startY="1642.6245"
android:startX="322.9971"
android:endY="287.2871"
android:endX="1678.3345"
android:type="linear">
<item android:offset="1.065558E-7" android:color="#FF2E73FF"/>
<item android:offset="1" android:color="#FFFF0032"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="M1270.42,895.24L886.12,647.3c-16.68,-9.72 -38.08,-4.08 -47.8,12.59l-0.75,1.28c-9.72,16.67 -4.09,38.07 12.59,47.79l367.49,221.11c23.91,14.39 23.77,49.1 -0.25,63.29l-369.18,218.11c-16.76,9.58 -22.58,30.93 -13,47.69l0.73,1.29c9.58,16.76 30.93,22.57 47.69,12.99l386.24,-244.83C1318.69,997.67 1318.97,926.57 1270.42,895.24z"
android:fillColor="#FFFFFF"/>
<path
android:pathData="M1074.21,926.45L884.98,819.87c-24.49,-13.8 -54.77,3.9 -54.77,32v213.18c0,28.11 30.28,45.8 54.77,32l189.22,-106.59C1099.15,976.41 1099.15,940.5 1074.21,926.45z">
<aapt:attr name="android:fillColor">
<gradient
android:startY="1058.4124"
android:startX="808.329"
android:endY="858.5059"
android:endX="1008.2355"
android:type="linear">
<item android:offset="0" android:color="#FF2E73FF"/>
<item android:offset="1" android:color="#FFFF0032"/>
</gradient>
</aapt:attr>
</path>
android:viewportWidth="108"
android:viewportHeight="108">
<group android:scaleX="0.034267887"
android:scaleY="0.034267887"
android:translateX="21.822453"
android:translateY="21">
<group
android:translateX="-61"
android:translateY="-44.97">
<path
android:pathData="M1004.71 1916.4c-38.2 0 -76.47 -1.46 -114.57 0.42 -51.76 2.55 -81.85 -18.16 -90.74 -71 -7.49 -44.41 -13.2 -90.61 -30.51 -131.44 -15.34 -36.17 -40.29 -72.29 -70.22 -97.5 -83.85 -70.61 -178 -88.12 -279.91 -36 -16.75 8.57 -36.27 11.63 -54.34 17.76 -44.7 15.14 -76.87 2 -100 -39.69 -37.07 -66.74 -75.59 -132.69 -114.44 -198.43 -26.16 -44.26 -21.81 -81.71 19.36 -114.5 19 -15.1 34.6 -34.64 54.31 -48.55 72.54 -51.2 94 -120 91.6 -207.49 -2 -73.79 -23.93 -128.07 -79 -177.07 -131 -116.54 -130.49 -96.77 -38.39 -254.62 19.23 -33 38.07 -66.16 57.31 -99.12 41.42 -71 54.34 -75.73 134.4 -49.89 34.65 11.18 69 23.29 103.91 33.66 101.86 30.29 254.34 -57.92 278.42 -161 11 -47.28 20.71 -94.88 31.43 -142.24 8.43 -37.18 32.05 -56.46 70.31 -56.56 83.34 -0.23 166.68 0 250 -0.2 40.55 -0.1 65.27 19.16 74 58.78 10.44 47.42 14.73 97.39 33.08 141.51 15.63 37.56 42.09 74.68 73.1 101 82 69.63 174.55 87.18 274.79 35.85 18.26 -9.35 39.69 -12.3 59.29 -19.26 42.91 -15.23 73.51 -2.18 95.75 37.27 39.2 69.51 79.66 138.32 119.78 207.3C1875.8 684 1871.49 718 1837.7 747.88c-13 11.49 -24.36 25.5 -38.82 34.63 -105.89 66.87 -127.2 167.78 -109.49 281 5 32 22.74 65.36 43.69 90.58 29.68 35.74 67.12 65.23 102.42 96.05 34 29.65 40.5 63.13 18.36 101.94 -40.4 70.85 -81.55 141.28 -121.73 212.25 -21.43 37.85 -52.64 48 -92.63 35.44 -43 -13.47 -85.75 -28.06 -128.91 -41.12 -106.14 -32.11 -256.7 54.16 -282 161.54 -10.73 45.58 -20.36 91.42 -30.39 137.16 -8.68 39.6 -33 59.33 -73.71 59.05C1084.58 1916.13 1044.64 1916.34 1004.71 1916.4Z"
android:strokeWidth="76"
android:strokeLineCap="round"
android:strokeLineJoin="round">
<aapt:attr
name="android:strokeColor">
<gradient
android:startX="322.79"
android:startY="1677.92"
android:endX="1678.13"
android:endY="322.59"
android:tileMode="clamp">
<item
android:color="#2E73FF"
android:offset="0" />
<item
android:color="#FF0032"
android:offset="1" />
</gradient>
</aapt:attr>
</path>
</group>
<group
android:translateX="-61"
android:translateY="-44.97">
<path
android:pathData="M1270.21 935L885.92 687a35 35 0 0 0 -47.81 12.59l-0.74 1.28A34.94 34.94 0 0 0 850 748.67l367.49 221.11c23.91 14.38 23.77 49.09 -0.26 63.29L848 1251.18a34.94 34.94 0 0 0 -13 47.68l0.74 1.29a35 35 0 0 0 47.69 13l386.24 -244.82C1318.48 1037.38 1318.76 966.28 1270.21 935Z"
android:fillColor="#FFFFFF" />
</group>
<group
android:translateX="-61"
android:translateY="-44.97">
<path
android:pathData="M1074 968L884.77 861.41c-24.49 -13.8 -54.77 3.89 -54.77 32v213.18c0 28.11 30.28 45.8 54.77 32L1074 1032C1098.94 1018 1098.94 982 1074 968Z">
<aapt:attr
name="android:fillColor">
<gradient
android:startX="808.12"
android:startY="1099.95"
android:endX="1008.03"
android:endY="900.05"
android:tileMode="clamp">
<item
android:color="#2E73FF"
android:offset="0" />
<item
android:color="#FF0032"
android:offset="1" />
</gradient>
</aapt:attr>
</path>
</group>
</group>
</vector>
</vector>

View File

@ -1,18 +1,23 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24.386dp"
android:height="29.036dp"
android:viewportWidth="473.386"
android:viewportHeight="557.036">
<path
android:pathData="M139.41,39.069c39.938,-26.756 84.951,-37.87 132.018,-38.981c74.067,-1.745 139.224,22.666 194.91,72.066c7.828,6.945 9.084,10.983 0.811,18.827c-22.822,21.634 -44.75,44.216 -66.916,66.542c-4.849,4.89 -8.396,8.356 -15.723,2.227c-57.313,-47.931 -119.706,-51.276 -185.692,-19.974C179.015,106.203 159.215,72.637 139.41,39.069z"
android:fillColor="#039789"/>
<path
android:pathData="M199.081,417.321c37.81,18.633 77.158,25.499 118.679,15.346c24.198,-5.917 45.923,-16.949 64.498,-33.468c7.241,-6.442 11.817,-6.348 18.602,0.667c22.291,23.056 45.144,45.575 67.979,68.096c4.856,4.793 6.874,8.052 0.704,13.929c-89.6,85.259 -230.801,98.396 -328.227,37.225C160.573,485.184 179.827,451.253 199.081,417.321z"
android:fillColor="#E82164"/>
<path
android:pathData="M199.081,417.321c-19.254,33.937 -38.507,67.863 -57.769,101.793c-68.704,-37.307 -110.968,-95.479 -131.542,-169.713c-12.953,-46.736 -13.189,-94.077 0.267,-141.071c6.208,1.257 12.485,2.259 18.618,3.817c31.91,8.117 63.782,16.378 95.667,24.588c-10.2,53.526 -2.1,102.705 33.953,145.522C170.033,396.209 185.033,406.161 199.081,417.321z"
android:fillColor="#FE9802"/>
<path
android:pathData="M124.325,236.731c-31.888,-8.209 -63.757,-16.468 -95.667,-24.588c-6.133,-1.557 -12.41,-2.556 -18.617,-3.817c19.736,-74.299 61.695,-131.604 129.373,-169.257c19.804,33.565 39.609,67.13 59.41,100.702C162.543,163.294 137.997,195.836 124.325,236.731z"
android:fillColor="#CCDB3B"/>
<vector android:height="30dp" android:viewportHeight="1775.6"
android:viewportWidth="1775.6" android:width="30dp"
xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="#0c0c0f"
android:pathData="M887.8,887.8m-852.8,0a852.8,852.8 0,1 1,1705.6 0a852.8,852.8 0,1 1,-1705.6 0" android:strokeWidth="70">
<aapt:attr name="android:strokeColor">
<gradient android:endX="1515.57" android:endY="260.02994"
android:startX="260.03" android:startY="1515.57" android:type="linear">
<item android:color="#FF3370FA" android:offset="0"/>
<item android:color="#FFF80439" android:offset="1"/>
</gradient>
</aapt:attr>
</path>
<path android:pathData="M1342.5,1147.5v0.5c0,31.7 2.1,100.4 -1.9,133.3h0c-8.9,49.7 -51.3,84.7 -107.9,85.2 -111.1,1.1 -222.2,0.3 -333.3,0.3 0,0 -109.2,0.5 -163.8,0.5h0q-72.45,0 -144.9,-0.2 -14.7,0 -29.4,-0.9c-8.4,-0.5 -16.8,-1.2 -25.1,-2.2 -52.6,-6.1 -89.3,-38.1 -99.8,-85.6v-0.1a131.48,131.48 0,0 1,-3.1 -27.1c-0.7,-46.4 -0.5,-92.9 -0.3,-139.4v-0.2c0,-5.4 0.1,-10.8 0.1,-16.2 0.2,-33.3 4.4,-36.9 38.5,-37.7 17.3,-0.4 34.7,0.3 51.9,-1.1 103.3,-8.1 168,-114.5 122.2,-207.8 -22.8,-46.3 -63,-77.7 -119,-79.5 -22.8,-0.7 -45.5,-0.9 -68.3,-1 -16.9,-0.1 -25.1,-8.3 -25,-25.2 0.1,-18.8 -0.1,-37.7 -0.3,-56.5v-0.4c-0.3,-31.2 -0.6,-62.4 0.1,-93.5v-0.1c0.3,-11.8 1.6,-37.9 1.7,-39.3h0c5.5,-58.6 56.6,-92.9 115.3,-88.7 61,1.6 121.9,2.2 182.9,2.6 22.2,0.1 29.3,-13.1 30.5,-33.5 1.8,-31.7 2.5,-63.8 8.7,-94.8 8.9,-44.3 45.3,-86.6 104.4,-86.6 62.2,0.2 113.8,33 125.9,84.6 7.2,30.7 9,62.9 10.3,94.5 0.9,21.8 8.4,33.3 27.1,35.8h0a52.59,52.59 0,0 0,9.1 0.5c55.1,-0.4 110.1,-0.6 165.2,0.5 8.4,0.5 16.8,1.2 25.1,2.2 52.6,6.1 89.3,38.1 99.8,85.6 1.1,7 2,14.7 2.7,22.9 0.3,46.3 0.5,93.7 0.7,141.9v0.4C1342.9,861.8 1342.7,1008 1342.5,1147.5Z">
<aapt:attr name="android:fillColor">
<gradient android:endX="1304.97" android:endY="497.16"
android:startX="467.76" android:startY="1334.37" android:type="linear">
<item android:color="#FF366EF7" android:offset="0"/>
<item android:color="#FFF7043A" android:offset="1"/>
</gradient>
</aapt:attr>
</path>
</vector>

View File

@ -12,120 +12,129 @@
</data>
<com.vanced.manager.ui.core.SlidingNestedScrollView
<com.vanced.manager.ui.core.SlidingSwipeRefreshLayout
android:id="@+id/home_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"
android:fillViewport="true"
android:scrollbars="none">
bind:refreshing="@{viewModel.fetching}"
bind:onRefreshListener="@{()-> viewModel.fetchData()}">
<LinearLayout
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="4dp"
android:animateLayoutChanges="true"
android:orientation="vertical">
android:fillViewport="true"
android:scrollbars="none">
<RelativeLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:orientation="horizontal">
android:layout_height="match_parent"
android:layout_marginTop="4dp"
android:animateLayoutChanges="true"
android:orientation="vertical">
<FrameLayout
android:layout_width="wrap_content"
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true">
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:orientation="horizontal">
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nonroot"
android:textAllCaps="false"
android:visibility="@{viewModel.nonrootModeSelected ? View.VISIBLE : View.GONE}"
bind:strokeColor="?colorPrimary"
bind:strokeWidth="2dp" />
android:layout_alignParentStart="true">
<com.google.android.material.button.MaterialButton
android:id="@+id/nonroot_switch"
style="@style/ButtonStyle"
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nonroot"
android:textAllCaps="false"
android:visibility="@{viewModel.nonrootModeSelected ? View.VISIBLE : View.GONE}"
bind:strokeColor="?colorPrimary"
bind:strokeWidth="2dp" />
<com.google.android.material.button.MaterialButton
android:id="@+id/nonroot_switch"
style="@style/ButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nonroot"
android:visibility="@{viewModel.nonrootModeSelected ? View.GONE : View.VISIBLE}" />
</FrameLayout>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/nonroot"
android:visibility="@{viewModel.nonrootModeSelected ? View.GONE : View.VISIBLE}" />
android:layout_alignParentEnd="true">
</FrameLayout>
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/root"
android:textAllCaps="false"
android:visibility="@{viewModel.nonrootModeSelected ? View.GONE : View.VISIBLE}"
bind:strokeColor="?colorPrimary"
bind:strokeWidth="2dp" />
<FrameLayout
android:layout_width="wrap_content"
<com.google.android.material.button.MaterialButton
android:id="@+id/root_switch"
style="@style/ButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/root"
android:visibility="@{viewModel.nonrootModeSelected ? View.VISIBLE : View.GONE}" />
</FrameLayout>
</RelativeLayout>
<include
android:id="@+id/include_vanced_layout"
layout="@layout/include_vanced"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true">
android:layout_marginStart="@dimen/stdp"
android:layout_marginTop="@dimen/stdp"
android:layout_marginEnd="@dimen/stdp"
bind:viewModel="@{viewModel}" />
<com.google.android.material.button.MaterialButton
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/root"
android:textAllCaps="false"
android:visibility="@{viewModel.nonrootModeSelected ? View.GONE : View.VISIBLE}"
bind:strokeColor="?colorPrimary"
bind:strokeWidth="2dp" />
<include
android:id="@+id/include_microg_layout"
layout="@layout/include_microg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/stdp"
android:layout_marginTop="@dimen/stdp"
android:layout_marginEnd="@dimen/stdp"
android:visibility="@{viewModel.nonrootModeSelected ? View.VISIBLE : View.GONE}"
bind:viewModel="@{viewModel}" />
<com.google.android.material.button.MaterialButton
android:id="@+id/root_switch"
style="@style/ButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/root"
android:visibility="@{viewModel.nonrootModeSelected ? View.VISIBLE : View.GONE}" />
<include
android:id="@+id/include_changelogs_layout"
layout="@layout/include_changelogs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/stdp"
android:layout_marginTop="@dimen/stdp"
android:layout_marginEnd="@dimen/stdp" />
</FrameLayout>
<include
layout="@layout/include_useful_links"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/stdp"
android:layout_marginTop="@dimen/stdp"
android:layout_marginEnd="@dimen/stdp"
bind:viewModel="@{viewModel}" />
</RelativeLayout>
</LinearLayout>
<include
android:id="@+id/include_vanced_layout"
layout="@layout/include_vanced"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/stdp"
android:layout_marginTop="@dimen/stdp"
android:layout_marginEnd="@dimen/stdp"
bind:viewModel="@{viewModel}" />
</androidx.core.widget.NestedScrollView>
<include
android:id="@+id/include_microg_layout"
layout="@layout/include_microg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/stdp"
android:layout_marginTop="@dimen/stdp"
android:layout_marginEnd="@dimen/stdp"
android:visibility="@{viewModel.nonrootModeSelected ? View.VISIBLE : View.GONE}"
bind:viewModel="@{viewModel}" />
<include
android:id="@+id/include_changelogs_layout"
layout="@layout/include_changelogs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/stdp"
android:layout_marginTop="@dimen/stdp"
android:layout_marginEnd="@dimen/stdp" />
<include
layout="@layout/include_useful_links"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/stdp"
android:layout_marginTop="@dimen/stdp"
android:layout_marginEnd="@dimen/stdp"
bind:viewModel="@{viewModel}" />
</LinearLayout>
</com.vanced.manager.ui.core.SlidingNestedScrollView>
</com.vanced.manager.ui.core.SlidingSwipeRefreshLayout>
</layout>

View File

@ -30,7 +30,7 @@
android:layout_marginTop="4dp"
android:layout_marginStart="0dp"
android:layout_gravity="center"
android:text="Checking For Updates..."
android:text=""
android:textAlignment="center"
android:textSize="16sp" />
@ -45,7 +45,8 @@
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:layout_gravity="center">
<com.google.android.material.button.MaterialButton
android:id="@+id/update_center_dismiss"
@ -64,7 +65,7 @@
android:id="@+id/update_center_update"
style="@style/ButtonStyle"
android:layout_marginStart="4dp"
android:text="Update" />
android:text="@string/update" />
<com.google.android.material.button.MaterialButton
android:id="@+id/update_center_recheck"

View File

@ -10,15 +10,6 @@
android:id="@+id/vanced_changelog"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="16sp"
android:text="Removed:\n
- Auto subtitles (has been replaced with live captions)\n
- minimised video player style (Google removed it) \n
- auto repeat (might be fixed later) \n
- accessibility seek buttons (might be fixed later) \n\nChanged:\n
- Whatever Youtube fixed over 9 months :P \n
- some small bugs \n
- Installation now with SAI"
tools:ignore="HardcodedText" />
android:textSize="16sp" />
</FrameLayout>

View File

@ -21,11 +21,9 @@
<RadioGroup
android:id="@+id/theme_radiogroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checkedButton="@id/dark">
android:layout_height="wrap_content">
<com.google.android.material.radiobutton.MaterialRadioButton
android:id="@+id/dark"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"

View File

@ -1,8 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<layout>
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="viewModel"
type="com.vanced.manager.ui.viewmodels.HomeViewModel" />
</data>
<com.google.android.material.card.MaterialCardView
android:id="@+id/changelog_card"
style="@style/MaterialCard">
@ -57,4 +69,5 @@
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</layout>

View File

@ -7,221 +7,24 @@
android:fillViewport="true"
tools:ignore="HardcodedText">
<RadioGroup
android:id="@+id/lang_radiogroup"
<LinearLayout
android:id="@+id/lang_button_ll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:checkedButton="@id/en">
android:orientation="vertical">
<com.google.android.material.radiobutton.MaterialRadioButton
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/en"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:buttonTint="?colorDisabled"
android:fontFamily="@font/exo_semibold"
android:text="English (default)"
android:tag="en"
android:textSize="18sp" />
android:textSize="18sp"
android:checked="true"
android:clickable="false"/>
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Indonesian"
android:tag="in"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Català"
android:tag="ca"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Deutsch"
android:tag="de"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Español"
android:tag="es"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Français"
android:tag="fr"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Hrvatski"
android:tag="hr"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Italiano"
android:tag="it"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Magyar"
android:tag="hu"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Dutch"
android:tag="nl"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Polski"
android:tag="pl"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Português (Brasil)"
android:tag="pt"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Română"
android:tag="ro"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Suomi"
android:tag="fi"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Svenska"
android:tag="sv"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Tiếng Việt"
android:tag="vi"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Türkçe"
android:tag="tr"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Ελληνικά"
android:tag="hy"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Български"
android:tag="bg"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Русский"
android:tag="ru"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="Українська"
android:tag="uk"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="العربية"
android:tag="ar"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="ქართული"
android:tag="ka"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="日本語"
android:tag="ja"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="繁體中文"
android:tag="zh"
android:textSize="18sp" />
<com.google.android.material.radiobutton.MaterialRadioButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/exo_semibold"
android:text="한국어"
android:tag="ko"
android:textSize="18sp" />
</RadioGroup>
</LinearLayout>
</androidx.core.widget.NestedScrollView>

View File

@ -120,6 +120,21 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/microg_downloading_txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="visible" />
<ProgressBar
android:id="@+id/microg_downloading"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="visible" />
<ProgressBar
android:id="@+id/microg_installing"
android:layout_width="match_parent"

View File

@ -15,6 +15,7 @@
<com.google.android.material.card.MaterialCardView
style="@style/MaterialCard"
app:contentPaddingTop="2dp"
app:contentPaddingBottom="8dp"
android:animateLayoutChanges="true">
<LinearLayout
@ -24,17 +25,13 @@
<TextView
style="@style/CardTitle"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="@string/useful_links" />
<include
layout="@layout/include_vanced_medias"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginTop="2dp"
bind:viewModel="@{viewModel}" />
</LinearLayout>

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
@ -48,6 +49,8 @@
android:id="@+id/vanced_installbtn"
style="@style/ButtonStyle"
android:text="@{viewModel.vancedInstallButtonTxt}"
android:textColor="@color/White"
android:backgroundTint="?colorPrimary"
app:icon="@{viewModel.vancedInstallButtonIcon}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@ -107,6 +110,21 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/vanced_downloading_txt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="visible" />
<ProgressBar
android:id="@+id/vanced_downloading"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="visible" />
<ProgressBar
android:id="@+id/vanced_installing"
android:layout_width="match_parent"

View File

@ -10,7 +10,7 @@
<item
android:id="@+id/toolbar_settings"
android:title="@string/title_about"
android:title="@string/title_settings"
android:icon="@drawable/ic_settings_black_24dp"
app:showAsAction="ifRoom" />

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -17,11 +17,12 @@
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
@ -30,7 +31,7 @@
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
@ -45,12 +46,14 @@
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="category_manager">Manager</string>
<string name="check_updates">Check for updates</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
@ -59,8 +62,8 @@
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>

View File

@ -17,11 +17,12 @@
<string name="installing_app">جاري التثبيت %1$s</string>
<string name="installation_aborted">فشلت العملية لأن المستخدم ألغى التثبيت.</string>
<string name="installation_blocked">فشلت العملية لأن المستخدم قام بحظر التثبيت.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">فشلت العملية لأن التطبيق يتعارض مع تطبيق مثبت بالفعل.</string>
<string name="installation_failed">فشلت العملية لسبب غير معروف، يرجى الانضمام إلى تيليجرام أو ديسكورد للحصول على الدعم.</string>
<string name="installation_incompatible">فشلت العملية لأن التطبيق غير متوافق مع جهازك.</string>
<string name="installation_invalid">فشلت العملية لأن ملفات apk غير صالحة.</string>
<string name="installation_signature">حدث خطأ غير متوقع أثناء تثبيت Vanced. هل قمت بتعطيل التحقق من توقيع apk؟</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">حدث خطأ غير متوقع أثناء تثبيت Vanced. هل قمت بتعطيل تحسينات MIUI؟</string>
<string name="installation_storage">فشلت العملية بسبب خطأ في التخزين.</string>
<string name="installation_wait">الرجاء الانتظار حتى ينتهي التثبيت</string>
@ -30,14 +31,14 @@
<string name="latest">آخر:</string>
<string name="successfully_installed">تم تثبيت %1$s بنجاح</string>
<string name="network_error">اتصاا الشبكة غير متاح</string>
<string name="no_microg">لا مايكروجي!</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">لم يتم منح الوصول للجذر</string>
<string name="unavailable">غير متاح</string>
<string name="update">تحديث</string>
<string name="useful_links">روابط المفيدة</string>
<string name="website_text">الموقع رسمي لفانسد</string>
<string name="support_us">ادعمنا بتريق تنزيل بريف</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">تم نسخ الإصدار %1$s!</string>
<!-- Settings -->
<string name="accent_color">الوان</string>
<string name="accent_blue">ازرق</string>
@ -45,22 +46,24 @@
<string name="accent_purple">أرجواني</string>
<string name="accent_red">احمر</string>
<string name="accent_yellow">اصفر</string>
<string name="check_updates">تحقق من وجود تحديثات</string>
<string name="category_interface">واجهة استغدام</string>
<string name="category_manager">مدير</string>
<string name="check_updates">تحقق من وجود تحديثات</string>
<string name="chosen_install_values">تفضيلات التثبيت المختارة</string>
<string name="chosen_lang">اللغة: %1$s</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">المظهر: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">إستخدم علامات التبويب المخصصة لكروم</string>
<string name="link_custom_tabs">سيتم فتح الروابط في علامات التبويب المخصصة لـكروم</string>
<string name="link_external_browser">سيتم فتح الروابط في متصفح خارجي</string>
<string name="theme">موضوع اللون</string>
<string name="theme_follow">اتبع النظام</string>
<string name="theme_dark">الموضوع الاسود</string>
<string name="theme_light">موضوع الابيض</string>
<string name="update_url">تحديث رابط القناة</string>
<string name="push_notifications">تنبيات</string>
<string name="push_notifications_summary">تجيب اشعارات عند اصدار تحديث</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">اعادة التحقق</string>
<string name="update_center">مركز التحديث</string>
<string name="update_found">تم العثور على التحديث!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">إزالة</string>
<string name="guide">المعالج</string>
<string name="hold_on">إنتظر!</string>
<string name="magisk_vanced">يبدو أنك تستخدم إصدار Magisk من Vanced، الذي تم وقفه ولا يمكن تحديثه باستخدام هذا التطبيق. الرجاء إزالته أولاً عن طريق إزالة وحدة الـ Magisk.</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">تم اكتشاف MIUI!</string>
<string name="miui_one">مرحباً! يبدو أنك مستخدم MIUI. من أجل استخدام هذا التطبيق بشكل صحيح، يجب عليك تعطيل تحسينات MIUI في إعدادات المطور. (يمكنك تجاهل هذا التحذير بأمان إذا كنت في 20.2.20 أو في وقت لاحق على شكل ROM استناداً إلى xiaomi.eu)</string>
<string name="error">خطأ</string>

View File

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">বন্ধ</string>
<string name="reset">আবার শুরু করো</string>
<string name="save">সংরক্ষণ করো</string>
<!-- Main Activity -->
<string name="title_about">সম্পর্কে</string>
<string name="title_home">মূল পাতা</string>
<string name="title_settings">সেটিংস</string>
<!-- Home Page -->
<string name="changelogs">পরিবর্তন নথি</string>
<string name="downloading_file">%1$s ডাউনলোড করা হচ্ছে</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">ইনস্টল</string>
<string name="installing_app">%1$s ইনস্টল করা হচ্ছে</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">পুনঃইনস্টল</string>
<string name="version_installed">ইনস্টলকৃত:</string>
<string name="latest">সর্বশেষ:</string>
<string name="successfully_installed">সফলভাবে ইন্সটলকৃত %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">রুট অনুমতি দেয়া হয়নি</string>
<string name="unavailable">অনুপলব্ধ</string>
<string name="update">হালনাগাদ</string>
<string name="useful_links">উপকারী লিংক</string>
<string name="website_text">ওয়েবসাইট</string>
<string name="support_us">আমাদের সমর্থন করো!</string>
<string name="version_toast">%1$s সংস্করণ অনুলিপিত!</string>
<!-- Settings -->
<string name="accent_color">রঙের ধরন</string>
<string name="accent_blue">নীল</string>
<string name="accent_green">সবুজ</string>
<string name="accent_purple">গাঢ় বেগুনী</string>
<string name="accent_red">লাল</string>
<string name="accent_yellow">হলুদ</string>
<string name="category_interface">ইন্টারফেস</string>
<string name="category_manager">ব্যবস্থাপক</string>
<string name="check_updates">হালনাগাদ আছে কিনা দেখো</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">থিম: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">সহায়িকা</string>
<string name="hold_on">দাঁড়াও!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">মিইউআই শনাক্তকৃত!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">ত্রুটি</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">সফলতা!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">শুরু করো</string>
<string name="welcome">স্বাগতম</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
<string name="finish">শেষ</string>
<string name="install_light_black">আলো + কালো</string>
<string name="install_light_dark">আলো + অন্ধকার</string>
<string name="next">পরেরটা</string>
<!-- About Page -->
<string name="manager_dev">Manager Dev</string>
<string name="sources">সূত্রসমূহ</string>
<string name="vanced_team">ভান্সড দল</string>
</resources>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="close">বন্ধ করুন</string>
<string name="reset">রিসেট করুন</string>
<string name="save">সেভ করুন</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_about">সম্বন্ধে</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<!-- Home Page -->
@ -17,11 +17,12 @@
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
@ -30,9 +31,9 @@
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">অলভ্য</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
<string name="useful_links">Useful Links</string>
<string name="website_text">Website</string>
@ -45,50 +46,52 @@
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="category_manager">Manager</string>
<string name="check_updates">Check for updates</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme">Links will open in an External Browser</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">রি-চেক</string>
<string name="update_center">পরিচালক আপডেট কেন্দ্র Center</string>
<string name="update_found">আপডেট পাওয়া গেল!</string>
<string name="update_notfound">কোনও নতুন আপডেট নেই</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">Launch</string>
<string name="welcome">Welcome</string>
<string name="button_dismiss">খারিজ করা</string>
<string name="guide">গাইড</string>
<string name="hold_on">অপেক্ষা কর!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI সনাক্ত!</string>
<string name="miui_one">হে! দেখে মনে হচ্ছে তুমি আ MIUI ব্যবহারকারী। এই অ্যাপ্লিকেশনটি সঠিকভাবে ব্যবহার করতে আপনাকে নিষ্ক্রিয় করতে হবে MIUI বিকাশকারী সেটিংসে অপ্টিমেশন। (আপনি যদি থাকেন তবে আপনি নিরাপদে এই সতর্কতাটিকে উপেক্ষা করতে পারেন 20.2.20 অথবা পরে ROM ভিত্তিক xiaomi.eu)</string>
<string name="error">ত্রুটি</string>
<string name="security_context">দয়া করে নিশ্চিত হন, আপনি যে অ্যাপটি ডাউনলোড করেছেন তা থেকে vanced.app, Vanced Discord server অথবা Vanced GitHub</string>
<string name="success">সফল!</string>
<string name="vanced_installed">Vanced সফলভাবে ইনস্টল করা হয়েছে! এখন আরম্ভ?</string>
<string name="launch">শুরু করা</string>
<string name="welcome">স্বাগত</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
<string name="finish">Finish</string>
<string name="install_light_black">Light + Black</string>
<string name="install_light_dark">Light + Dark</string>
<string name="next">Next</string>
<string name="choose_preferred_language">এর জন্য আপনার পছন্দসই ভাষা চয়ন করুন Vanced</string>
<string name="choose_preferred_language_note">দ্রষ্টব্য: ইংরেজি সর্বদা অতিরিক্ত ভাষা হিসাবে ইনস্টল করা হবে।</string>
<string name="choose_preferred_theme">এর জন্য আপনার পছন্দসই থিমটি চয়ন করুন Vanced</string>
<string name="disable_signature">রুট মোড সনাক্ত! স্থাপন করা Vanced, আপনি অক্ষম করতে হবে apk স্বাক্ষর যাচাইকরণ।.</string>
<string name="finish">শেষ</string>
<string name="install_light_black">হালকা + কালো</string>
<string name="install_light_dark">হালকা + গাark</string>
<string name="next">পরবর্তী</string>
<!-- About Page -->
<string name="manager_dev">Manager Dev</string>
<string name="sources">Sources</string>
<string name="vanced_team">Vanced Team</string>
<string name="manager_dev">ম্যানেজার দেব</string>
<string name="sources">সোর্স</string>
<string name="vanced_team">Vanced টীম</string>
</resources>

View File

@ -1,81 +1,84 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="reset">Reset</string>
<string name="save">Save</string>
<string name="close">Tanca</string>
<string name="reset">Restableix</string>
<string name="save">Desa</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<string name="title_about">Quant a</string>
<string name="title_home">Inici</string>
<string name="title_settings">Configuració</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
<string name="useful_links">Useful Links</string>
<string name="website_text">Website</string>
<string name="support_us">Support us!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="changelogs">Registres de canvis</string>
<string name="downloading_file">Descarregant %1$s</string>
<string name="failed_uninstall">Error en instal·lar el paquet %1$s</string>
<string name="error_downloading">Error en descarregar %1$s</string>
<string name="install">Instal·lar</string>
<string name="installing_app">Instal·lant %1$s</string>
<string name="installation_aborted">L\'operació ha fallat perquè l\'usuari ha cancel·lat la instal·lació.</string>
<string name="installation_blocked">L\'operació ha fallat perquè l\'usuari ha blocat la instal·lació.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">L\'operació ha fallat perquè l\'aplicació coincideix amb altra ja instal·lada.</string>
<string name="installation_failed">L\'operació ha fallat per una raó desconeguda, si us plau, uniu-se al Telegram o al Discord per rebre suport tècnic.</string>
<string name="installation_incompatible">L\'operació ha fallat perquè l\'aplicació és incompatible amb el vostre dispositiu.</string>
<string name="installation_invalid">L\'operació ha fallat perquè els fitxers apk són invàlids.</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">S\'ha produït un error inesperat mentre s\'instal·lava Vanced. Heu desactivat les optimitzacions de MIUI?</string>
<string name="installation_storage">L\'operació ha fallat degut a un error d\'emmagatzematge.</string>
<string name="installation_wait">Espereu fins que es completi la instal·lació</string>
<string name="button_reinstall">Reinstal·la</string>
<string name="version_installed">Instal·lat:</string>
<string name="latest">Darrera:</string>
<string name="successfully_installed">Instal·lat amb èxit %1$s</string>
<string name="network_error">No hi ha connexió a xarxa disponible</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">L\'accés arrel no s\'ha concedit</string>
<string name="unavailable">No disponible</string>
<string name="update">Actualitza</string>
<string name="useful_links">Enllaços d\'interès</string>
<string name="website_text">Lloc web</string>
<string name="support_us">Doneu-nos suport!</string>
<string name="version_toast">La versió %1$s s\'ha copiat!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">Blue</string>
<string name="accent_green">Green</string>
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="category_manager">Manager</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<string name="accent_color">Color d\'èmfasi</string>
<string name="accent_blue">Blau</string>
<string name="accent_green">Verd</string>
<string name="accent_purple">Porpra</string>
<string name="accent_red">Vermell</string>
<string name="accent_yellow">Groc</string>
<string name="category_interface">Interfície</string>
<string name="category_manager">Gestor</string>
<string name="check_updates">Busca actualitzacions</string>
<string name="chosen_install_values">Preferències d\'instal·lació triades</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Tema: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Utilitza pestanyes personalitzades del Chrome</string>
<string name="link_custom_tabs">Els enllaços s\'obriran en pestanyes personalitzades del Chrome</string>
<string name="link_external_browser">Els enllaços s\'obriran en un navegador extern</string>
<string name="theme">Tema</string>
<string name="theme_follow">Segueix el sistema</string>
<string name="theme_dark">Tema fosc</string>
<string name="theme_light">Tema clar</string>
<string name="update_url">Actualitza la URL del canal</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Comprovar de nou</string>
<string name="update_center">Gestor d\'actualitzacions</string>
<string name="update_found">Actualització disponible!</string>
<string name="update_notfound">Cap actualització</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="button_dismiss">Descartar</string>
<string name="guide">Guia</string>
<string name="hold_on">Espereu!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI detectat!</string>
<string name="miui_one">Sembla que sou un usuari de MIUI. Per a utilitzar aquesta aplicació, heu de desactivar les optimitzacions de MIUI en la configuració de desenvolupadors. (Podeu ignorar aquest avís si teniu la ROM 20.2.20 o posteriors de xiaomi.eu.)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="security_context">Comproveu que heu descarregat l\'aplicació des de vanced.app, el servidor Discord de Vanced o el GitHub de Vanced</string>
<string name="success">Èxit!</string>
<string name="vanced_installed">Vanced s\'ha instal·lat correctament. Obrir?</string>
<string name="launch">Launch</string>
<string name="welcome">Welcome</string>
<!-- Install Page -->

View File

@ -1,94 +1,97 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="reset">Reset</string>
<string name="save">Save</string>
<string name="close">Zavřít</string>
<string name="reset">Resetovat</string>
<string name="save">Uložit</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<string name="title_about">O aplikaci</string>
<string name="title_home">Přehled</string>
<string name="title_settings">Nastavení</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
<string name="useful_links">Useful Links</string>
<string name="website_text">Website</string>
<string name="support_us">Support us!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="changelogs">Seznamy změn</string>
<string name="downloading_file">Stahování %1$s</string>
<string name="failed_uninstall">Nepodařilo se odinstalovat balíček %1$s</string>
<string name="error_downloading">Chyba při stahování %1$s</string>
<string name="install">Instalace</string>
<string name="installing_app">Probíhá instalace %1$s</string>
<string name="installation_aborted">Operace se nezdařila, protože uživatel přerušil instalaci.</string>
<string name="installation_blocked">Operace se nezdařila, protože uživatel zablokoval instalaci.</string>
<string name="installation_downgrade">Operace se nezdařila, protože se uživatel pokusil downgradovat balíček. Máte nainstalovánu standardní aplikaci YouTube?</string>
<string name="installation_conflict">Operace se nezdařila, protože aplikace je v konfliktu s již nainstalovanou aplikací.</string>
<string name="installation_failed">Operace se nezdařila z neznámého důvodu. Pro podporu se připojte k našemu Telegramu nebo Discordu.</string>
<string name="installation_incompatible">Operace se nezdařila, protože aplikace není kompatibilní s vaším zařízením.</string>
<string name="installation_invalid">Operace se nezdařila, protože soubory APK jsou neplatné.</string>
<string name="installation_signature">Operace se nezdařila, protože uživatel nezakázal ověření podpisu APK</string>
<string name="installation_miui">Při instalaci aplikace Vanced došlo k neočekávané chybě. Máte vypnuty optimalizace MIUI?</string>
<string name="installation_storage">Operace se nezdařila z důvodu chyby v úložišti.</string>
<string name="installation_wait">Počkejte prosím na dokončení instalace</string>
<string name="button_reinstall">Přeinstalovat</string>
<string name="version_installed">Nainstalováno:</string>
<string name="latest">Nejnovější:</string>
<string name="successfully_installed">Úspěšně nainstalováno %1$s</string>
<string name="network_error">Nelze se připojit k Internetu</string>
<string name="no_microg">microG není nainstalováno</string>
<string name="root_not_granted">Root přístup nebyl udělen</string>
<string name="unavailable">Není k dispozici</string>
<string name="update">Aktualizovat</string>
<string name="useful_links">Užitečné odkazy</string>
<string name="website_text">Webová stránka</string>
<string name="support_us">Podpořte nás!</string>
<string name="version_toast">Verze %1$s byla zkopírována!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">Blue</string>
<string name="accent_green">Green</string>
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="accent_color">Doplňková barva</string>
<string name="accent_blue">Modrá</string>
<string name="accent_green">Zelená</string>
<string name="accent_purple">Fialová</string>
<string name="accent_red">Červená</string>
<string name="accent_yellow">Žlutá</string>
<string name="category_interface">Rozhraní</string>
<string name="category_manager">Manager</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<string name="check_updates">Zkontrolovat aktualizace</string>
<string name="chosen_install_values">Vybrané předvolby instalace</string>
<string name="chosen_lang">Jazyk: %1$s</string>
<string name="chosen_theme">Vzhled: %1$s</string>
<string name="clear_files">Vymazat stažené soubory</string>
<string name="cleared_files">Vymazání souborů proběhlo úspěšně</string>
<string name="link_title">Používat vlastní karty prohlížeče Chrome</string>
<string name="link_custom_tabs">Odkazy se otevřou na vlastních kartách prohlížeče Chrome</string>
<string name="link_external_browser">Odkazy se otevřou v externím prohlížeči</string>
<string name="theme">Vzhled</string>
<string name="theme_follow">Podle systému</string>
<string name="theme_dark">Tmavý vzhled</string>
<string name="theme_light">Světlý vzhled</string>
<string name="update_url">URL aktualizačního kanálu</string>
<string name="push_notifications">%1$s vyskakovací oznámení</string>
<string name="push_notifications_summary">Po vydání aktualizace pro %1$s obdržíte vyskakovací oznámení</string>
<string name="re_check">Opakovat</string>
<string name="update_center">Centrum aktualizací</string>
<string name="update_found">Nalezena aktualizace!</string>
<string name="update_notfound">Žádné nové aktualizace</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">Launch</string>
<string name="welcome">Welcome</string>
<string name="button_dismiss">Zavřít</string>
<string name="guide">Návod</string>
<string name="hold_on">Počkejte!</string>
<string name="magisk_vanced">Vypadá to, že používáte verzi Vanced pro Magisk/TWRP, která je ukončena a pomocí této aplikace ji nelze aktualizovat. Nejprve ji odstraňte odinstalací modulu Magisk/použitím Vanced odinstalátoru v TWRP.</string>
<string name="miui_one_title">Zjištěno MIUI!</string>
<string name="miui_one">Ahoj! Vypadá to, že používáte MIUI. Abyste mohli správně používat tuto aplikaci, budete muset vypnout optimalizaci MIUI v nastavení pro vývojáře. (Toto varování můžete bezpečně ignorovat, pokud máte ROM z 20.2.2020 nebo pozdější, založenou na xiaomi.eu)</string>
<string name="error">Chyba</string>
<string name="security_context">Prosím ujistěte se, že jste si aplikaci stáhli z našeho webu vanced.app, z našeho Discord serveru nebo našeho GitHubu.</string>
<string name="success">Hotovo!</string>
<string name="vanced_installed">Aplikace Vanced byla úspěšně nainstalována! Chcete ji spustit?</string>
<string name="launch">Spustit</string>
<string name="welcome">Vítejte</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
<string name="finish">Finish</string>
<string name="install_light_black">Light + Black</string>
<string name="install_light_dark">Light + Dark</string>
<string name="next">Next</string>
<string name="choose_preferred_language">Vyberte preferovaný jazyk pro Vanced</string>
<string name="choose_preferred_language_note">Poznámka: Angličtina bude vždy nainstalována jako dodatečný jazyk.</string>
<string name="choose_preferred_theme">Vyberte preferovaný vzhled pro Vanced</string>
<string name="disable_signature">Byl zjištěn režim root! Chcete-li nainstalovat Vanced, budete muset vypnout ověření podpisu APK.</string>
<string name="finish">Dokončit</string>
<string name="install_light_black">Světlý + černý</string>
<string name="install_light_dark">Světlý + tmavý</string>
<string name="next">Další</string>
<!-- About Page -->
<string name="manager_dev">Manager Dev</string>
<string name="sources">Sources</string>
<string name="vanced_team">Vanced Team</string>
<string name="manager_dev">Vývojář aplikace</string>
<string name="sources">Zdrojové kódy</string>
<string name="vanced_team">Tým Vanced</string>
</resources>

View File

@ -1,94 +1,97 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="reset">Reset</string>
<string name="save">Save</string>
<string name="close">Luk</string>
<string name="reset">Nulstil</string>
<string name="save">Gem</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<string name="title_about">Om</string>
<string name="title_home">Hjem</string>
<string name="title_settings">Indstillinger</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
<string name="useful_links">Useful Links</string>
<string name="website_text">Website</string>
<string name="support_us">Support us!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="downloading_file">Downloader %1$s</string>
<string name="failed_uninstall">Fejlede i at fjerne pakke %1$s</string>
<string name="error_downloading">Fejl i download af %1$s</string>
<string name="install">Installer</string>
<string name="installing_app">Installerer %1$s</string>
<string name="installation_aborted">Operationen fejlede fordi brugeren lukkede installationen.</string>
<string name="installation_blocked">Operationen fejlede fordi brugeren blokerede installationen.</string>
<string name="installation_downgrade">Operationen fejlede fordi brugeren prøvede at nedgradere pakken. Har du YouTube appen installeret?</string>
<string name="installation_conflict">Operationen fejlede fordi appen konflikter med en anden installeret app.</string>
<string name="installation_failed">Operationen fejlede af ukendt årsag, join vores Telegram eller Discord for hjælp.</string>
<string name="installation_incompatible">Operationen fejlede fordi appen ikke er kompatibel med din enhed.</string>
<string name="installation_invalid">Operationen fejlede fordi apk filerne er ugyldige.</string>
<string name="installation_signature">Operationen fejlede fordi brugeren ikke har disabled apk signatur verifikation</string>
<string name="installation_miui">En uventet fejl skete under installationen af Vanced. Har du disabled MIUI Optimering?</string>
<string name="installation_storage">Operationen fejlede på grund af lagerfejl.</string>
<string name="installation_wait">Vent venligst til installationen bliver færdiggjort</string>
<string name="button_reinstall">Geninstaller</string>
<string name="version_installed">Installeret:</string>
<string name="latest">Seneste:</string>
<string name="successfully_installed">Installerede %1$s succesfuldt</string>
<string name="network_error">Netværksforbindelse utilgængelig</string>
<string name="no_microg">microG er ikke installeret</string>
<string name="root_not_granted">Root adgang ikke tildelt</string>
<string name="unavailable">Utilgængelig</string>
<string name="update">Opdater</string>
<string name="useful_links">Nyttige Links</string>
<string name="website_text">Hjemmeside</string>
<string name="support_us">Støt os!</string>
<string name="version_toast">%1$s version blev kopieret!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">Blue</string>
<string name="accent_green">Green</string>
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="accent_color">Sekundær farve</string>
<string name="accent_blue">Blå</string>
<string name="accent_green">Grøn</string>
<string name="accent_purple">Lilla</string>
<string name="accent_red">Rød</string>
<string name="accent_yellow">Gul</string>
<string name="category_interface">Brugerflade</string>
<string name="category_manager">Manager</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<string name="check_updates">Søg efter opdateringer</string>
<string name="chosen_install_values">Valgte installations præferencer</string>
<string name="chosen_lang">Sprog:%1$s</string>
<string name="chosen_theme">Tema: %1$s</string>
<string name="clear_files">Ryd hentede filer</string>
<string name="cleared_files">Filer ryddet succesfuldt</string>
<string name="link_title">Brug Chrome Custom Faner</string>
<string name="link_custom_tabs">Links vil åbne i Chrome Custom Faner</string>
<string name="link_external_browser">Links vil åbne i en ekstern browser</string>
<string name="theme">Tema</string>
<string name="theme_follow">Følg systemet</string>
<string name="theme_dark">Mørkt tema</string>
<string name="theme_light">Lyst tema</string>
<string name="update_url">Opdateringskanal URL</string>
<string name="push_notifications">%1$s Push Notifikationer</string>
<string name="push_notifications_summary">Modtag push meddelelser når der er en ny opdatering til %1$s</string>
<string name="re_check">Check igen</string>
<string name="update_center">Manager opdaterings center</string>
<string name="update_found">Opdatering fundet!</string>
<string name="update_notfound">Ingen nye opdateringer</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">Launch</string>
<string name="welcome">Welcome</string>
<string name="button_dismiss">Luk</string>
<string name="guide">Vejledning</string>
<string name="hold_on">Et øjeblik!</string>
<string name="magisk_vanced">Det ser ud som om du bruger Magisk/TWRP versionen af Vanced. Den er ikke længere understøttet og kan derfor ikke opdateres igennem denne app. Vær venlig at fjerne magisk modulet/brug TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI fundet!</string>
<string name="miui_one">Hey! Det ser ud som om du er MIUI bruger. For at kunne bruge denne app ordenligt skal du deaktivere MIUI optimeringer i udvikler indstillingerne (Du kan trygt ignorere denne advarsel hvis du bruger 20.2.20 eller nyere ROM baseret på xiaomi.eu)</string>
<string name="error">Fejl</string>
<string name="security_context">Venligst sørg for kun at have downloaded appen fra vanced.app, Vanced Discord serveren eller Vanced GitHub siden</string>
<string name="success">Succes!</string>
<string name="vanced_installed">Vanced er nu installeret! Åben appen?</string>
<string name="launch">Start</string>
<string name="welcome">Velkommen</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
<string name="finish">Finish</string>
<string name="install_light_black">Light + Black</string>
<string name="install_light_dark">Light + Dark</string>
<string name="next">Next</string>
<string name="choose_preferred_language">Vælg dit fortrukne sprog til Vanced</string>
<string name="choose_preferred_language_note">Note: Engelsk vil altid blive installeret som et alternativt sprog også.</string>
<string name="choose_preferred_theme">Vælg dit fortrukne tema til Vanced</string>
<string name="disable_signature">Root mode fundet! For at installere Vanced er du nødt til at disable appsignatur verifikation.</string>
<string name="finish">Afslut</string>
<string name="install_light_black">Lyst + Sort</string>
<string name="install_light_dark">Lyst + Mørkt</string>
<string name="next">Næste</string>
<!-- About Page -->
<string name="manager_dev">Manager Dev</string>
<string name="sources">Sources</string>
<string name="vanced_team">Vanced Team</string>
<string name="manager_dev">Manager udvikler</string>
<string name="sources">Kilder</string>
<string name="vanced_team">Vanced holdet</string>
</resources>

View File

@ -17,11 +17,12 @@
<string name="installing_app">%1$s wird installiert</string>
<string name="installation_aborted">Operation fehlgeschlagen, da der Nutzer sie abgebrochen hat</string>
<string name="installation_blocked">Operation fehlgeschlagen, da der Nutzer die Installation nicht gestattet hat</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operation fehlgeschlagen, da die App mit einer bereits installierten App im Konflikt steht</string>
<string name="installation_failed">Operation aus einem unbekannten Grund fehlgeschlagen. Bitte trete unserem Telegram Chat oder Discord Server bei, um Support zu erhalten.</string>
<string name="installation_incompatible">Operation fehlgeschlagen, da die App inkompatibel mit deinem Gerät ist</string>
<string name="installation_invalid">Operation fehlgeschlagen, da die apks Dateien defekt sind</string>
<string name="installation_signature">Unerwarteter Fehler während der Installation aufgetreten. Hast du die Signatur-Verifikation deaktiviert?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">Unerwarteter Fehler während der Installation aufgetreten. Hast du die MIUI-Optimisierungen deaktiviert?</string>
<string name="installation_storage">Operation fehlgeschlagen, da ein Storage-Fehler aufgetreten ist.</string>
<string name="installation_wait">Bitte warte, bis die Installation abgeschlossen ist</string>
@ -30,14 +31,14 @@
<string name="latest">Neueste:</string>
<string name="successfully_installed">%1$s erfolgreich installiert</string>
<string name="network_error">Keine Netzwerkverbindung verfügbar</string>
<string name="no_microg">Kein MicroG!</string>
<string name="no_microg">Weibo ist nicht installiert</string>
<string name="root_not_granted">Root-Zugriff nicht erteilt</string>
<string name="unavailable">Nicht verfügbar</string>
<string name="update">Aktualisieren</string>
<string name="useful_links">Nützliche Links</string>
<string name="website_text">Webseite</string>
<string name="support_us">Ünterstütze uns!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">%1$s-Version erfolgreich kopiert!</string>
<!-- Settings -->
<string name="accent_color">Akzentfarbe</string>
<string name="accent_blue">Blau</string>
@ -45,12 +46,14 @@
<string name="accent_purple">Lila</string>
<string name="accent_red">Rot</string>
<string name="accent_yellow">Gelb</string>
<string name="check_updates">Prüfe nach Updates</string>
<string name="category_interface">Benutzeroberfläche</string>
<string name="category_manager">Manager</string>
<string name="check_updates">Prüfe nach Updates</string>
<string name="chosen_install_values">Ausgewählte Installationsoptionen</string>
<string name="chosen_lang">Sprache: %1$s</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Verwende Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links werden in Chrome Custom Tabs geöffnet</string>
<string name="link_external_browser">Links werden in einem externen Browser geöffnet</string>
@ -59,8 +62,8 @@
<string name="theme_dark">Dunkles Theme</string>
<string name="theme_light">Helles Theme</string>
<string name="update_url">Kanal-Url updaten</string>
<string name="push_notifications">Push-Benachrichtigungen</string>
<string name="push_notifications_summary">Erhalte Push-Benachrichtigungen, wenn ein Update veröffentlicht wird</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Erneut überprüfen</string>
<string name="update_center">Update Center</string>
<string name="update_found">Update gefunden!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Schließen</string>
<string name="guide">Erklärung</string>
<string name="hold_on">Warte!</string>
<string name="magisk_vanced">Du nutzt die Magisk-Version von Vanced. Diese ist nicht mehr unterstützt und es ist nicht möglich, sie zu updaten. Bitte entferne sie erst, indem du das Magisk-Modul entfernst.</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI erkannt!</string>
<string name="miui_one">Hey! Du scheinst ein MIUI-Nutzer zu sein. Damit Vanced Manager richtig funktioniert musst du die MIUI-Optimisierungen in den Entwicklereinstellungen deines Gerätes deaktivieren. (Du kannst diese Warnung ignorieren, solltest du ein 20.2.20 Betriebssystem haben, das auf xiaomi.eu basiert ist)</string>
<string name="error">Fehler</string>

View File

@ -17,11 +17,12 @@
<string name="installing_app">Εγκατάσταση %1$s</string>
<string name="installation_aborted">Η διαδικασία απέτυχε λόγω ακύρωσης από τον χρήστη.</string>
<string name="installation_blocked">Η διαδικασία απέτυχε λόγω απόκλεισης από τον χρήστη.</string>
<string name="installation_downgrade">Η διεργασία απέτυχε διότι ο χρήστης προσπάθησε να υποβαθμίσει το πακέτο. Έχετε εγκαταστήσει το κανονικό YouTube;</string>
<string name="installation_conflict">Η διαδικασία απέτυχε επειδή η εφαρμογή είναι ήδη εγκατεστημένη.</string>
<string name="installation_failed">Η διαδικασία απέτυχε για άγνωστο λόγω, παρακαλούμε μπείτε στο Telegram ή στο Discord μας για βοήθεια.</string>
<string name="installation_incompatible">Η διαδικασία απέτυχε επείδη η εφαρμογή δεν είναι συμβατή με την συσκευή.</string>
<string name="installation_invalid">Η διαδικασία απέτυχε επειδή τα αρχεία APK δεν είναι σωστά.</string>
<string name="installation_signature">Προέκυψε ένα πρόβλημα στην εγκατάσταση του Vanced. Έχετε απενεργοποιήσει το Signature Verification;</string>
<string name="installation_signature">Η διεργασία απέτυχε διότι ο χρήστης δεν έκλεισε την επαλήθευση υπογραφής των apk</string>
<string name="installation_miui">Πρόεκυψε ένα πρόβλημα στην εγκατάσταση του Vanced. Έχετε επενεργοποιήσει το MIUI-Optimisations;</string>
<string name="installation_storage">Η διαδικασία απέτυχε λόγω προβλήματος του αποθηκευτικού χώρου.</string>
<string name="installation_wait">Παρακαλώ περιμένετε να ολοκληρωθεί η εγκατάσταση.</string>
@ -30,14 +31,14 @@
<string name="latest">Πιο πρόσφατο:</string>
<string name="successfully_installed">Εγκαταστάθηκε επιτυχώς %1$s</string>
<string name="network_error">Δεν υπάρχει σύνδεση στο διαδίκτυο</string>
<string name="no_microg">Δεν υπάρχουν MicroG!</string>
<string name="no_microg">το microG δεν είναι εγκατεστημένο</string>
<string name="root_not_granted">Δεν δόθηκαν Root άδειες</string>
<string name="unavailable">Μη διαθέσιμο</string>
<string name="update">Ενημέρωση</string>
<string name="useful_links">Χρήσιμοι σύνδεσμοι</string>
<string name="website_text">Ιστοσελίδα</string>
<string name="support_us">Υποστήριξε μας!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">Η έκδοση του %1$s αντιγράφηκε!</string>
<!-- Settings -->
<string name="accent_color">Χρώμα</string>
<string name="accent_blue">Μπλε</string>
@ -45,22 +46,24 @@
<string name="accent_purple">Μωβ</string>
<string name="accent_red">Κόκκινο</string>
<string name="accent_yellow">Κίτρινο</string>
<string name="check_updates">Έλεγχος για ενημερώσεις</string>
<string name="category_interface">Περιβάλλον</string>
<string name="category_manager">Διαχειριστής</string>
<string name="check_updates">Έλεγχος για ενημερώσεις</string>
<string name="chosen_install_values">Διαλέξτε επιλογές εγκατάστασης</string>
<string name="chosen_lang">Γλώσσα: %1$s</string>
<string name="chosen_lang">Γλώσσα(/ες): %1$s</string>
<string name="chosen_theme">Χρώματα: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">Εκκαθάριση κατεβασμένων αρχείων</string>
<string name="cleared_files">Επιτυχής εκκαθάριση αρχείων</string>
<string name="link_title">Χρήση προσαρμοσμένων καρτέλων Chrome</string>
<string name="link_custom_tabs">Οι σύνδεσμοι θα ανοίγουν σε προσαρμοσμένες καρτέλες chrome</string>
<string name="link_external_browser">Οι σύνδεσμοι θα ανοίγουν σε εξωτερικό φυλλομετρητή</string>
<string name="theme">Χρώματα</string>
<string name="theme_follow">Χρώμα συστήματος</string>
<string name="theme_dark">Σκούρο Χρώμα</string>
<string name="theme_light">Ανοιχτό Χρώμα</string>
<string name="update_url">Ενημερώστε το URL του καναλιού ενημέρωσης</string>
<string name="push_notifications">Ειδοποιήσεις</string>
<string name="push_notifications_summary">Λάβεται ειδοποίηση όταν βγαίνει νέα ενημέρωση</string>
<string name="push_notifications">%1$s Ειδοποιήσεις Push</string>
<string name="push_notifications_summary">Λάβεται ειδοποιήσεις push όταν υπάρχουν διαθέσιμες ενημερώσεις για το %1$s</string>
<string name="re_check">Επανέλεγχος</string>
<string name="update_center">Κέντρο ενημέρωσης</string>
<string name="update_found">Διαθέσιμη ενημέρωση!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Αγνόηση</string>
<string name="guide">Οδηγός</string>
<string name="hold_on">Περιμένετε!</string>
<string name="magisk_vanced">Φαίνεται πως χρησιμοποιήτε την Magisk έκδοση του Vanced, η οποία δεν υποστηρίζεται πια και δεν μπορεί να ενημερωθεί μέσω αυτής της εφαρμογής. Παρακαλούμε διαγράψτε αυτή την έκδοση αφαιρώντας το Magisk Module.</string>
<string name="magisk_vanced">Φαίνεται πως χρησιμοποιήτε την Magisk/TWRP έκδοση του Vanced, η οποία δεν υποστηρίζεται πλέον και δεν μπορεί να ενημερωθεί μέσω αυτής της εφαρμογής. Παρακαλούμε διαγράψτε αυτή την έκδοση αφαιρώντας το Magisk Module/χρησιμοποιόντας το πρόγραμμα κατάργησης TWRP Vanced.</string>
<string name="miui_one_title">Ανιχνεύτηκε MIUI!</string>
<string name="miui_one">Φαίνεται πως είστε χρήστης MIUI. Για να δουλέψει σωστά αυτή η εφαρμογή, θα πρέπει να απενεργοποιήσετε τα MIUI Optimisations στα Developer Settings. (Μπορείτε να αγνοήσετε αυτή την προειδοποίηση αν είστε στην έκδοση 20.2.20 ή νεότερη λειτουργικού βασισμένο στο Xiami.eu)</string>
<string name="error">Πρόβλημα</string>

View File

@ -2,7 +2,7 @@
<resources>
<!-- Global Strings -->
<string name="close">Cerrar</string>
<string name="reset">Resetear</string>
<string name="reset">Restablecer</string>
<string name="save">Guardar</string>
<!-- Main Activity -->
<string name="title_about">Información</string>
@ -11,33 +11,34 @@
<!-- Home Page -->
<string name="changelogs">Actualizaciones</string>
<string name="downloading_file">Descargando %1$s</string>
<string name="failed_uninstall">Fallo al desinstalar paquete %1$s</string>
<string name="failed_uninstall">Falla al desinstalar paquete %1$s</string>
<string name="error_downloading">Error al descargar %1$s</string>
<string name="install">Instalar</string>
<string name="installing_app">Instalando %1$s</string>
<string name="installation_aborted">La operación fallo porque el usuario abortó la instalación</string>
<string name="installation_blocked">La operación fallo porque el usuario bloqueo la instalación</string>
<string name="installation_downgrade">Operación fallida porque el usuario intentó degradar el paquete. ¿Tienes instalado YouTube original?</string>
<string name="installation_conflict">La operación fallo porque la app entra en conflicto con una app ya instalada</string>
<string name="installation_failed">La operacion fallo por una razon desconocida, porfavor únete a nuestro grupo de Telegram o Discord para brindar soporte.</string>
<string name="installation_incompatible">La operación fallo porque la app es incompatible con tu dispositivo.</string>
<string name="installation_invalid">La operación fallo debido a que los archivos apk son inválidos.</string>
<string name="installation_signature">Un error inesperado ocurrió durante la instalación de Vanced. Has deshabilitado verificación de firmas?(signature verification)</string>
<string name="installation_miui">Un error inesperado ocurrió durante la instalación de Vanced. Has deshabilitado las Optimizaciones de MiUI?</string>
<string name="installation_storage">Operación fallo porque hubo un error con almacenamiento.</string>
<string name="installation_signature">Operación fallida porque el usuario no deshabilitado verificación de firmas apk</string>
<string name="installation_miui">Un error inesperado ocurrió durante la instalación de Vanced. Has deshabilitado las Optimizaciones de MIUI?</string>
<string name="installation_storage">La operación falló debido a un error de almacenamiento.</string>
<string name="installation_wait">Porfavor espera hasta que la instalación termine.</string>
<string name="button_reinstall">Reinstalar</string>
<string name="version_installed">Instalado:</string>
<string name="latest">Ultimo:</string>
<string name="latest">Más reciente:</string>
<string name="successfully_installed">Instalación exitosa %1$s</string>
<string name="network_error">Conexion a la red no disponible</string>
<string name="no_microg">Sin MicroG!</string>
<string name="no_microg">microG no está instalado</string>
<string name="root_not_granted">Acceso root no concedido</string>
<string name="unavailable">No Disponible</string>
<string name="update">Actualizar</string>
<string name="useful_links">Links Utiles</string>
<string name="website_text">Sitio Web</string>
<string name="support_us">Apoyanos!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">¡Versión de %1$s copiada al portapeles!</string>
<!-- Settings -->
<string name="accent_color">Color de Acento</string>
<string name="accent_blue">Azul</string>
@ -45,22 +46,24 @@
<string name="accent_purple">Purpura</string>
<string name="accent_red">Rojo</string>
<string name="accent_yellow">Amarillo</string>
<string name="check_updates">Buscar actualizaciones</string>
<string name="category_interface">Interfaz</string>
<string name="category_manager">Manager</string>
<string name="chosen_install_values">Valores de instalación escojidos </string>
<string name="chosen_lang">Lenguaje: %1$s</string>
<string name="check_updates">Buscar actualizaciones</string>
<string name="chosen_install_values">Preferencias de instalación elegidas</string>
<string name="chosen_lang">Idioma(s): %1$s</string>
<string name="chosen_theme">Tema: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">Limpiar archivos descargados</string>
<string name="cleared_files">Archivos limpiados exitosamente</string>
<string name="link_title">Usar Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links serán abiertos en Chrome Custom Tabs</string>
<string name="link_external_browser">Links serán abiertos en un Navegador Externo</string>
<string name="theme">Tema</string>
<string name="theme_follow">Seguir Sistema</string>
<string name="theme_dark">Tema Oscuro</string>
<string name="theme_light">Tema Claro</string>
<string name="update_url">URL del canal de actualizacion</string>
<string name="push_notifications">Notificaciones Push</string>
<string name="push_notifications_summary">Recibir notificaciones push cuando una actualizacion sea lanzada</string>
<string name="push_notifications">Notificaciones push de %1$s</string>
<string name="push_notifications_summary">Recibir notificaciones push cuando una actualización para %1$s sea lanzada</string>
<string name="re_check">Reintentar</string>
<string name="update_center">Centro de Actualizaciones</string>
<string name="update_found">Actualización encontrada!</string>
@ -69,21 +72,20 @@
<string name="button_dismiss">Descartar</string>
<string name="guide">Guía</string>
<string name="hold_on">Un momento!</string>
<string name="magisk_vanced">Parece que estas usando la versión Magisk de Vanced, que está descontinuado y no puede ser actualizada utilizando esta app. Porfavor retírelo primero quitando el módulo magisk.</string>
<string name="miui_one_title">Usuario MiUI detectado!</string>
<string name="miui_one">Hey! Parece que eres un usuario MiUI. Pará poder usar Vanced Manager apropiadamente necesitarás deshabilitar las Optimizaciones MiUI en ajustes de desarrollador.
Sin embargo, si estas en el ROM 20.2.20 que esta basado en xiaomi.eu, entonces puedes ignorar esta advertencia de forma segura. </string>
<string name="magisk_vanced">Parece que estas usando la versión Magisk/TWRP de Vanced, la cual está descontinuada y no puede ser actualizada utilizando esta app. Por favor, elimínalo primero quitando el módulo magisk/usando el desinstalador para vanced de TWRP.</string>
<string name="miui_one_title">MIUI detectado!</string>
<string name="miui_one">Hey! Parece que eres un usuario MIUI. Para poder usar esta aplicacion correctamente, necesitaras deshabilitar las optimizaciones MIUI en ajustes de desarrollador. (Puedes ignorar esta advertencia con seguridad si estas en un ROM 20.2.20 o posterior basado en xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Porfavor asegurate de haver descargado la aplicacion mediante vanced.app, el server de Vanced en Discord, o Github</string>
<string name="success">Éxito! </string>
<string name="vanced_installed">Vanced a sido instalado exitosamente, quieres lanzarlo ahora?</string>
<string name="success">Éxito!</string>
<string name="vanced_installed">¡Vanced ha sido instalado exitosamente! ¿Lanzar ahora?</string>
<string name="launch">Lanzar</string>
<string name="welcome">Bienvenido</string>
<!-- Install Page -->
<string name="choose_preferred_language">Elije tu lenguaje preferido para Vanced</string>
<string name="choose_preferred_language_note">Nota: si instalas un idioma ademas de Ingles, Ingles va estar todavia instalado como un lenguaje adicional</string>
<string name="choose_preferred_theme">Elije tu tema preferido para Vanced</string>
<string name="disable_signature">Modo root detectado! Pará que el Manager pueda instalar Vanced correctamente, por favor asegúrate de que hayas deshabilitado verificación de firmas(signature verification). </string>
<string name="choose_preferred_language">Elige tu idioma preferido para Vanced</string>
<string name="choose_preferred_language_note">Nota: Ingles va a estar instalado como un idioma adicional.</string>
<string name="choose_preferred_theme">Elige tu tema preferido para Vanced</string>
<string name="disable_signature">Modo root detectado! Para instalar Vanced, necesitaras deshabilitar verificación de firmas(disable signature verification).</string>
<string name="finish">Finalizar</string>
<string name="install_light_black">Claro + Negro</string>
<string name="install_light_dark">Claro + Oscuro</string>

View File

@ -1,94 +1,97 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="reset">Reset</string>
<string name="save">Save</string>
<string name="close">Sulje</string>
<string name="reset">Palauta</string>
<string name="save">Tallenna</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<string name="title_about">Tietoja</string>
<string name="title_home">Koti</string>
<string name="title_settings">Asetukset</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="root_not_granted">Root access not granted</string>
<string name="changelogs">Muutoshistoria</string>
<string name="downloading_file">Ladataan %1$s</string>
<string name="failed_uninstall">Paketin %1$s asennus epäonnistui</string>
<string name="error_downloading">%1$s lataus epäonnistui</string>
<string name="install">Asenna</string>
<string name="installing_app">Asennetaan %1$s</string>
<string name="installation_aborted">Operaatio epäonnistui, koska käyttäjä keskeytti asennuksen.</string>
<string name="installation_blocked">Operaatio epäonnistui, koska käyttäjä esti asennuksen.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operaatio epäonnistui, koska sovellus on ristiriidassa toisen sovelluksen kanssa.</string>
<string name="installation_failed">Operaatio epäonnistui tuntemattomasta syystä, ole hyvä ja liity Telegram tai Discord kanaviimme halutessasi tukea.</string>
<string name="installation_incompatible">Operaatio epäonnistui, koska sovellus ei ole yhteensopiva laitteesi kanssa.</string>
<string name="installation_invalid">Operaatio epäonnistui, koska APK tiedostot ovat viallisia.</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">Odottamaton virhe asentaessa Vanced-pakettia. Oletko varmasti ottanut MIUI optimisaatiot pois käytöstä?</string>
<string name="installation_storage">Haku epäonnistui tallennustilan virheen vuoksi.</string>
<string name="installation_wait">Ole hyvä ja odota, että asennus suoritetaan loppuun.</string>
<string name="button_reinstall">Uudelleenasenna</string>
<string name="version_installed">Asennettu:</string>
<string name="latest">Uusin:</string>
<string name="successfully_installed">%1$s asennus onnistui</string>
<string name="network_error">Verkkoyhteys ei ole käytettävissä</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Pääkäyttäjän oikeuksia ei ole annettu</string>
<string name="unavailable">Ei saatavilla</string>
<string name="update">Update</string>
<string name="useful_links">Useful Links</string>
<string name="website_text">Website</string>
<string name="support_us">Support us!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="update">Päivitä</string>
<string name="useful_links">Hyödyllisiä linkkejä</string>
<string name="website_text">Verkkosivu</string>
<string name="support_us">Tue meitä!</string>
<string name="version_toast">%1$s versio kopioitu!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">Blue</string>
<string name="accent_green">Green</string>
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="accent_color">Aksenttiväri</string>
<string name="accent_blue">Sininen</string>
<string name="accent_green">Vihreä</string>
<string name="accent_purple">Violetti</string>
<string name="accent_red">Punainen</string>
<string name="accent_yellow">Keltainen</string>
<string name="category_interface">Ulkoasu</string>
<string name="category_manager">Manager</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<string name="check_updates">Tarkista päivitykset</string>
<string name="chosen_install_values">Valitut asennusasetukset</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Teema: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Käytä Chromen mukautettuja välilehtiä</string>
<string name="link_custom_tabs">Linkit aukeavat Chromen mukautetuissa välilehdissä</string>
<string name="link_external_browser">Linkit aukeavat ulkoisessa selaimessa</string>
<string name="theme">Teema</string>
<string name="theme_follow">Järjestelmän teema</string>
<string name="theme_dark">Tumma teema</string>
<string name="theme_light">Vaalea teema</string>
<string name="update_url">Päivityskanavan URL-osoite</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Tarkista uudelleen</string>
<string name="update_center">Managerin päivityskeskus</string>
<string name="update_found">Päivitys löytyi!</string>
<string name="update_notfound">Ei uusia päivityksiä</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">Launch</string>
<string name="welcome">Welcome</string>
<string name="button_dismiss">Ohita</string>
<string name="guide">Opas</string>
<string name="hold_on">Odotas vähän!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI tunnistettu!</string>
<string name="miui_one">Hei! Näyttää siltä, että olet MIUI käyttäjä. Jotta sovellus toimisi oikein, sinun täytyy poistaa MIUI optimoinnit pois käytöstä sovelluskehittäjän asetuksista. (Voit huoletta ohittaa tämän varoituksen, jos käytät xiaomi.eu ROM versiota 20.2.20 tai uudempaa)</string>
<string name="error">Virhe</string>
<string name="security_context">Varmista, että latasit sovelluksen vanced.app nettisivulta, Vanced Discord serveriltä tai Vanced GitHub sivulta.</string>
<string name="success">Onnistui!</string>
<string name="vanced_installed">Vanced asennettu onnistuneesti! Käynnistetäänkö nyt?</string>
<string name="launch">Avaa</string>
<string name="welcome">Tervetuloa</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
<string name="finish">Finish</string>
<string name="install_light_black">Light + Black</string>
<string name="install_light_dark">Light + Dark</string>
<string name="next">Next</string>
<string name="choose_preferred_language">Valitse haluamasi kieli</string>
<string name="choose_preferred_language_note">Huom: Englanti asennetaan rinnalle aina.</string>
<string name="choose_preferred_theme">Valitse haluamasi teema</string>
<string name="disable_signature">Pääkäyttäjän tila tunnistettu! Asentaaksei Vanced-sovelluksen, ole hyvä ja poista APK-paketin allekirjoituksen tarkistus pois käytöstä.</string>
<string name="finish">Valmis</string>
<string name="install_light_black">Vaalea + Musta</string>
<string name="install_light_dark">Vaalea + Tumma</string>
<string name="next">Seuraava</string>
<!-- About Page -->
<string name="manager_dev">Manager Dev</string>
<string name="sources">Sources</string>
<string name="vanced_team">Vanced Team</string>
<string name="manager_dev">Managerin kehittäjä</string>
<string name="sources">Lähdekoodi</string>
<string name="vanced_team">Vanced kehitystiimi</string>
</resources>

View File

@ -17,11 +17,12 @@
<string name="installing_app">Installation de %1$s</string>
<string name="installation_aborted">L\'opération à échouée, l\'utilisateur à abandonné l\'installation.</string>
<string name="installation_blocked">L\'opération à échouée, l\'utilisateur à bloqué l\'installation.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">L\'opération à échouée, l\'application est en conflict avec celle déjà installée.</string>
<string name="installation_failed">L\'opération à échouée pour une raison inconnue, rejoignez notre Telegram ou Discord pour obtenir de l\'aide.</string>
<string name="installation_incompatible">L\'opération à échouée, l\'application est incompatible avec votre appareil.</string>
<string name="installation_invalid">L\'opération à échouée, les fichiers apk sont invalides.</string>
<string name="installation_signature">Une erreur inattendue s\'est produite lors de l\'installation de Vanced. As-tu désactivé la vérification des signatures?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">Une erreur inattendue s\'est produite lors de l\'installation de Vanced. As-tu désactivé les optimisations MIUI?</string>
<string name="installation_storage">L\'opération à échouée, une erreur de stockage s\'est produite.</string>
<string name="installation_wait">Veuillez attendre la fin de l\'installation</string>
@ -30,14 +31,14 @@
<string name="latest">Dernière version:</string>
<string name="successfully_installed">%1$s installé avec succès</string>
<string name="network_error">Connection réseau indisponible</string>
<string name="no_microg">Pas de MicroG!</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Accès root non autorisé</string>
<string name="unavailable">Indisponible</string>
<string name="update">Mettre à jour</string>
<string name="useful_links">Liens utiles</string>
<string name="website_text">Site web</string>
<string name="support_us">Supporte nous !</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">La version %1$s a été copiée !</string>
<!-- Settings -->
<string name="accent_color">Couleur d\'accentuation</string>
<string name="accent_blue">Bleu</string>
@ -45,22 +46,24 @@
<string name="accent_purple">Violet</string>
<string name="accent_red">Rouge</string>
<string name="accent_yellow">Jaune</string>
<string name="check_updates">Vérifier les mises à jour</string>
<string name="category_interface">Interface</string>
<string name="category_manager">Gestion</string>
<string name="check_updates">Vérifier les mises à jour</string>
<string name="chosen_install_values">Préférences d\'installation sélectionnées</string>
<string name="chosen_lang">Langue : %1$s</string>
<string name="chosen_lang">Langue(s) : %1$s</string>
<string name="chosen_theme">Thème: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">Effacer les fichiers téléchargés</string>
<string name="cleared_files">Données effacées avec succès</string>
<string name="link_title">Utiliser les onglets personnalisés Chrome</string>
<string name="link_custom_tabs">Les liens s\'ouvriront dans les onglets personnalisés Chrome</string>
<string name="link_external_browser">Les liens s\'ouvriront dans un navigateur externe</string>
<string name="theme">Thème</string>
<string name="theme_follow">Suivre le paramètre système</string>
<string name="theme_dark">Thème sombre</string>
<string name="theme_light">Thème clair</string>
<string name="update_url">URL du canal de mise à jour</string>
<string name="push_notifications">Notifications</string>
<string name="push_notifications_summary">Recevoir des notifications quand une nouvelle version est disponible</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Revérifier</string>
<string name="update_center">Centre de mise à jour du Manager</string>
<string name="update_found">Mise à jour disponible!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Faire disparaître</string>
<string name="guide">Guide</string>
<string name="hold_on">Attends une seconde!</string>
<string name="magisk_vanced">Il semble que tu utilise la version Magisk de Vanced, qui n\'est plus supportée et ne peut être mise à jour avec cette application. Veuillez la supprimer en supprimant le module Magisk.</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI détecté!</string>
<string name="miui_one">Hey! Tu as l\'air d\'un utilisateur MIUI. Pour utiliser Vanced Manager correctement, te vas devoir désactiver les optimisations MIUI dans les options pour les développeurs. (Tu peux ignorer cet avertissement si tu est sur une ROM 20.2.20 et ultérieur basée sur xiaomi.eu)</string>
<string name="error">Erreur</string>

View File

@ -17,27 +17,28 @@
<string name="installing_app">%1$s इन्स्टॉःल कर रहा है </string>
<string name="installation_aborted">ऑपरेशन विफल हो गया क्योंकि उपयोगकर्ता ने स्थापना रद्द कर दी थी</string>
<string name="installation_blocked">उपयोगकर्ता अवरुद्ध स्थापना के कारण ऑपरेशन विफल हुआ</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">ऑपरेशन विफल हो गया क्योंकि ऐप पहले से इंस्टॉल किए गए ऐप के साथ टकराव करता है</string>
<string name="installation_failed">ऑपरेशन विफल हो गया क्योंकि यह अभी असफल रहा मुझे नहीं पता</string>
<string name="installation_incompatible">ऑपरेशन विफल हो गया क्योंकि ऐप आपके डिवाइस के साथ असंगत है</string>
<string name="installation_invalid">ऑपरेशन विफल हो गया क्योंकि एपीके फाइलें अमान्य हैं</string>
<string name="installation_signature">Vनाथ स्थापित करते समय अप्रत्याशित त्रुटि हुई। क्या आपने हस्ताक्षर सत्यापन अक्षम कर दिया है?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">Vनाथ स्थापित करते समय अप्रत्याशित त्रुटि हुई। क्या आपने MiUI ऑप्टिमाइज़ेशन को अक्षम कर दिया है?</string>
<string name="installation_storage">संग्रहण विफल होने के कारण ऑपरेशन विफल हो गया। पकड़ो कि यह कैसे संभव है?</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="installation_wait">कृपया स्थापना समाप्त होने तक प्रतीक्षा करें</string>
<string name="button_reinstall">फिर से इंस्टॉल</string>
<string name="version_installed">(इन्स्टॉल्ड</string>
<string name="latest">लेट्इस्ट</string>
<string name="successfully_installed">सफलतापूर्वक इन्स्टॉल्ड %1$s</string>
<string name="network_error">नेटवर्क कनेक्शन अनुपलब्ध है</string>
<string name="no_microg">कोई माइक्रोजी नहीं!</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">रूट एक्सेस प्रदान नही किया गया</string>
<string name="unavailable">अनुपलब्ध</string>
<string name="update">अपडेट करें</string>
<string name="useful_links">उपयोगी लिंक्स </string>
<string name="website_text">वेबसाइट</string>
<string name="support_us">हमें सपॉर्ट कीजिये!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">%1$s संस्करण कॉपी किया गया था!</string>
<!-- Settings -->
<string name="accent_color">एक्सेंट रंग</string>
<string name="accent_blue">नीला</string>
@ -45,22 +46,24 @@
<string name="accent_purple">बैंगनी</string>
<string name="accent_red">लाल</string>
<string name="accent_yellow">पीला</string>
<string name="check_updates">अपडेट के लिए जाँचे</string>
<string name="category_interface">इंटरफेस</string>
<string name="category_manager">मैनेजर</string>
<string name="check_updates">अपडेट के लिए जाँचे</string>
<string name="chosen_install_values">इंस्टालेशन चुनाव</string>
<string name="chosen_lang">भाषा: %1$s</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">थीम: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">क्रोम कस्टम टैब का उपयोग करें</string>
<string name="link_custom_tabs">क्रोम कस्टम टैब में लिंक खुलेंगे</string>
<string name="link_external_browser">लिंक एक बाहरी ब्राउज़र में खुलेंगे</string>
<string name="theme">थीम</string>
<string name="theme_follow">सिस्टम का पालन करें</string>
<string name="theme_dark">डार्क थीम</string>
<string name="theme_light">लाइट थीम</string>
<string name="update_url">चैनल URL अपडेट करें</string>
<string name="push_notifications">सूचनाएं भेजना</string>
<string name="push_notifications_summary">अपडेट जारी होने पर पुश सूचनाएं प्राप्त करें</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">री-चेक</string>
<string name="update_center">अपडेट केंद्र</string>
<string name="update_found">अपडेट मिला!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">डिस्मिस</string>
<string name="guide">गाइड</string>
<string name="hold_on">रुको!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">पता लगाया MiUI उपयोगकर्ता!</string>
<string name="miui_one">अरे! लगता है कि आप MiUI उपयोगकर्ता हैं। Vanced Manager को ठीक से उपयोग करने के लिए, आपको डेवलपर सेटिंग में MiUI ऑप्टिमाइज़ेशन को अक्षम करना होगा
हालाँकि, यदि आप 20.2.20 ROM पर हैं जो xiaomi.eu पर आधारित है, तो आप इस चेतावनी को सुरक्षित रूप से अनदेखा कर सकते हैं।</string>

View File

@ -1,94 +1,97 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="reset">Reset</string>
<string name="save">Save</string>
<string name="close">Bezárás</string>
<string name="reset">Visszaállítás</string>
<string name="save">Mentés</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<string name="title_about">Rólunk</string>
<string name="title_home">Kezdőlap</string>
<string name="title_settings">Beállítások</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
<string name="useful_links">Useful Links</string>
<string name="website_text">Website</string>
<string name="support_us">Support us!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="changelogs">Változtatások</string>
<string name="downloading_file">%1$s letöltése</string>
<string name="failed_uninstall">A %1$s-t nem sikerült eltávolítani</string>
<string name="error_downloading">%1$s letöltése nem sikerült</string>
<string name="install">Telepítés</string>
<string name="installing_app">%1$s telepítése</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 művelet végrehajtása nem sikerült, mert a felhasználó megszakította a telepítést.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Művelet végrehajtása nem sikerült, mert egy másik hasonló alkalmazás telepítve van.</string>
<string name="installation_failed">Művelet végrehajtása ismeretlen okok miatt nem sikerült, támogatásért csatlakozzon a Telegram vagy a Discord csoportunkhoz.</string>
<string name="installation_incompatible">Művelet végrehajtása nem sikerült, mert az alkalmazás nem kompatibilis az eszközével.</string>
<string name="installation_invalid">Művelet végrehajtása nem sikerült, mert a telepítőcsomagok érvénytelenek.</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">Váratlan hiba történt a Vanced telepítése közben. Kikapcsolta a MIUI-optimalizációt?</string>
<string name="installation_storage">Tárhely hiba miatt a művelet megszakadt.</string>
<string name="installation_wait">Várj míg a telepítés befejeződik…</string>
<string name="button_reinstall">Újratelepítés</string>
<string name="version_installed">Telepítve:</string>
<string name="latest">Legújabb:</string>
<string name="successfully_installed">%1$s sikeresen telepítve</string>
<string name="network_error">Nincs internetkapcsolat</string>
<string name="no_microg">microG nincs telepítve</string>
<string name="root_not_granted">Nincs root jogosultság</string>
<string name="unavailable">Nem elérhető</string>
<string name="update">Frissítés</string>
<string name="useful_links">Hasznos hivatkozások</string>
<string name="website_text">Honlap</string>
<string name="support_us">Támogasson bennünket!</string>
<string name="version_toast">%1$s verzió másolva!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">Blue</string>
<string name="accent_green">Green</string>
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="accent_color">Kiemelés színe</string>
<string name="accent_blue">Kék</string>
<string name="accent_green">Zöld</string>
<string name="accent_purple">Lila</string>
<string name="accent_red">Vörös</string>
<string name="accent_yellow">Sárga</string>
<string name="category_interface">Kezelőfelület</string>
<string name="category_manager">Manager</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<string name="check_updates">Frissítések ellenőrzése</string>
<string name="chosen_install_values">Telepítési preferencia</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Téma: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Egyéni Chrome lapok használata</string>
<string name="link_custom_tabs">A linkek egyéni Chrome ablakban nyílnak meg</string>
<string name="link_external_browser">A linkek egy külső böngészőben nyílnak meg</string>
<string name="theme">Kinézet</string>
<string name="theme_follow">Rendszertéma követése</string>
<string name="theme_dark">Sötét téma</string>
<string name="theme_light">Világos téma</string>
<string name="update_url">Frissítési csatorna</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Ellenőrizze újra</string>
<string name="update_center">Frissítő központ</string>
<string name="update_found">Frissítés érhető el!</string>
<string name="update_notfound">Nincsenek új frissítések</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">Launch</string>
<string name="welcome">Welcome</string>
<string name="button_dismiss">Bezár</string>
<string name="guide">Útmutató</string>
<string name="hold_on">Figyelem!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI észlelve!</string>
<string name="miui_one">Hey! Úgy néz ki MIUI felhasználó vagy. Hogy megfelelően működjön az alkalmazás, kapcsold ki a MIUI-optimalizációt a Fejlesztői beállításokban. (Figyelmen kívül hagyhatod xiaomi.eu 20.2.20 vagy későbbi verzió használata esetén)</string>
<string name="error">Hiba</string>
<string name="security_context">Arra kérünk, győződj meg róla, hogy ezt az alkalmazást a vanced.app oldalról, a Vanced Discord szerveréről vagy a Vanced GitHub-ról töltötted le</string>
<string name="success">Kész!</string>
<string name="vanced_installed">Vanced sikeresen telepítve! Elindítod most?</string>
<string name="launch">Indítás</string>
<string name="welcome">Üdvözöljük</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
<string name="finish">Finish</string>
<string name="install_light_black">Light + Black</string>
<string name="install_light_dark">Light + Dark</string>
<string name="next">Next</string>
<string name="choose_preferred_language">Preferált nyelv választása</string>
<string name="choose_preferred_language_note">Az angol mindíg telepítve lesz, mint választható nyelv.</string>
<string name="choose_preferred_theme">Vanced téma kiválasztása</string>
<string name="disable_signature">Root jogosultság észlelve! A Vanced telepítéséhez kapcsold ki a csomagaláírás ellenőrzést.</string>
<string name="finish">Kész</string>
<string name="install_light_black">Világos + Sötét</string>
<string name="install_light_dark">Világos + Fekete</string>
<string name="next">Következő</string>
<!-- About Page -->
<string name="manager_dev">Manager Dev</string>
<string name="sources">Sources</string>
<string name="vanced_team">Vanced Team</string>
<string name="manager_dev">Vezető fejlesztő</string>
<string name="sources">Források</string>
<string name="vanced_team">Vanced csapat</string>
</resources>

View File

@ -17,11 +17,12 @@
<string name="installing_app">Memasang %1$s</string>
<string name="installation_aborted">Proses gagal karena pengguna membatalkan instalasi.</string>
<string name="installation_blocked">Proses gagal karena pengguna memblokir instalasi.</string>
<string name="installation_downgrade">Proses gagal karena pengguna mencoba untuk menurunkan versi paket. Apakah anda mempunyai YouTube bawaan terpasang?</string>
<string name="installation_conflict">Proses gagal karena aplikasi konflik dengan aplikasi yang sudah terpasang.</string>
<string name="installation_failed">Proses gagal karena alasan yang tidak diketahui, mohon gabung Telegram atau Discord kami untuk bantuan.</string>
<string name="installation_incompatible">Proses gagal karena aplikasi tidak kompatibel dengan perangkat anda.</string>
<string name="installation_invalid">Proses gagal karena apk files tidak valid.</string>
<string name="installation_signature">Kesalahan tidak diduga saat memasang Vanced. Apakah anda sudah menonaktifkan apk signature verification?</string>
<string name="installation_signature">Proses gagal karena pengguna tidak menonaktifkan apk signature verification</string>
<string name="installation_miui">Kesalahan tidak terduga terjadi saat memasang Vanced. Apakah anda sudah menonaktifkan Optimisasi MIUI.</string>
<string name="installation_storage">Proses gagal karena kesalahan penyimpanan.</string>
<string name="installation_wait">Mohon tunggu sampai instalasi selesai</string>
@ -30,14 +31,14 @@
<string name="latest">Terbaru:</string>
<string name="successfully_installed">Berhasil dipasang %1$s</string>
<string name="network_error">Koneksi internet tidak tersedia</string>
<string name="no_microg">Tidak ada MicroG!</string>
<string name="no_microg">microG tidak terpasang</string>
<string name="root_not_granted">Akses Root tidak diberikan</string>
<string name="unavailable">Tidak tersedia</string>
<string name="update">Perbarui</string>
<string name="useful_links">Tautan Berguna</string>
<string name="website_text">Situs</string>
<string name="support_us">Dukung kami!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">Versi %1$s baru saja disalin!</string>
<!-- Settings -->
<string name="accent_color">Aksen Warna</string>
<string name="accent_blue">Biru</string>
@ -45,22 +46,24 @@
<string name="accent_purple">Ungu</string>
<string name="accent_red">Merah</string>
<string name="accent_yellow">Kuning</string>
<string name="check_updates">Cek pembaruan</string>
<string name="category_interface">Antarmuka</string>
<string name="category_manager">Manager</string>
<string name="check_updates">Cek pembaruan</string>
<string name="chosen_install_values">Preferensi instalasi yang dipilih</string>
<string name="chosen_lang">Bahasa: %1$s</string>
<string name="chosen_theme">Tema: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">Hapus file yang diunduh</string>
<string name="cleared_files">Berhasil menghapus file</string>
<string name="link_title">Gunakan Chrome Custom Tabs</string>
<string name="link_custom_tabs">Tautan akan terbuka di Chrome Custom Tabs</string>
<string name="link_external_browser">Tautan akan terbuka di Browser Eksternal</string>
<string name="theme">Tema</string>
<string name="theme_follow">Ikuti Sistem</string>
<string name="theme_dark">Tema Gelap</string>
<string name="theme_light">Tema Terang</string>
<string name="update_url">Perbarui URL Channel</string>
<string name="push_notifications">Notifikasi Push</string>
<string name="push_notifications_summary">Terima notifikasi push saat pembaruan dirilis</string>
<string name="push_notifications">%1$s Notifikasi Push</string>
<string name="push_notifications_summary">Terima notifikasi push saat pembaruan untuk %1$s dirilis</string>
<string name="re_check">Cek ulang</string>
<string name="update_center">Pusat Pembaruan Manager</string>
<string name="update_found">Pembaruan ditemukan!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Hilangkan</string>
<string name="guide">Petunjuk</string>
<string name="hold_on">Tahan!</string>
<string name="magisk_vanced">Sepertinya anda memakai Vanced versi magisk, yang dimana dihentikan dan tidak bisa diperbarui menggunakan aplikasi ini. Mohon hapus itu terlebih dahulu dengan menghapus modul magisk.</string>
<string name="magisk_vanced">Sepertinya anda menggunakan Vanced versi Magisk/TWRP, yang pengembangannya dihentikan dan tidak bisa diperbarui menggunakan aplikasi ini. Mohon untuk menghapus itu terlebih dahulu dengan menghapus modul magisk/gunakan pencopot Vanced TWRP.</string>
<string name="miui_one_title">MIUI terdeteksi!</string>
<string name="miui_one">Hai! Sepertinya kamu pengguna MIUI. Untuk dapat menggunakan aplikasi ini dengan benar, anda harus menonaktifkan optimisasi MiUI di pengaturan developer. (Anda dapat mengabaikan peringatan ini jika anda berada pada ROM versi 20.2.20 atau lebih yang didasarkan pada xiaomi.eu)</string>
<string name="error">Terjadi kesalahan</string>

View File

@ -17,11 +17,12 @@
<string name="installing_app">Installazione in corso di %1$s</string>
<string name="installation_aborted">Operazione fallita, l\'utente ha annullato l\'installazione.</string>
<string name="installation_blocked">Operazione fallita, l\'utente ha bloccato l\'installazione.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operazione fallita, app in conflitto con un\'app già installata.</string>
<string name="installation_failed">Operazione fallita, motivo sconosciuto. Unisciti al gruppo di Telegram o su Discord per ricevere assistenza.</string>
<string name="installation_incompatible">Operazione fallita, l\'app non è compatibile con il dispositivo</string>
<string name="installation_invalid">Operazione fallita, i file apk non sono validi.</string>
<string name="installation_signature">Si è verificato un errore imprevisto durante l\'installazione di Vanced. Hai disattivato la verifica della firma degli apk?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">Si è verificato un errore imprevisto durante l\'installazione di Vanced. Hai disattivato le ottimizzazioni di MIUI?</string>
<string name="installation_storage">Operazione fallita, si è verificato un errore con lo spazio di archiviazione.</string>
<string name="installation_wait">Per favore, attendi la conclusione dell\'installazione</string>
@ -30,14 +31,14 @@
<string name="latest">Ultima versione:</string>
<string name="successfully_installed">%1$s installato con successo</string>
<string name="network_error">Connessione alla rete non disponibile</string>
<string name="no_microg">Senza MicroG!</string>
<string name="no_microg">microG non è installato</string>
<string name="root_not_granted">Non è stato fornito l\'accesso di root</string>
<string name="unavailable">Non disponibile</string>
<string name="update">Aggiorna</string>
<string name="useful_links">Link utili</string>
<string name="website_text">Sito web</string>
<string name="support_us">Sostienici!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">La versione %1$s è stata copiata!</string>
<!-- Settings -->
<string name="accent_color">Colore evidenziatore</string>
<string name="accent_blue">Blu</string>
@ -45,12 +46,14 @@
<string name="accent_purple">Viola</string>
<string name="accent_red">Rosso</string>
<string name="accent_yellow">Giallo</string>
<string name="check_updates">Verifica aggiornamenti</string>
<string name="category_interface">Interfaccia</string>
<string name="category_manager">Manager</string>
<string name="check_updates">Verifica aggiornamenti</string>
<string name="chosen_install_values">Preferenze di installazione scelte</string>
<string name="chosen_lang">Lingua: %1$s</string>
<string name="chosen_lang">Lingue: %1$s</string>
<string name="chosen_theme">Tema: %1$s</string>
<string name="clear_files">Cancella i file scaricati</string>
<string name="cleared_files">File cancellati con successo</string>
<string name="link_title">Utilizza le schede personalizzate di Chrome</string>
<string name="link_custom_tabs">I link verranno aperti nelle schede personalizzate di Chrome</string>
<string name="link_external_browser">I link verranno aperti in un browser esterno</string>
@ -59,8 +62,8 @@
<string name="theme_dark">Tema scuro</string>
<string name="theme_light">Tema chiaro</string>
<string name="update_url">Aggiorna l\'URL del canale</string>
<string name="push_notifications">Notifiche push</string>
<string name="push_notifications_summary">Riceverai le notifiche push non appena sarà disponibile un aggiornamento</string>
<string name="push_notifications">Notifiche push di %1$s</string>
<string name="push_notifications_summary">Ricevi notifiche push quando un aggiornamento per %1$s è disponibile</string>
<string name="re_check">Ricontrolla</string>
<string name="update_center">Centro aggiornamenti</string>
<string name="update_found">Aggiornamento trovato!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Ignora</string>
<string name="guide">Guida</string>
<string name="hold_on">Aspetta!</string>
<string name="magisk_vanced">Sembra che tu stia utilizzando la versione di Vanced ottenuta con Magisk. La versione Magisk non riceve più aggiornamenti e non può essere aggiornata con quest\'app. Per favore, rimuovi il modulo di Magisk prima di installare la versione con Vanced Manager.</string>
<string name="magisk_vanced">Sembra che tu stia utilizzando la versione di Vanced ottenuta con Magisk/TWRP, che è obsoleta e non può essere aggiornata con questa app. Per favore, rimuovila eliminando il modulo di Magisk/utilizzando TWRP Vanced uninstaller.</string>
<string name="miui_one_title">Rilevata l\'interfaccia MIUI!</string>
<string name="miui_one">Ehi! Sembra che tu sia un utente MIUI. Per poter utilizzare correttamente questa applicazione, devi disattivare le ottimizzazioni di MIUI nelle impostazioni per sviluppatore (se stai utilizzando la ROM 20.2.20 basata su xiaomi.eu, puoi ignorare questo avviso).</string>
<string name="error">Errore</string>

View File

@ -1,94 +1,97 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="reset">Reset</string>
<string name="save">Save</string>
<string name="close">סגור</string>
<string name="reset">איפוס</string>
<string name="save">שמור</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<string name="title_about">אודות</string>
<string name="title_home">בית</string>
<string name="title_settings">הגדרות</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
<string name="useful_links">Useful Links</string>
<string name="website_text">Website</string>
<string name="support_us">Support us!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="changelogs">שינויים</string>
<string name="downloading_file">מוריד את %1$s</string>
<string name="failed_uninstall">יש בעיה במחיקת החבילה %1$s</string>
<string name="error_downloading">בעיה בהורדה של %1$s</string>
<string name="install">התקנה</string>
<string name="installing_app">מתקין את %1$s</string>
<string name="installation_aborted">הפעולה נכשלה מכיוון שהמשתמש ביטל את ההתקנה.</string>
<string name="installation_blocked">הפעולה נכשלה מכיוון שהמשתמש חסם את ההתקנה.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">הפעולה נכשלה מכיוון שהאפליקציה סותרת עם אפליקציה שכבר מותקנת.</string>
<string name="installation_failed">הפעולה נכשלה בגלל סיבה אינה ידועה, בבקשה הצטרפו לטלגרם או דיסקורד שלנו בשביל עזרה.</string>
<string name="installation_incompatible">הפעולה נכשלה משום שהאפליקציה אינה תואמת למכשירך.</string>
<string name="installation_invalid">הפעולה נכשלה משום שהAPK אינו תקין.</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">שגיאה לא צפויה התרחשה בזמן ההתקנה. האם ביטלת את MIUI Optimisations?</string>
<string name="installation_storage">הפעולה נכשלה בגלל בעיה באחסון.</string>
<string name="installation_wait">אנא המתינו לסיום ההתקנה</string>
<string name="button_reinstall">התקן מחדש</string>
<string name="version_installed">מותקן:</string>
<string name="latest">החדש ביותר:</string>
<string name="successfully_installed">הותקן בהצלחה %1$s</string>
<string name="network_error">חיבור לרשת אינו זמין</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">הרשאות Root אינן הוענקו</string>
<string name="unavailable">אינו זמין</string>
<string name="update">עדכן</string>
<string name="useful_links">קישורים שימושיים</string>
<string name="website_text">אתר</string>
<string name="support_us">תמכו בנו!</string>
<string name="version_toast">הגרסה של %1$s הועתקה!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">Blue</string>
<string name="accent_green">Green</string>
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="category_manager">Manager</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<string name="accent_color">צבע הדגשה</string>
<string name="accent_blue">כחול</string>
<string name="accent_green">ירוק</string>
<string name="accent_purple">סגול</string>
<string name="accent_red">אדום</string>
<string name="accent_yellow">צהוב</string>
<string name="category_interface">ממשק</string>
<string name="category_manager">מנהל</string>
<string name="check_updates">בדוק אחר עדכונים</string>
<string name="chosen_install_values">העדפות התקנה שנבחרו</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">ערכת נושא: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">השתמש בכרטיסייה מותאמת אישית של Chrome</string>
<string name="link_custom_tabs">קישורים יפתחו בכרטיסיות מותאמות אישית של Chrome</string>
<string name="link_external_browser">קישורים יפתחו בדפדפן חיצוני</string>
<string name="theme">ערכת נושא</string>
<string name="theme_follow">בהתאם למערכת</string>
<string name="theme_dark">ערכת נושא כהה</string>
<string name="theme_light">ערכת נושא בהירה</string>
<string name="update_url">קישור ערוץ עדכון</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">בדיקה מחדש</string>
<string name="update_center">מרכז העדכונים</string>
<string name="update_found">עדכון נמצא!</string>
<string name="update_notfound">אין עדכונים חדשים</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">Launch</string>
<string name="welcome">Welcome</string>
<string name="button_dismiss">התעלם</string>
<string name="guide">מדריך</string>
<string name="hold_on">רק רגע!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI זוהה!</string>
<string name="miui_one">היי! נראה שאתה משתמש MIUI. בכדי להתשמש באפליקציה זו בצורה מיטבית, תצטרך לבטל את MIUI optimisations באפשרויות מפתחים (ניתן להתעלם מאזהרה זו אם אתה מתשמש ברום מגרסה 20.2.20 ומעלה שמבוסס על xiaomi.eu.)</string>
<string name="error">בעיה</string>
<string name="security_context">אנא וודא שהורדת את האפליקציה מvanced.app, ערוץ הדיסקורד של Vanced או הגיטהאב.</string>
<string name="success">הצלחה!</string>
<string name="vanced_installed">Vanced הותקן בהצלחה! לפתוח עכשיו?</string>
<string name="launch">התחל</string>
<string name="welcome">ברוכים הבאים</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
<string name="finish">Finish</string>
<string name="install_light_black">Light + Black</string>
<string name="install_light_dark">Light + Dark</string>
<string name="next">Next</string>
<string name="choose_preferred_language">בחר את השפה המועדפת עליך לVanced</string>
<string name="choose_preferred_language_note">תזכורת: אנגלית תמיד תהיה מותקנת בתור שפה נוספת.</string>
<string name="choose_preferred_theme">בחר את המראה מועדף שלך בשביל Vanced</string>
<string name="disable_signature">זוהה מצב רוט! על מנת להתקין את Vanced, תצטרך לבטל את ווידוא החתימה לAPK.</string>
<string name="finish">סיום</string>
<string name="install_light_black">בהיר + שחור</string>
<string name="install_light_dark">בהיר + כהה</string>
<string name="next">הבא</string>
<!-- About Page -->
<string name="manager_dev">Manager Dev</string>
<string name="sources">Sources</string>
<string name="vanced_team">Vanced Team</string>
<string name="manager_dev">מפתח המנהל</string>
<string name="sources">מקורות</string>
<string name="vanced_team">צוות Vanced</string>
</resources>

View File

@ -17,11 +17,12 @@
<string name="installing_app">%1$s をインストールしています</string>
<string name="installation_aborted">ユーザーがインストールを中断したため操作に失敗しました</string>
<string name="installation_blocked">ユーザーがインストールをブロックしたため操作に失敗しました</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">すでにインストールされているアプリと競合したため操作に失敗しました</string>
<string name="installation_failed">何らかの理由により操作に失敗しました</string>
<string name="installation_incompatible">お使いのデバイスと互換性がないため操作に失敗しました</string>
<string name="installation_invalid">APK ファイルが正しくないため操作に失敗しました</string>
<string name="installation_signature">予期されないエラーが Vanced のインストール中に発生しました。署名検証を無効化しましたか?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">予期されないエラーが Vanced のインストール中に発生しました。MIUI の最適化を無効にしましたか?</string>
<string name="installation_storage">ストレージのエラーにより操作に失敗しました</string>
<string name="installation_wait">インストールが完了するまでお待ちください</string>
@ -30,14 +31,14 @@
<string name="latest">最新版:</string>
<string name="successfully_installed">%1$s のインストールに成功しました</string>
<string name="network_error">インターネット接続が利用できません</string>
<string name="no_microg">MicroGがありません</string>
<string name="no_microg">microG はインストールされていません</string>
<string name="root_not_granted">Root アクセスは許可されていません</string>
<string name="unavailable">利用不可</string>
<string name="update">更新</string>
<string name="useful_links">リンク集</string>
<string name="website_text">Vanced の公式Webサイト</string>
<string name="support_us">Brave をダウンロードして支援する</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">%1$s のバージョンがコピーされました!</string>
<!-- Settings -->
<string name="accent_color">アクセントカラー</string>
<string name="accent_blue"></string>
@ -45,22 +46,24 @@
<string name="accent_purple"></string>
<string name="accent_red"></string>
<string name="accent_yellow"></string>
<string name="check_updates">アップデートの確認</string>
<string name="category_interface">インターフェース</string>
<string name="category_manager">Manager</string>
<string name="check_updates">アップデートの確認</string>
<string name="chosen_install_values">選択されたインストール設定</string>
<string name="chosen_lang">言語: %1$s</string>
<string name="chosen_theme">テーマ: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">ダウンロード済みファイルを消去</string>
<string name="cleared_files">ファイルを消去しました</string>
<string name="link_title">Chrome カスタムタブを使用する</string>
<string name="link_custom_tabs">Chrome カスタムタブでリンクを開く</string>
<string name="link_external_browser">外部ブラウザでリンクを開く</string>
<string name="theme">テーマ</string>
<string name="theme_follow">システムに従う</string>
<string name="theme_dark">ダークテーマ</string>
<string name="theme_light">ライトテーマ</string>
<string name="update_url">アップデート チャンネル URL</string>
<string name="push_notifications">プッシュ通知</string>
<string name="push_notifications_summary">アップデートがリリースされたときに通知を受け取る</string>
<string name="push_notifications">%1$s プッシュ通知</string>
<string name="push_notifications_summary">%1$s のアップデートがリリースされたときにプッシュ通知を受け取る</string>
<string name="re_check">再チェック</string>
<string name="update_center">アップデート センター</string>
<string name="update_found">アップデートがあります!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">閉じる</string>
<string name="guide">ガイド</string>
<string name="hold_on">ちょっと待った!</string>
<string name="magisk_vanced">Vanced の Magisk バージョンを使用しているようです。バージョンは廃止されており、このアプリでは更新できません。 まず Magisk モジュールを削除してください。</string>
<string name="magisk_vanced">Vanced の Magisk/TWRP バージョンを使用しているようです。このバージョンは廃止されており、このアプリでは更新できません。 まず Magisk モジュールを削除するか、TWRP で Vanced uninstaller を使用してください。</string>
<string name="miui_one_title">MIUI ユーザーを検知しました!</string>
<string name="miui_one">あなたは MIUI ユーザーのようです。Vanced Manager を適切に利用するには、開発者向けオプションから MIUI の最適化を無効にする必要があります。
ただし、xiaomi.eu ベースの 20.2.20 ROM をお使いの場合は、この警告を無視しても問題ありません。</string>

View File

@ -17,11 +17,12 @@
<string name="installing_app">მიმდინარეობს %1$s-ის ინსტალაცია</string>
<string name="installation_aborted">ოპერაცია ჩაიშალა რადგან მომხმარებელმა შეაჩერა ინსტალაცია.</string>
<string name="installation_blocked">ოპერაცია ჩაიშალა რადგან მომხმარებელმა დაბლოკა ინსტალაცია.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">ოპერაცია ჩაიშალა რადგან აპი შეესაბამება უკვე დაყენებულ აპს.</string>
<string name="installation_failed">ოპერაცია ჩაიშალა გაურკვეველი მიზეზის გამო, გთხოვთ გამოგვიგზავნეთ logcat.</string>
<string name="installation_incompatible">ოპერაცია ჩაიშალა რადგან აპი შეუთავსებელია თქვნს მოწყობილობასთან.</string>
<string name="installation_invalid">ოპერაცია ჩაიშალა რადგან apk ფაილები დაზიანებულია.</string>
<string name="installation_signature">გაურკვეველი შეცდომა Vanced-ის დაყენების დროს. ნამდვილად გაქვთ ხელმოწერის ვერიფიკაცია გათიშული?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">გაურკვეველი შეცდომა Vanced-ის დაყენების დროს. ნამდვილად გამორთეთ MIUI-ის ოპტიმიზაციები?</string>
<string name="installation_storage">ოპერაცია ჩაიშალა რადგან შეცდომაა მეხსიერებასთან დაკავშირებით.</string>
<string name="installation_wait">გთხოვთ დაიცადოთ ინსტალაციის დასრულებამდე</string>
@ -30,14 +31,14 @@
<string name="latest">უახლესი:</string>
<string name="successfully_installed">წარმატებით დაყენდა %1$s</string>
<string name="network_error">კავშირი არ არის</string>
<string name="no_microg">დააყენეთ MicroG!</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Root წვდომა არ არის მინიჭებული</string>
<string name="unavailable">ხელმიუწვდომელია</string>
<string name="update">განახლება</string>
<string name="useful_links">საჭირო ლინკები</string>
<string name="website_text">Vanced-ის ოფიციალური ვებსაიტი</string>
<string name="support_us">დაგვიჭირეთ მხარი Brave-ის გადმოწერით</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">%1$s-ის ვერსია დაკოპირდა!</string>
<!-- Settings -->
<string name="accent_color">აქცენტის ფერი</string>
<string name="accent_blue">ლურჯი</string>
@ -45,12 +46,14 @@
<string name="accent_purple">იისფერი</string>
<string name="accent_red">წითელი</string>
<string name="accent_yellow">ყვითელი</string>
<string name="check_updates">განახლებების შემოწმება</string>
<string name="category_interface">ინტერფეისი</string>
<string name="category_manager">მენეჯერი</string>
<string name="check_updates">განახლებების შემოწმება</string>
<string name="chosen_install_values">არჩეული ინსტალაციის რეჟიმები</string>
<string name="chosen_lang">ენა: %1$s</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">თემა: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">გამოიყენეთ Chrome Custom Tabs</string>
<string name="link_custom_tabs">ლინკები გაიხსნება Chrome Custom Tabs-ში</string>
<string name="link_external_browser">ლინკები გაიხსნება გარე ბრაუზერში</string>
@ -59,8 +62,8 @@
<string name="theme_dark">მუქი თემა</string>
<string name="theme_light">ღია თემა</string>
<string name="update_url">განახლების არხის URL</string>
<string name="push_notifications">შეტყობინებები</string>
<string name="push_notifications_summary">მიიღეთ შეტყობინება როდესაც განახლება გამოვა</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">გადამოწმება</string>
<string name="update_center">განახლების ცენტრი</string>
<string name="update_found">ნაპოვნია განახლება!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">დახურვა</string>
<string name="guide">ინსტრუქცია</string>
<string name="hold_on">დაიცა!</string>
<string name="magisk_vanced">როგორც ჩანს თქვენ იყენებთ Vanced-ის Magisk ვერსიას, რომელიც არ იმუშავებს ამ აპთან. გთხოვთ წაშალოთ მოდული მენეჯერის გამოყენებამდე.</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">აღმოჩენილია MIUI-ის მომხმარებელი!</string>
<string name="miui_one">როგორც ჩანს ტქვენ MIUI-ის მომხმარებელი ხართ. იმისთვის რომ მენეჯერმა სწორედ იმუშავოს, თქვენ უნდა გამორთოთ MIUI-ის ოპტიმიზაციები დეველოპერის პარამეტრებიდან.
მაგრამ, თუ თქვენ ხართ სისტემის 20.2.20 (ან უფრო მაღალ) ვერსიაზე რომელიც დაფუძნებულია xiaomi.eu-ზე, შეგიძლიათ დააიგნოროთ ეს გაფრთხილება.</string>

View File

@ -17,11 +17,12 @@
<string name="installing_app">%1$s 설치 중</string>
<string name="installation_aborted">사용자가 설치를 중단했기 때문에 작업이 실패했습니다.</string>
<string name="installation_blocked">사용자가 설치를 차단했기 때문에 작업이 실패했습니다.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">앱이 이미 설치된 앱과 충돌하기 때문에 작업이 실패했습니다.</string>
<string name="installation_failed">알 수 없는 이유로 작업이 실패했습니다. 저희 텔레그램 또는 디스코드에 문제를 제보해주시면 해결해드리겠습니다.</string>
<string name="installation_incompatible">앱이 기기와 호환되지 않기 때문에 작업이 실패했습니다.</string>
<string name="installation_invalid">apk 파일이 유효하지 않기 때문에 작업이 실패했습니다.</string>
<string name="installation_signature">Vanced 설치 도중 오류가 발생했습니다. 서명 검증을 비활성화하셨나요?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">Vanced를 설치하는 도중에 알 수 없는 오류가 발생했습니다. MIUI 최적화를 비활성화하셨나요?</string>
<string name="installation_storage">저장 공간에 오류가 있어서 작업에 실패했습니다.</string>
<string name="installation_wait">설치가 완료될 때까지 기다려주세요.</string>
@ -30,14 +31,14 @@
<string name="latest">최신:</string>
<string name="successfully_installed">%1$s 설치가 완료되었습니다</string>
<string name="network_error">네크워크 연결을 사용할 수 없음</string>
<string name="no_microg">MicroG를 먼저 설치해주세요!</string>
<string name="no_microg">microG가 설치되지 않았습니다</string>
<string name="root_not_granted">루트 권한이 부여되지 않았습니다</string>
<string name="unavailable">사용 불가</string>
<string name="update">업데이트</string>
<string name="useful_links">참고할 만한 링크</string>
<string name="website_text">웹사이트</string>
<string name="support_us">우리를 지원해주세요!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">%1$s의 버전 정보가 복사되었습니다.</string>
<!-- Settings -->
<string name="accent_color">강조 색상</string>
<string name="accent_blue">파란색</string>
@ -45,22 +46,24 @@
<string name="accent_purple">보라색</string>
<string name="accent_red">빨간색</string>
<string name="accent_yellow">노란색</string>
<string name="check_updates">업데이트 확인하기</string>
<string name="category_interface">인터페이스</string>
<string name="category_manager">관리자</string>
<string name="check_updates">업데이트 확인하기</string>
<string name="chosen_install_values">선택된 설치값</string>
<string name="chosen_lang">언어: %1$s</string>
<string name="chosen_theme">테마: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">다운로드된 파일 모두 지우기</string>
<string name="cleared_files">다운로드된 파일을 모두 삭제했습니다</string>
<string name="link_title">Chrome 커스텀 탭으로 열기</string>
<string name="link_custom_tabs">링크가 Chrome 커스텀 탭으로 열립니다</string>
<string name="link_external_browser">링크가 외부 브라우저로 열립니다</string>
<string name="theme">테마</string>
<string name="theme_follow">시스템 설정과 같이</string>
<string name="theme_dark">다크 테마</string>
<string name="theme_light">라이트 테마</string>
<string name="update_url">업데이트 채널 URL</string>
<string name="push_notifications">푸시 알림</string>
<string name="push_notifications_summary">업데이트가 출시되면 알림 받기</string>
<string name="push_notifications">%1$s 푸시 알림</string>
<string name="push_notifications_summary">새로운 %1$s 업데이트가 출시되면 알림 받기</string>
<string name="re_check">재확인</string>
<string name="update_center">업데이트 센터</string>
<string name="update_found">업데이트를 찾았습니다!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">무시</string>
<string name="guide">가이드</string>
<string name="hold_on">잠시만요!</string>
<string name="magisk_vanced">현재 설치되어 있는 Vanced의 Magisk 버전은 더 이상 지원되지 않으며 이 앱으로 업데이트할 수 없습니다. 먼저 Magisk 모듈을 제거하여 주시기 바랍니다.</string>
<string name="magisk_vanced">현재 설치되어 있는 Vanced의 Magisk/TWRP 버전은 더 이상 지원되지 않으며 이 앱으로 업데이트할 수 없습니다. TWRP 버전용 Vanced 삭제 프로그램 등을 사용하여 Magisk 모듈을 제거하여 주시기 바랍니다.</string>
<string name="miui_one_title">MIUI 사용자로 보입니다!</string>
<string name="miui_one">잠시만요! MIUI 사용자로 보입니다. Vanced Manager를 완전하게 사용하려면 개발자 설정에서 MIUI 최적화를 비활성화 해주셔야 합니다
하지만 xiaomi.eu 기반의 20.2.20 ROM (또는 이후)을 사용하신다면 이 경고를 무시하셔도 됩니다.</string>

View File

@ -1,85 +1,88 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="reset">Reset</string>
<string name="save">Save</string>
<string name="close">Sluiten</string>
<string name="reset">Resetten</string>
<string name="save">Opslaan</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<string name="title_about">Over deze app</string>
<string name="title_home">StartPagina</string>
<string name="title_settings">Instellingen</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
<string name="useful_links">Useful Links</string>
<string name="changelogs">Veranderingen</string>
<string name="downloading_file">Downloaden %1$s</string>
<string name="failed_uninstall">Gefaalt om app te deinstalleren %1$s</string>
<string name="error_downloading">Fout opgetreden bij downloaden %1$s</string>
<string name="install">Installeer</string>
<string name="installing_app">Installeren %1$s</string>
<string name="installation_aborted">Bewerking mislukt omdat de gebruiker de installatie heeft afgebroken.</string>
<string name="installation_blocked">Bewerking mislukt omdat de gebruiker de installatie heeft afgebroken.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Bewerking mislukt omdat de app conflicteert met een reeds geïnstalleerde app.</string>
<string name="installation_failed">Operatie mislukt om een onbekende reden, neem dan deel aan onze Telegram of Discord voor ondersteuning.</string>
<string name="installation_incompatible">Bewerking mislukt omdat de app niet compatibel is met uw apparaat.</string>
<string name="installation_invalid">Bewerking mislukt omdat de apk-bestanden ongeldig zijn.</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">Er is een onverwachte fout opgetreden tijdens het installeren van Vanced. Heb je MIUI optimalisaties uitgeschakeld?</string>
<string name="installation_storage">Bewerking is mislukt door een opslagfout.</string>
<string name="installation_wait">Wacht tot de installatie is voltooid</string>
<string name="button_reinstall">Herïnstalleer</string>
<string name="version_installed">Geïnstalleerd:</string>
<string name="latest">Laatste:</string>
<string name="successfully_installed">%1$s is succesvol geinstalleerd</string>
<string name="network_error">Netwerkverbinding niet beschikbaar</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Root-toegang niet verleend</string>
<string name="unavailable">Niet beschikbaar</string>
<string name="update">Bijwerken</string>
<string name="useful_links">Handige links</string>
<string name="website_text">Website</string>
<string name="support_us">Support us!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="support_us">Steun ons!</string>
<string name="version_toast">%1$s versie is gekopieerd!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">Blue</string>
<string name="accent_green">Green</string>
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="category_manager">Manager</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<string name="accent_color">Accent kleur</string>
<string name="accent_blue">Blauw</string>
<string name="accent_green">Groen</string>
<string name="accent_purple">Paars</string>
<string name="accent_red">Rood</string>
<string name="accent_yellow">Geel</string>
<string name="category_interface">Uiterlijk</string>
<string name="category_manager">Beheerder</string>
<string name="check_updates">Controleren op updates</string>
<string name="chosen_install_values">Gekozen installatievoorkeuren</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Thema: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Gebruik Chrome aangepast tabblad</string>
<string name="link_custom_tabs">Links zullen openen in Chrome Custom Tabs</string>
<string name="link_external_browser">Links worden geopend in een externe browser</string>
<string name="theme">Thema</string>
<string name="theme_follow">Volg systeem</string>
<string name="theme_dark">Donker thema</string>
<string name="theme_light">Licht Thema</string>
<string name="update_url">Kanaal URL bijwerken</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Opnieuw controleren</string>
<string name="update_center">Manager updatecenter</string>
<string name="update_found">Updates gevonden</string>
<string name="update_notfound">Geen nieuwe updates</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">Launch</string>
<string name="welcome">Welcome</string>
<string name="button_dismiss">Afwijzen</string>
<string name="guide">Handleiding</string>
<string name="hold_on">Wacht even!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI gedetecteerd!</string>
<string name="miui_one">Hey! Het lijkt erop dat je een MIUI-gebruiker bent. Om deze applicatie goed te gebruiken, moet je MIUI-optimalisaties uitschakelen in de ontwikkelaarsinstellingen. (Je kunt deze waarschuwing veilig negeren als je een 20.2.20 of hoger ROM gebruikt op basis van xiaomi.eu)</string>
<string name="error">Fout</string>
<string name="security_context">Zorg ervoor dat je de app hebt gedownload van vanced.app, de Vanced Discord server of de Vanced GitHub</string>
<string name="success">Gelukt!</string>
<string name="vanced_installed">Vanced is succesvol geïnstalleerd! Nu starten?</string>
<string name="launch">Starten</string>
<string name="welcome">Welkom</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language">Kies jouw voorkeurstaal</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>

View File

@ -1,56 +1,59 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="reset">Reset</string>
<string name="save">Save</string>
<string name="close">Lukk</string>
<string name="reset">Nullstill</string>
<string name="save">Lagre</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<string name="title_about">Om</string>
<string name="title_home">Hjem</string>
<string name="title_settings">Innstillinger</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="downloading_file">Laster ned %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="install">Installer</string>
<string name="installing_app">Installerer %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="installation_wait">Vennligst vent til installasjonen er ferdig</string>
<string name="button_reinstall">Reinstaller</string>
<string name="version_installed">Installert:</string>
<string name="latest">Siste:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
<string name="unavailable">Utilgjengelig</string>
<string name="update">Oppdater</string>
<string name="useful_links">Useful Links</string>
<string name="website_text">Website</string>
<string name="support_us">Support us!</string>
<string name="website_text">Nettside</string>
<string name="support_us">Støtt oss!</string>
<string name="version_toast">%1$s version was copied!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">Blue</string>
<string name="accent_green">Green</string>
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="accent_blue">Blå</string>
<string name="accent_green">Grønn</string>
<string name="accent_purple">Lilla</string>
<string name="accent_red">Rød</string>
<string name="accent_yellow">Gul</string>
<string name="category_interface">Interface</string>
<string name="category_manager">Manager</string>
<string name="check_updates">Se etter oppdateringer</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
@ -59,8 +62,8 @@
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>

View File

@ -17,11 +17,12 @@
<string name="installing_app">Instalowanie %1$s</string>
<string name="installation_aborted">Operacja nie powiodła się, bo użytkownik przerwał instalację.</string>
<string name="installation_blocked">Operacja nie powiodła się, bo użytkownik zablokował instalację.</string>
<string name="installation_downgrade">Operacja nie powiodła się, ponieważ użytkownik próbował obniżyć paczkę. Czy masz zainstalowany oryginalny YouTube?</string>
<string name="installation_conflict">Operacja nie powiodła się, bo aplikacja powoduje konflikt z już zainstalowaną aplikacją.</string>
<string name="installation_failed">Operacja nie powiodła się z nieznanego powodu. Aby uzyskać wsparcie, dołącz do naszego Telegram\'u lub Discord\'a.</string>
<string name="installation_incompatible">Operacja nie powiodła się, bo aplikacja jest niezgodna z urządzeniem.</string>
<string name="installation_invalid">Operacja nie powiodła się, bo pliki apk są nieprawidłowe.</string>
<string name="installation_signature">Wystąpił nieoczekiwany błąd podczas instalowania Vanced. Czy wyłączyłeś weryfikację podpisu APK?</string>
<string name="installation_signature">Operacja nie powiodła się, ponieważ użytkownik nie wyłączył weryfikacji podpisu apk</string>
<string name="installation_miui">Wystąpił nieoczekiwany błąd podczas instalowania Vanced. Czy wyłączyłeś Optymalizacje MIUI?</string>
<string name="installation_storage">Operacja nie powiodła się z powodu błędu pamięci.</string>
<string name="installation_wait">Poczekaj na zakończenie instalacji</string>
@ -30,14 +31,14 @@
<string name="latest">Najnowsza:</string>
<string name="successfully_installed">Pomyślnie zainstalowano %1$s</string>
<string name="network_error">Połączenie sieciowe niedostępne</string>
<string name="no_microg">Brak MicroG!</string>
<string name="no_microg">microG nie jest zainstalowany</string>
<string name="root_not_granted">Root nie został przyznany</string>
<string name="unavailable">Niedostępne</string>
<string name="update">Aktualizuj</string>
<string name="useful_links">Przydatne linki</string>
<string name="website_text">Oficjalna strona Vanced</string>
<string name="support_us">Wesprzyj nas, pobierając Brave</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">Wersja %1$s została skopiowana!</string>
<!-- Settings -->
<string name="accent_color">Kolor Akcentu</string>
<string name="accent_blue">Niebieski</string>
@ -45,22 +46,24 @@
<string name="accent_purple">Fioletowy</string>
<string name="accent_red">Czerwony</string>
<string name="accent_yellow">Żółty</string>
<string name="check_updates">Sprawdź aktualizacje</string>
<string name="category_interface">Interfejs</string>
<string name="category_manager">Menedżer</string>
<string name="check_updates">Sprawdź aktualizacje</string>
<string name="chosen_install_values">Wybrane preferencje instalacji</string>
<string name="chosen_lang">Język: %1$s</string>
<string name="chosen_lang">Język(i): %1$s</string>
<string name="chosen_theme">Motyw: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">Wyczyść pobrane pliki</string>
<string name="cleared_files">Pomyślnie wyczyszczono pliki</string>
<string name="link_title">Używaj niestandardowych kart Chrome</string>
<string name="link_custom_tabs">Linki zostaną otwarte w niestandardowych kartach Chrome</string>
<string name="link_external_browser">Linki zostaną otwarte w zewnętrznej przeglądarce</string>
<string name="theme">Motyw</string>
<string name="theme_follow">Śledź system</string>
<string name="theme_dark">Ciemny Motyw</string>
<string name="theme_light">Jasny Motyw</string>
<string name="update_url">Zaktualizuj URL kanału</string>
<string name="push_notifications">Powiadomienia push</string>
<string name="push_notifications_summary">Otrzymuj powiadomienia push po wydaniu aktualizacji</string>
<string name="push_notifications">%1$s Powiadomień Push</string>
<string name="push_notifications_summary">Otrzymuj powiadomienia push po wydaniu aktualizacji dla %1$s</string>
<string name="re_check">Sprawdź ponownie</string>
<string name="update_center">Centrum aktualizacji</string>
<string name="update_found">Znaleziono aktualizację!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Oddalić</string>
<string name="guide">Przewodnik</string>
<string name="hold_on">Czekaj!</string>
<string name="magisk_vanced">Wygląda na to, że korzystasz z Vanced w wersji Magisk, która została wycofana i nie można jej zaktualizować za pomocą tej aplikacji. Najpierw usuń moduł magisk.</string>
<string name="magisk_vanced">Wygląda na to, że korzystasz z Vanced w wersji Magisk/TWRP, która została wycofana i nie można jej zaktualizować za pomocą tej aplikacji. Najpierw usuń moduł magisk/używając deinstalatora TWRP Vanced.</string>
<string name="miui_one_title">MIUI wykryte!</string>
<string name="miui_one">Hej! Wygląda na to, że jesteś użytkownikiem MIUI. Aby prawidłowo korzystać z tej aplikacji, musisz wyłączyć optymalizacje MIUI w ustawieniach programisty. (Możesz bezpiecznie zignorować to ostrzeżenie, jeśli korzystasz z ROMu 20.2.20 lub nowszego opartego na xiaomi.eu)</string>
<string name="error">Błąd</string>

View File

@ -17,11 +17,12 @@
<string name="installing_app">Instalando %1$s</string>
<string name="installation_aborted">Falha na operação porque a instalação foi interrompida pelo usuário</string>
<string name="installation_blocked">Falha na operação porque o usuário bloqueou a instalação</string>
<string name="installation_downgrade">A operação falhou porque o usuário tentou fazer o downgrade do pacote. Você tem o YouTube stock instalado?</string>
<string name="installation_conflict">A operação falhou porque o aplicativo entrou em conflito com um aplicativo já instalado</string>
<string name="installation_failed">A operação falhou por um motivo desconhecido. Por favor, junte-se ao nosso grupo no Telegram ou Discord para obter suporte.</string>
<string name="installation_incompatible">Falha na operação porque o aplicativo é incompatível com o seu dispositivo</string>
<string name="installation_invalid">Falha na operação porque os arquivos apk são inválidos</string>
<string name="installation_signature">Ocorreu um erro inesperado ao instalar o Vanced. Desabilitou a verificação de assinatura?</string>
<string name="installation_signature">A operação falhou porque o usuário não desabilitou a verificação de assinatura do apk</string>
<string name="installation_miui">Ocorreu um erro inesperado ao instalar o Vanced. Você desabilitou as otimizações do MIUI?</string>
<string name="installation_storage">A operação falhou porque ocorreu um erro com o armazenamento.</string>
<string name="installation_wait">Aguarde até a instalação terminar</string>
@ -30,14 +31,14 @@
<string name="latest">Mais recente:</string>
<string name="successfully_installed">Instalado com sucesso %1$s</string>
<string name="network_error">Conexão de rede indisponível</string>
<string name="no_microg">Sem MicroG!</string>
<string name="no_microg">O microG não está instalado</string>
<string name="root_not_granted">Acesso root não concedido</string>
<string name="unavailable">Indisponível</string>
<string name="update">Atualizar</string>
<string name="useful_links">Links úteis</string>
<string name="website_text">Site</string>
<string name="support_us">Apoie-nos!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">%1$s versão foi copiado!</string>
<!-- Settings -->
<string name="accent_color">Cor de destaque</string>
<string name="accent_blue">Azul</string>
@ -45,22 +46,24 @@
<string name="accent_purple">Roxo</string>
<string name="accent_red">Vermelho</string>
<string name="accent_yellow">Amarelo</string>
<string name="check_updates">Verificar se há atualizações</string>
<string name="category_interface">Interface</string>
<string name="category_manager">Gerenciador</string>
<string name="check_updates">Verificar se há atualizações</string>
<string name="chosen_install_values">Valores de instalação escolhidos</string>
<string name="chosen_lang">Idioma: %1$s</string>
<string name="chosen_lang">Idioma(s): %1$s</string>
<string name="chosen_theme">Tema: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">Limpar arquivos baixados</string>
<string name="cleared_files">Arquivos limpos com sucesso</string>
<string name="link_title">Usar abas personalizadas do Chrome</string>
<string name="link_custom_tabs">Os links serão abertos nas abas personalizadas do Chrome</string>
<string name="link_external_browser">Os links serão abertos em um navegador externo</string>
<string name="theme">Tema</string>
<string name="theme_follow">Padrão do sistema</string>
<string name="theme_dark">Escuro</string>
<string name="theme_light">Claro</string>
<string name="update_url">Atualizar URL do canal</string>
<string name="push_notifications">Notificações</string>
<string name="push_notifications_summary">Receber notificações quando uma atualização estiver disponível</string>
<string name="push_notifications">%1$s Notificações push</string>
<string name="push_notifications_summary">Receber notificações quando uma atualização para %1$s for lançado</string>
<string name="re_check">Verificar novamente</string>
<string name="update_center">Centro de Atualizações</string>
<string name="update_found">Atualização encontrada!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Dispensar</string>
<string name="guide">Guia</string>
<string name="hold_on">Aguente!</string>
<string name="magisk_vanced">Parece que você está usando a versão Vanced do Magisk. Que foi descontinuado e não pode ser atualizado usando este aplicativo. Remova-o primeiro removendo o módulo no magisk.</string>
<string name="magisk_vanced">Parece que você está usando a versão Magisk/TWRP do Vanced, que foi descontinuada e não pode ser atualizada usando este aplicativo. Remova-o primeiro em Módulo no Magisk/usando o desinstalador do TWRP Vanced.</string>
<string name="miui_one_title">MiUI detectado!</string>
<string name="miui_one">Ei! Parece que você é um usuário da MiUI. Para usar corretamente o Vanced Manager, você irá precisar desativar as otimizações do MiUI nas configurações de desenvolvedor.
No entanto, se você estiver na ROM 20.2.20 baseado em xiaomi.eu, poderá ignorar com segurança este aviso.</string>

View File

@ -17,11 +17,12 @@
<string name="installing_app">Instalando %1$s</string>
<string name="installation_aborted">Operação falhou porque o utilizador abortou a instalação.</string>
<string name="installation_blocked">Operação falhou porque o utilizador bloquiou a instalação.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operação falhou porque a aplicação conflite com uma aplicação já instalada.</string>
<string name="installation_failed">Operação falhou por uma razão desconhecida, por-favor entre no nosso Telegram ou Discord para suporte.</string>
<string name="installation_incompatible">Operação falhou porque a aplicação é incompatível com o dispositivo. </string>
<string name="installation_invalid">Operação falhou porque os ficheiros apk estão inválidos.</string>
<string name="installation_signature">Um error inesperado ocorreu enquanto instalando Vanced. Desligaste a verificação de assinatura?</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">Um erro inesperado ocorreu enquanto instalando Vanced. Desativaste optimizações MIUI?</string>
<string name="installation_storage">Operação falhou devido a um erro de armazenamento.</string>
<string name="installation_wait">Por-favor espere até a instalação acabar.</string>
@ -30,7 +31,7 @@
<string name="latest">Mais Recente:</string>
<string name="successfully_installed">Instalado %1$s</string>
<string name="network_error">Conexão de rede indisponível</string>
<string name="no_microg">Sem MicroG!</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Acesso root negado.</string>
<string name="unavailable">Indisponível</string>
<string name="update">Atualizar</string>
@ -45,12 +46,14 @@
<string name="accent_purple">Roxo</string>
<string name="accent_red">Vermelho</string>
<string name="accent_yellow">Amarelo</string>
<string name="check_updates">Verificar por Atualizações</string>
<string name="category_interface">Interface</string>
<string name="category_manager">Gerente</string>
<string name="check_updates">Verificar por Atualizações</string>
<string name="chosen_install_values">Predefinições de instalação escolhidas</string>
<string name="chosen_lang">Língua: %1$s</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Tema: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
@ -59,8 +62,8 @@
<string name="theme_dark">Tema Escuro</string>
<string name="theme_light">Tema Claro</string>
<string name="update_url">Atualizar Canal URL</string>
<string name="push_notifications">Notificações</string>
<string name="push_notifications_summary">Receber notificações quando uma actualização estiver disponível</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Verificar Novamente</string>
<string name="update_center">Centro de Actualizações</string>
<string name="update_found">Atualização encontrada!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Ignorar</string>
<string name="guide">Guia</string>
<string name="hold_on">Aguarde!</string>
<string name="magisk_vanced">Pareçe que estás a usar a versão Magisk do Vanced, o que está descontinuada e não pode ser atualizada a partir deste app. Porfavor remove-a primeiro removendo o módulo magisk.</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI detetado!</string>
<string name="miui_one">Ei! Pareçe que és um utilizador MIUI. Em ordem para utilizares esta aplicação corretamente, terás que desativar optimizações MIUI nas opções de desenvolvedor. (Podes ignorar este aviso se estiveres em alguma versão 20.2.20 ou mais ROM basiado em xiaomi.eu)</string>
<string name="error">Erro</string>

View File

@ -1,94 +1,97 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">Close</string>
<string name="reset">Reset</string>
<string name="save">Save</string>
<string name="close">Închide</string>
<string name="reset">Resetează</string>
<string name="save">Salvează</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">Settings</string>
<string name="title_about">Despre</string>
<string name="title_home">Start</string>
<string name="title_settings">Configurări</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">No MicroG!</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">Update</string>
<string name="useful_links">Useful Links</string>
<string name="changelogs">Istoric modificări</string>
<string name="downloading_file">Se descarcă %1$s</string>
<string name="failed_uninstall">Dezinstalarea pachetului %1$s a eșuat</string>
<string name="error_downloading">Eroare la descărcarea %1$s</string>
<string name="install">Instalează</string>
<string name="installing_app">Se Instalează %1$s</string>
<string name="installation_aborted">Operația a eșuat deoarece utilizatorul a anulat instalarea.</string>
<string name="installation_blocked">Operația a eșuat deoarece utilizatorul a blocat instalarea.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operația a eșuat deoarece aplicația intră în conflict cu o aplicație deja instalată.</string>
<string name="installation_failed">Operația a eșuat dintr-un motiv necunoscut, te rugăm să te alături Telegramului nostru sau Discord pentru suport.</string>
<string name="installation_incompatible">Operația a eșuat deoarece aplicația este incompatibilă cu dispozitivul dvs.</string>
<string name="installation_invalid">Operația a eșuat deoarece fișierele apk nu sunt valide.</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">O eroare neașteptată a apărut în timpul instalării Vanced. Ați dezactivat optimizarea MIUI?</string>
<string name="installation_storage">Operația a eșuat datorită unei erori de stocare.</string>
<string name="installation_wait">Vă rugăm să așteptați până la finalizarea instalării</string>
<string name="button_reinstall">Reinstalare</string>
<string name="version_installed">Instalat:</string>
<string name="latest">Ultima:</string>
<string name="successfully_installed">Instalat cu succes %1$s</string>
<string name="network_error">Conexiune la rețea indisponibilă</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Accesul root nu este permis</string>
<string name="unavailable">Indisponibil</string>
<string name="update">Actualizare</string>
<string name="useful_links">Link-uri folositoare</string>
<string name="website_text">Website</string>
<string name="support_us">Support us!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="support_us">Ajutați-ne!</string>
<string name="version_toast">Versiunea %1$s a fost copiată!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">Blue</string>
<string name="accent_green">Green</string>
<string name="accent_purple">Purple</string>
<string name="accent_red">Red</string>
<string name="accent_yellow">Yellow</string>
<string name="check_updates">Check for updates</string>
<string name="category_interface">Interface</string>
<string name="accent_color">Nuanță culoare</string>
<string name="accent_blue">Albastru</string>
<string name="accent_green">Verde</string>
<string name="accent_purple">Violet</string>
<string name="accent_red">Roşu</string>
<string name="accent_yellow">Galben</string>
<string name="category_interface">Interfață</string>
<string name="category_manager">Manager</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language: %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<string name="check_updates">Verifică pentru actualizări</string>
<string name="chosen_install_values">Preferințe de instalare selectate</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Temă: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Utilizează file personalizate Chrome</string>
<string name="link_custom_tabs">Link-uri se vor deschide în filele personalizate Chrome</string>
<string name="link_external_browser">Link-urile se vor deschide într-un browser extern</string>
<string name="theme">Temă</string>
<string name="theme_follow">Urmăreşte sistemul</string>
<string name="theme_dark">Temă întunecată</string>
<string name="theme_light">Temă deschisă</string>
<string name="update_url">URL canal de actualizare</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Re-verifică</string>
<string name="update_center">Actualizator</string>
<string name="update_found">Actualizare găsită!</string>
<string name="update_notfound">Nu există actualizări noi</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">Launch</string>
<string name="welcome">Welcome</string>
<string name="button_dismiss">Renunţaţi</string>
<string name="guide">Ghid</string>
<string name="hold_on">Stai așa!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI detectat!</string>
<string name="miui_one">Hei! Se pare că ești utilizator MIUI. Pentru a utiliza corect această aplicație, va trebui să dezactivați optimizările MIUI în setările dezvoltatorului. (Puteți ignora în siguranță această avertizare dacă sunteți pe un ROM 20.2.20 sau mai nou bazat pe xiaomi.eu)</string>
<string name="error">Eroare</string>
<string name="security_context">Te rugăm să te asiguri că ai descărcat aplicația de pe vanced.app, serverul Discord Vanced sau GitHub Vanced</string>
<string name="success">Succes!</string>
<string name="vanced_installed">Vanced a fost instalat cu succes! Lansați acum?</string>
<string name="launch">Lansează</string>
<string name="welcome">Bun venit</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
<string name="finish">Finish</string>
<string name="install_light_black">Light + Black</string>
<string name="install_light_dark">Light + Dark</string>
<string name="next">Next</string>
<string name="choose_preferred_language">Alegeți limba preferată pentru Vanced</string>
<string name="choose_preferred_language_note">Notă: Engleza va fi întotdeauna instalată și ca limbă suplimentară.</string>
<string name="choose_preferred_theme">Alegeți tema preferată pentru Vanced</string>
<string name="disable_signature">Modul Root detectat! Pentru a instala Vanced, va trebui să dezactivați verificarea semnăturii apk.</string>
<string name="finish">Terminat</string>
<string name="install_light_black">Luminos + Negru</string>
<string name="install_light_dark">Luminos + Întunecat</string>
<string name="next">Continuare</string>
<!-- About Page -->
<string name="manager_dev">Manager Dev</string>
<string name="sources">Sources</string>
<string name="vanced_team">Vanced Team</string>
<string name="manager_dev">Manager dezvoltator</string>
<string name="sources">Surse</string>
<string name="vanced_team">Echipa Vanced</string>
</resources>

View File

@ -5,7 +5,7 @@
<string name="reset">Сброс</string>
<string name="save">Сохранить</string>
<!-- Main Activity -->
<string name="title_about">О приложении</string>
<string name="title_about">О нас</string>
<string name="title_home">Главная</string>
<string name="title_settings">Настройки</string>
<!-- Home Page -->
@ -17,11 +17,12 @@
<string name="installing_app">Установка %1$s</string>
<string name="installation_aborted">Операция не выполнена, поскольку пользователь прервал установку</string>
<string name="installation_blocked">Операция не выполнена, поскольку пользователь заблокировал установку</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Операция не выполнена, поскольку приложение конфликтует с уже установленным приложением</string>
<string name="installation_failed">Операция не выполнена по неизвестной причине, отправьте отчёт об ошибке снятый с помощью logcat</string>
<string name="installation_incompatible">Операция не выполнена, так как приложение несовместимо с вашим устройством</string>
<string name="installation_invalid">Операция завершилась неудачно, потому что apk-файлы оказались повреждены</string>
<string name="installation_signature">Произошла непредвиденная ошибка при установке Vanced. Вы отключили проверку подписи?</string>
<string name="installation_signature">Операция не удалась, потому что пользователь не отключил проверку подписи apk</string>
<string name="installation_miui">Произошла непредвиденная ошибка при установке Vanced. Вы отключили Оптимизацию MIUI?</string>
<string name="installation_storage">Операция не выполнена, так как произошла ошибка с доступом к памяти.</string>
<string name="installation_wait">Пожалуйста, дождитесь окончания установки</string>
@ -30,37 +31,39 @@
<string name="latest">Последняя:</string>
<string name="successfully_installed">Успешно установлено %1$s</string>
<string name="network_error">Нет подключения к интернету</string>
<string name="no_microg">Нет MicroG</string>
<string name="no_microg">microG не установлен</string>
<string name="root_not_granted">Рут-доступ не предоставлен</string>
<string name="unavailable">Недоступно</string>
<string name="update">Обновить</string>
<string name="useful_links">Полезные ссылки</string>
<string name="website_text">Сайт</string>
<string name="support_us">Поддержите нас!</string>
<string name="version_toast">%1$s version was copied!</string>
<string name="version_toast">%1$s Версия скопирована!</string>
<!-- Settings -->
<string name="accent_color">Акцент</string>
<string name="accent_color">Второстепенный цвет</string>
<string name="accent_blue">Синий</string>
<string name="accent_green">Зелёный</string>
<string name="accent_purple">Пурпурный</string>
<string name="accent_red">Красный</string>
<string name="accent_yellow">Жёлтый</string>
<string name="check_updates">Проверить обновления</string>
<string name="category_interface">Интерфейс</string>
<string name="category_manager">Менеджер</string>
<string name="check_updates">Проверить обновления</string>
<string name="chosen_install_values">Выбранные значения установки</string>
<string name="chosen_lang">Язык: %1$s</string>
<string name="chosen_lang">Язык(и): %1$s</string>
<string name="chosen_theme">Тема: %1$s</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Использовать Chrome Custom Tabs</string>
<string name="link_custom_tabs">Открывать ссылки в Chrome Custom Tabs</string>
<string name="link_external_browser">Ссылки откроются во внешнем браузере</string>
<string name="theme">Тема</string>
<string name="theme_follow">Как в системе</string>
<string name="theme_dark">Тёмная тема</string>
<string name="theme_light">Светлая тема</string>
<string name="update_url">Ссылка на канал обновлений</string>
<string name="push_notifications">Push-уведомления</string>
<string name="push_notifications_summary">Получать push-уведомление при выходе обновлений</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Получать уведомления о выходе обновления для %1$s</string>
<string name="re_check">Перепроверить</string>
<string name="update_center">Центр обновлений</string>
<string name="update_found">Найдено обновление!</string>
@ -69,7 +72,7 @@
<string name="button_dismiss">Отклонить</string>
<string name="guide">Руководство</string>
<string name="hold_on">Внимание!</string>
<string name="magisk_vanced">Похоже, вы используете версию программы Vanced, которая прекращена и не может быть обновлена, используя это приложение. Пожалуйста, сначала удалите его, удалив модуль magisk.</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">Обнаружен пользователь MIUI!</string>
<string name="miui_one">Привет! Похоже, вы пользователь MIUI. для правильного использования Vanced Manager вам придется отключить оптимизацию MIUI в настройках разработчика
Если вы используете прошивку версии 20.2.20, основанную на xiaomi.eu, вы можете спокойно проигнорировать это предупреждение.</string>

View File

@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources>
<!-- Global Strings -->
<string name="close">වසන්න</string>
<string name="reset">Reset</string>
<string name="save">සුරකින්න</string>
<!-- Main Activity -->
<string name="title_about">About</string>
<string name="title_home">Home</string>
<string name="title_settings">සැකසුම්</string>
<!-- Home Page -->
<string name="changelogs">Changelogs</string>
<string name="downloading_file">Downloading %1$s</string>
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
<string name="error_downloading">Error Downloading %1$s</string>
<string name="install">Install</string>
<string name="installing_app">Installing %1$s</string>
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
<string name="installation_downgrade">Operation failed because the user tried to downgrade the package. Do you have stock YouTube Installed?</string>
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
<string name="installation_storage">Operation failed due to a storage error.</string>
<string name="installation_wait">Please wait until the installation finishes</string>
<string name="button_reinstall">Reinstall</string>
<string name="version_installed">Installed:</string>
<string name="latest">Latest:</string>
<string name="successfully_installed">Successfully installed %1$s</string>
<string name="network_error">Network connection unavailable</string>
<string name="no_microg">microG isn\'t installed</string>
<string name="root_not_granted">Root access not granted</string>
<string name="unavailable">Unavailable</string>
<string name="update">යාවත්කාලීන කරන්න</string>
<string name="useful_links">Useful Links</string>
<string name="website_text">වෙබ් අඩවිය</string>
<string name="support_us">Support us!</string>
<string name="version_toast">%1$s version was copied!</string>
<!-- Settings -->
<string name="accent_color">Accent Color</string>
<string name="accent_blue">නිල්</string>
<string name="accent_green">කොළ</string>
<string name="accent_purple">දම්</string>
<string name="accent_red">රතු</string>
<string name="accent_yellow">කහ</string>
<string name="category_interface">අතුරු මුහුණත</string>
<string name="category_manager">Manager</string>
<string name="check_updates">Check for updates</string>
<string name="chosen_install_values">Chosen installation preferences</string>
<string name="chosen_lang">Language(s): %1$s</string>
<string name="chosen_theme">Theme: %1$s</string>
<string name="clear_files">Clear downloaded files</string>
<string name="cleared_files">Successfully cleared files</string>
<string name="link_title">Use Chrome Custom Tabs</string>
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
<string name="link_external_browser">Links will open in an External Browser</string>
<string name="theme">Theme</string>
<string name="theme_follow">Follow System</string>
<string name="theme_dark">Dark Theme</string>
<string name="theme_light">Light Theme</string>
<string name="update_url">Update Channel URL</string>
<string name="push_notifications">%1$s Push Notifications</string>
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
<string name="re_check">Re-check</string>
<string name="update_center">Manager Update Center</string>
<string name="update_found">Update found!</string>
<string name="update_notfound">No new updates</string>
<!-- Dialogs -->
<string name="button_dismiss">Dismiss</string>
<string name="guide">Guide</string>
<string name="hold_on">Hold on!</string>
<string name="magisk_vanced">Looks like you\'re using the Magisk/TWRP version of Vanced, which is discontinued and can not be updated using this app. Please remove it first by removing the magisk module/using TWRP Vanced uninstaller.</string>
<string name="miui_one_title">MIUI detected!</string>
<string name="miui_one">Hey! it looks like you\'re a MIUI user. in order to properly use this application, you will have to disable MIUI optimisations in the developer settings. (You can safely ignore this warning if you are on a 20.2.20 or later ROM based on xiaomi.eu)</string>
<string name="error">Error</string>
<string name="security_context">Please make sure, that you downloaded the app from vanced.app, the Vanced Discord server or the Vanced GitHub</string>
<string name="success">Success!</string>
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
<string name="launch">Launch</string>
<string name="welcome">ආයුබෝවන්</string>
<!-- Install Page -->
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
<string name="finish">Finish</string>
<string name="install_light_black">Light + Black</string>
<string name="install_light_dark">Light + Dark</string>
<string name="next">Next</string>
<!-- About Page -->
<string name="manager_dev">Manager Dev</string>
<string name="sources">Sources</string>
<string name="vanced_team">Vanced Team</string>
</resources>

Some files were not shown because too many files have changed in this diff Show More