11
.github/workflows/debug.yml
vendored
|
@ -18,17 +18,22 @@ jobs:
|
||||||
with:
|
with:
|
||||||
java-version: 1.8
|
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
|
- name: Grant rights
|
||||||
run: chmod +x ./gradlew
|
run: chmod +x ./gradlew
|
||||||
|
|
||||||
- name: Build project with Gradle
|
- name: Build project with Gradle
|
||||||
run: ./gradlew build
|
run: ./gradlew build
|
||||||
|
|
||||||
- name: Build Release APK with Gradle
|
- name: Build Debug APK with Gradle
|
||||||
run: ./gradlew assembleDebug
|
run: ./gradlew assembleDebug
|
||||||
|
|
||||||
- name: Upload to GitHub
|
- name: Upload Debug
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: 'Vanced-Manager'
|
name: 'Manager'
|
||||||
path: app/build/outputs/apk/debug/app-debug.apk
|
path: app/build/outputs/apk/debug/app-debug.apk
|
1
.gitignore
vendored
|
@ -3,6 +3,7 @@
|
||||||
build/
|
build/
|
||||||
out/
|
out/
|
||||||
app/src/main/java/com/vanced/manager/core/base/DummyJava.java
|
app/src/main/java/com/vanced/manager/core/base/DummyJava.java
|
||||||
|
app/google-services.json
|
||||||
local.properties
|
local.properties
|
||||||
/.github/
|
/.github/
|
||||||
*.iml
|
*.iml
|
||||||
|
|
|
@ -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)
|
- topjohnwu for his wonderful [LibSU](https://github.com/topjohnwu/libsu)
|
||||||
- Mindorks for their amazing [PRDownloader](https://github.com/MindorksOpenSource/PRDownloader)
|
- 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
|
- 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
|
||||||
|
|
|
@ -2,17 +2,20 @@ apply plugin: 'com.android.application'
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
apply plugin: 'kotlin-android-extensions'
|
apply plugin: 'kotlin-android-extensions'
|
||||||
apply plugin: 'kotlin-kapt'
|
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 {
|
android {
|
||||||
compileSdkVersion 29
|
compileSdkVersion 30
|
||||||
buildToolsVersion "29.0.3"
|
buildToolsVersion "30.0.1"
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "com.vanced.manager"
|
applicationId "com.vanced.manager"
|
||||||
minSdkVersion 21
|
minSdkVersion 21
|
||||||
targetSdkVersion 29
|
targetSdkVersion 30
|
||||||
versionCode 11
|
versionCode 12
|
||||||
versionName "1.1.0 (Big Sur)"
|
versionName "1.2.0 (Niko)"
|
||||||
|
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
}
|
}
|
||||||
|
@ -54,25 +57,38 @@ android {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
|
||||||
// Kotlin
|
// Kotlin
|
||||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
|
||||||
|
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
|
||||||
|
|
||||||
// AndroidX
|
// 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.browser:browser:1.2.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
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.fragment:fragment-ktx:1.2.5'
|
||||||
implementation 'androidx.lifecycle:lifecycle-livedata-core-ktx:2.2.0'
|
implementation 'androidx.lifecycle:lifecycle-livedata-core-ktx:2.2.0'
|
||||||
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
|
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'
|
||||||
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
|
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.0.0'
|
||||||
implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2'
|
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.0'
|
||||||
implementation 'androidx.navigation:navigation-ui-ktx:2.2.2'
|
implementation 'androidx.navigation:navigation-ui-ktx:2.3.0'
|
||||||
implementation 'androidx.preference:preference-ktx:1.1.1'
|
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
|
// Other
|
||||||
implementation 'com.github.100rabhkr:GetJSON:1.0'
|
implementation 'com.beust:klaxon:5.3'
|
||||||
implementation 'com.github.topjohnwu.libsu:core:2.5.1'
|
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.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'
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,7 @@
|
||||||
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
|
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
|
||||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<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
|
<application
|
||||||
android:name=".core.App"
|
android:name=".core.App"
|
||||||
|
@ -18,8 +17,7 @@
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:roundIcon="@mipmap/ic_launcher_round"
|
android:roundIcon="@mipmap/ic_launcher_round"
|
||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
tools:ignore="UnusedAttribute"
|
tools:ignore="UnusedAttribute">
|
||||||
tools:replace="android:allowBackup">
|
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.core.SplashScreenActivity"
|
android:name=".ui.core.SplashScreenActivity"
|
||||||
|
@ -38,7 +36,8 @@
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.MainActivity"
|
android:name=".ui.MainActivity"
|
||||||
android:label="@string/app_name" />
|
android:label="@string/app_name"
|
||||||
|
android:theme="@style/DarkTheme.Blue"/>
|
||||||
|
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="preloaded_fonts"
|
android:name="preloaded_fonts"
|
||||||
|
@ -56,6 +55,20 @@
|
||||||
|
|
||||||
</provider>
|
</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.SplitInstallerService" />
|
||||||
<service android:name=".core.installer.RootSplitInstallerService" />
|
<service android:name=".core.installer.RootSplitInstallerService" />
|
||||||
<service android:name=".core.installer.SplitInstaller" />
|
<service android:name=".core.installer.SplitInstaller" />
|
||||||
|
|
Before Width: | Height: | Size: 35 KiB |
|
@ -8,19 +8,15 @@ import com.vanced.manager.ui.fragments.VancedChangelogFragment
|
||||||
|
|
||||||
class SectionPageAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
|
class SectionPageAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
|
||||||
|
|
||||||
private val fragmentItems = 3
|
override fun getItemCount(): Int = 3
|
||||||
override fun getItemCount(): Int {
|
|
||||||
return fragmentItems
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun createFragment(position: Int): Fragment {
|
override fun createFragment(position: Int): Fragment {
|
||||||
var fragment: Fragment? = null
|
return when (position) {
|
||||||
when (position) {
|
0 -> VancedChangelogFragment()
|
||||||
0 -> fragment = VancedChangelogFragment()
|
1 -> MicrogChangelogFragment()
|
||||||
1 -> fragment = MicrogChangelogFragment()
|
2 -> ManagerChangelogFragment()
|
||||||
2 -> fragment = ManagerChangelogFragment()
|
else -> throw NotImplementedError()
|
||||||
}
|
}
|
||||||
return fragment!!
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -7,18 +7,14 @@ import com.vanced.manager.ui.fragments.VancedChangelogFragment
|
||||||
|
|
||||||
class SectionPageRootAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
|
class SectionPageRootAdapter(fragment: Fragment) : FragmentStateAdapter(fragment) {
|
||||||
|
|
||||||
private val fragmentItems = 2
|
override fun getItemCount(): Int = 2
|
||||||
override fun getItemCount(): Int {
|
|
||||||
return fragmentItems
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun createFragment(position: Int): Fragment {
|
override fun createFragment(position: Int): Fragment {
|
||||||
var fragment: Fragment? = null
|
return when (position) {
|
||||||
when (position) {
|
0 -> VancedChangelogFragment()
|
||||||
0 -> fragment = VancedChangelogFragment()
|
1 -> ManagerChangelogFragment()
|
||||||
1 -> fragment = ManagerChangelogFragment()
|
else -> throw NotImplementedError()
|
||||||
}
|
}
|
||||||
return fragment!!
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,15 +1,29 @@
|
||||||
package com.vanced.manager.core
|
package com.vanced.manager.core
|
||||||
|
|
||||||
import android.app.Application
|
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.downloader.PRDownloader
|
||||||
import com.vanced.manager.utils.NotificationHelper.createNotifChannel
|
|
||||||
|
|
||||||
class App: Application() {
|
class App: Application() {
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
PRDownloader.initialize(this)
|
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()
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
|
@ -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")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,73 +1,88 @@
|
||||||
package com.vanced.manager.core.downloader
|
package com.vanced.manager.core.downloader
|
||||||
|
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
|
import android.widget.Toast
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
import com.downloader.Error
|
import com.downloader.Error
|
||||||
import com.downloader.OnDownloadListener
|
import com.downloader.OnDownloadListener
|
||||||
import com.downloader.OnStartOrResumeListener
|
|
||||||
import com.downloader.PRDownloader
|
import com.downloader.PRDownloader
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.core.installer.AppInstaller
|
import com.vanced.manager.core.installer.AppInstaller
|
||||||
import com.vanced.manager.ui.fragments.HomeFragment
|
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.getFileNameFromUrl
|
||||||
import com.vanced.manager.utils.InternetTools.getObjectFromJson
|
import com.vanced.manager.utils.InternetTools.getObjectFromJson
|
||||||
import com.vanced.manager.utils.NotificationHelper
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import com.vanced.manager.utils.NotificationHelper.cancelNotif
|
import kotlinx.coroutines.Dispatchers
|
||||||
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class MicrogDownloadService: Service() {
|
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 {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
|
//registerReceiver(receiver, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
|
||||||
downloadMicrog()
|
downloadMicrog()
|
||||||
stopSelf()
|
stopSelf()
|
||||||
return START_NOT_STICKY
|
return START_NOT_STICKY
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun downloadMicrog() {
|
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(url, getExternalFilesDir("apk")?.path, "microg.apk")
|
||||||
PRDownloader.download(apkUrl, filesDir.path, "microg.apk")
|
|
||||||
.build()
|
.build()
|
||||||
.setOnStartOrResumeListener { OnStartOrResumeListener { prefs?.edit()?.putBoolean("isMicrogDownloading", true)?.apply() } }
|
.setOnStartOrResumeListener { installing = true }
|
||||||
.setOnProgressListener { progress ->
|
.setOnProgressListener { progress ->
|
||||||
val mProgress = progress.currentBytes * 100 / progress.totalBytes
|
val mProgress = progress.currentBytes * 100 / progress.totalBytes
|
||||||
NotificationHelper.displayDownloadNotif(
|
localBroadcastManager.sendBroadcast(Intent(HomeFragment.MICROG_DOWNLOADING).putExtra("progress", mProgress.toInt()).putExtra("file", getFileNameFromUrl(url)))
|
||||||
channel,
|
|
||||||
mProgress.toInt(),
|
|
||||||
getFileNameFromUrl(apkUrl),
|
|
||||||
this
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
.start(object : OnDownloadListener {
|
.start(object : OnDownloadListener {
|
||||||
override fun onDownloadComplete() {
|
override fun onDownloadComplete() {
|
||||||
prefs?.edit()?.putBoolean("isMicrogDownloading", false)?.apply()
|
|
||||||
cancelNotif(channel, this@MicrogDownloadService)
|
|
||||||
val intent = Intent(this@MicrogDownloadService, AppInstaller::class.java)
|
val intent = Intent(this@MicrogDownloadService, AppInstaller::class.java)
|
||||||
intent.putExtra("path", "${filesDir.path}/microg.apk")
|
intent.putExtra("path", "${getExternalFilesDir("apk")}/microg.apk")
|
||||||
intent.putExtra("pkg", "com.mgoogle.android.gms")
|
intent.putExtra("pkg", "com.mgoogle.android.gms")
|
||||||
val mIntent = Intent(HomeFragment.MICROG_DOWNLOADED)
|
localBroadcastManager.sendBroadcast(Intent(HomeFragment.MICROG_INSTALLING))
|
||||||
mIntent.action = HomeFragment.MICROG_DOWNLOADED
|
|
||||||
LocalBroadcastManager.getInstance(this@MicrogDownloadService).sendBroadcast(mIntent)
|
|
||||||
startService(intent)
|
startService(intent)
|
||||||
}
|
}
|
||||||
override fun onError(error: Error) {
|
|
||||||
prefs?.edit()?.putBoolean("isMicrogDownloading", false)?.apply()
|
override fun onError(error: Error?) {
|
||||||
createBasicNotif(getString(R.string.error_downloading, "Microg"), channel, this@MicrogDownloadService)
|
installing = false
|
||||||
|
Toast.makeText(this@MicrogDownloadService, getString(R.string.error_downloading, "microG"), Toast.LENGTH_SHORT).show()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
|
||||||
super.onDestroy()
|
|
||||||
cancelNotif(420, this)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
override fun onBind(intent: Intent?): IBinder? {
|
override fun onBind(intent: Intent?): IBinder? {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,27 +5,34 @@ import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
|
import android.widget.Toast
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.downloader.Error
|
import com.downloader.Error
|
||||||
import com.downloader.OnDownloadListener
|
import com.downloader.OnDownloadListener
|
||||||
import com.downloader.OnStartOrResumeListener
|
|
||||||
import com.downloader.PRDownloader
|
import com.downloader.PRDownloader
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.core.installer.RootSplitInstallerService
|
import com.vanced.manager.core.installer.RootSplitInstallerService
|
||||||
import com.vanced.manager.core.installer.SplitInstaller
|
import com.vanced.manager.core.installer.SplitInstaller
|
||||||
import com.vanced.manager.ui.fragments.HomeFragment
|
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.baseUrl
|
||||||
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
|
import com.vanced.manager.utils.InternetTools.getFileNameFromUrl
|
||||||
import com.vanced.manager.utils.InternetTools.getObjectFromJson
|
import com.vanced.manager.utils.InternetTools.getObjectFromJson
|
||||||
import com.vanced.manager.utils.NotificationHelper.cancelNotif
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
|
import kotlinx.coroutines.Dispatchers
|
||||||
import com.vanced.manager.utils.NotificationHelper.displayDownloadNotif
|
import kotlinx.coroutines.launch
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
class VancedDownloadService: Service() {
|
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()
|
downloadSplits()
|
||||||
stopSelf()
|
stopSelf()
|
||||||
return START_NOT_STICKY
|
return START_NOT_STICKY
|
||||||
|
@ -34,12 +41,15 @@ class VancedDownloadService: Service() {
|
||||||
private fun downloadSplits(
|
private fun downloadSplits(
|
||||||
type: String = "arch"
|
type: String = "arch"
|
||||||
) {
|
) {
|
||||||
val baseUrl = PreferenceManager.getDefaultSharedPreferences(this).getString("install_url", baseUrl)
|
CoroutineScope(Dispatchers.IO).launch {
|
||||||
val vancedVer = getObjectFromJson("https://vanced.app/api/v1/vanced.json", "version", this)
|
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 prefs = getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
|
||||||
val variant = PreferenceManager.getDefaultSharedPreferences(this).getString("vanced_variant", "nonroot")
|
val variant = defPrefs.getString("vanced_variant", "nonroot")
|
||||||
val lang = prefs?.getString("lang", "en")
|
val lang = prefs?.getString("lang", "en")?.split(", ")?.toTypedArray()
|
||||||
val theme = prefs?.getString("theme", "dark")
|
val theme = prefs?.getString("theme", "dark")
|
||||||
val arch =
|
val arch =
|
||||||
when {
|
when {
|
||||||
|
@ -49,63 +59,82 @@ class VancedDownloadService: Service() {
|
||||||
}
|
}
|
||||||
val url =
|
val url =
|
||||||
when (type) {
|
when (type) {
|
||||||
"arch" -> "$baseUrl/apks/v$vancedVer/$variant/Arch/split_config.$arch.apk"
|
"arch" -> "$installUrl/apks/v$vancedVer/$variant/Arch/split_config.$arch.apk"
|
||||||
"theme" -> "$baseUrl/apks/v$vancedVer/$variant/Theme/$theme.apk"
|
"theme" -> "$installUrl/apks/v$vancedVer/$variant/Theme/$theme.apk"
|
||||||
"lang" -> "$baseUrl/apks/v$vancedVer/$variant/Language/split_config.$lang.apk"
|
"lang" -> "$installUrl/apks/v$vancedVer/$variant/Language/split_config.${lang?.get(count)}.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?")
|
else -> throw NotImplementedError("This type of APK is NOT valid. What the hell did you even do?")
|
||||||
}
|
}
|
||||||
|
|
||||||
val channel = 69
|
//apkType = type
|
||||||
|
//downloadId = download(url, "apks", getFileNameFromUrl(url), this@VancedDownloadService)
|
||||||
|
|
||||||
PRDownloader
|
PRDownloader
|
||||||
.download(url, cacheDir.path, getFileNameFromUrl(url))
|
.download(url, getExternalFilesDir("apks")?.path, getFileNameFromUrl(url))
|
||||||
.build()
|
.build()
|
||||||
.setOnStartOrResumeListener { OnStartOrResumeListener { prefs?.edit()?.putBoolean("isVancedDownloading", true)?.apply() } }
|
.setOnStartOrResumeListener{ installing = true }
|
||||||
.setOnProgressListener { progress ->
|
.setOnProgressListener { progress ->
|
||||||
val mProgress = progress.currentBytes * 100 / progress.totalBytes
|
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 {
|
.start(object : OnDownloadListener {
|
||||||
override fun onDownloadComplete() {
|
override fun onDownloadComplete() {
|
||||||
when (type) {
|
when (type) {
|
||||||
|
"arch" -> downloadSplits("theme")
|
||||||
|
"theme" -> downloadSplits("lang")
|
||||||
|
"lang" -> {
|
||||||
|
count++
|
||||||
|
if (count < lang?.count()!!)
|
||||||
|
downloadSplits("lang")
|
||||||
|
else
|
||||||
|
prepareInstall(variant!!)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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")
|
"arch" -> downloadSplits("theme")
|
||||||
"theme" -> downloadSplits("lang")
|
"theme" -> downloadSplits("lang")
|
||||||
"lang" -> {
|
"lang" -> {
|
||||||
if (lang == "en") {
|
if (lang == "en") {
|
||||||
prepareInstall(variant!!)
|
prepareInstall(variant!!)
|
||||||
cancelNotif(channel, this@VancedDownloadService)
|
//cancelNotif(channel, this@VancedDownloadService)
|
||||||
} else {
|
} else {
|
||||||
downloadSplits("enlang")
|
downloadSplits("enlang")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"enlang" -> {
|
"enlang" -> {
|
||||||
prepareInstall(variant!!)
|
prepareInstall(variant!!)
|
||||||
cancelNotif(channel, this@VancedDownloadService)
|
//cancelNotif(channel, this@VancedDownloadService)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onError(error: Error) {
|
|
||||||
createBasicNotif(getString(R.string.error_downloading, "Vanced"), channel, this@VancedDownloadService)
|
|
||||||
}
|
}
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
private fun prepareInstall(variant: String) {
|
private fun prepareInstall(variant: String) {
|
||||||
val intent = Intent(HomeFragment.VANCED_DOWNLOADED)
|
localBroadcastManager.sendBroadcast(Intent(HomeFragment.VANCED_INSTALLING))
|
||||||
intent.action = HomeFragment.VANCED_DOWNLOADED
|
|
||||||
LocalBroadcastManager.getInstance(this).sendBroadcast(intent)
|
|
||||||
if (variant == "root")
|
if (variant == "root")
|
||||||
startService(Intent(this, RootSplitInstallerService::class.java))
|
startService(Intent(this, RootSplitInstallerService::class.java))
|
||||||
else
|
else
|
||||||
startService(Intent(this, SplitInstaller::class.java))
|
startService(Intent(this, SplitInstaller::class.java))
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
|
||||||
super.onDestroy()
|
|
||||||
cancelNotif(69, this)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onBind(intent: Intent?): IBinder? {
|
override fun onBind(intent: Intent?): IBinder? {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
|
@ -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")
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -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
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -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")
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -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)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -29,6 +29,7 @@ class AppInstaller: Service() {
|
||||||
inputStream.close()
|
inputStream.close()
|
||||||
outputStream.close()
|
outputStream.close()
|
||||||
session.commit(pendingIntent.intentSender)
|
session.commit(pendingIntent.intentSender)
|
||||||
|
stopSelf()
|
||||||
return START_NOT_STICKY
|
return START_NOT_STICKY
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,84 +1,44 @@
|
||||||
package com.vanced.manager.core.installer
|
package com.vanced.manager.core.installer
|
||||||
|
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.PackageInstaller
|
import android.content.pm.PackageInstaller
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.annotation.Nullable
|
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.ui.fragments.HomeFragment
|
||||||
import com.vanced.manager.ui.MainActivity
|
import com.vanced.manager.utils.AppUtils.sendFailure
|
||||||
import com.vanced.manager.utils.MiuiHelper
|
|
||||||
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
|
|
||||||
|
|
||||||
class AppInstallerService: Service() {
|
class AppInstallerService: Service() {
|
||||||
|
|
||||||
|
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
|
||||||
val notifId = 42
|
|
||||||
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
|
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
|
||||||
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
|
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
|
||||||
Toast.makeText(this, "Installing...", Toast.LENGTH_SHORT).show()
|
|
||||||
Log.d(TAG, "Requesting user confirmation for installation")
|
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)
|
val confirmationIntent = intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
|
||||||
confirmationIntent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
confirmationIntent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
try {
|
try {
|
||||||
startActivity(confirmationIntent)
|
startActivity(confirmationIntent)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
|
Log.d("VMInstall", "Unable to start installation")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PackageInstaller.STATUS_SUCCESS -> {
|
PackageInstaller.STATUS_SUCCESS -> {
|
||||||
Log.d(TAG, "Installation succeed")
|
Log.d(TAG, "Installation succeed")
|
||||||
getSharedPreferences("installPrefs", Context.MODE_PRIVATE).edit().putBoolean("isInstalling", false).apply()
|
with(localBroadcastManager) {
|
||||||
val mIntent = Intent(MainActivity.INSTALL_COMPLETED)
|
sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
|
||||||
mIntent.action = MainActivity.INSTALL_COMPLETED
|
sendBroadcast(Intent(HomeFragment.MICROG_INSTALLED))
|
||||||
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
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
else -> sendFailure(intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999), this)
|
||||||
}
|
}
|
||||||
stopSelf()
|
stopSelf()
|
||||||
return START_NOT_STICKY
|
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? {
|
override fun onBind(intent: Intent?): IBinder? {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,14 +3,16 @@ package com.vanced.manager.core.installer
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.PackageInstaller
|
import android.content.pm.PackageInstaller
|
||||||
import android.os.Handler
|
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
import com.vanced.manager.ui.MainActivity
|
import com.vanced.manager.ui.fragments.HomeFragment
|
||||||
|
import kotlinx.coroutines.*
|
||||||
|
|
||||||
class AppUninstallerService: Service() {
|
class AppUninstallerService: Service() {
|
||||||
|
|
||||||
|
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
val pkgName = intent?.getStringExtra("pkg")
|
val pkgName = intent?.getStringExtra("pkg")
|
||||||
when (intent?.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
|
when (intent?.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
|
||||||
|
@ -23,22 +25,20 @@ class AppUninstallerService: Service() {
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//Delay broadcast until activity (and fragment) show up on screen
|
||||||
PackageInstaller.STATUS_SUCCESS -> {
|
PackageInstaller.STATUS_SUCCESS -> {
|
||||||
Handler().postDelayed({
|
CoroutineScope(Dispatchers.IO).launch {
|
||||||
val mIntent = Intent()
|
delay(500)
|
||||||
mIntent.action = MainActivity.APP_UNINSTALLED
|
localBroadcastManager.sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
|
||||||
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
|
|
||||||
Log.d("VMpm", "Successfully uninstalled $pkgName")
|
Log.d("VMpm", "Successfully uninstalled $pkgName")
|
||||||
}, 500)
|
}
|
||||||
}
|
}
|
||||||
PackageInstaller.STATUS_FAILURE -> {
|
PackageInstaller.STATUS_FAILURE -> {
|
||||||
Handler().postDelayed({
|
CoroutineScope(Dispatchers.IO).launch {
|
||||||
val mIntent = Intent()
|
delay(500)
|
||||||
mIntent.action = MainActivity.APP_NOT_UNINSTALLED
|
localBroadcastManager.sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
|
||||||
mIntent.putExtra("pkgName", pkgName)
|
|
||||||
LocalBroadcastManager.getInstance(this).sendBroadcast(mIntent)
|
|
||||||
Log.d("VMpm", "Failed to uninstall $pkgName")
|
Log.d("VMpm", "Failed to uninstall $pkgName")
|
||||||
}, 500)
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stopSelf()
|
stopSelf()
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
package com.vanced.manager.core.installer
|
package com.vanced.manager.core.installer
|
||||||
|
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.AsyncTask
|
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
@ -11,12 +9,13 @@ import androidx.annotation.Nullable
|
||||||
import androidx.annotation.WorkerThread
|
import androidx.annotation.WorkerThread
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
import com.topjohnwu.superuser.Shell
|
import com.topjohnwu.superuser.Shell
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.ui.fragments.HomeFragment
|
||||||
import com.vanced.manager.ui.MainActivity
|
import com.vanced.manager.utils.AppUtils.sendFailure
|
||||||
import com.vanced.manager.utils.FileInfo
|
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.io.File
|
||||||
import java.nio.charset.Charset
|
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
|
@ -24,16 +23,19 @@ import kotlin.collections.ArrayList
|
||||||
|
|
||||||
class RootSplitInstallerService: Service() {
|
class RootSplitInstallerService: Service() {
|
||||||
|
|
||||||
|
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
Shell.getShell {
|
Shell.getShell {
|
||||||
val isRoot = it.isRoot
|
CoroutineScope(Dispatchers.IO).launch {
|
||||||
Log.d("AppLog", "isRoot ?$isRoot ")
|
val apkFilesPath = getExternalFilesDir("apks")?.path
|
||||||
AsyncTask.execute {
|
val fileInfoList = apkFilesPath?.let { it1 -> getFileInfoList(it1) }
|
||||||
val apkFilesPath = cacheDir.path
|
if (fileInfoList != null) {
|
||||||
val fileInfoList = getFileInfoList(apkFilesPath)
|
|
||||||
installSplitApkFiles(fileInfoList)
|
installSplitApkFiles(fileInfoList)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
stopSelf()
|
stopSelf()
|
||||||
return START_NOT_STICKY
|
return START_NOT_STICKY
|
||||||
}
|
}
|
||||||
|
@ -41,7 +43,6 @@ class RootSplitInstallerService: Service() {
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
private fun installSplitApkFiles(apkFiles: ArrayList<FileInfo>) {
|
private fun installSplitApkFiles(apkFiles: ArrayList<FileInfo>) {
|
||||||
var sessionId: Int?
|
var sessionId: Int?
|
||||||
val notifId = 666
|
|
||||||
Log.d("AppLog", "installing split apk files:$apkFiles")
|
Log.d("AppLog", "installing split apk files:$apkFiles")
|
||||||
run {
|
run {
|
||||||
val sessionIdResult = Shell.su("pm install-create -r -t").exec().out
|
val sessionIdResult = Shell.su("pm install-create -r -t").exec().out
|
||||||
|
@ -50,9 +51,8 @@ class RootSplitInstallerService: Service() {
|
||||||
sessionIdMatcher.find()
|
sessionIdMatcher.find()
|
||||||
sessionId = Integer.parseInt(sessionIdMatcher.group(1)!!)
|
sessionId = Integer.parseInt(sessionIdMatcher.group(1)!!)
|
||||||
}
|
}
|
||||||
for (apkFile in apkFiles) {
|
apkFiles.forEach { apkFile ->
|
||||||
Log.d("AppLog", "installing APK : ${apkFile.name} ${apkFile.fileSize} ")
|
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 command = arrayOf("su", "-c", "pm", "install-write", "-S", "${apkFile.fileSize}", "$sessionId", apkFile.name)
|
||||||
val process: Process = Runtime.getRuntime().exec(command)
|
val process: Process = Runtime.getRuntime().exec(command)
|
||||||
val inputPipe = apkFile.getInputStream()
|
val inputPipe = apkFile.getInputStream()
|
||||||
|
@ -67,28 +67,16 @@ class RootSplitInstallerService: Service() {
|
||||||
throw RuntimeException(e)
|
throw RuntimeException(e)
|
||||||
}
|
}
|
||||||
process.waitFor()
|
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...")
|
Log.d("AppLog", "committing...")
|
||||||
val installResult = Shell.su("pm install-commit $sessionId").exec()
|
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) {
|
if (installResult.isSuccess) {
|
||||||
val mIntent = Intent(MainActivity.INSTALL_COMPLETED)
|
with(localBroadcastManager) {
|
||||||
mIntent.action = MainActivity.INSTALL_COMPLETED
|
sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
|
||||||
mIntent.putExtra("package", "split")
|
sendBroadcast(Intent(HomeFragment.VANCED_INSTALLED))
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
sendFailure(installResult.out, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun SimpleDateFormat.tryParse(str: String) = try {
|
private fun SimpleDateFormat.tryParse(str: String) = try {
|
||||||
|
|
|
@ -21,7 +21,7 @@ class SplitInstaller: Service() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun installSplitApk(context: Context): Int {
|
private fun installSplitApk(context: Context): Int {
|
||||||
val apkFolderPath = context.cacheDir.path + "/"
|
val apkFolderPath = context.getExternalFilesDir("apks")?.path + "/"
|
||||||
val nameSizeMap = HashMap<String, Long>()
|
val nameSizeMap = HashMap<String, Long>()
|
||||||
var totalSize: Long = 0
|
var totalSize: Long = 0
|
||||||
var sessionId = 0
|
var sessionId = 0
|
||||||
|
|
|
@ -1,32 +1,24 @@
|
||||||
package com.vanced.manager.core.installer
|
package com.vanced.manager.core.installer
|
||||||
|
|
||||||
import android.app.Notification
|
|
||||||
import android.app.Service
|
import android.app.Service
|
||||||
import android.content.Context
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.PackageInstaller
|
import android.content.pm.PackageInstaller
|
||||||
import android.os.Build
|
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.widget.Toast
|
|
||||||
import androidx.annotation.Nullable
|
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.ui.fragments.HomeFragment
|
||||||
import com.vanced.manager.ui.MainActivity
|
import com.vanced.manager.utils.AppUtils.sendFailure
|
||||||
import com.vanced.manager.utils.MiuiHelper.isMiui
|
|
||||||
import com.vanced.manager.utils.NotificationHelper.createBasicNotif
|
|
||||||
|
|
||||||
class SplitInstallerService: Service() {
|
class SplitInstallerService: Service() {
|
||||||
|
|
||||||
|
private val localBroadcastManager by lazy { LocalBroadcastManager.getInstance(this) }
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
|
||||||
val notifId = 666
|
|
||||||
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
|
when (intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999)) {
|
||||||
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
|
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
|
||||||
Toast.makeText(this, "Installing...", Toast.LENGTH_SHORT).show()
|
localBroadcastManager.sendBroadcast(Intent(HomeFragment.VANCED_INSTALLING))
|
||||||
createBasicNotif(getString(R.string.installing_app, "Vanced"), notifId, this)
|
|
||||||
Log.d(TAG, "Requesting user confirmation for installation")
|
Log.d(TAG, "Requesting user confirmation for installation")
|
||||||
val confirmationIntent =
|
val confirmationIntent = intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
|
||||||
intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
|
|
||||||
confirmationIntent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
confirmationIntent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||||
try {
|
try {
|
||||||
startActivity(confirmationIntent)
|
startActivity(confirmationIntent)
|
||||||
|
@ -35,71 +27,18 @@ class SplitInstallerService: Service() {
|
||||||
}
|
}
|
||||||
PackageInstaller.STATUS_SUCCESS -> {
|
PackageInstaller.STATUS_SUCCESS -> {
|
||||||
Log.d(TAG, "Installation succeed")
|
Log.d(TAG, "Installation succeed")
|
||||||
getSharedPreferences("installPrefs", Context.MODE_PRIVATE).edit().putBoolean("isInstalling", false).apply()
|
with(localBroadcastManager) {
|
||||||
val mIntent = Intent(MainActivity.INSTALL_COMPLETED)
|
sendBroadcast(Intent(HomeFragment.REFRESH_HOME))
|
||||||
mIntent.action = MainActivity.INSTALL_COMPLETED
|
sendBroadcast(Intent(HomeFragment.VANCED_INSTALLED))
|
||||||
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
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
else -> sendFailure(intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -999), this)
|
||||||
|
|
||||||
}
|
}
|
||||||
stopSelf()
|
stopSelf()
|
||||||
return START_NOT_STICKY
|
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? {
|
override fun onBind(intent: Intent?): IBinder? {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,49 +1,46 @@
|
||||||
package com.vanced.manager.ui
|
package com.vanced.manager.ui
|
||||||
|
|
||||||
import android.content.BroadcastReceiver
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
|
||||||
import android.content.IntentFilter
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.databinding.DataBindingUtil
|
import androidx.databinding.DataBindingUtil
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
|
||||||
import androidx.navigation.NavDestination
|
import androidx.navigation.NavDestination
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import androidx.navigation.ui.AppBarConfiguration
|
import androidx.navigation.ui.AppBarConfiguration
|
||||||
import androidx.navigation.ui.setupWithNavController
|
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.R
|
||||||
import com.vanced.manager.core.Main
|
|
||||||
import com.vanced.manager.databinding.ActivityMainBinding
|
import com.vanced.manager.databinding.ActivityMainBinding
|
||||||
import com.vanced.manager.ui.dialogs.DialogContainer.installAlertBuilder
|
import com.vanced.manager.ui.dialogs.DialogContainer
|
||||||
import com.vanced.manager.ui.dialogs.DialogContainer.launchVanced
|
import com.vanced.manager.ui.fragments.UpdateCheckFragment
|
||||||
import com.vanced.manager.ui.dialogs.DialogContainer.regularPackageInstalled
|
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 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 lateinit var binding: ActivityMainBinding
|
||||||
private val navHost by lazy { findNavController(R.id.bottom_nav_host) }
|
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() {
|
private val loadingObserver = object : LoadingStateListener {
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
val tag = "VMLocalisation"
|
||||||
when (intent.action) {
|
override fun onDataChanged() {
|
||||||
INSTALL_COMPLETED -> {
|
Log.d(tag, "Loaded data")
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onFailure(throwable: Throwable) {
|
||||||
|
Log.d(tag, "Failed to load data")
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
@ -61,21 +58,26 @@ class MainActivity : Main() {
|
||||||
navHost.addOnDestinationChangedListener { _, currFrag: NavDestination, _ ->
|
navHost.addOnDestinationChangedListener { _, currFrag: NavDestination, _ ->
|
||||||
setDisplayHomeAsUpEnabled(currFrag.id != R.id.home_fragment)
|
setDisplayHomeAsUpEnabled(currFrag.id != R.id.home_fragment)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
initDialogs()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
super.onPause()
|
super.onPause()
|
||||||
localBroadcastManager.unregisterReceiver(broadcastReceiver)
|
Crowdin.unregisterDataLoadingObserver(loadingObserver)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
setFinalTheme(this)
|
setFinalTheme(this)
|
||||||
super.onResume()
|
super.onResume()
|
||||||
registerReceivers()
|
Crowdin.registerDataLoadingObserver(loadingObserver)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||||
val navHost = findNavController(R.id.bottom_nav_host)
|
if (installing) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
when (item.itemId) {
|
when (item.itemId) {
|
||||||
android.R.id.home -> {
|
android.R.id.home -> {
|
||||||
onBackPressed()
|
onBackPressed()
|
||||||
|
@ -95,34 +97,57 @@ class MainActivity : Main() {
|
||||||
}
|
}
|
||||||
else -> super.onOptionsItemSelected(item)
|
else -> super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setDisplayHomeAsUpEnabled(isNeeded: Boolean) {
|
private fun setDisplayHomeAsUpEnabled(isNeeded: Boolean) {
|
||||||
binding.homeToolbar.navigationIcon = if (isNeeded) getDrawable(R.drawable.ic_keyboard_backspace_black_24dp) else null
|
binding.homeToolbar.navigationIcon = if (isNeeded) getDrawable(R.drawable.ic_keyboard_backspace_black_24dp) else null
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun registerReceivers() {
|
override fun attachBaseContext(newBase: Context) {
|
||||||
val intentFilter = IntentFilter()
|
super.attachBaseContext(Crowdin.wrapContext(newBase))
|
||||||
intentFilter.addAction(INSTALL_COMPLETED)
|
|
||||||
intentFilter.addAction(INSTALL_FAILED)
|
|
||||||
intentFilter.addAction(APP_UNINSTALLED)
|
|
||||||
intentFilter.addAction(APP_NOT_UNINSTALLED)
|
|
||||||
localBroadcastManager.registerReceiver(broadcastReceiver, intentFilter)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun restartActivity() {
|
private fun initDialogs() {
|
||||||
startActivity(Intent(this@MainActivity, MainActivity::class.java))
|
val prefs = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
|
val variant = prefs.getString("vanced_variant", "nonroot")
|
||||||
finish()
|
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
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
checkUpdates()
|
||||||
const val INSTALL_COMPLETED = "install_completed"
|
}
|
||||||
const val INSTALL_FAILED = "install_failed"
|
|
||||||
const val APP_UNINSTALLED = "app_uninstalled"
|
private fun checkUpdates() {
|
||||||
const val APP_NOT_UNINSTALLED = "app_not_installed"
|
CoroutineScope(Dispatchers.Main).launch {
|
||||||
|
if (InternetTools.isUpdateAvailable()) {
|
||||||
|
UpdateCheckFragment().show(supportFragmentManager, "UpdateCheck")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -2,9 +2,10 @@ package com.vanced.manager.ui.core
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.AttributeSet
|
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?) : super(context!!)
|
||||||
constructor(context: Context?, attrs: AttributeSet?) : super(
|
constructor(context: Context?, attrs: AttributeSet?) : super(
|
||||||
context!!,
|
context!!,
|
|
@ -3,13 +3,11 @@ package com.vanced.manager.ui.core
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import com.vanced.manager.R
|
|
||||||
import com.vanced.manager.ui.MainActivity
|
import com.vanced.manager.ui.MainActivity
|
||||||
|
|
||||||
class SplashScreenActivity : AppCompatActivity() {
|
class SplashScreenActivity : AppCompatActivity() {
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
setTheme(R.style.SplashTheme)
|
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
startActivity(Intent(this@SplashScreenActivity, MainActivity::class.java))
|
startActivity(Intent(this@SplashScreenActivity, MainActivity::class.java))
|
||||||
|
|
|
@ -4,142 +4,165 @@ import android.app.Activity
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import androidx.appcompat.app.AlertDialog
|
|
||||||
import androidx.core.content.ContextCompat.startActivity
|
import androidx.core.content.ContextCompat.startActivity
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import com.vanced.manager.R
|
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.InternetTools.openUrl
|
||||||
import com.vanced.manager.utils.MiuiHelper
|
import com.vanced.manager.utils.MiuiHelper
|
||||||
|
|
||||||
object DialogContainer {
|
object DialogContainer {
|
||||||
|
|
||||||
fun showSecurityDialog(context: Context) {
|
fun showSecurityDialog(context: Context) {
|
||||||
AlertDialog.Builder(context)
|
MaterialAlertDialogBuilder(context).apply {
|
||||||
.setTitle(context.resources.getString(R.string.welcome))
|
setTitle(context.resources.getString(R.string.welcome))
|
||||||
.setMessage(context.resources.getString(R.string.security_context))
|
setMessage(context.resources.getString(R.string.security_context))
|
||||||
.setCancelable(false)
|
setPositiveButton(context.resources.getString(R.string.close)) { dialog, _ ->
|
||||||
.setPositiveButton(context.resources.getString(R.string.close)) { dialog, _ ->
|
|
||||||
run {
|
|
||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
|
}
|
||||||
|
setOnDismissListener {
|
||||||
if (MiuiHelper.isMiui()) {
|
if (MiuiHelper.isMiui()) {
|
||||||
showMiuiDialog(context)
|
showMiuiDialog(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
setOnCancelListener {
|
||||||
|
if (MiuiHelper.isMiui()) {
|
||||||
|
showMiuiDialog(context)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
create()
|
||||||
|
show()
|
||||||
}
|
}
|
||||||
.create()
|
|
||||||
.show()
|
|
||||||
|
|
||||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||||
prefs.edit().putBoolean("firstStart", false).apply()
|
prefs.edit().putBoolean("firstStart", false).apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showMiuiDialog(context: Context) {
|
private fun showMiuiDialog(context: Context) {
|
||||||
AlertDialog.Builder(context)
|
MaterialAlertDialogBuilder(context).apply {
|
||||||
.setTitle(context.getString(R.string.miui_one_title))
|
setTitle(context.getString(R.string.miui_one_title))
|
||||||
.setMessage(context.getString(R.string.miui_one))
|
setMessage(context.getString(R.string.miui_one))
|
||||||
.setPositiveButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
setNeutralButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
||||||
.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)
|
openUrl(
|
||||||
|
"https://telegra.ph/How-to-install-v15-on-MIUI-02-11",
|
||||||
|
R.color.Telegram,
|
||||||
|
context
|
||||||
|
)
|
||||||
|
}
|
||||||
|
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()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.create()
|
|
||||||
.show()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun showRootDialog(activity: Activity) {
|
fun showRootDialog(activity: Activity) {
|
||||||
AlertDialog.Builder(activity)
|
MaterialAlertDialogBuilder(activity).apply {
|
||||||
.setTitle(activity.getString(R.string.hold_on))
|
setTitle(activity.getString(R.string.hold_on))
|
||||||
.setMessage(activity.getString(R.string.disable_signature))
|
setMessage(activity.getString(R.string.disable_signature))
|
||||||
.setPositiveButton(activity.getString(R.string.button_dismiss)) { dialog, _ ->
|
setNeutralButton(activity.getString(R.string.button_dismiss)) { dialog, _ ->
|
||||||
dialog.dismiss()
|
dialog.dismiss()
|
||||||
}
|
}
|
||||||
.setNeutralButton(activity.getString(R.string.guide)) { _, _ ->
|
setPositiveButton(activity.getString(R.string.guide)) { _, _ ->
|
||||||
openUrl("https://lmgtfy.com/?q=andnixsh+apk+verification+disable", R.color.Twitter, activity)
|
openUrl(
|
||||||
|
"https://lmgtfy.com/?q=andnixsh+apk+verification+disable",
|
||||||
|
R.color.Twitter,
|
||||||
|
activity
|
||||||
|
)
|
||||||
}
|
}
|
||||||
.setOnDismissListener { PreferenceManager.getDefaultSharedPreferences(activity).edit().putBoolean("show_root_dialog", false).apply() }
|
setCancelable(false)
|
||||||
.create()
|
create()
|
||||||
.show()
|
show()
|
||||||
|
}
|
||||||
|
PreferenceManager.getDefaultSharedPreferences(activity).edit()
|
||||||
|
.putBoolean("show_root_dialog", false).apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
//Easter Egg
|
//Easter Egg
|
||||||
fun statementFalse(context: Context) {
|
fun statementFalse(context: Context) {
|
||||||
AlertDialog.Builder(context)
|
MaterialAlertDialogBuilder(context).apply {
|
||||||
.setTitle("Wait what?")
|
setTitle("Wait what?")
|
||||||
.setMessage("So this statement is false huh? I'll go with True!")
|
setMessage("So this statement is false huh? I'll go with True!")
|
||||||
.setPositiveButton("wut?") { dialog, _ -> dialog.dismiss() }
|
setPositiveButton("wut?") { dialog, _ -> dialog.dismiss() }
|
||||||
.create()
|
create()
|
||||||
.show()
|
show()
|
||||||
|
}
|
||||||
|
|
||||||
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
|
||||||
prefs.edit().putBoolean("statement", true).apply()
|
prefs.edit().putBoolean("statement", true).apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun installAlertBuilder(msg: String, context: Context) {
|
fun installAlertBuilder(msg: String, context: Context) {
|
||||||
AlertDialog.Builder(context).apply {
|
MaterialAlertDialogBuilder(context).apply {
|
||||||
setTitle(context.getString(R.string.error))
|
setTitle(context.getString(R.string.error))
|
||||||
setMessage(msg)
|
setMessage(msg)
|
||||||
setPositiveButton(context.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
|
||||||
when (msg) {
|
when (msg) {
|
||||||
context.getString(R.string.installation_signature) -> {
|
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)
|
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) -> {
|
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)
|
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()
|
create()
|
||||||
show()
|
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) {
|
fun basicDialog(title: String, msg: String, activity: Activity) {
|
||||||
AlertDialog.Builder(activity)
|
MaterialAlertDialogBuilder(activity).apply {
|
||||||
.setTitle(title)
|
setTitle(title)
|
||||||
.setMessage(msg)
|
setMessage(msg)
|
||||||
.setPositiveButton(activity.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
setPositiveButton(activity.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
||||||
.create()
|
create()
|
||||||
.show()
|
show()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun launchVanced(activity: MainActivity) {
|
fun launchVanced(activity: Activity) {
|
||||||
val intent = Intent()
|
val intent = Intent()
|
||||||
intent.component =
|
intent.component =
|
||||||
if (PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "nonroot") == "root")
|
if (PreferenceManager.getDefaultSharedPreferences(activity).getString("vanced_variant", "nonroot") == "root")
|
||||||
ComponentName("com.google.android.youtube", "com.google.android.youtube.HomeActivity")
|
ComponentName("com.google.android.youtube", "com.google.android.youtube.HomeActivity")
|
||||||
else
|
else
|
||||||
ComponentName("com.vanced.android.youtube", "com.google.android.youtube.HomeActivity")
|
ComponentName("com.vanced.android.youtube", "com.google.android.youtube.HomeActivity")
|
||||||
AlertDialog.Builder(activity)
|
MaterialAlertDialogBuilder(activity).apply {
|
||||||
.setTitle(activity.getString(R.string.success))
|
setTitle(activity.getString(R.string.success))
|
||||||
.setMessage(activity.getString(R.string.vanced_installed))
|
setMessage(activity.getString(R.string.vanced_installed))
|
||||||
.setPositiveButton(activity.getString(R.string.launch)) { _, _ ->
|
setPositiveButton(activity.getString(R.string.launch)) { _, _ ->
|
||||||
run {
|
run {
|
||||||
startActivity(activity, intent, null)
|
startActivity(activity, intent, null)
|
||||||
activity.finish()
|
activity.finish()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.setNegativeButton(activity.getString(R.string.close)) { dialog, _ ->
|
setNegativeButton(activity.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
||||||
run {
|
create()
|
||||||
dialog.dismiss()
|
show()
|
||||||
activity.restartActivity()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.setCancelable(false)
|
|
||||||
.create()
|
|
||||||
.show()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,19 +1,25 @@
|
||||||
package com.vanced.manager.ui.fragments
|
package com.vanced.manager.ui.fragments
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
|
import android.view.MotionEvent
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import android.widget.Toast
|
||||||
import androidx.databinding.DataBindingUtil
|
import androidx.databinding.DataBindingUtil
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.viewModels
|
import androidx.fragment.app.viewModels
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.core.fragments.About
|
|
||||||
import com.vanced.manager.databinding.FragmentAboutBinding
|
import com.vanced.manager.databinding.FragmentAboutBinding
|
||||||
import com.vanced.manager.ui.viewmodels.AboutViewModel
|
import com.vanced.manager.ui.viewmodels.AboutViewModel
|
||||||
|
|
||||||
class AboutFragment : About() {
|
class AboutFragment : Fragment() {
|
||||||
|
|
||||||
private lateinit var binding: FragmentAboutBinding
|
private lateinit var binding: FragmentAboutBinding
|
||||||
|
private var count = 0
|
||||||
|
private var startMillSec: Long = 0
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
@ -24,11 +30,39 @@ class AboutFragment : About() {
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
val viewModel: AboutViewModel by viewModels()
|
val viewModel: AboutViewModel by viewModels()
|
||||||
binding.viewModel = viewModel
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import androidx.databinding.DataBindingUtil
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.databinding.FragmentChosenPreferencesBinding
|
import com.vanced.manager.databinding.FragmentChosenPreferencesBinding
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class ChosenPreferenceDialogFragment : DialogFragment() {
|
class ChosenPreferenceDialogFragment : DialogFragment() {
|
||||||
|
|
||||||
|
@ -26,13 +27,21 @@ class ChosenPreferenceDialogFragment : DialogFragment() {
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ExperimentalStdlibApi
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
val prefs = requireActivity().getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
|
val prefs = requireActivity().getSharedPreferences("installPrefs", Context.MODE_PRIVATE)
|
||||||
|
val langPrefs = prefs.getString("lang", "en")?.split(", ")?.toTypedArray()
|
||||||
binding.chosenTheme.text = requireActivity().getString(R.string.chosen_theme, prefs.getString("theme", "dark"))
|
val newPrefs = mutableListOf<String>()
|
||||||
binding.chosenLang.text = requireActivity().getString(R.string.chosen_lang, prefs.getString("lang", "en"))
|
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.chosenPrefsClose.setOnClickListener { dismiss() }
|
||||||
binding.chosenPrefsReset.setOnClickListener {
|
binding.chosenPrefsReset.setOnClickListener {
|
||||||
|
|
|
@ -1,14 +1,23 @@
|
||||||
package com.vanced.manager.ui.fragments
|
package com.vanced.manager.ui.fragments
|
||||||
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
|
import androidx.core.content.FileProvider
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
|
import com.downloader.OnDownloadListener
|
||||||
|
import com.downloader.PRDownloader
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.ui.MainActivity
|
import com.vanced.manager.ui.MainActivity
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.runBlocking
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
class DevSettingsFragment: PreferenceFragmentCompat() {
|
class DevSettingsFragment: PreferenceFragmentCompat() {
|
||||||
|
|
||||||
|
@ -45,5 +54,43 @@ class DevSettingsFragment: PreferenceFragmentCompat() {
|
||||||
archPref?.summary = "32bit"
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,24 +1,33 @@
|
||||||
package com.vanced.manager.ui.fragments
|
package com.vanced.manager.ui.fragments
|
||||||
|
|
||||||
import android.content.*
|
import android.content.*
|
||||||
import android.content.res.ColorStateList
|
|
||||||
import android.graphics.Color
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.view.*
|
import android.view.*
|
||||||
import android.view.animation.AccelerateDecelerateInterpolator
|
import android.view.animation.AccelerateDecelerateInterpolator
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.databinding.DataBindingUtil
|
import androidx.databinding.DataBindingUtil
|
||||||
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.viewModels
|
import androidx.fragment.app.viewModels
|
||||||
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
import androidx.localbroadcastmanager.content.LocalBroadcastManager
|
||||||
|
import androidx.navigation.findNavController
|
||||||
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
||||||
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
|
import com.topjohnwu.superuser.Shell
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.adapter.*
|
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.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.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 lateinit var binding: FragmentHomeBinding
|
||||||
private var isExpanded: Boolean = false
|
private var isExpanded: Boolean = false
|
||||||
|
@ -39,38 +48,127 @@ class HomeFragment : Home() {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
binding.viewModel = viewModel
|
binding.viewModel = viewModel
|
||||||
|
|
||||||
val variantPref = getDefaultSharedPreferences(activity).getString("vanced_variant", "nonroot")
|
val variantPref = getDefaultSharedPreferences(requireActivity()).getString("vanced_variant", "nonroot")
|
||||||
registerReceivers()
|
|
||||||
|
|
||||||
if (variantPref == "root")
|
with(binding) {
|
||||||
attachRootChangelog()
|
rootSwitch.setOnClickListener(this@HomeFragment)
|
||||||
else {
|
nonrootSwitch.setOnClickListener(this@HomeFragment)
|
||||||
attachNonrootChangelog()
|
|
||||||
if (!viewModel.microgInstalled) {
|
|
||||||
disableVancedButton()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
binding.includeChangelogsLayout.changelogButton.setOnClickListener {
|
includeVancedLayout.vancedInstallbtn.setOnClickListener(this@HomeFragment)
|
||||||
cardExpandCollapse()
|
includeVancedLayout.vancedUninstallbtn.setOnClickListener(this@HomeFragment)
|
||||||
|
includeMicrogLayout.microgInstallbtn.setOnClickListener(this@HomeFragment)
|
||||||
|
includeMicrogLayout.microgUninstallbtn.setOnClickListener(this@HomeFragment)
|
||||||
|
includeChangelogsLayout.changelogButton.setOnClickListener(this@HomeFragment)
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.includeVancedLayout.vancedCard.setOnLongClickListener {
|
binding.includeVancedLayout.vancedCard.setOnLongClickListener {
|
||||||
val clip = requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
versionToast("Vanced", viewModel.vancedInstalledVersion.get())
|
||||||
clip.setPrimaryClip(ClipData.newPlainText("vanced", this.viewModel.vancedInstalledVersion.value))
|
|
||||||
versionToast("Vanced")
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.includeMicrogLayout.microgCard.setOnLongClickListener {
|
binding.includeMicrogLayout.microgCard.setOnLongClickListener {
|
||||||
val clip = requireActivity().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
versionToast("MicroG", viewModel.microgInstalledVersion.get())
|
||||||
clip.setPrimaryClip(ClipData.newPlainText("microg", viewModel.microgInstalledVersion.value))
|
|
||||||
versionToast("MicroG")
|
|
||||||
true
|
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()
|
Toast.makeText(activity, getString(R.string.version_toast, name), Toast.LENGTH_LONG).show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,15 +189,64 @@ class HomeFragment : Home() {
|
||||||
super.onPause()
|
super.onPause()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
registerReceivers()
|
||||||
|
}
|
||||||
|
|
||||||
private val broadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
|
private val broadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
when (intent.action) {
|
when (intent.action) {
|
||||||
MICROG_DOWNLOADED -> {
|
VANCED_DOWNLOADING -> {
|
||||||
binding.includeMicrogLayout.microgInstalling.visibility = View.VISIBLE
|
with(binding.includeVancedLayout) {
|
||||||
//activity?.let { installApp(it, it.filesDir.path + "/microg.apk", "com.mgoogle.android.gms") }
|
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() {
|
private fun registerReceivers() {
|
||||||
val intentFilter = IntentFilter()
|
val intentFilter = IntentFilter()
|
||||||
intentFilter.addAction(VANCED_DOWNLOADED)
|
intentFilter.addAction(VANCED_DOWNLOADING)
|
||||||
intentFilter.addAction(MICROG_DOWNLOADED)
|
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)
|
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) {
|
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||||
inflater.inflate(R.menu.toolbar_menu, menu)
|
inflater.inflate(R.menu.toolbar_menu, menu)
|
||||||
super.onCreateOptionsMenu(menu, inflater)
|
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 {
|
companion object {
|
||||||
const val VANCED_DOWNLOADED = "vanced_downloaded"
|
const val VANCED_DOWNLOADING = "vanced_downloading"
|
||||||
const val MICROG_DOWNLOADED = "microg_downloaded"
|
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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,11 @@ import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.dezlum.codelabs.getjson.GetJson
|
|
||||||
import com.vanced.manager.R
|
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() {
|
class ManagerChangelogFragment : Fragment() {
|
||||||
|
|
||||||
|
@ -20,13 +23,9 @@ class ManagerChangelogFragment : Fragment() {
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
CoroutineScope(Dispatchers.Main).launch {
|
||||||
val changelogTxt = view.findViewById<TextView>(R.id.manager_changelog)
|
val changelog = InternetTools.getObjectFromJson("https://x1nto.github.io/VancedFiles/manager.json", "changelog")
|
||||||
|
view.findViewById<TextView>(R.id.manager_changelog).text = 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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,8 +6,12 @@ import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.dezlum.codelabs.getjson.GetJson
|
import androidx.preference.PreferenceManager
|
||||||
import com.vanced.manager.R
|
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() {
|
class MicrogChangelogFragment : Fragment() {
|
||||||
|
|
||||||
|
@ -20,13 +24,9 @@ class MicrogChangelogFragment : Fragment() {
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
CoroutineScope(Dispatchers.Main).launch {
|
||||||
val changelogTxt = view.findViewById<TextView>(R.id.microg_changelog)
|
val baseUrl = PreferenceManager.getDefaultSharedPreferences(activity).getString("install_url", InternetTools.baseUrl)
|
||||||
|
view.findViewById<TextView>(R.id.microg_changelog).text = InternetTools.getObjectFromJson("$baseUrl/microg.json", "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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,11 @@ package com.vanced.manager.ui.fragments
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.MenuInflater
|
import android.view.MenuInflater
|
||||||
import androidx.preference.ListPreference
|
import android.widget.Toast
|
||||||
import androidx.preference.Preference
|
import androidx.preference.*
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import com.google.firebase.messaging.FirebaseMessaging
|
||||||
import androidx.preference.PreferenceManager
|
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
class SettingsFragment : PreferenceFragmentCompat() {
|
class SettingsFragment : PreferenceFragmentCompat() {
|
||||||
|
|
||||||
|
@ -17,57 +17,88 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
||||||
activity?.title = getString(R.string.title_settings)
|
activity?.title = getString(R.string.title_settings)
|
||||||
setHasOptionsMenu(true)
|
setHasOptionsMenu(true)
|
||||||
|
|
||||||
val updateCheck: Preference? = findPreference("update_check")
|
findPreference<Preference>("update_check")?.setOnPreferenceClickListener {
|
||||||
updateCheck?.setOnPreferenceClickListener {
|
UpdateCheckFragment().show(childFragmentManager.beginTransaction(), "Update Center")
|
||||||
val fm = childFragmentManager.beginTransaction()
|
|
||||||
val updateDialog = UpdateCheckFragment()
|
|
||||||
updateDialog.show(fm, "Update Center")
|
|
||||||
true
|
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")
|
val themePref = preferenceScreen.sharedPreferences.getString("theme_mode", "Follow System")
|
||||||
themeSwitch?.summary =
|
findPreference<ListPreference>("theme_mode")?.apply {
|
||||||
when (themePref) {
|
summary = when (themePref) {
|
||||||
"Light" -> getString(R.string.theme_light)
|
"Light" -> getString(R.string.theme_light)
|
||||||
"Dark" -> getString(R.string.theme_dark)
|
"Dark" -> getString(R.string.theme_dark)
|
||||||
"Follow System" -> getString(R.string.theme_follow)
|
else -> getString(R.string.theme_follow)
|
||||||
else -> ""
|
}
|
||||||
}
|
|
||||||
themeSwitch?.setOnPreferenceChangeListener { _, _ ->
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
activity?.recreate()
|
if (themePref != newValue) {
|
||||||
true
|
requireActivity().recreate()
|
||||||
|
return@setOnPreferenceChangeListener true
|
||||||
|
}
|
||||||
|
false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val accentSwitch: ListPreference? = findPreference("accent_color")
|
|
||||||
val accentPref = preferenceScreen.sharedPreferences.getString("accent_color", "Blue")
|
val accentPref = preferenceScreen.sharedPreferences.getString("accent_color", "Blue")
|
||||||
accentSwitch?.summary =
|
findPreference<ListPreference>("accent_color")?.apply {
|
||||||
when (accentPref) {
|
summary = when (accentPref) {
|
||||||
"Blue" -> getString(R.string.accent_blue)
|
"Blue" -> getString(R.string.accent_blue)
|
||||||
"Red" -> getString(R.string.accent_red)
|
"Red" -> getString(R.string.accent_red)
|
||||||
"Green" -> getString(R.string.accent_green)
|
"Green" -> getString(R.string.accent_green)
|
||||||
"Yellow" -> getString(R.string.accent_yellow)
|
"Yellow" -> getString(R.string.accent_yellow)
|
||||||
"Purple" -> getString(R.string.accent_purple)
|
else -> getString(R.string.accent_purple)
|
||||||
else -> ""
|
|
||||||
}
|
}
|
||||||
accentSwitch?.setOnPreferenceChangeListener { _, _ ->
|
|
||||||
activity?.recreate()
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
|
if (accentPref != newValue) {
|
||||||
|
requireActivity().recreate()
|
||||||
|
return@setOnPreferenceChangeListener true
|
||||||
|
}
|
||||||
|
false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
findPreference<Preference>("vanced_chosen_modes")?.setOnPreferenceClickListener {
|
||||||
|
ChosenPreferenceDialogFragment().show(childFragmentManager.beginTransaction(), "Chosen Preferences")
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
val chosenPrefs: Preference? = findPreference("vanced_chosen_modes")
|
findPreference<Preference>("install_url")?.setOnPreferenceClickListener {
|
||||||
chosenPrefs?.setOnPreferenceClickListener {
|
URLChangeFragment().show(childFragmentManager.beginTransaction(), "Install URL")
|
||||||
val fm = childFragmentManager.beginTransaction()
|
|
||||||
val chosenPrefsDialog = ChosenPreferenceDialogFragment()
|
|
||||||
chosenPrefsDialog.show(fm, "Chosen Preferences")
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
val installUrl: Preference? = findPreference("install_url")
|
findPreference<Preference>("clear_files")?.setOnPreferenceClickListener {
|
||||||
installUrl?.setOnPreferenceClickListener {
|
with(requireActivity()) {
|
||||||
val fm = childFragmentManager.beginTransaction()
|
listOf("apk", "apks").forEach { dir ->
|
||||||
val chosenPrefsDialog = URLChangeFragment()
|
File(getExternalFilesDir(dir)?.path as String).deleteRecursively()
|
||||||
chosenPrefsDialog.show(fm, "Install URL")
|
}
|
||||||
|
Toast.makeText(this, getString(R.string.cleared_files), Toast.LENGTH_SHORT).show()
|
||||||
|
}
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
|
import android.widget.TextView
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.google.android.material.button.MaterialButton
|
import com.google.android.material.button.MaterialButton
|
||||||
|
@ -29,9 +30,16 @@ class URLChangeFragment : DialogFragment() {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
val urlField = view.findViewById<EditText>(R.id.url_input)
|
val urlField = view.findViewById<EditText>(R.id.url_input)
|
||||||
val prefs = PreferenceManager.getDefaultSharedPreferences(activity)
|
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 {
|
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()
|
dismiss()
|
||||||
}
|
}
|
||||||
view.findViewById<MaterialButton>(R.id.url_reset).setOnClickListener {
|
view.findViewById<MaterialButton>(R.id.url_reset).setOnClickListener {
|
||||||
|
|
|
@ -16,17 +16,19 @@ import android.widget.TextView
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.content.FileProvider
|
import androidx.core.content.FileProvider
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import com.dezlum.codelabs.getjson.GetJson
|
|
||||||
import com.downloader.Error
|
|
||||||
import com.downloader.OnDownloadListener
|
import com.downloader.OnDownloadListener
|
||||||
import com.downloader.PRDownloader
|
import com.downloader.PRDownloader
|
||||||
import com.google.android.material.button.MaterialButton
|
import com.google.android.material.button.MaterialButton
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.utils.InternetTools.isUpdateAvailable
|
import com.vanced.manager.utils.InternetTools.isUpdateAvailable
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.runBlocking
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
class UpdateCheckFragment : DialogFragment() {
|
class UpdateCheckFragment : DialogFragment() {
|
||||||
|
|
||||||
|
//private var downloadId: Long = 0
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
savedInstanceState: Bundle?
|
savedInstanceState: Bundle?
|
||||||
|
@ -39,46 +41,51 @@ class UpdateCheckFragment : DialogFragment() {
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
//activity?.registerReceiver(receiver, IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE))
|
||||||
checkUpdates()
|
checkUpdates()
|
||||||
view.findViewById<Button>(R.id.update_center_dismiss).setOnClickListener { dismiss() }
|
view.findViewById<Button>(R.id.update_center_dismiss).setOnClickListener { dismiss() }
|
||||||
view.findViewById<MaterialButton>(R.id.update_center_recheck).setOnClickListener{ checkUpdates() }
|
view.findViewById<MaterialButton>(R.id.update_center_recheck).setOnClickListener{ checkUpdates() }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
override fun onPause() {
|
||||||
|
super.onPause()
|
||||||
|
activity?.unregisterReceiver(receiver)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
private fun checkUpdates() {
|
private fun checkUpdates() {
|
||||||
val updatebtn = view?.findViewById<Button>(R.id.update_center_update)
|
val updatebtn = view?.findViewById<Button>(R.id.update_center_update)
|
||||||
val checkingTxt = view?.findViewById<TextView>(R.id.update_center_checking)
|
val checkingTxt = view?.findViewById<TextView>(R.id.update_center_checking)
|
||||||
if (GetJson().isConnected(requireContext())) {
|
|
||||||
|
|
||||||
|
runBlocking {
|
||||||
if (isUpdateAvailable()) {
|
if (isUpdateAvailable()) {
|
||||||
view?.findViewById<Button>(R.id.update_center_recheck)?.visibility = View.GONE
|
view?.findViewById<Button>(R.id.update_center_recheck)?.visibility = View.GONE
|
||||||
checkingTxt?.text = getString(R.string.update_found)
|
checkingTxt?.text = getString(R.string.update_found)
|
||||||
|
|
||||||
updatebtn?.setOnClickListener {
|
updatebtn?.setOnClickListener { upgradeManager() }
|
||||||
upgradeManager()
|
} else
|
||||||
}
|
checkingTxt?.text = getString(R.string.update_notfound)
|
||||||
} else checkingTxt?.text = getString(R.string.update_notfound)
|
|
||||||
|
|
||||||
} else {
|
|
||||||
checkingTxt?.text = getString(R.string.network_error)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun upgradeManager() {
|
private fun upgradeManager() {
|
||||||
val dwnldUrl = GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/manager.json").get("url").asString
|
runBlocking {
|
||||||
|
launch {
|
||||||
val loadBar = view?.findViewById<ProgressBar>(R.id.update_center_progressbar)
|
val loadBar = view?.findViewById<ProgressBar>(R.id.update_center_progressbar)
|
||||||
|
val url = "https://github.com/YTVanced/VancedManager/releases/latest/download/manager.apk"
|
||||||
PRDownloader.download(dwnldUrl, activity?.filesDir?.path, "manager.apk")
|
//downloadId = activity?.let { download(url, "apk", "manager.apk", it) }!!
|
||||||
|
PRDownloader.download(url, activity?.getExternalFilesDir("apk")?.path, "manager.apk")
|
||||||
.build()
|
.build()
|
||||||
.setOnProgressListener { progress ->
|
.setOnProgressListener { progress ->
|
||||||
val mProgress = progress.currentBytes * 100 / progress.totalBytes
|
val mProgress = progress.currentBytes * 100 / progress.totalBytes
|
||||||
loadBar?.visibility = View.VISIBLE
|
loadBar?.visibility = View.VISIBLE
|
||||||
loadBar?.progress = mProgress.toInt()
|
loadBar?.progress = mProgress.toInt()
|
||||||
|
|
||||||
}
|
}
|
||||||
.start(object : OnDownloadListener {
|
.start(object : OnDownloadListener {
|
||||||
override fun onDownloadComplete() {
|
override fun onDownloadComplete() {
|
||||||
activity?.let {
|
activity?.let {
|
||||||
val apk = File("${activity?.filesDir?.path}/manager.apk")
|
val apk = File("${activity?.getExternalFilesDir("apk")?.path}/manager.apk")
|
||||||
val uri =
|
val uri =
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||||
FileProvider.getUriForFile(activity!!, "${activity?.packageName}.provider", apk)
|
FileProvider.getUriForFile(activity!!, "${activity?.packageName}.provider", apk)
|
||||||
|
@ -93,13 +100,40 @@ class UpdateCheckFragment : DialogFragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onError(error: Error?) {
|
override fun onError(error: com.downloader.Error?) {
|
||||||
Toast.makeText(activity, error.toString(), Toast.LENGTH_SHORT).show()
|
Toast.makeText(activity, error.toString(), Toast.LENGTH_SHORT).show()
|
||||||
Log.e("VMUpgrade", error.toString())
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,12 @@ import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.dezlum.codelabs.getjson.GetJson
|
import androidx.preference.PreferenceManager
|
||||||
import com.vanced.manager.R
|
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() {
|
class VancedChangelogFragment : Fragment() {
|
||||||
|
|
||||||
|
@ -20,15 +24,12 @@ class VancedChangelogFragment : Fragment() {
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
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)
|
val changelog = InternetTools.getObjectFromJson("$baseUrl/changelog/$vancedVersion.json", "message")
|
||||||
|
view.findViewById<TextView>(R.id.vanced_changelog).text = 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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,30 @@
|
||||||
package com.vanced.manager.ui.fragments
|
package com.vanced.manager.ui.fragments
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
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.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(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
@ -17,4 +34,45 @@ class VancedLanguageSelectionFragment : LanguageInstall() {
|
||||||
return inflater.inflate(R.layout.fragment_vanced_language_selection, container, false)
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,13 +1,19 @@
|
||||||
package com.vanced.manager.ui.fragments
|
package com.vanced.manager.ui.fragments
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
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.R
|
||||||
import com.vanced.manager.core.fragments.ThemeInstall
|
|
||||||
|
|
||||||
class VancedThemeSelectionFragment : ThemeInstall() {
|
class VancedThemeSelectionFragment : Fragment() {
|
||||||
|
|
||||||
override fun onCreateView(
|
override fun onCreateView(
|
||||||
inflater: LayoutInflater, container: ViewGroup?,
|
inflater: LayoutInflater, container: ViewGroup?,
|
||||||
|
@ -17,4 +23,19 @@ class VancedThemeSelectionFragment : ThemeInstall() {
|
||||||
return inflater.inflate(R.layout.fragment_vanced_theme_selection, container, false)
|
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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,16 +6,24 @@ import android.net.Uri
|
||||||
import androidx.browser.customtabs.CustomTabsIntent
|
import androidx.browser.customtabs.CustomTabsIntent
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.lifecycle.AndroidViewModel
|
import androidx.lifecycle.AndroidViewModel
|
||||||
|
import androidx.preference.PreferenceManager
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
|
|
||||||
open class AboutViewModel(application: Application): AndroidViewModel(application) {
|
class AboutViewModel(application: Application): AndroidViewModel(application) {
|
||||||
|
|
||||||
fun openUrl(Url: String) {
|
fun openUrl(Url: String) {
|
||||||
|
val customTabPrefs = PreferenceManager.getDefaultSharedPreferences(getApplication()).getBoolean("use_customtabs", true)
|
||||||
|
if (customTabPrefs) {
|
||||||
val builder = CustomTabsIntent.Builder()
|
val builder = CustomTabsIntent.Builder()
|
||||||
builder.setToolbarColor(ContextCompat.getColor(getApplication(), R.color.GitHub))
|
builder.setToolbarColor(ContextCompat.getColor(getApplication(), R.color.GitHub))
|
||||||
val customTabsIntent = builder.build()
|
val customTabsIntent = builder.build()
|
||||||
customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
customTabsIntent.intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||||
customTabsIntent.launchUrl(getApplication(), Uri.parse(Url))
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
|
@ -7,19 +7,24 @@ import android.content.Intent
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.util.Log
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.browser.customtabs.CustomTabsIntent
|
import androidx.browser.customtabs.CustomTabsIntent
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.content.ContextCompat.startActivity
|
import androidx.core.content.ContextCompat.startActivity
|
||||||
|
import androidx.databinding.ObservableField
|
||||||
import androidx.lifecycle.AndroidViewModel
|
import androidx.lifecycle.AndroidViewModel
|
||||||
import androidx.lifecycle.MutableLiveData
|
|
||||||
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
||||||
|
import com.crowdin.platform.Crowdin
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.utils.InternetTools.displayJsonInt
|
import com.vanced.manager.utils.InternetTools.getJsonInt
|
||||||
import com.vanced.manager.utils.InternetTools.displayJsonString
|
import com.vanced.manager.utils.InternetTools.getJsonString
|
||||||
import com.vanced.manager.utils.PackageHelper.isPackageInstalled
|
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 variant = getDefaultSharedPreferences(application).getString("vanced_variant", "nonroot")
|
||||||
|
|
||||||
|
@ -32,29 +37,58 @@ class HomeViewModel(application: Application): AndroidViewModel(application) {
|
||||||
|
|
||||||
private val pm = application.packageManager
|
private val pm = application.packageManager
|
||||||
|
|
||||||
val vancedInstallButtonTxt: MutableLiveData<String> = MutableLiveData()
|
private val vancedInstalledVersionCode = ObservableField<Int>()
|
||||||
val vancedInstallButtonIcon: MutableLiveData<Drawable> = MutableLiveData()
|
private val microgInstalledVersionCode = ObservableField<Int>()
|
||||||
|
|
||||||
val microgInstalled: Boolean = isPackageInstalled("com.mgoogle.android.gms", application.packageManager)
|
private val vancedVersionCode = ObservableField<Int>()
|
||||||
val vancedInstalled: Boolean = isPackageInstalled(vancedPkgName, application.packageManager)
|
private val microgVersionCode = ObservableField<Int>()
|
||||||
|
|
||||||
val vancedInstalledVersion: MutableLiveData<String> = MutableLiveData()
|
//this is fucking retarded
|
||||||
val microgInstalledVersion: MutableLiveData<String> = MutableLiveData()
|
val vancedInstallButtonTxt = ObservableField<String>()
|
||||||
|
val vancedInstallButtonIcon = ObservableField<Drawable>()
|
||||||
val vancedVersion: MutableLiveData<String> = MutableLiveData()
|
val microgInstalled = ObservableField<Boolean>()
|
||||||
val microgVersion: MutableLiveData<String> = MutableLiveData()
|
val vancedInstalled = ObservableField<Boolean>()
|
||||||
|
val vancedInstalledVersion = ObservableField<String>()
|
||||||
private val vancedInstalledVersionCode = getPkgVerCode(vancedInstalled, vancedPkgName)
|
val microgInstalledVersion = ObservableField<String>()
|
||||||
private val microgInstalledVersionCode = getPkgVerCode(microgInstalled, "com.mgoogle.android.gms")
|
val vancedVersion = ObservableField<String>()
|
||||||
|
val microgVersion = ObservableField<String>()
|
||||||
private val vancedVersionCode = displayJsonInt("vanced.json", "versionCode", application)
|
val microgInstallButtonTxt = ObservableField<String>()
|
||||||
private val microgVersionCode = displayJsonInt("microg.json", "versionCode", application)
|
val microgInstallButtonIcon = ObservableField<Drawable>()
|
||||||
|
|
||||||
val microgInstallButtonTxt = compareInt(microgInstalledVersionCode, microgVersionCode, application)
|
|
||||||
val microgInstallButtonIcon = compareIntDrawable(microgInstalledVersionCode, microgVersionCode, application)
|
|
||||||
|
|
||||||
val nonrootModeSelected: Boolean = variant == "nonroot"
|
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() {
|
fun openMicrogSettings() {
|
||||||
try {
|
try {
|
||||||
val intent = Intent()
|
val intent = Intent()
|
||||||
|
@ -103,6 +137,7 @@ class HomeViewModel(application: Application): AndroidViewModel(application) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
private fun getPkgVerCode(toCheck: Boolean, pkg: String): Int {
|
private fun getPkgVerCode(toCheck: Boolean, pkg: String): Int {
|
||||||
return if (toCheck) {
|
return if (toCheck) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
|
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 {
|
private fun compareInt(int1: Int, int2: Int, application: Application): String {
|
||||||
return when {
|
return when {
|
||||||
int2 == 0 -> application.getString(R.string.install)
|
int1 == 0 -> application.getString(R.string.install)
|
||||||
int1 > int2 -> application.getString(R.string.update)
|
int2 > int1 -> application.getString(R.string.update)
|
||||||
int2 == int1 -> application.getString(R.string.button_reinstall)
|
int2 == int1 -> application.getString(R.string.button_reinstall)
|
||||||
else -> application.getString(R.string.install)
|
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? {
|
private fun compareIntDrawable(int1: Int, int2: Int, application: Application): Drawable? {
|
||||||
return when {
|
return when {
|
||||||
int2 == 0 -> application.getDrawable(R.drawable.ic_download)
|
int1 == 0 -> application.getDrawable(R.drawable.ic_download)
|
||||||
int1 > int2 -> application.getDrawable(R.drawable.ic_update)
|
int2 > int1 -> application.getDrawable(R.drawable.ic_update)
|
||||||
int2 == int1 -> application.getDrawable(R.drawable.ic_done)
|
int2 == int1 -> application.getDrawable(R.drawable.ic_done)
|
||||||
else -> application.getDrawable(R.drawable.ic_download)
|
else -> application.getDrawable(R.drawable.ic_download)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
vancedVersion.value = displayJsonString("vanced.json", "version", application)
|
fetching.set(false)
|
||||||
microgVersion.value = displayJsonString("microg.json", "version", application)
|
fetchData()
|
||||||
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)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
67
app/src/main/java/com/vanced/manager/utils/AppUtils.kt
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
22
app/src/main/java/com/vanced/manager/utils/DownloadHelper.kt
Normal 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)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -3,15 +3,17 @@ package com.vanced.manager.utils
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
|
import android.util.Log
|
||||||
import androidx.browser.customtabs.CustomTabsIntent
|
import androidx.browser.customtabs.CustomTabsIntent
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
import androidx.preference.PreferenceManager.getDefaultSharedPreferences
|
||||||
import com.vanced.manager.BuildConfig
|
import com.vanced.manager.BuildConfig
|
||||||
import com.dezlum.codelabs.getjson.GetJson
|
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
|
|
||||||
object InternetTools {
|
object InternetTools {
|
||||||
|
|
||||||
|
private const val TAG = "VMNetTools"
|
||||||
|
|
||||||
fun openUrl(Url: String, color: Int, context: Context) {
|
fun openUrl(Url: String, color: Int, context: Context) {
|
||||||
val customTabPrefs = getDefaultSharedPreferences(context).getBoolean("use_customtabs", true)
|
val customTabPrefs = getDefaultSharedPreferences(context).getBoolean("use_customtabs", true)
|
||||||
if (customTabPrefs) {
|
if (customTabPrefs) {
|
||||||
|
@ -25,35 +27,52 @@ object InternetTools {
|
||||||
|
|
||||||
fun getFileNameFromUrl(url: String) = url.substring(url.lastIndexOf('/')+1, url.length)
|
fun getFileNameFromUrl(url: String) = url.substring(url.lastIndexOf('/')+1, url.length)
|
||||||
|
|
||||||
fun displayJsonString(json: String, obj: String, context: Context): String {
|
suspend fun getObjectFromJson(url: String, obj: String): String {
|
||||||
val installUrl = getDefaultSharedPreferences(context).getString("install_url", baseUrl)
|
return try {
|
||||||
return if (GetJson().isConnected(context))
|
JsonHelper.getJson(url).string(obj) ?: ""
|
||||||
GetJson().AsJSONObject("$installUrl/$json").get(obj).asString
|
} catch (e: Exception) {
|
||||||
else
|
Log.e(TAG, "Error: ", e)
|
||||||
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
|
|
||||||
""
|
""
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun isUpdateAvailable(): Boolean {
|
suspend fun getArrayFromJson(url: String, array: String): MutableList<String> {
|
||||||
val checkUrl = GetJson().AsJSONObject("https://x1nto.github.io/VancedFiles/manager.json")
|
return try {
|
||||||
val remoteVersion = checkUrl.get("versionCode").asInt
|
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"
|
const val baseUrl = "https://vanced.app/api/v1"
|
||||||
|
|
25
app/src/main/java/com/vanced/manager/utils/JsonHelper.kt
Normal 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>
|
||||||
|
|
||||||
|
}
|
|
@ -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)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,13 +1,13 @@
|
||||||
package com.vanced.manager.utils
|
package com.vanced.manager.utils
|
||||||
|
|
||||||
|
import android.app.Activity
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.vanced.manager.R
|
import com.vanced.manager.R
|
||||||
import com.vanced.manager.ui.MainActivity
|
|
||||||
|
|
||||||
object ThemeHelper {
|
object ThemeHelper {
|
||||||
|
|
||||||
fun setFinalTheme(activity: MainActivity) {
|
fun setFinalTheme(activity: Activity) {
|
||||||
val currentAccent = PreferenceManager.getDefaultSharedPreferences(activity).getString("accent_color", "Blue")
|
val currentAccent = PreferenceManager.getDefaultSharedPreferences(activity).getString("accent_color", "Blue")
|
||||||
when (PreferenceManager.getDefaultSharedPreferences(activity)
|
when (PreferenceManager.getDefaultSharedPreferences(activity)
|
||||||
.getString("theme_mode", "Follow System")) {
|
.getString("theme_mode", "Follow System")) {
|
||||||
|
|
|
@ -5,14 +5,14 @@
|
||||||
<objectAnimator
|
<objectAnimator
|
||||||
android:duration="@android:integer/config_shortAnimTime"
|
android:duration="@android:integer/config_shortAnimTime"
|
||||||
android:propertyName="scaleX"
|
android:propertyName="scaleX"
|
||||||
android:valueFrom="0.8"
|
android:valueFrom="0.9"
|
||||||
android:valueTo="1"
|
android:valueTo="1"
|
||||||
android:valueType="floatType"/>
|
android:valueType="floatType"/>
|
||||||
|
|
||||||
<objectAnimator
|
<objectAnimator
|
||||||
android:duration="@android:integer/config_shortAnimTime"
|
android:duration="@android:integer/config_shortAnimTime"
|
||||||
android:propertyName="scaleY"
|
android:propertyName="scaleY"
|
||||||
android:valueFrom="0.8"
|
android:valueFrom="0.9"
|
||||||
android:valueTo="1"
|
android:valueTo="1"
|
||||||
android:valueType="floatType"/>
|
android:valueType="floatType"/>
|
||||||
|
|
||||||
|
|
|
@ -6,14 +6,14 @@
|
||||||
android:duration="@android:integer/config_shortAnimTime"
|
android:duration="@android:integer/config_shortAnimTime"
|
||||||
android:propertyName="scaleX"
|
android:propertyName="scaleX"
|
||||||
android:valueFrom="1"
|
android:valueFrom="1"
|
||||||
android:valueTo="0.8"
|
android:valueTo="1.1"
|
||||||
android:valueType="floatType"/>
|
android:valueType="floatType"/>
|
||||||
|
|
||||||
<objectAnimator
|
<objectAnimator
|
||||||
android:duration="@android:integer/config_shortAnimTime"
|
android:duration="@android:integer/config_shortAnimTime"
|
||||||
android:propertyName="scaleY"
|
android:propertyName="scaleY"
|
||||||
android:valueFrom="1"
|
android:valueFrom="1"
|
||||||
android:valueTo="0.8"
|
android:valueTo="1.1"
|
||||||
android:valueType="floatType"/>
|
android:valueType="floatType"/>
|
||||||
|
|
||||||
<objectAnimator
|
<objectAnimator
|
||||||
|
|
|
@ -6,14 +6,14 @@
|
||||||
android:duration="@android:integer/config_shortAnimTime"
|
android:duration="@android:integer/config_shortAnimTime"
|
||||||
android:propertyName="scaleX"
|
android:propertyName="scaleX"
|
||||||
android:valueFrom="1"
|
android:valueFrom="1"
|
||||||
android:valueTo="1.1"
|
android:valueTo="0.9"
|
||||||
android:valueType="floatType"/>
|
android:valueType="floatType"/>
|
||||||
|
|
||||||
<objectAnimator
|
<objectAnimator
|
||||||
android:duration="@android:integer/config_shortAnimTime"
|
android:duration="@android:integer/config_shortAnimTime"
|
||||||
android:propertyName="scaleX"
|
android:propertyName="scaleY"
|
||||||
android:valueFrom="1"
|
android:valueFrom="1"
|
||||||
android:valueTo="1.1"
|
android:valueTo="0.9"
|
||||||
android:valueType="floatType"/>
|
android:valueType="floatType"/>
|
||||||
|
|
||||||
<objectAnimator
|
<objectAnimator
|
||||||
|
|
|
@ -2,44 +2,67 @@
|
||||||
xmlns:aapt="http://schemas.android.com/aapt"
|
xmlns:aapt="http://schemas.android.com/aapt"
|
||||||
android:width="108dp"
|
android:width="108dp"
|
||||||
android:height="108dp"
|
android:height="108dp"
|
||||||
android:viewportWidth="3448.276"
|
android:viewportWidth="108"
|
||||||
android:viewportHeight="3448.276">
|
android:viewportHeight="108">
|
||||||
<group android:translateX="724.13794"
|
<group android:scaleX="0.034267887"
|
||||||
android:translateY="724.13794">
|
android:scaleY="0.034267887"
|
||||||
|
android:translateX="21.822453"
|
||||||
|
android:translateY="21">
|
||||||
|
<group
|
||||||
|
android:translateX="-61"
|
||||||
|
android:translateY="-44.97">
|
||||||
<path
|
<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: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:strokeLineJoin="round"
|
|
||||||
android:strokeWidth="76"
|
android:strokeWidth="76"
|
||||||
android:fillColor="#00000000"
|
android:strokeLineCap="round"
|
||||||
android:strokeLineCap="round">
|
android:strokeLineJoin="round">
|
||||||
<aapt:attr name="android:strokeColor">
|
<aapt:attr
|
||||||
|
name="android:strokeColor">
|
||||||
<gradient
|
<gradient
|
||||||
android:startY="1642.6245"
|
android:startX="322.79"
|
||||||
android:startX="322.9971"
|
android:startY="1677.92"
|
||||||
android:endY="287.2871"
|
android:endX="1678.13"
|
||||||
android:endX="1678.3345"
|
android:endY="322.59"
|
||||||
android:type="linear">
|
android:tileMode="clamp">
|
||||||
<item android:offset="1.065558E-7" android:color="#FF2E73FF"/>
|
<item
|
||||||
<item android:offset="1" android:color="#FFFF0032"/>
|
android:color="#2E73FF"
|
||||||
</gradient>
|
android:offset="0" />
|
||||||
</aapt:attr>
|
<item
|
||||||
</path>
|
android:color="#FF0032"
|
||||||
<path
|
android:offset="1" />
|
||||||
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>
|
</gradient>
|
||||||
</aapt:attr>
|
</aapt:attr>
|
||||||
</path>
|
</path>
|
||||||
</group>
|
</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>
|
|
@ -1,18 +1,23 @@
|
||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
<vector android:height="30dp" android:viewportHeight="1775.6"
|
||||||
android:width="24.386dp"
|
android:viewportWidth="1775.6" android:width="30dp"
|
||||||
android:height="29.036dp"
|
xmlns:aapt="http://schemas.android.com/aapt" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
android:viewportWidth="473.386"
|
<path android:fillColor="#0c0c0f"
|
||||||
android:viewportHeight="557.036">
|
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">
|
||||||
<path
|
<aapt:attr name="android:strokeColor">
|
||||||
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"
|
<gradient android:endX="1515.57" android:endY="260.02994"
|
||||||
android:fillColor="#039789"/>
|
android:startX="260.03" android:startY="1515.57" android:type="linear">
|
||||||
<path
|
<item android:color="#FF3370FA" android:offset="0"/>
|
||||||
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"
|
<item android:color="#FFF80439" android:offset="1"/>
|
||||||
android:fillColor="#E82164"/>
|
</gradient>
|
||||||
<path
|
</aapt:attr>
|
||||||
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"
|
</path>
|
||||||
android:fillColor="#FE9802"/>
|
<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">
|
||||||
<path
|
<aapt:attr name="android:fillColor">
|
||||||
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"
|
<gradient android:endX="1304.97" android:endY="497.16"
|
||||||
android:fillColor="#CCDB3B"/>
|
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>
|
</vector>
|
||||||
|
|
|
@ -12,7 +12,14 @@
|
||||||
|
|
||||||
</data>
|
</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"
|
||||||
|
bind:refreshing="@{viewModel.fetching}"
|
||||||
|
bind:onRefreshListener="@{()-> viewModel.fetchData()}">
|
||||||
|
|
||||||
|
<androidx.core.widget.NestedScrollView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:animateLayoutChanges="true"
|
android:animateLayoutChanges="true"
|
||||||
|
@ -126,6 +133,8 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</com.vanced.manager.ui.core.SlidingNestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
|
</com.vanced.manager.ui.core.SlidingSwipeRefreshLayout>
|
||||||
|
|
||||||
</layout>
|
</layout>
|
|
@ -30,7 +30,7 @@
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
android:layout_marginStart="0dp"
|
android:layout_marginStart="0dp"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:text="Checking For Updates..."
|
android:text=""
|
||||||
android:textAlignment="center"
|
android:textAlignment="center"
|
||||||
android:textSize="16sp" />
|
android:textSize="16sp" />
|
||||||
|
|
||||||
|
@ -45,7 +45,8 @@
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:layout_width="wrap_content"
|
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
|
<com.google.android.material.button.MaterialButton
|
||||||
android:id="@+id/update_center_dismiss"
|
android:id="@+id/update_center_dismiss"
|
||||||
|
@ -64,7 +65,7 @@
|
||||||
android:id="@+id/update_center_update"
|
android:id="@+id/update_center_update"
|
||||||
style="@style/ButtonStyle"
|
style="@style/ButtonStyle"
|
||||||
android:layout_marginStart="4dp"
|
android:layout_marginStart="4dp"
|
||||||
android:text="Update" />
|
android:text="@string/update" />
|
||||||
|
|
||||||
<com.google.android.material.button.MaterialButton
|
<com.google.android.material.button.MaterialButton
|
||||||
android:id="@+id/update_center_recheck"
|
android:id="@+id/update_center_recheck"
|
||||||
|
|
|
@ -10,15 +10,6 @@
|
||||||
android:id="@+id/vanced_changelog"
|
android:id="@+id/vanced_changelog"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:textSize="16sp"
|
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" />
|
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
|
@ -21,11 +21,9 @@
|
||||||
<RadioGroup
|
<RadioGroup
|
||||||
android:id="@+id/theme_radiogroup"
|
android:id="@+id/theme_radiogroup"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content">
|
||||||
android:checkedButton="@id/dark">
|
|
||||||
|
|
||||||
<com.google.android.material.radiobutton.MaterialRadioButton
|
<com.google.android.material.radiobutton.MaterialRadioButton
|
||||||
android:id="@+id/dark"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textSize="18sp"
|
android:textSize="18sp"
|
||||||
|
|
|
@ -1,8 +1,20 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<layout>
|
<layout
|
||||||
<com.google.android.material.card.MaterialCardView xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
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"
|
android:id="@+id/changelog_card"
|
||||||
style="@style/MaterialCard">
|
style="@style/MaterialCard">
|
||||||
|
|
||||||
|
@ -57,4 +69,5 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</com.google.android.material.card.MaterialCardView>
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
</layout>
|
</layout>
|
|
@ -7,221 +7,24 @@
|
||||||
android:fillViewport="true"
|
android:fillViewport="true"
|
||||||
tools:ignore="HardcodedText">
|
tools:ignore="HardcodedText">
|
||||||
|
|
||||||
<RadioGroup
|
<LinearLayout
|
||||||
android:id="@+id/lang_radiogroup"
|
android:id="@+id/lang_button_ll"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="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:id="@+id/en"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:buttonTint="?colorDisabled"
|
||||||
android:fontFamily="@font/exo_semibold"
|
android:fontFamily="@font/exo_semibold"
|
||||||
android:text="English (default)"
|
android:text="English (default)"
|
||||||
android:tag="en"
|
android:tag="en"
|
||||||
android:textSize="18sp" />
|
android:textSize="18sp"
|
||||||
|
android:checked="true"
|
||||||
|
android:clickable="false"/>
|
||||||
|
|
||||||
<com.google.android.material.radiobutton.MaterialRadioButton
|
</LinearLayout>
|
||||||
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>
|
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
|
@ -120,6 +120,21 @@
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</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
|
<ProgressBar
|
||||||
android:id="@+id/microg_installing"
|
android:id="@+id/microg_installing"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
<com.google.android.material.card.MaterialCardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
style="@style/MaterialCard"
|
style="@style/MaterialCard"
|
||||||
app:contentPaddingTop="2dp"
|
app:contentPaddingTop="2dp"
|
||||||
|
app:contentPaddingBottom="8dp"
|
||||||
android:animateLayoutChanges="true">
|
android:animateLayoutChanges="true">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
@ -24,17 +25,13 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
style="@style/CardTitle"
|
style="@style/CardTitle"
|
||||||
android:layout_marginStart="8dp"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:text="@string/useful_links" />
|
android:text="@string/useful_links" />
|
||||||
|
|
||||||
<include
|
<include
|
||||||
layout="@layout/include_vanced_medias"
|
layout="@layout/include_vanced_medias"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginTop="2dp"
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:layout_marginEnd="8dp"
|
|
||||||
bind:viewModel="@{viewModel}" />
|
bind:viewModel="@{viewModel}" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?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:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
@ -48,6 +49,8 @@
|
||||||
android:id="@+id/vanced_installbtn"
|
android:id="@+id/vanced_installbtn"
|
||||||
style="@style/ButtonStyle"
|
style="@style/ButtonStyle"
|
||||||
android:text="@{viewModel.vancedInstallButtonTxt}"
|
android:text="@{viewModel.vancedInstallButtonTxt}"
|
||||||
|
android:textColor="@color/White"
|
||||||
|
android:backgroundTint="?colorPrimary"
|
||||||
app:icon="@{viewModel.vancedInstallButtonIcon}"
|
app:icon="@{viewModel.vancedInstallButtonIcon}"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
@ -107,6 +110,21 @@
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</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
|
<ProgressBar
|
||||||
android:id="@+id/vanced_installing"
|
android:id="@+id/vanced_installing"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/toolbar_settings"
|
android:id="@+id/toolbar_settings"
|
||||||
android:title="@string/title_about"
|
android:title="@string/title_settings"
|
||||||
android:icon="@drawable/ic_settings_black_24dp"
|
android:icon="@drawable/ic_settings_black_24dp"
|
||||||
app:showAsAction="ifRoom" />
|
app:showAsAction="ifRoom" />
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 5 KiB |
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 4 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 7.3 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Installing %1$s</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_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_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_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_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_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_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_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_storage">Operation failed due to a storage error.</string>
|
||||||
<string name="installation_wait">Please wait until the installation finishes</string>
|
<string name="installation_wait">Please wait until the installation finishes</string>
|
||||||
|
@ -30,7 +31,7 @@
|
||||||
<string name="latest">Latest:</string>
|
<string name="latest">Latest:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="successfully_installed">Successfully installed %1$s</string>
|
||||||
<string name="network_error">Network connection unavailable</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="root_not_granted">Root access not granted</string>
|
||||||
<string name="unavailable">Unavailable</string>
|
<string name="unavailable">Unavailable</string>
|
||||||
<string name="update">Update</string>
|
<string name="update">Update</string>
|
||||||
|
@ -45,12 +46,14 @@
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Purple</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Red</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Yellow</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
|
||||||
<string name="category_interface">Interface</string>
|
<string name="category_interface">Interface</string>
|
||||||
<string name="category_manager">Manager</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_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="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_title">Use Chrome Custom Tabs</string>
|
||||||
<string name="link_custom_tabs">Links will open in 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="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_dark">Dark Theme</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme_light">Light Theme</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="update_url">Update Channel URL</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</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="re_check">Re-check</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="update_center">Manager Update Center</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="update_found">Update found!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">Dismiss</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Guide</string>
|
||||||
<string name="hold_on">Hold on!</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_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="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="error">Error</string>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">جاري التثبيت %1$s</string>
|
<string name="installing_app">جاري التثبيت %1$s</string>
|
||||||
<string name="installation_aborted">فشلت العملية لأن المستخدم ألغى التثبيت.</string>
|
<string name="installation_aborted">فشلت العملية لأن المستخدم ألغى التثبيت.</string>
|
||||||
<string name="installation_blocked">فشلت العملية لأن المستخدم قام بحظر التثبيت.</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_conflict">فشلت العملية لأن التطبيق يتعارض مع تطبيق مثبت بالفعل.</string>
|
||||||
<string name="installation_failed">فشلت العملية لسبب غير معروف، يرجى الانضمام إلى تيليجرام أو ديسكورد للحصول على الدعم.</string>
|
<string name="installation_failed">فشلت العملية لسبب غير معروف، يرجى الانضمام إلى تيليجرام أو ديسكورد للحصول على الدعم.</string>
|
||||||
<string name="installation_incompatible">فشلت العملية لأن التطبيق غير متوافق مع جهازك.</string>
|
<string name="installation_incompatible">فشلت العملية لأن التطبيق غير متوافق مع جهازك.</string>
|
||||||
<string name="installation_invalid">فشلت العملية لأن ملفات apk غير صالحة.</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_miui">حدث خطأ غير متوقع أثناء تثبيت Vanced. هل قمت بتعطيل تحسينات MIUI؟</string>
|
||||||
<string name="installation_storage">فشلت العملية بسبب خطأ في التخزين.</string>
|
<string name="installation_storage">فشلت العملية بسبب خطأ في التخزين.</string>
|
||||||
<string name="installation_wait">الرجاء الانتظار حتى ينتهي التثبيت</string>
|
<string name="installation_wait">الرجاء الانتظار حتى ينتهي التثبيت</string>
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
<string name="latest">آخر:</string>
|
<string name="latest">آخر:</string>
|
||||||
<string name="successfully_installed">تم تثبيت %1$s بنجاح</string>
|
<string name="successfully_installed">تم تثبيت %1$s بنجاح</string>
|
||||||
<string name="network_error">اتصاا الشبكة غير متاح</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="root_not_granted">لم يتم منح الوصول للجذر</string>
|
||||||
<string name="unavailable">غير متاح</string>
|
<string name="unavailable">غير متاح</string>
|
||||||
<string name="update">تحديث</string>
|
<string name="update">تحديث</string>
|
||||||
<string name="useful_links">روابط المفيدة</string>
|
<string name="useful_links">روابط المفيدة</string>
|
||||||
<string name="website_text">الموقع رسمي لفانسد</string>
|
<string name="website_text">الموقع رسمي لفانسد</string>
|
||||||
<string name="support_us">ادعمنا بتريق تنزيل بريف</string>
|
<string name="support_us">ادعمنا بتريق تنزيل بريف</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="version_toast">تم نسخ الإصدار %1$s!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">الوان</string>
|
<string name="accent_color">الوان</string>
|
||||||
<string name="accent_blue">ازرق</string>
|
<string name="accent_blue">ازرق</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">أرجواني</string>
|
<string name="accent_purple">أرجواني</string>
|
||||||
<string name="accent_red">احمر</string>
|
<string name="accent_red">احمر</string>
|
||||||
<string name="accent_yellow">اصفر</string>
|
<string name="accent_yellow">اصفر</string>
|
||||||
<string name="check_updates">تحقق من وجود تحديثات</string>
|
|
||||||
<string name="category_interface">واجهة استغدام</string>
|
<string name="category_interface">واجهة استغدام</string>
|
||||||
<string name="category_manager">مدير</string>
|
<string name="category_manager">مدير</string>
|
||||||
|
<string name="check_updates">تحقق من وجود تحديثات</string>
|
||||||
<string name="chosen_install_values">تفضيلات التثبيت المختارة</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="chosen_theme">المظهر: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Clear downloaded files</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Successfully cleared files</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">موضوع اللون</string>
|
||||||
<string name="theme_follow">اتبع النظام</string>
|
<string name="theme_follow">اتبع النظام</string>
|
||||||
<string name="theme_dark">الموضوع الاسود</string>
|
<string name="theme_dark">الموضوع الاسود</string>
|
||||||
<string name="theme_light">موضوع الابيض</string>
|
<string name="theme_light">موضوع الابيض</string>
|
||||||
<string name="update_url">تحديث رابط القناة</string>
|
<string name="update_url">تحديث رابط القناة</string>
|
||||||
<string name="push_notifications">تنبيات</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">تجيب اشعارات عند اصدار تحديث</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="re_check">اعادة التحقق</string>
|
||||||
<string name="update_center">مركز التحديث</string>
|
<string name="update_center">مركز التحديث</string>
|
||||||
<string name="update_found">تم العثور على التحديث!</string>
|
<string name="update_found">تم العثور على التحديث!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">إزالة</string>
|
<string name="button_dismiss">إزالة</string>
|
||||||
<string name="guide">المعالج</string>
|
<string name="guide">المعالج</string>
|
||||||
<string name="hold_on">إنتظر!</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_title">تم اكتشاف MIUI!</string>
|
||||||
<string name="miui_one">مرحباً! يبدو أنك مستخدم MIUI. من أجل استخدام هذا التطبيق بشكل صحيح، يجب عليك تعطيل تحسينات MIUI في إعدادات المطور. (يمكنك تجاهل هذا التحذير بأمان إذا كنت في 20.2.20 أو في وقت لاحق على شكل ROM استناداً إلى xiaomi.eu)</string>
|
<string name="miui_one">مرحباً! يبدو أنك مستخدم MIUI. من أجل استخدام هذا التطبيق بشكل صحيح، يجب عليك تعطيل تحسينات MIUI في إعدادات المطور. (يمكنك تجاهل هذا التحذير بأمان إذا كنت في 20.2.20 أو في وقت لاحق على شكل ROM استناداً إلى xiaomi.eu)</string>
|
||||||
<string name="error">خطأ</string>
|
<string name="error">خطأ</string>
|
||||||
|
|
97
app/src/main/res/values-bn-rBD/strings.xml
Normal 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>
|
|
@ -1,11 +1,11 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">বন্ধ করুন</string>
|
||||||
<string name="reset">রিসেট করুন</string>
|
<string name="reset">রিসেট করুন</string>
|
||||||
<string name="save">সেভ করুন</string>
|
<string name="save">সেভ করুন</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">সম্বন্ধে</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">Home</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">Settings</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Installing %1$s</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_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_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_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_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_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_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_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_storage">Operation failed due to a storage error.</string>
|
||||||
<string name="installation_wait">Please wait until the installation finishes</string>
|
<string name="installation_wait">Please wait until the installation finishes</string>
|
||||||
|
@ -30,9 +31,9 @@
|
||||||
<string name="latest">Latest:</string>
|
<string name="latest">Latest:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="successfully_installed">Successfully installed %1$s</string>
|
||||||
<string name="network_error">Network connection unavailable</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="root_not_granted">Root access not granted</string>
|
||||||
<string name="unavailable">অলভ্য</string>
|
<string name="unavailable">Unavailable</string>
|
||||||
<string name="update">Update</string>
|
<string name="update">Update</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="useful_links">Useful Links</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="website_text">Website</string>
|
||||||
|
@ -45,50 +46,52 @@
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Purple</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Red</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Yellow</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
|
||||||
<string name="category_interface">Interface</string>
|
<string name="category_interface">Interface</string>
|
||||||
<string name="category_manager">Manager</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_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="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_title">Use Chrome Custom Tabs</string>
|
||||||
<string name="link_custom_tabs">Links will open in 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="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_follow">Follow System</string>
|
||||||
<string name="theme_dark">Dark Theme</string>
|
<string name="theme_dark">Dark Theme</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme_light">Light Theme</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="update_url">Update Channel URL</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</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="re_check">রি-চেক</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="update_center">পরিচালক আপডেট কেন্দ্র Center</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="update_found">আপডেট পাওয়া গেল!</string>
|
||||||
<string name="update_notfound">No new updates</string>
|
<string name="update_notfound">কোনও নতুন আপডেট নেই</string>
|
||||||
<!-- Dialogs -->
|
<!-- Dialogs -->
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">খারিজ করা</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">গাইড</string>
|
||||||
<string name="hold_on">Hold on!</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 detected!</string>
|
<string name="miui_one_title">MIUI সনাক্ত!</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="miui_one">হে! দেখে মনে হচ্ছে তুমি আ MIUI ব্যবহারকারী। এই অ্যাপ্লিকেশনটি সঠিকভাবে ব্যবহার করতে আপনাকে নিষ্ক্রিয় করতে হবে MIUI বিকাশকারী সেটিংসে অপ্টিমেশন। (আপনি যদি থাকেন তবে আপনি নিরাপদে এই সতর্কতাটিকে উপেক্ষা করতে পারেন 20.2.20 অথবা পরে ROM ভিত্তিক xiaomi.eu)</string>
|
||||||
<string name="error">Error</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="security_context">দয়া করে নিশ্চিত হন, আপনি যে অ্যাপটি ডাউনলোড করেছেন তা থেকে vanced.app, Vanced Discord server অথবা Vanced GitHub</string>
|
||||||
<string name="success">Success!</string>
|
<string name="success">সফল!</string>
|
||||||
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
|
<string name="vanced_installed">Vanced সফলভাবে ইনস্টল করা হয়েছে! এখন আরম্ভ?</string>
|
||||||
<string name="launch">Launch</string>
|
<string name="launch">শুরু করা</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">স্বাগত</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
|
<string name="choose_preferred_language">এর জন্য আপনার পছন্দসই ভাষা চয়ন করুন 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_language_note">দ্রষ্টব্য: ইংরেজি সর্বদা অতিরিক্ত ভাষা হিসাবে ইনস্টল করা হবে।</string>
|
||||||
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
|
<string name="choose_preferred_theme">এর জন্য আপনার পছন্দসই থিমটি চয়ন করুন Vanced</string>
|
||||||
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
|
<string name="disable_signature">রুট মোড সনাক্ত! স্থাপন করা Vanced, আপনি অক্ষম করতে হবে apk স্বাক্ষর যাচাইকরণ।.</string>
|
||||||
<string name="finish">Finish</string>
|
<string name="finish">শেষ</string>
|
||||||
<string name="install_light_black">Light + Black</string>
|
<string name="install_light_black">হালকা + কালো</string>
|
||||||
<string name="install_light_dark">Light + Dark</string>
|
<string name="install_light_dark">হালকা + গাark</string>
|
||||||
<string name="next">Next</string>
|
<string name="next">পরবর্তী</string>
|
||||||
<!-- About Page -->
|
<!-- About Page -->
|
||||||
<string name="manager_dev">Manager Dev</string>
|
<string name="manager_dev">ম্যানেজার দেব</string>
|
||||||
<string name="sources">Sources</string>
|
<string name="sources">সোর্স</string>
|
||||||
<string name="vanced_team">Vanced Team</string>
|
<string name="vanced_team">Vanced টীম</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,81 +1,84 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">Tanca</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">Restableix</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Desa</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">Quant a</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">Inici</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">Configuració</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Changelogs</string>
|
<string name="changelogs">Registres de canvis</string>
|
||||||
<string name="downloading_file">Downloading %1$s</string>
|
<string name="downloading_file">Descarregant %1$s</string>
|
||||||
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
|
<string name="failed_uninstall">Error en instal·lar el paquet %1$s</string>
|
||||||
<string name="error_downloading">Error Downloading %1$s</string>
|
<string name="error_downloading">Error en descarregar %1$s</string>
|
||||||
<string name="install">Install</string>
|
<string name="install">Instal·lar</string>
|
||||||
<string name="installing_app">Installing %1$s</string>
|
<string name="installing_app">Instal·lant %1$s</string>
|
||||||
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">L\'operació ha fallat perquè l\'usuari ha cancel·lat la instal·lació.</string>
|
||||||
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
|
<string name="installation_blocked">L\'operació ha fallat perquè l\'usuari ha blocat la instal·lació.</string>
|
||||||
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</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_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
|
<string name="installation_conflict">L\'operació ha fallat perquè l\'aplicació coincideix amb altra ja instal·lada.</string>
|
||||||
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</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_invalid">Operation failed because the apk files are invalid.</string>
|
<string name="installation_incompatible">L\'operació ha fallat perquè l\'aplicació és incompatible amb el vostre dispositiu.</string>
|
||||||
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
|
<string name="installation_invalid">L\'operació ha fallat perquè els fitxers apk són invàlids.</string>
|
||||||
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
|
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
|
||||||
<string name="installation_storage">Operation failed due to a storage error.</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_wait">Please wait until the installation finishes</string>
|
<string name="installation_storage">L\'operació ha fallat degut a un error d\'emmagatzematge.</string>
|
||||||
<string name="button_reinstall">Reinstall</string>
|
<string name="installation_wait">Espereu fins que es completi la instal·lació</string>
|
||||||
<string name="version_installed">Installed:</string>
|
<string name="button_reinstall">Reinstal·la</string>
|
||||||
<string name="latest">Latest:</string>
|
<string name="version_installed">Instal·lat:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="latest">Darrera:</string>
|
||||||
<string name="network_error">Network connection unavailable</string>
|
<string name="successfully_installed">Instal·lat amb èxit %1$s</string>
|
||||||
<string name="no_microg">No MicroG!</string>
|
<string name="network_error">No hi ha connexió a xarxa disponible</string>
|
||||||
<string name="root_not_granted">Root access not granted</string>
|
<string name="no_microg">microG isn\'t installed</string>
|
||||||
<string name="unavailable">Unavailable</string>
|
<string name="root_not_granted">L\'accés arrel no s\'ha concedit</string>
|
||||||
<string name="update">Update</string>
|
<string name="unavailable">No disponible</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="update">Actualitza</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="useful_links">Enllaços d\'interès</string>
|
||||||
<string name="support_us">Support us!</string>
|
<string name="website_text">Lloc web</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="support_us">Doneu-nos suport!</string>
|
||||||
|
<string name="version_toast">La versió %1$s s\'ha copiat!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Accent Color</string>
|
<string name="accent_color">Color d\'èmfasi</string>
|
||||||
<string name="accent_blue">Blue</string>
|
<string name="accent_blue">Blau</string>
|
||||||
<string name="accent_green">Green</string>
|
<string name="accent_green">Verd</string>
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Porpra</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Vermell</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Groc</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
<string name="category_interface">Interfície</string>
|
||||||
<string name="category_interface">Interface</string>
|
<string name="category_manager">Gestor</string>
|
||||||
<string name="category_manager">Manager</string>
|
<string name="check_updates">Busca actualitzacions</string>
|
||||||
<string name="chosen_install_values">Chosen installation preferences</string>
|
<string name="chosen_install_values">Preferències d\'instal·lació triades</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="chosen_theme">Tema: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Clear downloaded files</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Successfully cleared files</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</string>
|
<string name="link_title">Utilitza pestanyes personalitzades del Chrome</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="link_custom_tabs">Els enllaços s\'obriran en pestanyes personalitzades del Chrome</string>
|
||||||
<string name="theme_follow">Follow System</string>
|
<string name="link_external_browser">Els enllaços s\'obriran en un navegador extern</string>
|
||||||
<string name="theme_dark">Dark Theme</string>
|
<string name="theme">Tema</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme_follow">Segueix el sistema</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="theme_dark">Tema fosc</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="theme_light">Tema clar</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
|
<string name="update_url">Actualitza la URL del canal</string>
|
||||||
<string name="re_check">Re-check</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="re_check">Comprovar de nou</string>
|
||||||
<string name="update_notfound">No new updates</string>
|
<string name="update_center">Gestor d\'actualitzacions</string>
|
||||||
|
<string name="update_found">Actualització disponible!</string>
|
||||||
|
<string name="update_notfound">Cap actualització</string>
|
||||||
<!-- Dialogs -->
|
<!-- Dialogs -->
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">Descartar</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Guia</string>
|
||||||
<string name="hold_on">Hold on!</string>
|
<string name="hold_on">Espereu!</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_title">MIUI detectat!</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="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="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="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">Success!</string>
|
<string name="success">Èxit!</string>
|
||||||
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
|
<string name="vanced_installed">Vanced s\'ha instal·lat correctament. Obrir?</string>
|
||||||
<string name="launch">Launch</string>
|
<string name="launch">Launch</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Welcome</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
|
|
|
@ -1,94 +1,97 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">Zavřít</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">Resetovat</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Uložit</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">O aplikaci</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">Přehled</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">Nastavení</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Changelogs</string>
|
<string name="changelogs">Seznamy změn</string>
|
||||||
<string name="downloading_file">Downloading %1$s</string>
|
<string name="downloading_file">Stahování %1$s</string>
|
||||||
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
|
<string name="failed_uninstall">Nepodařilo se odinstalovat balíček %1$s</string>
|
||||||
<string name="error_downloading">Error Downloading %1$s</string>
|
<string name="error_downloading">Chyba při stahování %1$s</string>
|
||||||
<string name="install">Install</string>
|
<string name="install">Instalace</string>
|
||||||
<string name="installing_app">Installing %1$s</string>
|
<string name="installing_app">Probíhá instalace %1$s</string>
|
||||||
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Operace se nezdařila, protože uživatel přerušil instalaci.</string>
|
||||||
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
|
<string name="installation_blocked">Operace se nezdařila, protože uživatel zablokoval instalaci.</string>
|
||||||
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</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_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
|
<string name="installation_conflict">Operace se nezdařila, protože aplikace je v konfliktu s již nainstalovanou aplikací.</string>
|
||||||
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</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_invalid">Operation failed because the apk files are invalid.</string>
|
<string name="installation_incompatible">Operace se nezdařila, protože aplikace není kompatibilní s vaším zařízením.</string>
|
||||||
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
|
<string name="installation_invalid">Operace se nezdařila, protože soubory APK jsou neplatné.</string>
|
||||||
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
|
<string name="installation_signature">Operace se nezdařila, protože uživatel nezakázal ověření podpisu APK</string>
|
||||||
<string name="installation_storage">Operation failed due to a storage error.</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_wait">Please wait until the installation finishes</string>
|
<string name="installation_storage">Operace se nezdařila z důvodu chyby v úložišti.</string>
|
||||||
<string name="button_reinstall">Reinstall</string>
|
<string name="installation_wait">Počkejte prosím na dokončení instalace</string>
|
||||||
<string name="version_installed">Installed:</string>
|
<string name="button_reinstall">Přeinstalovat</string>
|
||||||
<string name="latest">Latest:</string>
|
<string name="version_installed">Nainstalováno:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="latest">Nejnovější:</string>
|
||||||
<string name="network_error">Network connection unavailable</string>
|
<string name="successfully_installed">Úspěšně nainstalováno %1$s</string>
|
||||||
<string name="no_microg">No MicroG!</string>
|
<string name="network_error">Nelze se připojit k Internetu</string>
|
||||||
<string name="root_not_granted">Root access not granted</string>
|
<string name="no_microg">microG není nainstalováno</string>
|
||||||
<string name="unavailable">Unavailable</string>
|
<string name="root_not_granted">Root přístup nebyl udělen</string>
|
||||||
<string name="update">Update</string>
|
<string name="unavailable">Není k dispozici</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="update">Aktualizovat</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="useful_links">Užitečné odkazy</string>
|
||||||
<string name="support_us">Support us!</string>
|
<string name="website_text">Webová stránka</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="support_us">Podpořte nás!</string>
|
||||||
|
<string name="version_toast">Verze %1$s byla zkopírována!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Accent Color</string>
|
<string name="accent_color">Doplňková barva</string>
|
||||||
<string name="accent_blue">Blue</string>
|
<string name="accent_blue">Modrá</string>
|
||||||
<string name="accent_green">Green</string>
|
<string name="accent_green">Zelená</string>
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Fialová</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Červená</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Žlutá</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
<string name="category_interface">Rozhraní</string>
|
||||||
<string name="category_interface">Interface</string>
|
|
||||||
<string name="category_manager">Manager</string>
|
<string name="category_manager">Manager</string>
|
||||||
<string name="chosen_install_values">Chosen installation preferences</string>
|
<string name="check_updates">Zkontrolovat aktualizace</string>
|
||||||
<string name="chosen_lang">Language: %1$s</string>
|
<string name="chosen_install_values">Vybrané předvolby instalace</string>
|
||||||
<string name="chosen_theme">Theme: %1$s</string>
|
<string name="chosen_lang">Jazyk: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="chosen_theme">Vzhled: %1$s</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="clear_files">Vymazat stažené soubory</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</string>
|
<string name="cleared_files">Vymazání souborů proběhlo úspěšně</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="link_title">Používat vlastní karty prohlížeče Chrome</string>
|
||||||
<string name="theme_follow">Follow System</string>
|
<string name="link_custom_tabs">Odkazy se otevřou na vlastních kartách prohlížeče Chrome</string>
|
||||||
<string name="theme_dark">Dark Theme</string>
|
<string name="link_external_browser">Odkazy se otevřou v externím prohlížeči</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme">Vzhled</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="theme_follow">Podle systému</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="theme_dark">Tmavý vzhled</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
|
<string name="theme_light">Světlý vzhled</string>
|
||||||
<string name="re_check">Re-check</string>
|
<string name="update_url">URL aktualizačního kanálu</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="push_notifications">%1$s vyskakovací oznámení</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="push_notifications_summary">Po vydání aktualizace pro %1$s obdržíte vyskakovací oznámení</string>
|
||||||
<string name="update_notfound">No new updates</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 -->
|
<!-- Dialogs -->
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">Zavřít</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Návod</string>
|
||||||
<string name="hold_on">Hold on!</string>
|
<string name="hold_on">Počkejte!</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">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">MIUI detected!</string>
|
<string name="miui_one_title">Zjištěno MIUI!</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="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">Error</string>
|
<string name="error">Chyba</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="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">Success!</string>
|
<string name="success">Hotovo!</string>
|
||||||
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
|
<string name="vanced_installed">Aplikace Vanced byla úspěšně nainstalována! Chcete ji spustit?</string>
|
||||||
<string name="launch">Launch</string>
|
<string name="launch">Spustit</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Vítejte</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
|
<string name="choose_preferred_language">Vyberte preferovaný jazyk pro 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_language_note">Poznámka: Angličtina bude vždy nainstalována jako dodatečný jazyk.</string>
|
||||||
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
|
<string name="choose_preferred_theme">Vyberte preferovaný vzhled pro Vanced</string>
|
||||||
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</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">Finish</string>
|
<string name="finish">Dokončit</string>
|
||||||
<string name="install_light_black">Light + Black</string>
|
<string name="install_light_black">Světlý + černý</string>
|
||||||
<string name="install_light_dark">Light + Dark</string>
|
<string name="install_light_dark">Světlý + tmavý</string>
|
||||||
<string name="next">Next</string>
|
<string name="next">Další</string>
|
||||||
<!-- About Page -->
|
<!-- About Page -->
|
||||||
<string name="manager_dev">Manager Dev</string>
|
<string name="manager_dev">Vývojář aplikace</string>
|
||||||
<string name="sources">Sources</string>
|
<string name="sources">Zdrojové kódy</string>
|
||||||
<string name="vanced_team">Vanced Team</string>
|
<string name="vanced_team">Tým Vanced</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,94 +1,97 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">Luk</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">Nulstil</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Gem</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">Om</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">Hjem</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">Indstillinger</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Changelogs</string>
|
<string name="changelogs">Changelogs</string>
|
||||||
<string name="downloading_file">Downloading %1$s</string>
|
<string name="downloading_file">Downloader %1$s</string>
|
||||||
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
|
<string name="failed_uninstall">Fejlede i at fjerne pakke %1$s</string>
|
||||||
<string name="error_downloading">Error Downloading %1$s</string>
|
<string name="error_downloading">Fejl i download af %1$s</string>
|
||||||
<string name="install">Install</string>
|
<string name="install">Installer</string>
|
||||||
<string name="installing_app">Installing %1$s</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_aborted">Operationen fejlede fordi brugeren lukkede installationen.</string>
|
||||||
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
|
<string name="installation_blocked">Operationen fejlede fordi brugeren blokerede installationen.</string>
|
||||||
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</string>
|
<string name="installation_downgrade">Operationen fejlede fordi brugeren prøvede at nedgradere pakken. Har du YouTube appen installeret?</string>
|
||||||
<string name="installation_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
|
<string name="installation_conflict">Operationen fejlede fordi appen konflikter med en anden installeret app.</string>
|
||||||
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
|
<string name="installation_failed">Operationen fejlede af ukendt årsag, join vores Telegram eller Discord for hjælp.</string>
|
||||||
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
|
<string name="installation_incompatible">Operationen fejlede fordi appen ikke er kompatibel med din enhed.</string>
|
||||||
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
|
<string name="installation_invalid">Operationen fejlede fordi apk filerne er ugyldige.</string>
|
||||||
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
|
<string name="installation_signature">Operationen fejlede fordi brugeren ikke har disabled apk signatur verifikation</string>
|
||||||
<string name="installation_storage">Operation failed due to a storage error.</string>
|
<string name="installation_miui">En uventet fejl skete under installationen af Vanced. Har du disabled MIUI Optimering?</string>
|
||||||
<string name="installation_wait">Please wait until the installation finishes</string>
|
<string name="installation_storage">Operationen fejlede på grund af lagerfejl.</string>
|
||||||
<string name="button_reinstall">Reinstall</string>
|
<string name="installation_wait">Vent venligst til installationen bliver færdiggjort</string>
|
||||||
<string name="version_installed">Installed:</string>
|
<string name="button_reinstall">Geninstaller</string>
|
||||||
<string name="latest">Latest:</string>
|
<string name="version_installed">Installeret:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="latest">Seneste:</string>
|
||||||
<string name="network_error">Network connection unavailable</string>
|
<string name="successfully_installed">Installerede %1$s succesfuldt</string>
|
||||||
<string name="no_microg">No MicroG!</string>
|
<string name="network_error">Netværksforbindelse utilgængelig</string>
|
||||||
<string name="root_not_granted">Root access not granted</string>
|
<string name="no_microg">microG er ikke installeret</string>
|
||||||
<string name="unavailable">Unavailable</string>
|
<string name="root_not_granted">Root adgang ikke tildelt</string>
|
||||||
<string name="update">Update</string>
|
<string name="unavailable">Utilgængelig</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="update">Opdater</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="useful_links">Nyttige Links</string>
|
||||||
<string name="support_us">Support us!</string>
|
<string name="website_text">Hjemmeside</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="support_us">Støt os!</string>
|
||||||
|
<string name="version_toast">%1$s version blev kopieret!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Accent Color</string>
|
<string name="accent_color">Sekundær farve</string>
|
||||||
<string name="accent_blue">Blue</string>
|
<string name="accent_blue">Blå</string>
|
||||||
<string name="accent_green">Green</string>
|
<string name="accent_green">Grøn</string>
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Lilla</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Rød</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Gul</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
<string name="category_interface">Brugerflade</string>
|
||||||
<string name="category_interface">Interface</string>
|
|
||||||
<string name="category_manager">Manager</string>
|
<string name="category_manager">Manager</string>
|
||||||
<string name="chosen_install_values">Chosen installation preferences</string>
|
<string name="check_updates">Søg efter opdateringer</string>
|
||||||
<string name="chosen_lang">Language: %1$s</string>
|
<string name="chosen_install_values">Valgte installations præferencer</string>
|
||||||
<string name="chosen_theme">Theme: %1$s</string>
|
<string name="chosen_lang">Sprog:%1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="chosen_theme">Tema: %1$s</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="clear_files">Ryd hentede filer</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</string>
|
<string name="cleared_files">Filer ryddet succesfuldt</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="link_title">Brug Chrome Custom Faner</string>
|
||||||
<string name="theme_follow">Follow System</string>
|
<string name="link_custom_tabs">Links vil åbne i Chrome Custom Faner</string>
|
||||||
<string name="theme_dark">Dark Theme</string>
|
<string name="link_external_browser">Links vil åbne i en ekstern browser</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme">Tema</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="theme_follow">Følg systemet</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="theme_dark">Mørkt tema</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
|
<string name="theme_light">Lyst tema</string>
|
||||||
<string name="re_check">Re-check</string>
|
<string name="update_url">Opdateringskanal URL</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="push_notifications">%1$s Push Notifikationer</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="push_notifications_summary">Modtag push meddelelser når der er en ny opdatering til %1$s</string>
|
||||||
<string name="update_notfound">No new updates</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 -->
|
<!-- Dialogs -->
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">Luk</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Vejledning</string>
|
||||||
<string name="hold_on">Hold on!</string>
|
<string name="hold_on">Et øjeblik!</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">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 detected!</string>
|
<string name="miui_one_title">MIUI fundet!</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="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">Error</string>
|
<string name="error">Fejl</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="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">Success!</string>
|
<string name="success">Succes!</string>
|
||||||
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
|
<string name="vanced_installed">Vanced er nu installeret! Åben appen?</string>
|
||||||
<string name="launch">Launch</string>
|
<string name="launch">Start</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Velkommen</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
|
<string name="choose_preferred_language">Vælg dit fortrukne sprog til 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_language_note">Note: Engelsk vil altid blive installeret som et alternativt sprog også.</string>
|
||||||
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
|
<string name="choose_preferred_theme">Vælg dit fortrukne tema til Vanced</string>
|
||||||
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</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">Finish</string>
|
<string name="finish">Afslut</string>
|
||||||
<string name="install_light_black">Light + Black</string>
|
<string name="install_light_black">Lyst + Sort</string>
|
||||||
<string name="install_light_dark">Light + Dark</string>
|
<string name="install_light_dark">Lyst + Mørkt</string>
|
||||||
<string name="next">Next</string>
|
<string name="next">Næste</string>
|
||||||
<!-- About Page -->
|
<!-- About Page -->
|
||||||
<string name="manager_dev">Manager Dev</string>
|
<string name="manager_dev">Manager udvikler</string>
|
||||||
<string name="sources">Sources</string>
|
<string name="sources">Kilder</string>
|
||||||
<string name="vanced_team">Vanced Team</string>
|
<string name="vanced_team">Vanced holdet</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">%1$s wird installiert</string>
|
<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_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_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_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_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_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_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_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_storage">Operation fehlgeschlagen, da ein Storage-Fehler aufgetreten ist.</string>
|
||||||
<string name="installation_wait">Bitte warte, bis die Installation abgeschlossen 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="latest">Neueste:</string>
|
||||||
<string name="successfully_installed">%1$s erfolgreich installiert</string>
|
<string name="successfully_installed">%1$s erfolgreich installiert</string>
|
||||||
<string name="network_error">Keine Netzwerkverbindung verfügbar</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="root_not_granted">Root-Zugriff nicht erteilt</string>
|
||||||
<string name="unavailable">Nicht verfügbar</string>
|
<string name="unavailable">Nicht verfügbar</string>
|
||||||
<string name="update">Aktualisieren</string>
|
<string name="update">Aktualisieren</string>
|
||||||
<string name="useful_links">Nützliche Links</string>
|
<string name="useful_links">Nützliche Links</string>
|
||||||
<string name="website_text">Webseite</string>
|
<string name="website_text">Webseite</string>
|
||||||
<string name="support_us">Ünterstütze uns!</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 -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Akzentfarbe</string>
|
<string name="accent_color">Akzentfarbe</string>
|
||||||
<string name="accent_blue">Blau</string>
|
<string name="accent_blue">Blau</string>
|
||||||
|
@ -45,12 +46,14 @@
|
||||||
<string name="accent_purple">Lila</string>
|
<string name="accent_purple">Lila</string>
|
||||||
<string name="accent_red">Rot</string>
|
<string name="accent_red">Rot</string>
|
||||||
<string name="accent_yellow">Gelb</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_interface">Benutzeroberfläche</string>
|
||||||
<string name="category_manager">Manager</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_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="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_title">Verwende Chrome Custom Tabs</string>
|
||||||
<string name="link_custom_tabs">Links werden in Chrome Custom Tabs geöffnet</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>
|
<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_dark">Dunkles Theme</string>
|
||||||
<string name="theme_light">Helles Theme</string>
|
<string name="theme_light">Helles Theme</string>
|
||||||
<string name="update_url">Kanal-Url updaten</string>
|
<string name="update_url">Kanal-Url updaten</string>
|
||||||
<string name="push_notifications">Push-Benachrichtigungen</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">Erhalte Push-Benachrichtigungen, wenn ein Update veröffentlicht wird</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="re_check">Erneut überprüfen</string>
|
||||||
<string name="update_center">Update Center</string>
|
<string name="update_center">Update Center</string>
|
||||||
<string name="update_found">Update gefunden!</string>
|
<string name="update_found">Update gefunden!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Schließen</string>
|
<string name="button_dismiss">Schließen</string>
|
||||||
<string name="guide">Erklärung</string>
|
<string name="guide">Erklärung</string>
|
||||||
<string name="hold_on">Warte!</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_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="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>
|
<string name="error">Fehler</string>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Εγκατάσταση %1$s</string>
|
<string name="installing_app">Εγκατάσταση %1$s</string>
|
||||||
<string name="installation_aborted">Η διαδικασία απέτυχε λόγω ακύρωσης από τον χρήστη.</string>
|
<string name="installation_aborted">Η διαδικασία απέτυχε λόγω ακύρωσης από τον χρήστη.</string>
|
||||||
<string name="installation_blocked">Η διαδικασία απέτυχε λόγω απόκλεισης από τον χρήστη.</string>
|
<string name="installation_blocked">Η διαδικασία απέτυχε λόγω απόκλεισης από τον χρήστη.</string>
|
||||||
|
<string name="installation_downgrade">Η διεργασία απέτυχε διότι ο χρήστης προσπάθησε να υποβαθμίσει το πακέτο. Έχετε εγκαταστήσει το κανονικό YouTube;</string>
|
||||||
<string name="installation_conflict">Η διαδικασία απέτυχε επειδή η εφαρμογή είναι ήδη εγκατεστημένη.</string>
|
<string name="installation_conflict">Η διαδικασία απέτυχε επειδή η εφαρμογή είναι ήδη εγκατεστημένη.</string>
|
||||||
<string name="installation_failed">Η διαδικασία απέτυχε για άγνωστο λόγω, παρακαλούμε μπείτε στο Telegram ή στο Discord μας για βοήθεια.</string>
|
<string name="installation_failed">Η διαδικασία απέτυχε για άγνωστο λόγω, παρακαλούμε μπείτε στο Telegram ή στο Discord μας για βοήθεια.</string>
|
||||||
<string name="installation_incompatible">Η διαδικασία απέτυχε επείδη η εφαρμογή δεν είναι συμβατή με την συσκευή.</string>
|
<string name="installation_incompatible">Η διαδικασία απέτυχε επείδη η εφαρμογή δεν είναι συμβατή με την συσκευή.</string>
|
||||||
<string name="installation_invalid">Η διαδικασία απέτυχε επειδή τα αρχεία APK δεν είναι σωστά.</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_miui">Πρόεκυψε ένα πρόβλημα στην εγκατάσταση του Vanced. Έχετε επενεργοποιήσει το MIUI-Optimisations;</string>
|
||||||
<string name="installation_storage">Η διαδικασία απέτυχε λόγω προβλήματος του αποθηκευτικού χώρου.</string>
|
<string name="installation_storage">Η διαδικασία απέτυχε λόγω προβλήματος του αποθηκευτικού χώρου.</string>
|
||||||
<string name="installation_wait">Παρακαλώ περιμένετε να ολοκληρωθεί η εγκατάσταση.</string>
|
<string name="installation_wait">Παρακαλώ περιμένετε να ολοκληρωθεί η εγκατάσταση.</string>
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
<string name="latest">Πιο πρόσφατο:</string>
|
<string name="latest">Πιο πρόσφατο:</string>
|
||||||
<string name="successfully_installed">Εγκαταστάθηκε επιτυχώς %1$s</string>
|
<string name="successfully_installed">Εγκαταστάθηκε επιτυχώς %1$s</string>
|
||||||
<string name="network_error">Δεν υπάρχει σύνδεση στο διαδίκτυο</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="root_not_granted">Δεν δόθηκαν Root άδειες</string>
|
||||||
<string name="unavailable">Μη διαθέσιμο</string>
|
<string name="unavailable">Μη διαθέσιμο</string>
|
||||||
<string name="update">Ενημέρωση</string>
|
<string name="update">Ενημέρωση</string>
|
||||||
<string name="useful_links">Χρήσιμοι σύνδεσμοι</string>
|
<string name="useful_links">Χρήσιμοι σύνδεσμοι</string>
|
||||||
<string name="website_text">Ιστοσελίδα</string>
|
<string name="website_text">Ιστοσελίδα</string>
|
||||||
<string name="support_us">Υποστήριξε μας!</string>
|
<string name="support_us">Υποστήριξε μας!</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="version_toast">Η έκδοση του %1$s αντιγράφηκε!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Χρώμα</string>
|
<string name="accent_color">Χρώμα</string>
|
||||||
<string name="accent_blue">Μπλε</string>
|
<string name="accent_blue">Μπλε</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">Μωβ</string>
|
<string name="accent_purple">Μωβ</string>
|
||||||
<string name="accent_red">Κόκκινο</string>
|
<string name="accent_red">Κόκκινο</string>
|
||||||
<string name="accent_yellow">Κίτρινο</string>
|
<string name="accent_yellow">Κίτρινο</string>
|
||||||
<string name="check_updates">Έλεγχος για ενημερώσεις</string>
|
|
||||||
<string name="category_interface">Περιβάλλον</string>
|
<string name="category_interface">Περιβάλλον</string>
|
||||||
<string name="category_manager">Διαχειριστής</string>
|
<string name="category_manager">Διαχειριστής</string>
|
||||||
|
<string name="check_updates">Έλεγχος για ενημερώσεις</string>
|
||||||
<string name="chosen_install_values">Διαλέξτε επιλογές εγκατάστασης</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="chosen_theme">Χρώματα: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Εκκαθάριση κατεβασμένων αρχείων</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Επιτυχής εκκαθάριση αρχείων</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">Χρώματα</string>
|
||||||
<string name="theme_follow">Χρώμα συστήματος</string>
|
<string name="theme_follow">Χρώμα συστήματος</string>
|
||||||
<string name="theme_dark">Σκούρο Χρώμα</string>
|
<string name="theme_dark">Σκούρο Χρώμα</string>
|
||||||
<string name="theme_light">Ανοιχτό Χρώμα</string>
|
<string name="theme_light">Ανοιχτό Χρώμα</string>
|
||||||
<string name="update_url">Ενημερώστε το URL του καναλιού ενημέρωσης</string>
|
<string name="update_url">Ενημερώστε το URL του καναλιού ενημέρωσης</string>
|
||||||
<string name="push_notifications">Ειδοποιήσεις</string>
|
<string name="push_notifications">%1$s Ειδοποιήσεις Push</string>
|
||||||
<string name="push_notifications_summary">Λάβεται ειδοποίηση όταν βγαίνει νέα ενημέρωση</string>
|
<string name="push_notifications_summary">Λάβεται ειδοποιήσεις push όταν υπάρχουν διαθέσιμες ενημερώσεις για το %1$s</string>
|
||||||
<string name="re_check">Επανέλεγχος</string>
|
<string name="re_check">Επανέλεγχος</string>
|
||||||
<string name="update_center">Κέντρο ενημέρωσης</string>
|
<string name="update_center">Κέντρο ενημέρωσης</string>
|
||||||
<string name="update_found">Διαθέσιμη ενημέρωση!</string>
|
<string name="update_found">Διαθέσιμη ενημέρωση!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Αγνόηση</string>
|
<string name="button_dismiss">Αγνόηση</string>
|
||||||
<string name="guide">Οδηγός</string>
|
<string name="guide">Οδηγός</string>
|
||||||
<string name="hold_on">Περιμένετε!</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_title">Ανιχνεύτηκε MIUI!</string>
|
||||||
<string name="miui_one">Φαίνεται πως είστε χρήστης MIUI. Για να δουλέψει σωστά αυτή η εφαρμογή, θα πρέπει να απενεργοποιήσετε τα MIUI Optimisations στα Developer Settings. (Μπορείτε να αγνοήσετε αυτή την προειδοποίηση αν είστε στην έκδοση 20.2.20 ή νεότερη λειτουργικού βασισμένο στο Xiami.eu)</string>
|
<string name="miui_one">Φαίνεται πως είστε χρήστης MIUI. Για να δουλέψει σωστά αυτή η εφαρμογή, θα πρέπει να απενεργοποιήσετε τα MIUI Optimisations στα Developer Settings. (Μπορείτε να αγνοήσετε αυτή την προειδοποίηση αν είστε στην έκδοση 20.2.20 ή νεότερη λειτουργικού βασισμένο στο Xiami.eu)</string>
|
||||||
<string name="error">Πρόβλημα</string>
|
<string name="error">Πρόβλημα</string>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Cerrar</string>
|
<string name="close">Cerrar</string>
|
||||||
<string name="reset">Resetear</string>
|
<string name="reset">Restablecer</string>
|
||||||
<string name="save">Guardar</string>
|
<string name="save">Guardar</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">Información</string>
|
<string name="title_about">Información</string>
|
||||||
|
@ -11,33 +11,34 @@
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Actualizaciones</string>
|
<string name="changelogs">Actualizaciones</string>
|
||||||
<string name="downloading_file">Descargando %1$s</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="error_downloading">Error al descargar %1$s</string>
|
||||||
<string name="install">Instalar</string>
|
<string name="install">Instalar</string>
|
||||||
<string name="installing_app">Instalando %1$s</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_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_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_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_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_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_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_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_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_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="installation_wait">Porfavor espera hasta que la instalación termine.</string>
|
||||||
<string name="button_reinstall">Reinstalar</string>
|
<string name="button_reinstall">Reinstalar</string>
|
||||||
<string name="version_installed">Instalado:</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="successfully_installed">Instalación exitosa %1$s</string>
|
||||||
<string name="network_error">Conexion a la red no disponible</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="root_not_granted">Acceso root no concedido</string>
|
||||||
<string name="unavailable">No Disponible</string>
|
<string name="unavailable">No Disponible</string>
|
||||||
<string name="update">Actualizar</string>
|
<string name="update">Actualizar</string>
|
||||||
<string name="useful_links">Links Utiles</string>
|
<string name="useful_links">Links Utiles</string>
|
||||||
<string name="website_text">Sitio Web</string>
|
<string name="website_text">Sitio Web</string>
|
||||||
<string name="support_us">Apoyanos!</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 -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Color de Acento</string>
|
<string name="accent_color">Color de Acento</string>
|
||||||
<string name="accent_blue">Azul</string>
|
<string name="accent_blue">Azul</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">Purpura</string>
|
<string name="accent_purple">Purpura</string>
|
||||||
<string name="accent_red">Rojo</string>
|
<string name="accent_red">Rojo</string>
|
||||||
<string name="accent_yellow">Amarillo</string>
|
<string name="accent_yellow">Amarillo</string>
|
||||||
<string name="check_updates">Buscar actualizaciones</string>
|
|
||||||
<string name="category_interface">Interfaz</string>
|
<string name="category_interface">Interfaz</string>
|
||||||
<string name="category_manager">Manager</string>
|
<string name="category_manager">Manager</string>
|
||||||
<string name="chosen_install_values">Valores de instalación escojidos </string>
|
<string name="check_updates">Buscar actualizaciones</string>
|
||||||
<string name="chosen_lang">Lenguaje: %1$s</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="chosen_theme">Tema: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Limpiar archivos descargados</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Archivos limpiados exitosamente</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">Tema</string>
|
||||||
<string name="theme_follow">Seguir Sistema</string>
|
<string name="theme_follow">Seguir Sistema</string>
|
||||||
<string name="theme_dark">Tema Oscuro</string>
|
<string name="theme_dark">Tema Oscuro</string>
|
||||||
<string name="theme_light">Tema Claro</string>
|
<string name="theme_light">Tema Claro</string>
|
||||||
<string name="update_url">URL del canal de actualizacion</string>
|
<string name="update_url">URL del canal de actualizacion</string>
|
||||||
<string name="push_notifications">Notificaciones Push</string>
|
<string name="push_notifications">Notificaciones push de %1$s</string>
|
||||||
<string name="push_notifications_summary">Recibir notificaciones push cuando una actualizacion sea lanzada</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="re_check">Reintentar</string>
|
||||||
<string name="update_center">Centro de Actualizaciones</string>
|
<string name="update_center">Centro de Actualizaciones</string>
|
||||||
<string name="update_found">Actualización encontrada!</string>
|
<string name="update_found">Actualización encontrada!</string>
|
||||||
|
@ -69,21 +72,20 @@
|
||||||
<string name="button_dismiss">Descartar</string>
|
<string name="button_dismiss">Descartar</string>
|
||||||
<string name="guide">Guía</string>
|
<string name="guide">Guía</string>
|
||||||
<string name="hold_on">Un momento!</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="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">Usuario MiUI detectado!</string>
|
<string name="miui_one_title">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.
|
<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>
|
||||||
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="error">Error</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="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="success">Éxito!</string>
|
||||||
<string name="vanced_installed">Vanced a sido instalado exitosamente, quieres lanzarlo ahora?</string>
|
<string name="vanced_installed">¡Vanced ha sido instalado exitosamente! ¿Lanzar ahora?</string>
|
||||||
<string name="launch">Lanzar</string>
|
<string name="launch">Lanzar</string>
|
||||||
<string name="welcome">Bienvenido</string>
|
<string name="welcome">Bienvenido</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
<string name="choose_preferred_language">Elije tu lenguaje preferido para Vanced</string>
|
<string name="choose_preferred_language">Elige tu idioma 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_language_note">Nota: Ingles va a estar instalado como un idioma adicional.</string>
|
||||||
<string name="choose_preferred_theme">Elije tu tema preferido para Vanced</string>
|
<string name="choose_preferred_theme">Elige 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="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="finish">Finalizar</string>
|
||||||
<string name="install_light_black">Claro + Negro</string>
|
<string name="install_light_black">Claro + Negro</string>
|
||||||
<string name="install_light_dark">Claro + Oscuro</string>
|
<string name="install_light_dark">Claro + Oscuro</string>
|
||||||
|
|
|
@ -1,94 +1,97 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">Sulje</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">Palauta</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Tallenna</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">Tietoja</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">Koti</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">Asetukset</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Changelogs</string>
|
<string name="changelogs">Muutoshistoria</string>
|
||||||
<string name="downloading_file">Downloading %1$s</string>
|
<string name="downloading_file">Ladataan %1$s</string>
|
||||||
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
|
<string name="failed_uninstall">Paketin %1$s asennus epäonnistui</string>
|
||||||
<string name="error_downloading">Error Downloading %1$s</string>
|
<string name="error_downloading">%1$s lataus epäonnistui</string>
|
||||||
<string name="install">Install</string>
|
<string name="install">Asenna</string>
|
||||||
<string name="installing_app">Installing %1$s</string>
|
<string name="installing_app">Asennetaan %1$s</string>
|
||||||
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Operaatio epäonnistui, koska käyttäjä keskeytti asennuksen.</string>
|
||||||
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
|
<string name="installation_blocked">Operaatio epäonnistui, koska käyttäjä esti asennuksen.</string>
|
||||||
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</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_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
|
<string name="installation_conflict">Operaatio epäonnistui, koska sovellus on ristiriidassa toisen sovelluksen kanssa.</string>
|
||||||
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
|
<string name="installation_failed">Operaatio epäonnistui tuntemattomasta syystä, ole hyvä ja liity Telegram tai Discord kanaviimme halutessasi tukea.</string>
|
||||||
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
|
<string name="installation_incompatible">Operaatio epäonnistui, koska sovellus ei ole yhteensopiva laitteesi kanssa.</string>
|
||||||
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
|
<string name="installation_invalid">Operaatio epäonnistui, koska APK tiedostot ovat viallisia.</string>
|
||||||
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
|
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
|
||||||
<string name="installation_storage">Operation failed due to a storage error.</string>
|
<string name="installation_miui">Odottamaton virhe asentaessa Vanced-pakettia. Oletko varmasti ottanut MIUI optimisaatiot pois käytöstä?</string>
|
||||||
<string name="installation_wait">Please wait until the installation finishes</string>
|
<string name="installation_storage">Haku epäonnistui tallennustilan virheen vuoksi.</string>
|
||||||
<string name="button_reinstall">Reinstall</string>
|
<string name="installation_wait">Ole hyvä ja odota, että asennus suoritetaan loppuun.</string>
|
||||||
<string name="version_installed">Installed:</string>
|
<string name="button_reinstall">Uudelleenasenna</string>
|
||||||
<string name="latest">Latest:</string>
|
<string name="version_installed">Asennettu:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="latest">Uusin:</string>
|
||||||
<string name="network_error">Network connection unavailable</string>
|
<string name="successfully_installed">%1$s asennus onnistui</string>
|
||||||
<string name="no_microg">No MicroG!</string>
|
<string name="network_error">Verkkoyhteys ei ole käytettävissä</string>
|
||||||
<string name="root_not_granted">Root access not granted</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="unavailable">Ei saatavilla</string>
|
||||||
<string name="update">Update</string>
|
<string name="update">Päivitä</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="useful_links">Hyödyllisiä linkkejä</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="website_text">Verkkosivu</string>
|
||||||
<string name="support_us">Support us!</string>
|
<string name="support_us">Tue meitä!</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="version_toast">%1$s versio kopioitu!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Accent Color</string>
|
<string name="accent_color">Aksenttiväri</string>
|
||||||
<string name="accent_blue">Blue</string>
|
<string name="accent_blue">Sininen</string>
|
||||||
<string name="accent_green">Green</string>
|
<string name="accent_green">Vihreä</string>
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Violetti</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Punainen</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Keltainen</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
<string name="category_interface">Ulkoasu</string>
|
||||||
<string name="category_interface">Interface</string>
|
|
||||||
<string name="category_manager">Manager</string>
|
<string name="category_manager">Manager</string>
|
||||||
<string name="chosen_install_values">Chosen installation preferences</string>
|
<string name="check_updates">Tarkista päivitykset</string>
|
||||||
<string name="chosen_lang">Language: %1$s</string>
|
<string name="chosen_install_values">Valitut asennusasetukset</string>
|
||||||
<string name="chosen_theme">Theme: %1$s</string>
|
<string name="chosen_lang">Language(s): %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="chosen_theme">Teema: %1$s</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="clear_files">Clear downloaded files</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</string>
|
<string name="cleared_files">Successfully cleared files</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="link_title">Käytä Chromen mukautettuja välilehtiä</string>
|
||||||
<string name="theme_follow">Follow System</string>
|
<string name="link_custom_tabs">Linkit aukeavat Chromen mukautetuissa välilehdissä</string>
|
||||||
<string name="theme_dark">Dark Theme</string>
|
<string name="link_external_browser">Linkit aukeavat ulkoisessa selaimessa</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme">Teema</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="theme_follow">Järjestelmän teema</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="theme_dark">Tumma teema</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
|
<string name="theme_light">Vaalea teema</string>
|
||||||
<string name="re_check">Re-check</string>
|
<string name="update_url">Päivityskanavan URL-osoite</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
|
||||||
<string name="update_notfound">No new updates</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 -->
|
<!-- Dialogs -->
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">Ohita</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Opas</string>
|
||||||
<string name="hold_on">Hold on!</string>
|
<string name="hold_on">Odotas vähän!</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_title">MIUI tunnistettu!</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="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">Error</string>
|
<string name="error">Virhe</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="security_context">Varmista, että latasit sovelluksen vanced.app nettisivulta, Vanced Discord serveriltä tai Vanced GitHub sivulta.</string>
|
||||||
<string name="success">Success!</string>
|
<string name="success">Onnistui!</string>
|
||||||
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
|
<string name="vanced_installed">Vanced asennettu onnistuneesti! Käynnistetäänkö nyt?</string>
|
||||||
<string name="launch">Launch</string>
|
<string name="launch">Avaa</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Tervetuloa</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
|
<string name="choose_preferred_language">Valitse haluamasi kieli</string>
|
||||||
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
|
<string name="choose_preferred_language_note">Huom: Englanti asennetaan rinnalle aina.</string>
|
||||||
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
|
<string name="choose_preferred_theme">Valitse haluamasi teema</string>
|
||||||
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</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">Finish</string>
|
<string name="finish">Valmis</string>
|
||||||
<string name="install_light_black">Light + Black</string>
|
<string name="install_light_black">Vaalea + Musta</string>
|
||||||
<string name="install_light_dark">Light + Dark</string>
|
<string name="install_light_dark">Vaalea + Tumma</string>
|
||||||
<string name="next">Next</string>
|
<string name="next">Seuraava</string>
|
||||||
<!-- About Page -->
|
<!-- About Page -->
|
||||||
<string name="manager_dev">Manager Dev</string>
|
<string name="manager_dev">Managerin kehittäjä</string>
|
||||||
<string name="sources">Sources</string>
|
<string name="sources">Lähdekoodi</string>
|
||||||
<string name="vanced_team">Vanced Team</string>
|
<string name="vanced_team">Vanced kehitystiimi</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Installation de %1$s</string>
|
<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_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_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_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_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_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_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_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_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>
|
<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="latest">Dernière version:</string>
|
||||||
<string name="successfully_installed">%1$s installé avec succès</string>
|
<string name="successfully_installed">%1$s installé avec succès</string>
|
||||||
<string name="network_error">Connection réseau indisponible</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="root_not_granted">Accès root non autorisé</string>
|
||||||
<string name="unavailable">Indisponible</string>
|
<string name="unavailable">Indisponible</string>
|
||||||
<string name="update">Mettre à jour</string>
|
<string name="update">Mettre à jour</string>
|
||||||
<string name="useful_links">Liens utiles</string>
|
<string name="useful_links">Liens utiles</string>
|
||||||
<string name="website_text">Site web</string>
|
<string name="website_text">Site web</string>
|
||||||
<string name="support_us">Supporte nous !</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 -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Couleur d\'accentuation</string>
|
<string name="accent_color">Couleur d\'accentuation</string>
|
||||||
<string name="accent_blue">Bleu</string>
|
<string name="accent_blue">Bleu</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">Violet</string>
|
<string name="accent_purple">Violet</string>
|
||||||
<string name="accent_red">Rouge</string>
|
<string name="accent_red">Rouge</string>
|
||||||
<string name="accent_yellow">Jaune</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_interface">Interface</string>
|
||||||
<string name="category_manager">Gestion</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_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="chosen_theme">Thème: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Effacer les fichiers téléchargés</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Données effacées avec succès</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">Thème</string>
|
||||||
<string name="theme_follow">Suivre le paramètre système</string>
|
<string name="theme_follow">Suivre le paramètre système</string>
|
||||||
<string name="theme_dark">Thème sombre</string>
|
<string name="theme_dark">Thème sombre</string>
|
||||||
<string name="theme_light">Thème clair</string>
|
<string name="theme_light">Thème clair</string>
|
||||||
<string name="update_url">URL du canal de mise à jour</string>
|
<string name="update_url">URL du canal de mise à jour</string>
|
||||||
<string name="push_notifications">Notifications</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">Recevoir des notifications quand une nouvelle version est disponible</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="re_check">Revérifier</string>
|
||||||
<string name="update_center">Centre de mise à jour du Manager</string>
|
<string name="update_center">Centre de mise à jour du Manager</string>
|
||||||
<string name="update_found">Mise à jour disponible!</string>
|
<string name="update_found">Mise à jour disponible!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Faire disparaître</string>
|
<string name="button_dismiss">Faire disparaître</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Guide</string>
|
||||||
<string name="hold_on">Attends une seconde!</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_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="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>
|
<string name="error">Erreur</string>
|
||||||
|
|
|
@ -17,27 +17,28 @@
|
||||||
<string name="installing_app">%1$s इन्स्टॉःल कर रहा है </string>
|
<string name="installing_app">%1$s इन्स्टॉःल कर रहा है </string>
|
||||||
<string name="installation_aborted">ऑपरेशन विफल हो गया क्योंकि उपयोगकर्ता ने स्थापना रद्द कर दी थी</string>
|
<string name="installation_aborted">ऑपरेशन विफल हो गया क्योंकि उपयोगकर्ता ने स्थापना रद्द कर दी थी</string>
|
||||||
<string name="installation_blocked">उपयोगकर्ता अवरुद्ध स्थापना के कारण ऑपरेशन विफल हुआ</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_conflict">ऑपरेशन विफल हो गया क्योंकि ऐप पहले से इंस्टॉल किए गए ऐप के साथ टकराव करता है</string>
|
||||||
<string name="installation_failed">ऑपरेशन विफल हो गया क्योंकि यह अभी असफल रहा मुझे नहीं पता</string>
|
<string name="installation_failed">ऑपरेशन विफल हो गया क्योंकि यह अभी असफल रहा मुझे नहीं पता</string>
|
||||||
<string name="installation_incompatible">ऑपरेशन विफल हो गया क्योंकि ऐप आपके डिवाइस के साथ असंगत है</string>
|
<string name="installation_incompatible">ऑपरेशन विफल हो गया क्योंकि ऐप आपके डिवाइस के साथ असंगत है</string>
|
||||||
<string name="installation_invalid">ऑपरेशन विफल हो गया क्योंकि एपीके फाइलें अमान्य हैं</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_miui">Vनाथ स्थापित करते समय अप्रत्याशित त्रुटि हुई। क्या आपने MiUI ऑप्टिमाइज़ेशन को अक्षम कर दिया है?</string>
|
||||||
<string name="installation_storage">संग्रहण विफल होने के कारण ऑपरेशन विफल हो गया। पकड़ो कि यह कैसे संभव है?</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="button_reinstall">फिर से इंस्टॉल</string>
|
||||||
<string name="version_installed">(इन्स्टॉल्ड</string>
|
<string name="version_installed">(इन्स्टॉल्ड</string>
|
||||||
<string name="latest">लेट्इस्ट</string>
|
<string name="latest">लेट्इस्ट</string>
|
||||||
<string name="successfully_installed">सफलतापूर्वक इन्स्टॉल्ड %1$s</string>
|
<string name="successfully_installed">सफलतापूर्वक इन्स्टॉल्ड %1$s</string>
|
||||||
<string name="network_error">नेटवर्क कनेक्शन अनुपलब्ध है</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="root_not_granted">रूट एक्सेस प्रदान नही किया गया</string>
|
||||||
<string name="unavailable">अनुपलब्ध</string>
|
<string name="unavailable">अनुपलब्ध</string>
|
||||||
<string name="update">अपडेट करें</string>
|
<string name="update">अपडेट करें</string>
|
||||||
<string name="useful_links">उपयोगी लिंक्स </string>
|
<string name="useful_links">उपयोगी लिंक्स </string>
|
||||||
<string name="website_text">वेबसाइट</string>
|
<string name="website_text">वेबसाइट</string>
|
||||||
<string name="support_us">हमें सपॉर्ट कीजिये!</string>
|
<string name="support_us">हमें सपॉर्ट कीजिये!</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="version_toast">%1$s संस्करण कॉपी किया गया था!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">एक्सेंट रंग</string>
|
<string name="accent_color">एक्सेंट रंग</string>
|
||||||
<string name="accent_blue">नीला</string>
|
<string name="accent_blue">नीला</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">बैंगनी</string>
|
<string name="accent_purple">बैंगनी</string>
|
||||||
<string name="accent_red">लाल</string>
|
<string name="accent_red">लाल</string>
|
||||||
<string name="accent_yellow">पीला</string>
|
<string name="accent_yellow">पीला</string>
|
||||||
<string name="check_updates">अपडेट के लिए जाँचे</string>
|
|
||||||
<string name="category_interface">इंटरफेस</string>
|
<string name="category_interface">इंटरफेस</string>
|
||||||
<string name="category_manager">मैनेजर</string>
|
<string name="category_manager">मैनेजर</string>
|
||||||
|
<string name="check_updates">अपडेट के लिए जाँचे</string>
|
||||||
<string name="chosen_install_values">इंस्टालेशन चुनाव</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="chosen_theme">थीम: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Clear downloaded files</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Successfully cleared files</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">थीम</string>
|
||||||
<string name="theme_follow">सिस्टम का पालन करें</string>
|
<string name="theme_follow">सिस्टम का पालन करें</string>
|
||||||
<string name="theme_dark">डार्क थीम</string>
|
<string name="theme_dark">डार्क थीम</string>
|
||||||
<string name="theme_light">लाइट थीम</string>
|
<string name="theme_light">लाइट थीम</string>
|
||||||
<string name="update_url">चैनल URL अपडेट करें</string>
|
<string name="update_url">चैनल URL अपडेट करें</string>
|
||||||
<string name="push_notifications">सूचनाएं भेजना</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">अपडेट जारी होने पर पुश सूचनाएं प्राप्त करें</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="re_check">री-चेक</string>
|
||||||
<string name="update_center">अपडेट केंद्र</string>
|
<string name="update_center">अपडेट केंद्र</string>
|
||||||
<string name="update_found">अपडेट मिला!</string>
|
<string name="update_found">अपडेट मिला!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">डिस्मिस</string>
|
<string name="button_dismiss">डिस्मिस</string>
|
||||||
<string name="guide">गाइड</string>
|
<string name="guide">गाइड</string>
|
||||||
<string name="hold_on">रुको!</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_title">पता लगाया MiUI उपयोगकर्ता!</string>
|
||||||
<string name="miui_one">अरे! लगता है कि आप MiUI उपयोगकर्ता हैं। Vanced Manager को ठीक से उपयोग करने के लिए, आपको डेवलपर सेटिंग में MiUI ऑप्टिमाइज़ेशन को अक्षम करना होगा
|
<string name="miui_one">अरे! लगता है कि आप MiUI उपयोगकर्ता हैं। Vanced Manager को ठीक से उपयोग करने के लिए, आपको डेवलपर सेटिंग में MiUI ऑप्टिमाइज़ेशन को अक्षम करना होगा
|
||||||
हालाँकि, यदि आप 20.2.20 ROM पर हैं जो xiaomi.eu पर आधारित है, तो आप इस चेतावनी को सुरक्षित रूप से अनदेखा कर सकते हैं।</string>
|
हालाँकि, यदि आप 20.2.20 ROM पर हैं जो xiaomi.eu पर आधारित है, तो आप इस चेतावनी को सुरक्षित रूप से अनदेखा कर सकते हैं।</string>
|
||||||
|
|
|
@ -1,94 +1,97 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">Bezárás</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">Visszaállítás</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Mentés</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">Rólunk</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">Kezdőlap</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">Beállítások</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Changelogs</string>
|
<string name="changelogs">Változtatások</string>
|
||||||
<string name="downloading_file">Downloading %1$s</string>
|
<string name="downloading_file">%1$s letöltése</string>
|
||||||
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
|
<string name="failed_uninstall">A %1$s-t nem sikerült eltávolítani</string>
|
||||||
<string name="error_downloading">Error Downloading %1$s</string>
|
<string name="error_downloading">%1$s letöltése nem sikerült</string>
|
||||||
<string name="install">Install</string>
|
<string name="install">Telepítés</string>
|
||||||
<string name="installing_app">Installing %1$s</string>
|
<string name="installing_app">%1$s telepítése</string>
|
||||||
<string name="installation_aborted">Operation failed because the user aborted the installation.</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">Operation failed because the user blocked the installation.</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_conflict">Operation failed because the app conflicts with an already installed app.</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_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</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_incompatible">Operation failed because the app is incompatible with your device.</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_invalid">Operation failed because the apk files are invalid.</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_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
|
<string name="installation_invalid">Művelet végrehajtása nem sikerült, mert a telepítőcsomagok érvénytelenek.</string>
|
||||||
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
|
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
|
||||||
<string name="installation_storage">Operation failed due to a storage error.</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_wait">Please wait until the installation finishes</string>
|
<string name="installation_storage">Tárhely hiba miatt a művelet megszakadt.</string>
|
||||||
<string name="button_reinstall">Reinstall</string>
|
<string name="installation_wait">Várj míg a telepítés befejeződik…</string>
|
||||||
<string name="version_installed">Installed:</string>
|
<string name="button_reinstall">Újratelepítés</string>
|
||||||
<string name="latest">Latest:</string>
|
<string name="version_installed">Telepítve:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="latest">Legújabb:</string>
|
||||||
<string name="network_error">Network connection unavailable</string>
|
<string name="successfully_installed">%1$s sikeresen telepítve</string>
|
||||||
<string name="no_microg">No MicroG!</string>
|
<string name="network_error">Nincs internetkapcsolat</string>
|
||||||
<string name="root_not_granted">Root access not granted</string>
|
<string name="no_microg">microG nincs telepítve</string>
|
||||||
<string name="unavailable">Unavailable</string>
|
<string name="root_not_granted">Nincs root jogosultság</string>
|
||||||
<string name="update">Update</string>
|
<string name="unavailable">Nem elérhető</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="update">Frissítés</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="useful_links">Hasznos hivatkozások</string>
|
||||||
<string name="support_us">Support us!</string>
|
<string name="website_text">Honlap</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="support_us">Támogasson bennünket!</string>
|
||||||
|
<string name="version_toast">%1$s verzió másolva!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Accent Color</string>
|
<string name="accent_color">Kiemelés színe</string>
|
||||||
<string name="accent_blue">Blue</string>
|
<string name="accent_blue">Kék</string>
|
||||||
<string name="accent_green">Green</string>
|
<string name="accent_green">Zöld</string>
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Lila</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Vörös</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Sárga</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
<string name="category_interface">Kezelőfelület</string>
|
||||||
<string name="category_interface">Interface</string>
|
|
||||||
<string name="category_manager">Manager</string>
|
<string name="category_manager">Manager</string>
|
||||||
<string name="chosen_install_values">Chosen installation preferences</string>
|
<string name="check_updates">Frissítések ellenőrzése</string>
|
||||||
<string name="chosen_lang">Language: %1$s</string>
|
<string name="chosen_install_values">Telepítési preferencia</string>
|
||||||
<string name="chosen_theme">Theme: %1$s</string>
|
<string name="chosen_lang">Language(s): %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="chosen_theme">Téma: %1$s</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="clear_files">Clear downloaded files</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</string>
|
<string name="cleared_files">Successfully cleared files</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="link_title">Egyéni Chrome lapok használata</string>
|
||||||
<string name="theme_follow">Follow System</string>
|
<string name="link_custom_tabs">A linkek egyéni Chrome ablakban nyílnak meg</string>
|
||||||
<string name="theme_dark">Dark Theme</string>
|
<string name="link_external_browser">A linkek egy külső böngészőben nyílnak meg</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme">Kinézet</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="theme_follow">Rendszertéma követése</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="theme_dark">Sötét téma</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
|
<string name="theme_light">Világos téma</string>
|
||||||
<string name="re_check">Re-check</string>
|
<string name="update_url">Frissítési csatorna</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
|
||||||
<string name="update_notfound">No new updates</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 -->
|
<!-- Dialogs -->
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">Bezár</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Útmutató</string>
|
||||||
<string name="hold_on">Hold on!</string>
|
<string name="hold_on">Figyelem!</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_title">MIUI észlelve!</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="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">Error</string>
|
<string name="error">Hiba</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="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">Success!</string>
|
<string name="success">Kész!</string>
|
||||||
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
|
<string name="vanced_installed">Vanced sikeresen telepítve! Elindítod most?</string>
|
||||||
<string name="launch">Launch</string>
|
<string name="launch">Indítás</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Üdvözöljük</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
|
<string name="choose_preferred_language">Preferált nyelv választása</string>
|
||||||
<string name="choose_preferred_language_note">Note: English will always be installed as an additional language as well.</string>
|
<string name="choose_preferred_language_note">Az angol mindíg telepítve lesz, mint választható nyelv.</string>
|
||||||
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
|
<string name="choose_preferred_theme">Vanced téma kiválasztása</string>
|
||||||
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</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">Finish</string>
|
<string name="finish">Kész</string>
|
||||||
<string name="install_light_black">Light + Black</string>
|
<string name="install_light_black">Világos + Sötét</string>
|
||||||
<string name="install_light_dark">Light + Dark</string>
|
<string name="install_light_dark">Világos + Fekete</string>
|
||||||
<string name="next">Next</string>
|
<string name="next">Következő</string>
|
||||||
<!-- About Page -->
|
<!-- About Page -->
|
||||||
<string name="manager_dev">Manager Dev</string>
|
<string name="manager_dev">Vezető fejlesztő</string>
|
||||||
<string name="sources">Sources</string>
|
<string name="sources">Források</string>
|
||||||
<string name="vanced_team">Vanced Team</string>
|
<string name="vanced_team">Vanced csapat</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Memasang %1$s</string>
|
<string name="installing_app">Memasang %1$s</string>
|
||||||
<string name="installation_aborted">Proses gagal karena pengguna membatalkan instalasi.</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_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_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_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_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_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_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_storage">Proses gagal karena kesalahan penyimpanan.</string>
|
||||||
<string name="installation_wait">Mohon tunggu sampai instalasi selesai</string>
|
<string name="installation_wait">Mohon tunggu sampai instalasi selesai</string>
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
<string name="latest">Terbaru:</string>
|
<string name="latest">Terbaru:</string>
|
||||||
<string name="successfully_installed">Berhasil dipasang %1$s</string>
|
<string name="successfully_installed">Berhasil dipasang %1$s</string>
|
||||||
<string name="network_error">Koneksi internet tidak tersedia</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="root_not_granted">Akses Root tidak diberikan</string>
|
||||||
<string name="unavailable">Tidak tersedia</string>
|
<string name="unavailable">Tidak tersedia</string>
|
||||||
<string name="update">Perbarui</string>
|
<string name="update">Perbarui</string>
|
||||||
<string name="useful_links">Tautan Berguna</string>
|
<string name="useful_links">Tautan Berguna</string>
|
||||||
<string name="website_text">Situs</string>
|
<string name="website_text">Situs</string>
|
||||||
<string name="support_us">Dukung kami!</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 -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Aksen Warna</string>
|
<string name="accent_color">Aksen Warna</string>
|
||||||
<string name="accent_blue">Biru</string>
|
<string name="accent_blue">Biru</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">Ungu</string>
|
<string name="accent_purple">Ungu</string>
|
||||||
<string name="accent_red">Merah</string>
|
<string name="accent_red">Merah</string>
|
||||||
<string name="accent_yellow">Kuning</string>
|
<string name="accent_yellow">Kuning</string>
|
||||||
<string name="check_updates">Cek pembaruan</string>
|
|
||||||
<string name="category_interface">Antarmuka</string>
|
<string name="category_interface">Antarmuka</string>
|
||||||
<string name="category_manager">Manager</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_install_values">Preferensi instalasi yang dipilih</string>
|
||||||
<string name="chosen_lang">Bahasa: %1$s</string>
|
<string name="chosen_lang">Bahasa: %1$s</string>
|
||||||
<string name="chosen_theme">Tema: %1$s</string>
|
<string name="chosen_theme">Tema: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Hapus file yang diunduh</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Berhasil menghapus file</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">Tema</string>
|
||||||
<string name="theme_follow">Ikuti Sistem</string>
|
<string name="theme_follow">Ikuti Sistem</string>
|
||||||
<string name="theme_dark">Tema Gelap</string>
|
<string name="theme_dark">Tema Gelap</string>
|
||||||
<string name="theme_light">Tema Terang</string>
|
<string name="theme_light">Tema Terang</string>
|
||||||
<string name="update_url">Perbarui URL Channel</string>
|
<string name="update_url">Perbarui URL Channel</string>
|
||||||
<string name="push_notifications">Notifikasi Push</string>
|
<string name="push_notifications">%1$s Notifikasi Push</string>
|
||||||
<string name="push_notifications_summary">Terima notifikasi push saat pembaruan dirilis</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="re_check">Cek ulang</string>
|
||||||
<string name="update_center">Pusat Pembaruan Manager</string>
|
<string name="update_center">Pusat Pembaruan Manager</string>
|
||||||
<string name="update_found">Pembaruan ditemukan!</string>
|
<string name="update_found">Pembaruan ditemukan!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Hilangkan</string>
|
<string name="button_dismiss">Hilangkan</string>
|
||||||
<string name="guide">Petunjuk</string>
|
<string name="guide">Petunjuk</string>
|
||||||
<string name="hold_on">Tahan!</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_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="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>
|
<string name="error">Terjadi kesalahan</string>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Installazione in corso di %1$s</string>
|
<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_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_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_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_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_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_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_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_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>
|
<string name="installation_wait">Per favore, attendi la conclusione dell\'installazione</string>
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
<string name="latest">Ultima versione:</string>
|
<string name="latest">Ultima versione:</string>
|
||||||
<string name="successfully_installed">%1$s installato con successo</string>
|
<string name="successfully_installed">%1$s installato con successo</string>
|
||||||
<string name="network_error">Connessione alla rete non disponibile</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="root_not_granted">Non è stato fornito l\'accesso di root</string>
|
||||||
<string name="unavailable">Non disponibile</string>
|
<string name="unavailable">Non disponibile</string>
|
||||||
<string name="update">Aggiorna</string>
|
<string name="update">Aggiorna</string>
|
||||||
<string name="useful_links">Link utili</string>
|
<string name="useful_links">Link utili</string>
|
||||||
<string name="website_text">Sito web</string>
|
<string name="website_text">Sito web</string>
|
||||||
<string name="support_us">Sostienici!</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 -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Colore evidenziatore</string>
|
<string name="accent_color">Colore evidenziatore</string>
|
||||||
<string name="accent_blue">Blu</string>
|
<string name="accent_blue">Blu</string>
|
||||||
|
@ -45,12 +46,14 @@
|
||||||
<string name="accent_purple">Viola</string>
|
<string name="accent_purple">Viola</string>
|
||||||
<string name="accent_red">Rosso</string>
|
<string name="accent_red">Rosso</string>
|
||||||
<string name="accent_yellow">Giallo</string>
|
<string name="accent_yellow">Giallo</string>
|
||||||
<string name="check_updates">Verifica aggiornamenti</string>
|
|
||||||
<string name="category_interface">Interfaccia</string>
|
<string name="category_interface">Interfaccia</string>
|
||||||
<string name="category_manager">Manager</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_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="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_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_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>
|
<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_dark">Tema scuro</string>
|
||||||
<string name="theme_light">Tema chiaro</string>
|
<string name="theme_light">Tema chiaro</string>
|
||||||
<string name="update_url">Aggiorna l\'URL del canale</string>
|
<string name="update_url">Aggiorna l\'URL del canale</string>
|
||||||
<string name="push_notifications">Notifiche push</string>
|
<string name="push_notifications">Notifiche push di %1$s</string>
|
||||||
<string name="push_notifications_summary">Riceverai le notifiche push non appena sarà disponibile un aggiornamento</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="re_check">Ricontrolla</string>
|
||||||
<string name="update_center">Centro aggiornamenti</string>
|
<string name="update_center">Centro aggiornamenti</string>
|
||||||
<string name="update_found">Aggiornamento trovato!</string>
|
<string name="update_found">Aggiornamento trovato!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Ignora</string>
|
<string name="button_dismiss">Ignora</string>
|
||||||
<string name="guide">Guida</string>
|
<string name="guide">Guida</string>
|
||||||
<string name="hold_on">Aspetta!</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_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="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>
|
<string name="error">Errore</string>
|
||||||
|
|
|
@ -1,94 +1,97 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">סגור</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">איפוס</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">שמור</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">אודות</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">בית</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">הגדרות</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Changelogs</string>
|
<string name="changelogs">שינויים</string>
|
||||||
<string name="downloading_file">Downloading %1$s</string>
|
<string name="downloading_file">מוריד את %1$s</string>
|
||||||
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
|
<string name="failed_uninstall">יש בעיה במחיקת החבילה %1$s</string>
|
||||||
<string name="error_downloading">Error Downloading %1$s</string>
|
<string name="error_downloading">בעיה בהורדה של %1$s</string>
|
||||||
<string name="install">Install</string>
|
<string name="install">התקנה</string>
|
||||||
<string name="installing_app">Installing %1$s</string>
|
<string name="installing_app">מתקין את %1$s</string>
|
||||||
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">הפעולה נכשלה מכיוון שהמשתמש ביטל את ההתקנה.</string>
|
||||||
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
|
<string name="installation_blocked">הפעולה נכשלה מכיוון שהמשתמש חסם את ההתקנה.</string>
|
||||||
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</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_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
|
<string name="installation_conflict">הפעולה נכשלה מכיוון שהאפליקציה סותרת עם אפליקציה שכבר מותקנת.</string>
|
||||||
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</string>
|
<string name="installation_failed">הפעולה נכשלה בגלל סיבה אינה ידועה, בבקשה הצטרפו לטלגרם או דיסקורד שלנו בשביל עזרה.</string>
|
||||||
<string name="installation_invalid">Operation failed because the apk files are invalid.</string>
|
<string name="installation_incompatible">הפעולה נכשלה משום שהאפליקציה אינה תואמת למכשירך.</string>
|
||||||
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
|
<string name="installation_invalid">הפעולה נכשלה משום שהAPK אינו תקין.</string>
|
||||||
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
|
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
|
||||||
<string name="installation_storage">Operation failed due to a storage error.</string>
|
<string name="installation_miui">שגיאה לא צפויה התרחשה בזמן ההתקנה. האם ביטלת את MIUI Optimisations?</string>
|
||||||
<string name="installation_wait">Please wait until the installation finishes</string>
|
<string name="installation_storage">הפעולה נכשלה בגלל בעיה באחסון.</string>
|
||||||
<string name="button_reinstall">Reinstall</string>
|
<string name="installation_wait">אנא המתינו לסיום ההתקנה</string>
|
||||||
<string name="version_installed">Installed:</string>
|
<string name="button_reinstall">התקן מחדש</string>
|
||||||
<string name="latest">Latest:</string>
|
<string name="version_installed">מותקן:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="latest">החדש ביותר:</string>
|
||||||
<string name="network_error">Network connection unavailable</string>
|
<string name="successfully_installed">הותקן בהצלחה %1$s</string>
|
||||||
<string name="no_microg">No MicroG!</string>
|
<string name="network_error">חיבור לרשת אינו זמין</string>
|
||||||
<string name="root_not_granted">Root access not granted</string>
|
<string name="no_microg">microG isn\'t installed</string>
|
||||||
<string name="unavailable">Unavailable</string>
|
<string name="root_not_granted">הרשאות Root אינן הוענקו</string>
|
||||||
<string name="update">Update</string>
|
<string name="unavailable">אינו זמין</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="update">עדכן</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="useful_links">קישורים שימושיים</string>
|
||||||
<string name="support_us">Support us!</string>
|
<string name="website_text">אתר</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="support_us">תמכו בנו!</string>
|
||||||
|
<string name="version_toast">הגרסה של %1$s הועתקה!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Accent Color</string>
|
<string name="accent_color">צבע הדגשה</string>
|
||||||
<string name="accent_blue">Blue</string>
|
<string name="accent_blue">כחול</string>
|
||||||
<string name="accent_green">Green</string>
|
<string name="accent_green">ירוק</string>
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">סגול</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">אדום</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">צהוב</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
<string name="category_interface">ממשק</string>
|
||||||
<string name="category_interface">Interface</string>
|
<string name="category_manager">מנהל</string>
|
||||||
<string name="category_manager">Manager</string>
|
<string name="check_updates">בדוק אחר עדכונים</string>
|
||||||
<string name="chosen_install_values">Chosen installation preferences</string>
|
<string name="chosen_install_values">העדפות התקנה שנבחרו</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="chosen_theme">ערכת נושא: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Clear downloaded files</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Successfully cleared files</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</string>
|
<string name="link_title">השתמש בכרטיסייה מותאמת אישית של Chrome</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="link_custom_tabs">קישורים יפתחו בכרטיסיות מותאמות אישית של Chrome</string>
|
||||||
<string name="theme_follow">Follow System</string>
|
<string name="link_external_browser">קישורים יפתחו בדפדפן חיצוני</string>
|
||||||
<string name="theme_dark">Dark Theme</string>
|
<string name="theme">ערכת נושא</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme_follow">בהתאם למערכת</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="theme_dark">ערכת נושא כהה</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="theme_light">ערכת נושא בהירה</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
|
<string name="update_url">קישור ערוץ עדכון</string>
|
||||||
<string name="re_check">Re-check</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="re_check">בדיקה מחדש</string>
|
||||||
<string name="update_notfound">No new updates</string>
|
<string name="update_center">מרכז העדכונים</string>
|
||||||
|
<string name="update_found">עדכון נמצא!</string>
|
||||||
|
<string name="update_notfound">אין עדכונים חדשים</string>
|
||||||
<!-- Dialogs -->
|
<!-- Dialogs -->
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">התעלם</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">מדריך</string>
|
||||||
<string name="hold_on">Hold on!</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 detected!</string>
|
<string name="miui_one_title">MIUI זוהה!</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="miui_one">היי! נראה שאתה משתמש MIUI. בכדי להתשמש באפליקציה זו בצורה מיטבית, תצטרך לבטל את MIUI optimisations באפשרויות מפתחים (ניתן להתעלם מאזהרה זו אם אתה מתשמש ברום מגרסה 20.2.20 ומעלה שמבוסס על xiaomi.eu.)</string>
|
||||||
<string name="error">Error</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="security_context">אנא וודא שהורדת את האפליקציה מvanced.app, ערוץ הדיסקורד של Vanced או הגיטהאב.</string>
|
||||||
<string name="success">Success!</string>
|
<string name="success">הצלחה!</string>
|
||||||
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
|
<string name="vanced_installed">Vanced הותקן בהצלחה! לפתוח עכשיו?</string>
|
||||||
<string name="launch">Launch</string>
|
<string name="launch">התחל</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">ברוכים הבאים</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
|
<string name="choose_preferred_language">בחר את השפה המועדפת עליך ל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_language_note">תזכורת: אנגלית תמיד תהיה מותקנת בתור שפה נוספת.</string>
|
||||||
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
|
<string name="choose_preferred_theme">בחר את המראה מועדף שלך בשביל Vanced</string>
|
||||||
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
|
<string name="disable_signature">זוהה מצב רוט! על מנת להתקין את Vanced, תצטרך לבטל את ווידוא החתימה לAPK.</string>
|
||||||
<string name="finish">Finish</string>
|
<string name="finish">סיום</string>
|
||||||
<string name="install_light_black">Light + Black</string>
|
<string name="install_light_black">בהיר + שחור</string>
|
||||||
<string name="install_light_dark">Light + Dark</string>
|
<string name="install_light_dark">בהיר + כהה</string>
|
||||||
<string name="next">Next</string>
|
<string name="next">הבא</string>
|
||||||
<!-- About Page -->
|
<!-- About Page -->
|
||||||
<string name="manager_dev">Manager Dev</string>
|
<string name="manager_dev">מפתח המנהל</string>
|
||||||
<string name="sources">Sources</string>
|
<string name="sources">מקורות</string>
|
||||||
<string name="vanced_team">Vanced Team</string>
|
<string name="vanced_team">צוות Vanced</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">%1$s をインストールしています</string>
|
<string name="installing_app">%1$s をインストールしています</string>
|
||||||
<string name="installation_aborted">ユーザーがインストールを中断したため操作に失敗しました</string>
|
<string name="installation_aborted">ユーザーがインストールを中断したため操作に失敗しました</string>
|
||||||
<string name="installation_blocked">ユーザーがインストールをブロックしたため操作に失敗しました</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_conflict">すでにインストールされているアプリと競合したため操作に失敗しました</string>
|
||||||
<string name="installation_failed">何らかの理由により操作に失敗しました</string>
|
<string name="installation_failed">何らかの理由により操作に失敗しました</string>
|
||||||
<string name="installation_incompatible">お使いのデバイスと互換性がないため操作に失敗しました</string>
|
<string name="installation_incompatible">お使いのデバイスと互換性がないため操作に失敗しました</string>
|
||||||
<string name="installation_invalid">APK ファイルが正しくないため操作に失敗しました</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_miui">予期されないエラーが Vanced のインストール中に発生しました。MIUI の最適化を無効にしましたか?</string>
|
||||||
<string name="installation_storage">ストレージのエラーにより操作に失敗しました</string>
|
<string name="installation_storage">ストレージのエラーにより操作に失敗しました</string>
|
||||||
<string name="installation_wait">インストールが完了するまでお待ちください</string>
|
<string name="installation_wait">インストールが完了するまでお待ちください</string>
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
<string name="latest">最新版:</string>
|
<string name="latest">最新版:</string>
|
||||||
<string name="successfully_installed">%1$s のインストールに成功しました</string>
|
<string name="successfully_installed">%1$s のインストールに成功しました</string>
|
||||||
<string name="network_error">インターネット接続が利用できません</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="root_not_granted">Root アクセスは許可されていません</string>
|
||||||
<string name="unavailable">利用不可</string>
|
<string name="unavailable">利用不可</string>
|
||||||
<string name="update">更新</string>
|
<string name="update">更新</string>
|
||||||
<string name="useful_links">リンク集</string>
|
<string name="useful_links">リンク集</string>
|
||||||
<string name="website_text">Vanced の公式Webサイト</string>
|
<string name="website_text">Vanced の公式Webサイト</string>
|
||||||
<string name="support_us">Brave をダウンロードして支援する</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 -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">アクセントカラー</string>
|
<string name="accent_color">アクセントカラー</string>
|
||||||
<string name="accent_blue">青</string>
|
<string name="accent_blue">青</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">紫</string>
|
<string name="accent_purple">紫</string>
|
||||||
<string name="accent_red">赤</string>
|
<string name="accent_red">赤</string>
|
||||||
<string name="accent_yellow">黄</string>
|
<string name="accent_yellow">黄</string>
|
||||||
<string name="check_updates">アップデートの確認</string>
|
|
||||||
<string name="category_interface">インターフェース</string>
|
<string name="category_interface">インターフェース</string>
|
||||||
<string name="category_manager">Manager</string>
|
<string name="category_manager">Manager</string>
|
||||||
|
<string name="check_updates">アップデートの確認</string>
|
||||||
<string name="chosen_install_values">選択されたインストール設定</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="chosen_theme">テーマ: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">ダウンロード済みファイルを消去</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">ファイルを消去しました</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">テーマ</string>
|
||||||
<string name="theme_follow">システムに従う</string>
|
<string name="theme_follow">システムに従う</string>
|
||||||
<string name="theme_dark">ダークテーマ</string>
|
<string name="theme_dark">ダークテーマ</string>
|
||||||
<string name="theme_light">ライトテーマ</string>
|
<string name="theme_light">ライトテーマ</string>
|
||||||
<string name="update_url">アップデート チャンネル URL</string>
|
<string name="update_url">アップデート チャンネル URL</string>
|
||||||
<string name="push_notifications">プッシュ通知</string>
|
<string name="push_notifications">%1$s プッシュ通知</string>
|
||||||
<string name="push_notifications_summary">アップデートがリリースされたときに通知を受け取る</string>
|
<string name="push_notifications_summary">%1$s のアップデートがリリースされたときにプッシュ通知を受け取る</string>
|
||||||
<string name="re_check">再チェック</string>
|
<string name="re_check">再チェック</string>
|
||||||
<string name="update_center">アップデート センター</string>
|
<string name="update_center">アップデート センター</string>
|
||||||
<string name="update_found">アップデートがあります!</string>
|
<string name="update_found">アップデートがあります!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">閉じる</string>
|
<string name="button_dismiss">閉じる</string>
|
||||||
<string name="guide">ガイド</string>
|
<string name="guide">ガイド</string>
|
||||||
<string name="hold_on">ちょっと待った!</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_title">MIUI ユーザーを検知しました!</string>
|
||||||
<string name="miui_one">あなたは MIUI ユーザーのようです。Vanced Manager を適切に利用するには、開発者向けオプションから MIUI の最適化を無効にする必要があります。
|
<string name="miui_one">あなたは MIUI ユーザーのようです。Vanced Manager を適切に利用するには、開発者向けオプションから MIUI の最適化を無効にする必要があります。
|
||||||
ただし、xiaomi.eu ベースの 20.2.20 ROM をお使いの場合は、この警告を無視しても問題ありません。</string>
|
ただし、xiaomi.eu ベースの 20.2.20 ROM をお使いの場合は、この警告を無視しても問題ありません。</string>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">მიმდინარეობს %1$s-ის ინსტალაცია</string>
|
<string name="installing_app">მიმდინარეობს %1$s-ის ინსტალაცია</string>
|
||||||
<string name="installation_aborted">ოპერაცია ჩაიშალა რადგან მომხმარებელმა შეაჩერა ინსტალაცია.</string>
|
<string name="installation_aborted">ოპერაცია ჩაიშალა რადგან მომხმარებელმა შეაჩერა ინსტალაცია.</string>
|
||||||
<string name="installation_blocked">ოპერაცია ჩაიშალა რადგან მომხმარებელმა დაბლოკა ინსტალაცია.</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_conflict">ოპერაცია ჩაიშალა რადგან აპი შეესაბამება უკვე დაყენებულ აპს.</string>
|
||||||
<string name="installation_failed">ოპერაცია ჩაიშალა გაურკვეველი მიზეზის გამო, გთხოვთ გამოგვიგზავნეთ logcat.</string>
|
<string name="installation_failed">ოპერაცია ჩაიშალა გაურკვეველი მიზეზის გამო, გთხოვთ გამოგვიგზავნეთ logcat.</string>
|
||||||
<string name="installation_incompatible">ოპერაცია ჩაიშალა რადგან აპი შეუთავსებელია თქვნს მოწყობილობასთან.</string>
|
<string name="installation_incompatible">ოპერაცია ჩაიშალა რადგან აპი შეუთავსებელია თქვნს მოწყობილობასთან.</string>
|
||||||
<string name="installation_invalid">ოპერაცია ჩაიშალა რადგან apk ფაილები დაზიანებულია.</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_miui">გაურკვეველი შეცდომა Vanced-ის დაყენების დროს. ნამდვილად გამორთეთ MIUI-ის ოპტიმიზაციები?</string>
|
||||||
<string name="installation_storage">ოპერაცია ჩაიშალა რადგან შეცდომაა მეხსიერებასთან დაკავშირებით.</string>
|
<string name="installation_storage">ოპერაცია ჩაიშალა რადგან შეცდომაა მეხსიერებასთან დაკავშირებით.</string>
|
||||||
<string name="installation_wait">გთხოვთ დაიცადოთ ინსტალაციის დასრულებამდე</string>
|
<string name="installation_wait">გთხოვთ დაიცადოთ ინსტალაციის დასრულებამდე</string>
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
<string name="latest">უახლესი:</string>
|
<string name="latest">უახლესი:</string>
|
||||||
<string name="successfully_installed">წარმატებით დაყენდა %1$s</string>
|
<string name="successfully_installed">წარმატებით დაყენდა %1$s</string>
|
||||||
<string name="network_error">კავშირი არ არის</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="root_not_granted">Root წვდომა არ არის მინიჭებული</string>
|
||||||
<string name="unavailable">ხელმიუწვდომელია</string>
|
<string name="unavailable">ხელმიუწვდომელია</string>
|
||||||
<string name="update">განახლება</string>
|
<string name="update">განახლება</string>
|
||||||
<string name="useful_links">საჭირო ლინკები</string>
|
<string name="useful_links">საჭირო ლინკები</string>
|
||||||
<string name="website_text">Vanced-ის ოფიციალური ვებსაიტი</string>
|
<string name="website_text">Vanced-ის ოფიციალური ვებსაიტი</string>
|
||||||
<string name="support_us">დაგვიჭირეთ მხარი Brave-ის გადმოწერით</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 -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">აქცენტის ფერი</string>
|
<string name="accent_color">აქცენტის ფერი</string>
|
||||||
<string name="accent_blue">ლურჯი</string>
|
<string name="accent_blue">ლურჯი</string>
|
||||||
|
@ -45,12 +46,14 @@
|
||||||
<string name="accent_purple">იისფერი</string>
|
<string name="accent_purple">იისფერი</string>
|
||||||
<string name="accent_red">წითელი</string>
|
<string name="accent_red">წითელი</string>
|
||||||
<string name="accent_yellow">ყვითელი</string>
|
<string name="accent_yellow">ყვითელი</string>
|
||||||
<string name="check_updates">განახლებების შემოწმება</string>
|
|
||||||
<string name="category_interface">ინტერფეისი</string>
|
<string name="category_interface">ინტერფეისი</string>
|
||||||
<string name="category_manager">მენეჯერი</string>
|
<string name="category_manager">მენეჯერი</string>
|
||||||
|
<string name="check_updates">განახლებების შემოწმება</string>
|
||||||
<string name="chosen_install_values">არჩეული ინსტალაციის რეჟიმები</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="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_title">გამოიყენეთ Chrome Custom Tabs</string>
|
||||||
<string name="link_custom_tabs">ლინკები გაიხსნება Chrome Custom Tabs-ში</string>
|
<string name="link_custom_tabs">ლინკები გაიხსნება Chrome Custom Tabs-ში</string>
|
||||||
<string name="link_external_browser">ლინკები გაიხსნება გარე ბრაუზერში</string>
|
<string name="link_external_browser">ლინკები გაიხსნება გარე ბრაუზერში</string>
|
||||||
|
@ -59,8 +62,8 @@
|
||||||
<string name="theme_dark">მუქი თემა</string>
|
<string name="theme_dark">მუქი თემა</string>
|
||||||
<string name="theme_light">ღია თემა</string>
|
<string name="theme_light">ღია თემა</string>
|
||||||
<string name="update_url">განახლების არხის URL</string>
|
<string name="update_url">განახლების არხის URL</string>
|
||||||
<string name="push_notifications">შეტყობინებები</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">მიიღეთ შეტყობინება როდესაც განახლება გამოვა</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="re_check">გადამოწმება</string>
|
||||||
<string name="update_center">განახლების ცენტრი</string>
|
<string name="update_center">განახლების ცენტრი</string>
|
||||||
<string name="update_found">ნაპოვნია განახლება!</string>
|
<string name="update_found">ნაპოვნია განახლება!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">დახურვა</string>
|
<string name="button_dismiss">დახურვა</string>
|
||||||
<string name="guide">ინსტრუქცია</string>
|
<string name="guide">ინსტრუქცია</string>
|
||||||
<string name="hold_on">დაიცა!</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_title">აღმოჩენილია MIUI-ის მომხმარებელი!</string>
|
||||||
<string name="miui_one">როგორც ჩანს ტქვენ MIUI-ის მომხმარებელი ხართ. იმისთვის რომ მენეჯერმა სწორედ იმუშავოს, თქვენ უნდა გამორთოთ MIUI-ის ოპტიმიზაციები დეველოპერის პარამეტრებიდან.
|
<string name="miui_one">როგორც ჩანს ტქვენ MIUI-ის მომხმარებელი ხართ. იმისთვის რომ მენეჯერმა სწორედ იმუშავოს, თქვენ უნდა გამორთოთ MIUI-ის ოპტიმიზაციები დეველოპერის პარამეტრებიდან.
|
||||||
მაგრამ, თუ თქვენ ხართ სისტემის 20.2.20 (ან უფრო მაღალ) ვერსიაზე რომელიც დაფუძნებულია xiaomi.eu-ზე, შეგიძლიათ დააიგნოროთ ეს გაფრთხილება.</string>
|
მაგრამ, თუ თქვენ ხართ სისტემის 20.2.20 (ან უფრო მაღალ) ვერსიაზე რომელიც დაფუძნებულია xiaomi.eu-ზე, შეგიძლიათ დააიგნოროთ ეს გაფრთხილება.</string>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">%1$s 설치 중</string>
|
<string name="installing_app">%1$s 설치 중</string>
|
||||||
<string name="installation_aborted">사용자가 설치를 중단했기 때문에 작업이 실패했습니다.</string>
|
<string name="installation_aborted">사용자가 설치를 중단했기 때문에 작업이 실패했습니다.</string>
|
||||||
<string name="installation_blocked">사용자가 설치를 차단했기 때문에 작업이 실패했습니다.</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_conflict">앱이 이미 설치된 앱과 충돌하기 때문에 작업이 실패했습니다.</string>
|
||||||
<string name="installation_failed">알 수 없는 이유로 작업이 실패했습니다. 저희 텔레그램 또는 디스코드에 문제를 제보해주시면 해결해드리겠습니다.</string>
|
<string name="installation_failed">알 수 없는 이유로 작업이 실패했습니다. 저희 텔레그램 또는 디스코드에 문제를 제보해주시면 해결해드리겠습니다.</string>
|
||||||
<string name="installation_incompatible">앱이 기기와 호환되지 않기 때문에 작업이 실패했습니다.</string>
|
<string name="installation_incompatible">앱이 기기와 호환되지 않기 때문에 작업이 실패했습니다.</string>
|
||||||
<string name="installation_invalid">apk 파일이 유효하지 않기 때문에 작업이 실패했습니다.</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_miui">Vanced를 설치하는 도중에 알 수 없는 오류가 발생했습니다. MIUI 최적화를 비활성화하셨나요?</string>
|
||||||
<string name="installation_storage">저장 공간에 오류가 있어서 작업에 실패했습니다.</string>
|
<string name="installation_storage">저장 공간에 오류가 있어서 작업에 실패했습니다.</string>
|
||||||
<string name="installation_wait">설치가 완료될 때까지 기다려주세요.</string>
|
<string name="installation_wait">설치가 완료될 때까지 기다려주세요.</string>
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
<string name="latest">최신:</string>
|
<string name="latest">최신:</string>
|
||||||
<string name="successfully_installed">%1$s 설치가 완료되었습니다</string>
|
<string name="successfully_installed">%1$s 설치가 완료되었습니다</string>
|
||||||
<string name="network_error">네크워크 연결을 사용할 수 없음</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="root_not_granted">루트 권한이 부여되지 않았습니다</string>
|
||||||
<string name="unavailable">사용 불가</string>
|
<string name="unavailable">사용 불가</string>
|
||||||
<string name="update">업데이트</string>
|
<string name="update">업데이트</string>
|
||||||
<string name="useful_links">참고할 만한 링크</string>
|
<string name="useful_links">참고할 만한 링크</string>
|
||||||
<string name="website_text">웹사이트</string>
|
<string name="website_text">웹사이트</string>
|
||||||
<string name="support_us">우리를 지원해주세요!</string>
|
<string name="support_us">우리를 지원해주세요!</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="version_toast">%1$s의 버전 정보가 복사되었습니다.</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">강조 색상</string>
|
<string name="accent_color">강조 색상</string>
|
||||||
<string name="accent_blue">파란색</string>
|
<string name="accent_blue">파란색</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">보라색</string>
|
<string name="accent_purple">보라색</string>
|
||||||
<string name="accent_red">빨간색</string>
|
<string name="accent_red">빨간색</string>
|
||||||
<string name="accent_yellow">노란색</string>
|
<string name="accent_yellow">노란색</string>
|
||||||
<string name="check_updates">업데이트 확인하기</string>
|
|
||||||
<string name="category_interface">인터페이스</string>
|
<string name="category_interface">인터페이스</string>
|
||||||
<string name="category_manager">관리자</string>
|
<string name="category_manager">관리자</string>
|
||||||
|
<string name="check_updates">업데이트 확인하기</string>
|
||||||
<string name="chosen_install_values">선택된 설치값</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="chosen_theme">테마: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">다운로드된 파일 모두 지우기</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">다운로드된 파일을 모두 삭제했습니다</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">테마</string>
|
||||||
<string name="theme_follow">시스템 설정과 같이</string>
|
<string name="theme_follow">시스템 설정과 같이</string>
|
||||||
<string name="theme_dark">다크 테마</string>
|
<string name="theme_dark">다크 테마</string>
|
||||||
<string name="theme_light">라이트 테마</string>
|
<string name="theme_light">라이트 테마</string>
|
||||||
<string name="update_url">업데이트 채널 URL</string>
|
<string name="update_url">업데이트 채널 URL</string>
|
||||||
<string name="push_notifications">푸시 알림</string>
|
<string name="push_notifications">%1$s 푸시 알림</string>
|
||||||
<string name="push_notifications_summary">업데이트가 출시되면 알림 받기</string>
|
<string name="push_notifications_summary">새로운 %1$s 업데이트가 출시되면 알림 받기</string>
|
||||||
<string name="re_check">재확인</string>
|
<string name="re_check">재확인</string>
|
||||||
<string name="update_center">업데이트 센터</string>
|
<string name="update_center">업데이트 센터</string>
|
||||||
<string name="update_found">업데이트를 찾았습니다!</string>
|
<string name="update_found">업데이트를 찾았습니다!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">무시</string>
|
<string name="button_dismiss">무시</string>
|
||||||
<string name="guide">가이드</string>
|
<string name="guide">가이드</string>
|
||||||
<string name="hold_on">잠시만요!</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_title">MIUI 사용자로 보입니다!</string>
|
||||||
<string name="miui_one">잠시만요! MIUI 사용자로 보입니다. Vanced Manager를 완전하게 사용하려면 개발자 설정에서 MIUI 최적화를 비활성화 해주셔야 합니다
|
<string name="miui_one">잠시만요! MIUI 사용자로 보입니다. Vanced Manager를 완전하게 사용하려면 개발자 설정에서 MIUI 최적화를 비활성화 해주셔야 합니다
|
||||||
하지만 xiaomi.eu 기반의 20.2.20 ROM (또는 이후)을 사용하신다면 이 경고를 무시하셔도 됩니다.</string>
|
하지만 xiaomi.eu 기반의 20.2.20 ROM (또는 이후)을 사용하신다면 이 경고를 무시하셔도 됩니다.</string>
|
||||||
|
|
|
@ -1,85 +1,88 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">Sluiten</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">Resetten</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Opslaan</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">Over deze app</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">StartPagina</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">Instellingen</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Changelogs</string>
|
<string name="changelogs">Veranderingen</string>
|
||||||
<string name="downloading_file">Downloading %1$s</string>
|
<string name="downloading_file">Downloaden %1$s</string>
|
||||||
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
|
<string name="failed_uninstall">Gefaalt om app te deinstalleren %1$s</string>
|
||||||
<string name="error_downloading">Error Downloading %1$s</string>
|
<string name="error_downloading">Fout opgetreden bij downloaden %1$s</string>
|
||||||
<string name="install">Install</string>
|
<string name="install">Installeer</string>
|
||||||
<string name="installing_app">Installing %1$s</string>
|
<string name="installing_app">Installeren %1$s</string>
|
||||||
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Bewerking mislukt omdat de gebruiker de installatie heeft afgebroken.</string>
|
||||||
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
|
<string name="installation_blocked">Bewerking mislukt omdat de gebruiker de installatie heeft afgebroken.</string>
|
||||||
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</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_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</string>
|
<string name="installation_conflict">Bewerking mislukt omdat de app conflicteert met een reeds geïnstalleerde app.</string>
|
||||||
<string name="installation_incompatible">Operation failed because the app is incompatible with your device.</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_invalid">Operation failed because the apk files are invalid.</string>
|
<string name="installation_incompatible">Bewerking mislukt omdat de app niet compatibel is met uw apparaat.</string>
|
||||||
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
|
<string name="installation_invalid">Bewerking mislukt omdat de apk-bestanden ongeldig zijn.</string>
|
||||||
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
|
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
|
||||||
<string name="installation_storage">Operation failed due to a storage error.</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_wait">Please wait until the installation finishes</string>
|
<string name="installation_storage">Bewerking is mislukt door een opslagfout.</string>
|
||||||
<string name="button_reinstall">Reinstall</string>
|
<string name="installation_wait">Wacht tot de installatie is voltooid</string>
|
||||||
<string name="version_installed">Installed:</string>
|
<string name="button_reinstall">Herïnstalleer</string>
|
||||||
<string name="latest">Latest:</string>
|
<string name="version_installed">Geïnstalleerd:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="latest">Laatste:</string>
|
||||||
<string name="network_error">Network connection unavailable</string>
|
<string name="successfully_installed">%1$s is succesvol geinstalleerd</string>
|
||||||
<string name="no_microg">No MicroG!</string>
|
<string name="network_error">Netwerkverbinding niet beschikbaar</string>
|
||||||
<string name="root_not_granted">Root access not granted</string>
|
<string name="no_microg">microG isn\'t installed</string>
|
||||||
<string name="unavailable">Unavailable</string>
|
<string name="root_not_granted">Root-toegang niet verleend</string>
|
||||||
<string name="update">Update</string>
|
<string name="unavailable">Niet beschikbaar</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="update">Bijwerken</string>
|
||||||
|
<string name="useful_links">Handige links</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="website_text">Website</string>
|
||||||
<string name="support_us">Support us!</string>
|
<string name="support_us">Steun ons!</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="version_toast">%1$s versie is gekopieerd!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Accent Color</string>
|
<string name="accent_color">Accent kleur</string>
|
||||||
<string name="accent_blue">Blue</string>
|
<string name="accent_blue">Blauw</string>
|
||||||
<string name="accent_green">Green</string>
|
<string name="accent_green">Groen</string>
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Paars</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Rood</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Geel</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
<string name="category_interface">Uiterlijk</string>
|
||||||
<string name="category_interface">Interface</string>
|
<string name="category_manager">Beheerder</string>
|
||||||
<string name="category_manager">Manager</string>
|
<string name="check_updates">Controleren op updates</string>
|
||||||
<string name="chosen_install_values">Chosen installation preferences</string>
|
<string name="chosen_install_values">Gekozen installatievoorkeuren</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="chosen_theme">Thema: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Clear downloaded files</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Successfully cleared files</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</string>
|
<string name="link_title">Gebruik Chrome aangepast tabblad</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="link_custom_tabs">Links zullen openen in Chrome Custom Tabs</string>
|
||||||
<string name="theme_follow">Follow System</string>
|
<string name="link_external_browser">Links worden geopend in een externe browser</string>
|
||||||
<string name="theme_dark">Dark Theme</string>
|
<string name="theme">Thema</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme_follow">Volg systeem</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="theme_dark">Donker thema</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="theme_light">Licht Thema</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
|
<string name="update_url">Kanaal URL bijwerken</string>
|
||||||
<string name="re_check">Re-check</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="re_check">Opnieuw controleren</string>
|
||||||
<string name="update_notfound">No new updates</string>
|
<string name="update_center">Manager updatecenter</string>
|
||||||
|
<string name="update_found">Updates gevonden</string>
|
||||||
|
<string name="update_notfound">Geen nieuwe updates</string>
|
||||||
<!-- Dialogs -->
|
<!-- Dialogs -->
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">Afwijzen</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Handleiding</string>
|
||||||
<string name="hold_on">Hold on!</string>
|
<string name="hold_on">Wacht even!</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_title">MIUI gedetecteerd!</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="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">Error</string>
|
<string name="error">Fout</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="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">Success!</string>
|
<string name="success">Gelukt!</string>
|
||||||
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
|
<string name="vanced_installed">Vanced is succesvol geïnstalleerd! Nu starten?</string>
|
||||||
<string name="launch">Launch</string>
|
<string name="launch">Starten</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Welkom</string>
|
||||||
<!-- Install Page -->
|
<!-- 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_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="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="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</string>
|
||||||
|
|
|
@ -1,56 +1,59 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">Lukk</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">Nullstill</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Lagre</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">Om</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">Hjem</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">Innstillinger</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Changelogs</string>
|
<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="failed_uninstall">Failed to uninstall package %1$s</string>
|
||||||
<string name="error_downloading">Error Downloading %1$s</string>
|
<string name="error_downloading">Error Downloading %1$s</string>
|
||||||
<string name="install">Install</string>
|
<string name="install">Installer</string>
|
||||||
<string name="installing_app">Installing %1$s</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_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_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_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_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_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_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_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_storage">Operation failed due to a storage error.</string>
|
||||||
<string name="installation_wait">Please wait until the installation finishes</string>
|
<string name="installation_wait">Vennligst vent til installasjonen er ferdig</string>
|
||||||
<string name="button_reinstall">Reinstall</string>
|
<string name="button_reinstall">Reinstaller</string>
|
||||||
<string name="version_installed">Installed:</string>
|
<string name="version_installed">Installert:</string>
|
||||||
<string name="latest">Latest:</string>
|
<string name="latest">Siste:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="successfully_installed">Successfully installed %1$s</string>
|
||||||
<string name="network_error">Network connection unavailable</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="root_not_granted">Root access not granted</string>
|
||||||
<string name="unavailable">Unavailable</string>
|
<string name="unavailable">Utilgjengelig</string>
|
||||||
<string name="update">Update</string>
|
<string name="update">Oppdater</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="useful_links">Useful Links</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="website_text">Nettside</string>
|
||||||
<string name="support_us">Support us!</string>
|
<string name="support_us">Støtt oss!</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="version_toast">%1$s version was copied!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Accent Color</string>
|
<string name="accent_color">Accent Color</string>
|
||||||
<string name="accent_blue">Blue</string>
|
<string name="accent_blue">Blå</string>
|
||||||
<string name="accent_green">Green</string>
|
<string name="accent_green">Grønn</string>
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Lilla</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Rød</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Gul</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
|
||||||
<string name="category_interface">Interface</string>
|
<string name="category_interface">Interface</string>
|
||||||
<string name="category_manager">Manager</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_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="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_title">Use Chrome Custom Tabs</string>
|
||||||
<string name="link_custom_tabs">Links will open in 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="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_dark">Dark Theme</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme_light">Light Theme</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="update_url">Update Channel URL</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</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="re_check">Re-check</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="update_center">Manager Update Center</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="update_found">Update found!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">Dismiss</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Guide</string>
|
||||||
<string name="hold_on">Hold on!</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_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="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="error">Error</string>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Instalowanie %1$s</string>
|
<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_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_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_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_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_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_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_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_storage">Operacja nie powiodła się z powodu błędu pamięci.</string>
|
||||||
<string name="installation_wait">Poczekaj na zakończenie instalacji</string>
|
<string name="installation_wait">Poczekaj na zakończenie instalacji</string>
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
<string name="latest">Najnowsza:</string>
|
<string name="latest">Najnowsza:</string>
|
||||||
<string name="successfully_installed">Pomyślnie zainstalowano %1$s</string>
|
<string name="successfully_installed">Pomyślnie zainstalowano %1$s</string>
|
||||||
<string name="network_error">Połączenie sieciowe niedostępne</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="root_not_granted">Root nie został przyznany</string>
|
||||||
<string name="unavailable">Niedostępne</string>
|
<string name="unavailable">Niedostępne</string>
|
||||||
<string name="update">Aktualizuj</string>
|
<string name="update">Aktualizuj</string>
|
||||||
<string name="useful_links">Przydatne linki</string>
|
<string name="useful_links">Przydatne linki</string>
|
||||||
<string name="website_text">Oficjalna strona Vanced</string>
|
<string name="website_text">Oficjalna strona Vanced</string>
|
||||||
<string name="support_us">Wesprzyj nas, pobierając Brave</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 -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Kolor Akcentu</string>
|
<string name="accent_color">Kolor Akcentu</string>
|
||||||
<string name="accent_blue">Niebieski</string>
|
<string name="accent_blue">Niebieski</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">Fioletowy</string>
|
<string name="accent_purple">Fioletowy</string>
|
||||||
<string name="accent_red">Czerwony</string>
|
<string name="accent_red">Czerwony</string>
|
||||||
<string name="accent_yellow">Żółty</string>
|
<string name="accent_yellow">Żółty</string>
|
||||||
<string name="check_updates">Sprawdź aktualizacje</string>
|
|
||||||
<string name="category_interface">Interfejs</string>
|
<string name="category_interface">Interfejs</string>
|
||||||
<string name="category_manager">Menedżer</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_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="chosen_theme">Motyw: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Wyczyść pobrane pliki</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Pomyślnie wyczyszczono pliki</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">Motyw</string>
|
||||||
<string name="theme_follow">Śledź system</string>
|
<string name="theme_follow">Śledź system</string>
|
||||||
<string name="theme_dark">Ciemny Motyw</string>
|
<string name="theme_dark">Ciemny Motyw</string>
|
||||||
<string name="theme_light">Jasny Motyw</string>
|
<string name="theme_light">Jasny Motyw</string>
|
||||||
<string name="update_url">Zaktualizuj URL kanału</string>
|
<string name="update_url">Zaktualizuj URL kanału</string>
|
||||||
<string name="push_notifications">Powiadomienia push</string>
|
<string name="push_notifications">%1$s Powiadomień Push</string>
|
||||||
<string name="push_notifications_summary">Otrzymuj powiadomienia push po wydaniu aktualizacji</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="re_check">Sprawdź ponownie</string>
|
||||||
<string name="update_center">Centrum aktualizacji</string>
|
<string name="update_center">Centrum aktualizacji</string>
|
||||||
<string name="update_found">Znaleziono aktualizację!</string>
|
<string name="update_found">Znaleziono aktualizację!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Oddalić</string>
|
<string name="button_dismiss">Oddalić</string>
|
||||||
<string name="guide">Przewodnik</string>
|
<string name="guide">Przewodnik</string>
|
||||||
<string name="hold_on">Czekaj!</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_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="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>
|
<string name="error">Błąd</string>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Instalando %1$s</string>
|
<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_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_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_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_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_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_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_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_storage">A operação falhou porque ocorreu um erro com o armazenamento.</string>
|
||||||
<string name="installation_wait">Aguarde até a instalação terminar</string>
|
<string name="installation_wait">Aguarde até a instalação terminar</string>
|
||||||
|
@ -30,14 +31,14 @@
|
||||||
<string name="latest">Mais recente:</string>
|
<string name="latest">Mais recente:</string>
|
||||||
<string name="successfully_installed">Instalado com sucesso %1$s</string>
|
<string name="successfully_installed">Instalado com sucesso %1$s</string>
|
||||||
<string name="network_error">Conexão de rede indisponível</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="root_not_granted">Acesso root não concedido</string>
|
||||||
<string name="unavailable">Indisponível</string>
|
<string name="unavailable">Indisponível</string>
|
||||||
<string name="update">Atualizar</string>
|
<string name="update">Atualizar</string>
|
||||||
<string name="useful_links">Links úteis</string>
|
<string name="useful_links">Links úteis</string>
|
||||||
<string name="website_text">Site</string>
|
<string name="website_text">Site</string>
|
||||||
<string name="support_us">Apoie-nos!</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 -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Cor de destaque</string>
|
<string name="accent_color">Cor de destaque</string>
|
||||||
<string name="accent_blue">Azul</string>
|
<string name="accent_blue">Azul</string>
|
||||||
|
@ -45,22 +46,24 @@
|
||||||
<string name="accent_purple">Roxo</string>
|
<string name="accent_purple">Roxo</string>
|
||||||
<string name="accent_red">Vermelho</string>
|
<string name="accent_red">Vermelho</string>
|
||||||
<string name="accent_yellow">Amarelo</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_interface">Interface</string>
|
||||||
<string name="category_manager">Gerenciador</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_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="chosen_theme">Tema: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Limpar arquivos baixados</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Arquivos limpos com sucesso</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">Tema</string>
|
||||||
<string name="theme_follow">Padrão do sistema</string>
|
<string name="theme_follow">Padrão do sistema</string>
|
||||||
<string name="theme_dark">Escuro</string>
|
<string name="theme_dark">Escuro</string>
|
||||||
<string name="theme_light">Claro</string>
|
<string name="theme_light">Claro</string>
|
||||||
<string name="update_url">Atualizar URL do canal</string>
|
<string name="update_url">Atualizar URL do canal</string>
|
||||||
<string name="push_notifications">Notificações</string>
|
<string name="push_notifications">%1$s Notificações push</string>
|
||||||
<string name="push_notifications_summary">Receber notificações quando uma atualização estiver disponível</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="re_check">Verificar novamente</string>
|
||||||
<string name="update_center">Centro de Atualizações</string>
|
<string name="update_center">Centro de Atualizações</string>
|
||||||
<string name="update_found">Atualização encontrada!</string>
|
<string name="update_found">Atualização encontrada!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Dispensar</string>
|
<string name="button_dismiss">Dispensar</string>
|
||||||
<string name="guide">Guia</string>
|
<string name="guide">Guia</string>
|
||||||
<string name="hold_on">Aguente!</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_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.
|
<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>
|
No entanto, se você estiver na ROM 20.2.20 baseado em xiaomi.eu, poderá ignorar com segurança este aviso.</string>
|
||||||
|
|
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Instalando %1$s</string>
|
<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_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_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_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_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_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_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_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_storage">Operação falhou devido a um erro de armazenamento.</string>
|
||||||
<string name="installation_wait">Por-favor espere até a instalação acabar.</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="latest">Mais Recente:</string>
|
||||||
<string name="successfully_installed">Instalado %1$s</string>
|
<string name="successfully_installed">Instalado %1$s</string>
|
||||||
<string name="network_error">Conexão de rede indisponível</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="root_not_granted">Acesso root negado.</string>
|
||||||
<string name="unavailable">Indisponível</string>
|
<string name="unavailable">Indisponível</string>
|
||||||
<string name="update">Atualizar</string>
|
<string name="update">Atualizar</string>
|
||||||
|
@ -45,12 +46,14 @@
|
||||||
<string name="accent_purple">Roxo</string>
|
<string name="accent_purple">Roxo</string>
|
||||||
<string name="accent_red">Vermelho</string>
|
<string name="accent_red">Vermelho</string>
|
||||||
<string name="accent_yellow">Amarelo</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_interface">Interface</string>
|
||||||
<string name="category_manager">Gerente</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_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="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_title">Use Chrome Custom Tabs</string>
|
||||||
<string name="link_custom_tabs">Links will open in 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="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_dark">Tema Escuro</string>
|
||||||
<string name="theme_light">Tema Claro</string>
|
<string name="theme_light">Tema Claro</string>
|
||||||
<string name="update_url">Atualizar Canal URL</string>
|
<string name="update_url">Atualizar Canal URL</string>
|
||||||
<string name="push_notifications">Notificações</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">Receber notificações quando uma actualização estiver disponível</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="re_check">Verificar Novamente</string>
|
||||||
<string name="update_center">Centro de Actualizações</string>
|
<string name="update_center">Centro de Actualizações</string>
|
||||||
<string name="update_found">Atualização encontrada!</string>
|
<string name="update_found">Atualização encontrada!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Ignorar</string>
|
<string name="button_dismiss">Ignorar</string>
|
||||||
<string name="guide">Guia</string>
|
<string name="guide">Guia</string>
|
||||||
<string name="hold_on">Aguarde!</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_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="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>
|
<string name="error">Erro</string>
|
||||||
|
|
|
@ -1,94 +1,97 @@
|
||||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
<resources>
|
<resources>
|
||||||
<!-- Global Strings -->
|
<!-- Global Strings -->
|
||||||
<string name="close">Close</string>
|
<string name="close">Închide</string>
|
||||||
<string name="reset">Reset</string>
|
<string name="reset">Resetează</string>
|
||||||
<string name="save">Save</string>
|
<string name="save">Salvează</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">About</string>
|
<string name="title_about">Despre</string>
|
||||||
<string name="title_home">Home</string>
|
<string name="title_home">Start</string>
|
||||||
<string name="title_settings">Settings</string>
|
<string name="title_settings">Configurări</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
<string name="changelogs">Changelogs</string>
|
<string name="changelogs">Istoric modificări</string>
|
||||||
<string name="downloading_file">Downloading %1$s</string>
|
<string name="downloading_file">Se descarcă %1$s</string>
|
||||||
<string name="failed_uninstall">Failed to uninstall package %1$s</string>
|
<string name="failed_uninstall">Dezinstalarea pachetului %1$s a eșuat</string>
|
||||||
<string name="error_downloading">Error Downloading %1$s</string>
|
<string name="error_downloading">Eroare la descărcarea %1$s</string>
|
||||||
<string name="install">Install</string>
|
<string name="install">Instalează</string>
|
||||||
<string name="installing_app">Installing %1$s</string>
|
<string name="installing_app">Se Instalează %1$s</string>
|
||||||
<string name="installation_aborted">Operation failed because the user aborted the installation.</string>
|
<string name="installation_aborted">Operația a eșuat deoarece utilizatorul a anulat instalarea.</string>
|
||||||
<string name="installation_blocked">Operation failed because the user blocked the installation.</string>
|
<string name="installation_blocked">Operația a eșuat deoarece utilizatorul a blocat instalarea.</string>
|
||||||
<string name="installation_conflict">Operation failed because the app conflicts with an already installed app.</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_failed">Operation failed for an unknown reason, please join our Telegram or Discord for support.</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_incompatible">Operation failed because the app is incompatible with your device.</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_invalid">Operation failed because the apk files are invalid.</string>
|
<string name="installation_incompatible">Operația a eșuat deoarece aplicația este incompatibilă cu dispozitivul dvs.</string>
|
||||||
<string name="installation_signature">An unexpected error occurred while installing Vanced. Have you disabled apk signature verification?</string>
|
<string name="installation_invalid">Operația a eșuat deoarece fișierele apk nu sunt valide.</string>
|
||||||
<string name="installation_miui">An unexpected error occurred while installing Vanced. Have you disabled MIUI Optimisations?</string>
|
<string name="installation_signature">Operation failed because the user didn\'t disable apk signature verification</string>
|
||||||
<string name="installation_storage">Operation failed due to a storage error.</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_wait">Please wait until the installation finishes</string>
|
<string name="installation_storage">Operația a eșuat datorită unei erori de stocare.</string>
|
||||||
<string name="button_reinstall">Reinstall</string>
|
<string name="installation_wait">Vă rugăm să așteptați până la finalizarea instalării</string>
|
||||||
<string name="version_installed">Installed:</string>
|
<string name="button_reinstall">Reinstalare</string>
|
||||||
<string name="latest">Latest:</string>
|
<string name="version_installed">Instalat:</string>
|
||||||
<string name="successfully_installed">Successfully installed %1$s</string>
|
<string name="latest">Ultima:</string>
|
||||||
<string name="network_error">Network connection unavailable</string>
|
<string name="successfully_installed">Instalat cu succes %1$s</string>
|
||||||
<string name="no_microg">No MicroG!</string>
|
<string name="network_error">Conexiune la rețea indisponibilă</string>
|
||||||
<string name="root_not_granted">Root access not granted</string>
|
<string name="no_microg">microG isn\'t installed</string>
|
||||||
<string name="unavailable">Unavailable</string>
|
<string name="root_not_granted">Accesul root nu este permis</string>
|
||||||
<string name="update">Update</string>
|
<string name="unavailable">Indisponibil</string>
|
||||||
<string name="useful_links">Useful Links</string>
|
<string name="update">Actualizare</string>
|
||||||
|
<string name="useful_links">Link-uri folositoare</string>
|
||||||
<string name="website_text">Website</string>
|
<string name="website_text">Website</string>
|
||||||
<string name="support_us">Support us!</string>
|
<string name="support_us">Ajutați-ne!</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="version_toast">Versiunea %1$s a fost copiată!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Accent Color</string>
|
<string name="accent_color">Nuanță culoare</string>
|
||||||
<string name="accent_blue">Blue</string>
|
<string name="accent_blue">Albastru</string>
|
||||||
<string name="accent_green">Green</string>
|
<string name="accent_green">Verde</string>
|
||||||
<string name="accent_purple">Purple</string>
|
<string name="accent_purple">Violet</string>
|
||||||
<string name="accent_red">Red</string>
|
<string name="accent_red">Roşu</string>
|
||||||
<string name="accent_yellow">Yellow</string>
|
<string name="accent_yellow">Galben</string>
|
||||||
<string name="check_updates">Check for updates</string>
|
<string name="category_interface">Interfață</string>
|
||||||
<string name="category_interface">Interface</string>
|
|
||||||
<string name="category_manager">Manager</string>
|
<string name="category_manager">Manager</string>
|
||||||
<string name="chosen_install_values">Chosen installation preferences</string>
|
<string name="check_updates">Verifică pentru actualizări</string>
|
||||||
<string name="chosen_lang">Language: %1$s</string>
|
<string name="chosen_install_values">Preferințe de instalare selectate</string>
|
||||||
<string name="chosen_theme">Theme: %1$s</string>
|
<string name="chosen_lang">Language(s): %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="chosen_theme">Temă: %1$s</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="clear_files">Clear downloaded files</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</string>
|
<string name="cleared_files">Successfully cleared files</string>
|
||||||
<string name="theme">Theme</string>
|
<string name="link_title">Utilizează file personalizate Chrome</string>
|
||||||
<string name="theme_follow">Follow System</string>
|
<string name="link_custom_tabs">Link-uri se vor deschide în filele personalizate Chrome</string>
|
||||||
<string name="theme_dark">Dark Theme</string>
|
<string name="link_external_browser">Link-urile se vor deschide într-un browser extern</string>
|
||||||
<string name="theme_light">Light Theme</string>
|
<string name="theme">Temă</string>
|
||||||
<string name="update_url">Update Channel URL</string>
|
<string name="theme_follow">Urmăreşte sistemul</string>
|
||||||
<string name="push_notifications">Push Notifications</string>
|
<string name="theme_dark">Temă întunecată</string>
|
||||||
<string name="push_notifications_summary">Receive push notifications when an update is released</string>
|
<string name="theme_light">Temă deschisă</string>
|
||||||
<string name="re_check">Re-check</string>
|
<string name="update_url">URL canal de actualizare</string>
|
||||||
<string name="update_center">Manager Update Center</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="update_found">Update found!</string>
|
<string name="push_notifications_summary">Receive push notifications when an update for %1$s is released</string>
|
||||||
<string name="update_notfound">No new updates</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 -->
|
<!-- Dialogs -->
|
||||||
<string name="button_dismiss">Dismiss</string>
|
<string name="button_dismiss">Renunţaţi</string>
|
||||||
<string name="guide">Guide</string>
|
<string name="guide">Ghid</string>
|
||||||
<string name="hold_on">Hold on!</string>
|
<string name="hold_on">Stai așa!</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_title">MIUI detectat!</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="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">Error</string>
|
<string name="error">Eroare</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="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">Success!</string>
|
<string name="success">Succes!</string>
|
||||||
<string name="vanced_installed">Vanced has successfully been installed! Launch now?</string>
|
<string name="vanced_installed">Vanced a fost instalat cu succes! Lansați acum?</string>
|
||||||
<string name="launch">Launch</string>
|
<string name="launch">Lansează</string>
|
||||||
<string name="welcome">Welcome</string>
|
<string name="welcome">Bun venit</string>
|
||||||
<!-- Install Page -->
|
<!-- Install Page -->
|
||||||
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
|
<string name="choose_preferred_language">Alegeți limba preferată pentru 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_language_note">Notă: Engleza va fi întotdeauna instalată și ca limbă suplimentară.</string>
|
||||||
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
|
<string name="choose_preferred_theme">Alegeți tema preferată pentru Vanced</string>
|
||||||
<string name="disable_signature">Root mode detected! To install Vanced, you will need to disable the apk signature verification.</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">Finish</string>
|
<string name="finish">Terminat</string>
|
||||||
<string name="install_light_black">Light + Black</string>
|
<string name="install_light_black">Luminos + Negru</string>
|
||||||
<string name="install_light_dark">Light + Dark</string>
|
<string name="install_light_dark">Luminos + Întunecat</string>
|
||||||
<string name="next">Next</string>
|
<string name="next">Continuare</string>
|
||||||
<!-- About Page -->
|
<!-- About Page -->
|
||||||
<string name="manager_dev">Manager Dev</string>
|
<string name="manager_dev">Manager dezvoltator</string>
|
||||||
<string name="sources">Sources</string>
|
<string name="sources">Surse</string>
|
||||||
<string name="vanced_team">Vanced Team</string>
|
<string name="vanced_team">Echipa Vanced</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<string name="reset">Сброс</string>
|
<string name="reset">Сброс</string>
|
||||||
<string name="save">Сохранить</string>
|
<string name="save">Сохранить</string>
|
||||||
<!-- Main Activity -->
|
<!-- Main Activity -->
|
||||||
<string name="title_about">О приложении</string>
|
<string name="title_about">О нас</string>
|
||||||
<string name="title_home">Главная</string>
|
<string name="title_home">Главная</string>
|
||||||
<string name="title_settings">Настройки</string>
|
<string name="title_settings">Настройки</string>
|
||||||
<!-- Home Page -->
|
<!-- Home Page -->
|
||||||
|
@ -17,11 +17,12 @@
|
||||||
<string name="installing_app">Установка %1$s</string>
|
<string name="installing_app">Установка %1$s</string>
|
||||||
<string name="installation_aborted">Операция не выполнена, поскольку пользователь прервал установку</string>
|
<string name="installation_aborted">Операция не выполнена, поскольку пользователь прервал установку</string>
|
||||||
<string name="installation_blocked">Операция не выполнена, поскольку пользователь заблокировал установку</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_conflict">Операция не выполнена, поскольку приложение конфликтует с уже установленным приложением</string>
|
||||||
<string name="installation_failed">Операция не выполнена по неизвестной причине, отправьте отчёт об ошибке снятый с помощью logcat</string>
|
<string name="installation_failed">Операция не выполнена по неизвестной причине, отправьте отчёт об ошибке снятый с помощью logcat</string>
|
||||||
<string name="installation_incompatible">Операция не выполнена, так как приложение несовместимо с вашим устройством</string>
|
<string name="installation_incompatible">Операция не выполнена, так как приложение несовместимо с вашим устройством</string>
|
||||||
<string name="installation_invalid">Операция завершилась неудачно, потому что apk-файлы оказались повреждены</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_miui">Произошла непредвиденная ошибка при установке Vanced. Вы отключили Оптимизацию MIUI?</string>
|
||||||
<string name="installation_storage">Операция не выполнена, так как произошла ошибка с доступом к памяти.</string>
|
<string name="installation_storage">Операция не выполнена, так как произошла ошибка с доступом к памяти.</string>
|
||||||
<string name="installation_wait">Пожалуйста, дождитесь окончания установки</string>
|
<string name="installation_wait">Пожалуйста, дождитесь окончания установки</string>
|
||||||
|
@ -30,37 +31,39 @@
|
||||||
<string name="latest">Последняя:</string>
|
<string name="latest">Последняя:</string>
|
||||||
<string name="successfully_installed">Успешно установлено %1$s</string>
|
<string name="successfully_installed">Успешно установлено %1$s</string>
|
||||||
<string name="network_error">Нет подключения к интернету</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="root_not_granted">Рут-доступ не предоставлен</string>
|
||||||
<string name="unavailable">Недоступно</string>
|
<string name="unavailable">Недоступно</string>
|
||||||
<string name="update">Обновить</string>
|
<string name="update">Обновить</string>
|
||||||
<string name="useful_links">Полезные ссылки</string>
|
<string name="useful_links">Полезные ссылки</string>
|
||||||
<string name="website_text">Сайт</string>
|
<string name="website_text">Сайт</string>
|
||||||
<string name="support_us">Поддержите нас!</string>
|
<string name="support_us">Поддержите нас!</string>
|
||||||
<string name="version_toast">%1$s version was copied!</string>
|
<string name="version_toast">%1$s Версия скопирована!</string>
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="accent_color">Акцент</string>
|
<string name="accent_color">Второстепенный цвет</string>
|
||||||
<string name="accent_blue">Синий</string>
|
<string name="accent_blue">Синий</string>
|
||||||
<string name="accent_green">Зелёный</string>
|
<string name="accent_green">Зелёный</string>
|
||||||
<string name="accent_purple">Пурпурный</string>
|
<string name="accent_purple">Пурпурный</string>
|
||||||
<string name="accent_red">Красный</string>
|
<string name="accent_red">Красный</string>
|
||||||
<string name="accent_yellow">Жёлтый</string>
|
<string name="accent_yellow">Жёлтый</string>
|
||||||
<string name="check_updates">Проверить обновления</string>
|
|
||||||
<string name="category_interface">Интерфейс</string>
|
<string name="category_interface">Интерфейс</string>
|
||||||
<string name="category_manager">Менеджер</string>
|
<string name="category_manager">Менеджер</string>
|
||||||
|
<string name="check_updates">Проверить обновления</string>
|
||||||
<string name="chosen_install_values">Выбранные значения установки</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="chosen_theme">Тема: %1$s</string>
|
||||||
<string name="link_title">Use Chrome Custom Tabs</string>
|
<string name="clear_files">Clear downloaded files</string>
|
||||||
<string name="link_custom_tabs">Links will open in Chrome Custom Tabs</string>
|
<string name="cleared_files">Successfully cleared files</string>
|
||||||
<string name="link_external_browser">Links will open in an External Browser</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">Тема</string>
|
||||||
<string name="theme_follow">Как в системе</string>
|
<string name="theme_follow">Как в системе</string>
|
||||||
<string name="theme_dark">Тёмная тема</string>
|
<string name="theme_dark">Тёмная тема</string>
|
||||||
<string name="theme_light">Светлая тема</string>
|
<string name="theme_light">Светлая тема</string>
|
||||||
<string name="update_url">Ссылка на канал обновлений</string>
|
<string name="update_url">Ссылка на канал обновлений</string>
|
||||||
<string name="push_notifications">Push-уведомления</string>
|
<string name="push_notifications">%1$s Push Notifications</string>
|
||||||
<string name="push_notifications_summary">Получать push-уведомление при выходе обновлений</string>
|
<string name="push_notifications_summary">Получать уведомления о выходе обновления для %1$s</string>
|
||||||
<string name="re_check">Перепроверить</string>
|
<string name="re_check">Перепроверить</string>
|
||||||
<string name="update_center">Центр обновлений</string>
|
<string name="update_center">Центр обновлений</string>
|
||||||
<string name="update_found">Найдено обновление!</string>
|
<string name="update_found">Найдено обновление!</string>
|
||||||
|
@ -69,7 +72,7 @@
|
||||||
<string name="button_dismiss">Отклонить</string>
|
<string name="button_dismiss">Отклонить</string>
|
||||||
<string name="guide">Руководство</string>
|
<string name="guide">Руководство</string>
|
||||||
<string name="hold_on">Внимание!</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_title">Обнаружен пользователь MIUI!</string>
|
||||||
<string name="miui_one">Привет! Похоже, вы пользователь MIUI. для правильного использования Vanced Manager вам придется отключить оптимизацию MIUI в настройках разработчика
|
<string name="miui_one">Привет! Похоже, вы пользователь MIUI. для правильного использования Vanced Manager вам придется отключить оптимизацию MIUI в настройках разработчика
|
||||||
Если вы используете прошивку версии 20.2.20, основанную на xiaomi.eu, вы можете спокойно проигнорировать это предупреждение.</string>
|
Если вы используете прошивку версии 20.2.20, основанную на xiaomi.eu, вы можете спокойно проигнорировать это предупреждение.</string>
|
||||||
|
|
97
app/src/main/res/values-si-rLK/strings.xml
Normal 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>
|