mirror of
https://github.com/YTVanced/VancedManager
synced 2024-11-01 00:32:39 +00:00
bug fixes and improvements
This commit is contained in:
parent
e9695caf76
commit
b5026a7758
12 changed files with 137 additions and 119 deletions
5
.github/workflows/debug.yml
vendored
5
.github/workflows/debug.yml
vendored
|
@ -18,6 +18,11 @@ 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
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@ class MicrogDownloadService: Service() {
|
||||||
.build()
|
.build()
|
||||||
.setOnProgressListener { progress ->
|
.setOnProgressListener { progress ->
|
||||||
val mProgress = progress.currentBytes * 100 / progress.totalBytes
|
val mProgress = progress.currentBytes * 100 / progress.totalBytes
|
||||||
localBroadcastManager.sendBroadcast(Intent(HomeFragment.MICROG_DOWNLOADING).putExtra("progress", mProgress).putExtra("file", getFileNameFromUrl(url)))
|
localBroadcastManager.sendBroadcast(Intent(HomeFragment.MICROG_DOWNLOADING).putExtra("progress", mProgress.toInt()).putExtra("file", getFileNameFromUrl(url)))
|
||||||
}
|
}
|
||||||
.start(object : OnDownloadListener {
|
.start(object : OnDownloadListener {
|
||||||
override fun onDownloadComplete() {
|
override fun onDownloadComplete() {
|
||||||
|
|
|
@ -71,7 +71,7 @@ class VancedDownloadService: Service() {
|
||||||
.build()
|
.build()
|
||||||
.setOnProgressListener { progress ->
|
.setOnProgressListener { progress ->
|
||||||
val mProgress = progress.currentBytes * 100 / progress.totalBytes
|
val mProgress = progress.currentBytes * 100 / progress.totalBytes
|
||||||
localBroadcastManager.sendBroadcast(Intent(HomeFragment.VANCED_DOWNLOADING).putExtra("progress", mProgress).putExtra("file", getFileNameFromUrl(url)))
|
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() {
|
||||||
|
|
|
@ -1,15 +1,11 @@
|
||||||
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.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
|
||||||
|
@ -17,6 +13,7 @@ import androidx.navigation.ui.setupWithNavController
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import com.crowdin.platform.Crowdin
|
import com.crowdin.platform.Crowdin
|
||||||
import com.crowdin.platform.LoadingStateListener
|
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.databinding.ActivityMainBinding
|
import com.vanced.manager.databinding.ActivityMainBinding
|
||||||
import com.vanced.manager.ui.dialogs.DialogContainer
|
import com.vanced.manager.ui.dialogs.DialogContainer
|
||||||
|
@ -32,14 +29,6 @@ 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() {
|
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
|
||||||
when (intent.action) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private val loadingObserver = object : LoadingStateListener {
|
private val loadingObserver = object : LoadingStateListener {
|
||||||
val tag = "VMLocalisation"
|
val tag = "VMLocalisation"
|
||||||
|
@ -69,46 +58,45 @@ class MainActivity : AppCompatActivity() {
|
||||||
setDisplayHomeAsUpEnabled(currFrag.id != R.id.home_fragment)
|
setDisplayHomeAsUpEnabled(currFrag.id != R.id.home_fragment)
|
||||||
}
|
}
|
||||||
|
|
||||||
Crowdin.registerDataLoadingObserver(loadingObserver)
|
|
||||||
|
|
||||||
initDialogs()
|
initDialogs()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
super.onPause()
|
super.onPause()
|
||||||
localBroadcastManager.unregisterReceiver(broadcastReceiver)
|
|
||||||
Crowdin.unregisterDataLoadingObserver(loadingObserver)
|
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 {
|
||||||
if (!isInstallationRunning(this)) {
|
if (isInstallationRunning(this))
|
||||||
when (item.itemId) {
|
return false
|
||||||
android.R.id.home -> {
|
|
||||||
onBackPressed()
|
when (item.itemId) {
|
||||||
return true
|
android.R.id.home -> {
|
||||||
}
|
onBackPressed()
|
||||||
R.id.toolbar_about -> {
|
return true
|
||||||
navHost.navigate(R.id.toAboutFragment)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
R.id.toolbar_settings -> {
|
|
||||||
navHost.navigate(R.id.action_settingsFragment)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
R.id.dev_settings -> {
|
|
||||||
navHost.navigate(R.id.toDevSettingsFragment)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
else -> super.onOptionsItemSelected(item)
|
|
||||||
}
|
}
|
||||||
|
R.id.toolbar_about -> {
|
||||||
|
navHost.navigate(R.id.toAboutFragment)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
R.id.toolbar_settings -> {
|
||||||
|
navHost.navigate(R.id.action_settingsFragment)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
R.id.dev_settings -> {
|
||||||
|
navHost.navigate(R.id.toDevSettingsFragment)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
else -> super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -120,25 +108,19 @@ class MainActivity : AppCompatActivity() {
|
||||||
super.attachBaseContext(Crowdin.wrapContext(newBase))
|
super.attachBaseContext(Crowdin.wrapContext(newBase))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun registerReceivers() {
|
|
||||||
val intentFilter = IntentFilter()
|
|
||||||
localBroadcastManager.registerReceiver(broadcastReceiver, intentFilter)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
fun restartActivity() {
|
|
||||||
startActivity(Intent(this@MainActivity, MainActivity::class.java))
|
|
||||||
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
|
|
||||||
finish()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun initDialogs() {
|
private fun initDialogs() {
|
||||||
val prefs = PreferenceManager.getDefaultSharedPreferences(this)
|
val prefs = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
val variant = prefs.getString("vanced_variant", "nonroot")
|
val variant = prefs.getString("vanced_variant", "nonroot")
|
||||||
val showRootDialog = prefs.getBoolean("show_root_dialog", true)
|
val showRootDialog = prefs.getBoolean("show_root_dialog", true)
|
||||||
|
|
||||||
when {
|
when {
|
||||||
prefs.getBoolean("firstStart", true) -> DialogContainer.showSecurityDialog(this)
|
prefs.getBoolean("firstStart", true) -> {
|
||||||
|
DialogContainer.showSecurityDialog(this)
|
||||||
|
with(FirebaseMessaging.getInstance()) {
|
||||||
|
subscribeToTopic("Vanced-Update")
|
||||||
|
subscribeToTopic("MicroG-Update")
|
||||||
|
}
|
||||||
|
}
|
||||||
!prefs.getBoolean("statement", true) -> DialogContainer.statementFalse(this)
|
!prefs.getBoolean("statement", true) -> DialogContainer.statementFalse(this)
|
||||||
variant == "root" -> {
|
variant == "root" -> {
|
||||||
if (showRootDialog)
|
if (showRootDialog)
|
||||||
|
@ -170,6 +152,4 @@ class MainActivity : AppCompatActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,13 +17,17 @@ object DialogContainer {
|
||||||
MaterialAlertDialogBuilder(context)
|
MaterialAlertDialogBuilder(context)
|
||||||
.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()
|
}
|
||||||
if (MiuiHelper.isMiui()) {
|
.setOnDismissListener {
|
||||||
showMiuiDialog(context)
|
if (MiuiHelper.isMiui()) {
|
||||||
}
|
showMiuiDialog(context)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.setOnCancelListener {
|
||||||
|
if (MiuiHelper.isMiui()) {
|
||||||
|
showMiuiDialog(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.create()
|
.create()
|
||||||
|
@ -57,6 +61,7 @@ object DialogContainer {
|
||||||
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() }
|
.setOnDismissListener { PreferenceManager.getDefaultSharedPreferences(activity).edit().putBoolean("show_root_dialog", false).apply() }
|
||||||
|
.setOnCancelListener { PreferenceManager.getDefaultSharedPreferences(activity).edit().putBoolean("show_root_dialog", false).apply() }
|
||||||
.create()
|
.create()
|
||||||
.show()
|
.show()
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,9 @@ 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
|
||||||
|
|
||||||
class SettingsFragment : PreferenceFragmentCompat() {
|
class SettingsFragment : PreferenceFragmentCompat() {
|
||||||
|
@ -17,57 +16,79 @@ 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")
|
||||||
|
}
|
||||||
|
Toast.makeText(requireActivity(), "Set value to $newValue", Toast.LENGTH_SHORT).show()
|
||||||
|
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 -> ""
|
}
|
||||||
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
|
if (themePref != newValue) {
|
||||||
|
requireActivity().recreate()
|
||||||
|
return@setOnPreferenceChangeListener true
|
||||||
|
}
|
||||||
|
false
|
||||||
}
|
}
|
||||||
themeSwitch?.setOnPreferenceChangeListener { _, _ ->
|
|
||||||
activity?.recreate()
|
|
||||||
true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val accentSwitch: ListPreference? = findPreference("accent_color")
|
|
||||||
val accentPref = preferenceScreen.sharedPreferences.getString("accent_color", "Blue")
|
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 -> ""
|
}
|
||||||
|
setOnPreferenceChangeListener { _, newValue ->
|
||||||
|
if (accentPref != newValue) {
|
||||||
|
requireActivity().recreate()
|
||||||
|
return@setOnPreferenceChangeListener true
|
||||||
|
}
|
||||||
|
false
|
||||||
}
|
}
|
||||||
accentSwitch?.setOnPreferenceChangeListener { _, _ ->
|
|
||||||
activity?.recreate()
|
|
||||||
true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val chosenPrefs: Preference? = findPreference("vanced_chosen_modes")
|
val chosenPrefs: Preference? = findPreference("vanced_chosen_modes")
|
||||||
chosenPrefs?.setOnPreferenceClickListener {
|
chosenPrefs?.setOnPreferenceClickListener {
|
||||||
val fm = childFragmentManager.beginTransaction()
|
ChosenPreferenceDialogFragment().show(childFragmentManager.beginTransaction(), "Chosen Preferences")
|
||||||
val chosenPrefsDialog = ChosenPreferenceDialogFragment()
|
|
||||||
chosenPrefsDialog.show(fm, "Chosen Preferences")
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
val installUrl: Preference? = findPreference("install_url")
|
val installUrl: Preference? = findPreference("install_url")
|
||||||
installUrl?.setOnPreferenceClickListener {
|
installUrl?.setOnPreferenceClickListener {
|
||||||
val fm = childFragmentManager.beginTransaction()
|
URLChangeFragment().show(childFragmentManager.beginTransaction(), "Install URL")
|
||||||
val chosenPrefsDialog = URLChangeFragment()
|
|
||||||
chosenPrefsDialog.show(fm, "Install URL")
|
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,10 @@ class VancedLanguageSelectionFragment : Fragment() {
|
||||||
chosenLangs.add(lang)
|
chosenLangs.add(lang)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)?.edit()?.putString("lang", chosenLangs.joinToString())?.apply()
|
activity?.getSharedPreferences("installPrefs", Context.MODE_PRIVATE)?.edit()?.apply {
|
||||||
|
putString("lang", chosenLangs.joinToString())?.apply()
|
||||||
|
putBoolean("valuesModified", true)
|
||||||
|
}
|
||||||
activity?.startService(Intent(activity, VancedDownloadService::class.java))
|
activity?.startService(Intent(activity, VancedDownloadService::class.java))
|
||||||
view.findNavController().navigate(R.id.action_installTo_homeFragment)
|
view.findNavController().navigate(R.id.action_installTo_homeFragment)
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
android:background="?colorSurface"
|
android:background="?colorSurface"
|
||||||
android:layout_alignParentTop="true">
|
android:layout_alignParentTop="true">
|
||||||
|
|
||||||
<androidx.appcompat.widget.Toolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/home_toolbar"
|
android:id="@+id/home_toolbar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/actionBarSize"
|
android:layout_height="?attr/actionBarSize"
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<item name="colorPrimary">#1490D7</item>
|
<item name="colorPrimary">#1490D7</item>
|
||||||
<item name="colorPrimaryVariant">#2C7EB9</item>
|
<item name="colorPrimaryVariant">#2C7EB9</item>
|
||||||
<item name="colorSecondary">#3E78AF</item>
|
<item name="colorSecondary">#3E78AF</item>
|
||||||
<item name="colorSecondaryVariant">#803E78AF</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
<item name="colorSurface">#ffffff</item>
|
<item name="colorSurface">#ffffff</item>
|
||||||
<item name="colorSurfaceVariant">#F3F3F3</item>
|
<item name="colorSurfaceVariant">#F3F3F3</item>
|
||||||
<item name="colorSurfaceSurfaceVariant">?colorSurface</item>
|
<item name="colorSurfaceSurfaceVariant">?colorSurface</item>
|
||||||
|
|
|
@ -33,7 +33,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>
|
||||||
|
@ -63,8 +63,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>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<item name="colorPrimary">#1490D7</item>
|
<item name="colorPrimary">#1490D7</item>
|
||||||
<item name="colorPrimaryVariant">#2C7EB9</item>
|
<item name="colorPrimaryVariant">#2C7EB9</item>
|
||||||
<item name="colorSecondary">#3E78AF</item>
|
<item name="colorSecondary">#3E78AF</item>
|
||||||
<item name="colorSecondaryVariant">#803E78AF</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
<item name="colorSurface">#ffffff</item>
|
<item name="colorSurface">#ffffff</item>
|
||||||
<item name="colorSurfaceVariant">#F3F3F3</item>
|
<item name="colorSurfaceVariant">#F3F3F3</item>
|
||||||
<item name="colorSurfaceSurfaceVariant">?colorSurface</item>
|
<item name="colorSurfaceSurfaceVariant">?colorSurface</item>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
<item name="colorPrimary">#D71414</item>
|
<item name="colorPrimary">#D71414</item>
|
||||||
<item name="colorPrimaryVariant">#B92C2C</item>
|
<item name="colorPrimaryVariant">#B92C2C</item>
|
||||||
<item name="colorSecondary">#AF3E3E</item>
|
<item name="colorSecondary">#AF3E3E</item>
|
||||||
<item name="colorSecondaryVariant">#80AF3E3E</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
<item name="colorPrimary">#3ED714</item>
|
<item name="colorPrimary">#3ED714</item>
|
||||||
<item name="colorPrimaryVariant">#2CB943</item>
|
<item name="colorPrimaryVariant">#2CB943</item>
|
||||||
<item name="colorSecondary">#3EAF51</item>
|
<item name="colorSecondary">#3EAF51</item>
|
||||||
<item name="colorSecondaryVariant">#803EAF44</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
<item name="colorPrimary">#ffd500</item>
|
<item name="colorPrimary">#ffd500</item>
|
||||||
<item name="colorPrimaryVariant">#A6FFD500</item>
|
<item name="colorPrimaryVariant">#A6FFD500</item>
|
||||||
<item name="colorSecondary">#D3B418</item>
|
<item name="colorSecondary">#D3B418</item>
|
||||||
<item name="colorSecondaryVariant">#B7D3B418</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@
|
||||||
<item name="colorPrimary">#6D49B7</item>
|
<item name="colorPrimary">#6D49B7</item>
|
||||||
<item name="colorPrimaryVariant">#563C8D</item>
|
<item name="colorPrimaryVariant">#563C8D</item>
|
||||||
<item name="colorSecondary">#734BC7</item>
|
<item name="colorSecondary">#734BC7</item>
|
||||||
<item name="colorSecondaryVariant">#9A734BC7</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
<item name="colorPrimary">#1490D7</item>
|
<item name="colorPrimary">#1490D7</item>
|
||||||
<item name="colorPrimaryVariant">#2C7EB9</item>
|
<item name="colorPrimaryVariant">#2C7EB9</item>
|
||||||
<item name="colorSecondary">#3E78AF</item>
|
<item name="colorSecondary">#3E78AF</item>
|
||||||
<item name="colorSecondaryVariant">#803E78AF</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
<item name="colorSurface">#000000</item>
|
<item name="colorSurface">#000000</item>
|
||||||
<item name="colorSurfaceVariant">#111111</item>
|
<item name="colorSurfaceVariant">#111111</item>
|
||||||
<item name="colorSurfaceSurfaceVariant">?colorSurface</item>
|
<item name="colorSurfaceSurfaceVariant">?colorSurface</item>
|
||||||
|
@ -111,7 +111,7 @@
|
||||||
<item name="colorPrimary">#D71414</item>
|
<item name="colorPrimary">#D71414</item>
|
||||||
<item name="colorPrimaryVariant">#B92C2C</item>
|
<item name="colorPrimaryVariant">#B92C2C</item>
|
||||||
<item name="colorSecondary">#AF3E3E</item>
|
<item name="colorSecondary">#AF3E3E</item>
|
||||||
<item name="colorSecondaryVariant">#80AF3E3E</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@
|
||||||
<item name="colorPrimary">#3ED714</item>
|
<item name="colorPrimary">#3ED714</item>
|
||||||
<item name="colorPrimaryVariant">#2CB943</item>
|
<item name="colorPrimaryVariant">#2CB943</item>
|
||||||
<item name="colorSecondary">#3EAF51</item>
|
<item name="colorSecondary">#3EAF51</item>
|
||||||
<item name="colorSecondaryVariant">#803EAF44</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
<item name="colorPrimary">#ffd500</item>
|
<item name="colorPrimary">#ffd500</item>
|
||||||
<item name="colorPrimaryVariant">#A6FFD500</item>
|
<item name="colorPrimaryVariant">#A6FFD500</item>
|
||||||
<item name="colorSecondary">#D3B418</item>
|
<item name="colorSecondary">#D3B418</item>
|
||||||
<item name="colorSecondaryVariant">#B7D3B418</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
<item name="colorPrimary">#6D49B7</item>
|
<item name="colorPrimary">#6D49B7</item>
|
||||||
<item name="colorPrimaryVariant">#563C8D</item>
|
<item name="colorPrimaryVariant">#563C8D</item>
|
||||||
<item name="colorSecondary">#734BC7</item>
|
<item name="colorSecondary">#734BC7</item>
|
||||||
<item name="colorSecondaryVariant">#9A734BC7</item>
|
<item name="colorSecondaryVariant">?colorPrimary</item>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
|
@ -21,9 +21,13 @@
|
||||||
android:summaryOff="@string/link_external_browser" />
|
android:summaryOff="@string/link_external_browser" />
|
||||||
|
|
||||||
<SwitchPreference
|
<SwitchPreference
|
||||||
android:title="@string/push_notifications"
|
android:key="vanced_notifs"
|
||||||
android:key="push_notifications_status"
|
android:defaultValue="true"
|
||||||
android:summary="@string/push_notifications_summary"
|
android:icon="@drawable/ic_notifications_black_24dp"/>
|
||||||
|
|
||||||
|
<SwitchPreference
|
||||||
|
android:key="microg_notifs"
|
||||||
|
android:defaultValue="true"
|
||||||
android:icon="@drawable/ic_notifications_black_24dp"/>
|
android:icon="@drawable/ic_notifications_black_24dp"/>
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
Loading…
Reference in a new issue