Compare commits
5 Commits
5.1.9-hotf
...
5.1.8-beta
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2c56bcacee | ||
|
|
c8202db3c6 | ||
|
|
223d689b0c | ||
|
|
4f0e7d9696 | ||
|
|
f4ce911de9 |
@@ -38,7 +38,7 @@ android {
|
|||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 30
|
targetSdkVersion 30
|
||||||
versionCode 64
|
versionCode 64
|
||||||
versionName "5.1.7-hotfix1"
|
versionName "5.1.8-beta1"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables.useSupportLibrary = true
|
vectorDrawables.useSupportLibrary = true
|
||||||
}
|
}
|
||||||
@@ -84,34 +84,34 @@ dependencies {
|
|||||||
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1"
|
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1"
|
||||||
|
|
||||||
implementation "androidx.appcompat:appcompat:1.2.0"
|
implementation "androidx.appcompat:appcompat:1.2.0"
|
||||||
implementation "androidx.activity:activity-ktx:1.2.0-beta01"
|
implementation "androidx.activity:activity-ktx:1.3.0-alpha02"
|
||||||
implementation "androidx.fragment:fragment-ktx:1.3.0-beta01"
|
implementation "androidx.fragment:fragment-ktx:1.3.0"
|
||||||
implementation "androidx.preference:preference-ktx:1.1.1"
|
implementation "androidx.preference:preference-ktx:1.1.1"
|
||||||
implementation "androidx.recyclerview:recyclerview:1.1.0"
|
implementation "androidx.recyclerview:recyclerview:1.1.0"
|
||||||
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
|
implementation "androidx.constraintlayout:constraintlayout:2.0.4"
|
||||||
implementation "androidx.gridlayout:gridlayout:1.0.0"
|
implementation "androidx.gridlayout:gridlayout:1.0.0"
|
||||||
implementation "androidx.biometric:biometric:1.0.1"
|
implementation "androidx.biometric:biometric:1.1.0"
|
||||||
implementation "androidx.work:work-runtime-ktx:2.4.0"
|
implementation "androidx.work:work-runtime-ktx:2.5.0"
|
||||||
|
|
||||||
implementation "com.daimajia.swipelayout:library:1.2.0@aar"
|
implementation "com.daimajia.swipelayout:library:1.2.0@aar"
|
||||||
|
|
||||||
implementation "com.google.android.material:material:1.3.0-alpha04"
|
implementation "com.google.android.material:material:1.3.0"
|
||||||
|
|
||||||
implementation "com.google.firebase:firebase-core:18.0.0"
|
implementation "com.google.firebase:firebase-core:18.0.2"
|
||||||
implementation "com.google.firebase:firebase-analytics:18.0.0"
|
implementation "com.google.firebase:firebase-analytics:18.0.2"
|
||||||
implementation "com.google.firebase:firebase-crashlytics:17.3.0"
|
implementation "com.google.firebase:firebase-crashlytics:17.3.1"
|
||||||
implementation "com.google.firebase:firebase-perf:19.0.10"
|
implementation "com.google.firebase:firebase-perf:19.1.0"
|
||||||
|
|
||||||
implementation "com.google.android.gms:play-services-oss-licenses:17.0.0"
|
implementation "com.google.android.gms:play-services-oss-licenses:17.0.0"
|
||||||
implementation "com.google.android.gms:play-services-mlkit-face-detection:16.1.1"
|
implementation "com.google.android.gms:play-services-mlkit-face-detection:16.1.4"
|
||||||
|
|
||||||
implementation "com.github.clans:fab:1.6.4"
|
implementation "com.github.clans:fab:1.6.4"
|
||||||
|
|
||||||
//implementation "com.quiph.ui:recyclerviewfastscroller:0.2.1"
|
//implementation "com.quiph.ui:recyclerviewfastscroller:0.2.1"
|
||||||
|
|
||||||
implementation 'com.github.piasy:BigImageViewer:1.6.7'
|
implementation 'com.github.piasy:BigImageViewer:1.7.0'
|
||||||
implementation 'com.github.piasy:FrescoImageLoader:1.6.7'
|
implementation 'com.github.piasy:FrescoImageLoader:1.7.0'
|
||||||
implementation 'com.github.piasy:FrescoImageViewFactory:1.6.7'
|
implementation 'com.github.piasy:FrescoImageViewFactory:1.7.0'
|
||||||
|
|
||||||
//noinspection GradleDependency
|
//noinspection GradleDependency
|
||||||
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
||||||
@@ -128,7 +128,7 @@ dependencies {
|
|||||||
|
|
||||||
implementation "xyz.quaver:libpupil:1.8.16"
|
implementation "xyz.quaver:libpupil:1.8.16"
|
||||||
implementation "xyz.quaver:documentfilex:0.4-alpha02"
|
implementation "xyz.quaver:documentfilex:0.4-alpha02"
|
||||||
implementation "xyz.quaver:floatingsearchview:1.0.7"
|
implementation "xyz.quaver:floatingsearchview:1.1.1"
|
||||||
|
|
||||||
testImplementation "junit:junit:4.13.1"
|
testImplementation "junit:junit:4.13.1"
|
||||||
androidTestImplementation "androidx.test.ext:junit:1.1.2"
|
androidTestImplementation "androidx.test.ext:junit:1.1.2"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
"type": "SINGLE",
|
"type": "SINGLE",
|
||||||
"filters": [],
|
"filters": [],
|
||||||
"versionCode": 64,
|
"versionCode": 64,
|
||||||
"versionName": "5.1.7-hotfix1",
|
"versionName": "5.1.8-beta1",
|
||||||
"outputFile": "app-release.apk"
|
"outputFile": "app-release.apk"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import android.content.Context
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
|
import android.util.Log
|
||||||
import androidx.appcompat.app.AppCompatDelegate
|
import androidx.appcompat.app.AppCompatDelegate
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
@@ -34,8 +35,8 @@ import com.github.piasy.biv.loader.fresco.FrescoImageLoader
|
|||||||
import com.google.android.gms.common.GooglePlayServicesNotAvailableException
|
import com.google.android.gms.common.GooglePlayServicesNotAvailableException
|
||||||
import com.google.android.gms.common.GooglePlayServicesRepairableException
|
import com.google.android.gms.common.GooglePlayServicesRepairableException
|
||||||
import com.google.android.gms.security.ProviderInstaller
|
import com.google.android.gms.security.ProviderInstaller
|
||||||
import com.google.firebase.analytics.FirebaseAnalytics
|
|
||||||
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
import com.google.firebase.crashlytics.FirebaseCrashlytics
|
||||||
|
import okhttp3.Dispatcher
|
||||||
import okhttp3.Interceptor
|
import okhttp3.Interceptor
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import okhttp3.Response
|
import okhttp3.Response
|
||||||
@@ -46,6 +47,7 @@ import xyz.quaver.pupil.util.downloader.DownloadManager
|
|||||||
import xyz.quaver.setClient
|
import xyz.quaver.setClient
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import java.util.concurrent.Executors
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
|
|
||||||
@@ -96,6 +98,11 @@ class Pupil : Application() {
|
|||||||
val tag = request.tag() ?: return@addInterceptor chain.proceed(request)
|
val tag = request.tag() ?: return@addInterceptor chain.proceed(request)
|
||||||
|
|
||||||
interceptors[tag::class]?.invoke(chain) ?: chain.proceed(request)
|
interceptors[tag::class]?.invoke(chain) ?: chain.proceed(request)
|
||||||
|
}.apply {
|
||||||
|
(Preferences.get<String>("max_concurrent_download").toIntOrNull() ?: 0).let {
|
||||||
|
if (it != 0)
|
||||||
|
dispatcher(Dispatcher(Executors.newFixedThreadPool(it)))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -212,7 +212,7 @@ class MainActivity :
|
|||||||
min(
|
min(
|
||||||
max(
|
max(
|
||||||
binding.contents.searchview.translationY - dy,
|
binding.contents.searchview.translationY - dy,
|
||||||
-binding.contents.searchview.findViewById<CardView>(R.id.search_query_section).height.toFloat()
|
-binding.contents.searchview.binding.querySection.root.height.toFloat()
|
||||||
), 0F)
|
), 0F)
|
||||||
|
|
||||||
if (dy > 0)
|
if (dy > 0)
|
||||||
@@ -474,7 +474,7 @@ class MainActivity :
|
|||||||
with(binding.contents.searchview) {
|
with(binding.contents.searchview) {
|
||||||
onMenuStatusChangeListener = object: FloatingSearchView.OnMenuStatusChangeListener {
|
onMenuStatusChangeListener = object: FloatingSearchView.OnMenuStatusChangeListener {
|
||||||
override fun onMenuOpened() {
|
override fun onMenuOpened() {
|
||||||
(binding.contents.recyclerview.adapter as GalleryBlockAdapter).closeAllItems()
|
(this@MainActivity.binding.contents.recyclerview.adapter as GalleryBlockAdapter).closeAllItems()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onMenuClosed() {
|
override fun onMenuClosed() {
|
||||||
@@ -558,7 +558,7 @@ class MainActivity :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
attachNavigationDrawerToMenuButton(binding.drawer)
|
attachNavigationDrawerToMenuButton(this@MainActivity.binding.drawer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class ProxyDialog(context: Context) : AlertDialog(context) {
|
|||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
|
|
||||||
binding = ProxyDialogBinding.inflate(layoutInflater)
|
binding = ProxyDialogBinding.inflate(layoutInflater)
|
||||||
setView(binding.root)
|
setContentView(binding.root)
|
||||||
|
|
||||||
initView()
|
initView()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,15 +29,20 @@ import com.google.android.gms.oss.licenses.OssLicensesMenuActivity
|
|||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import okhttp3.Dispatcher
|
||||||
import xyz.quaver.io.FileX
|
import xyz.quaver.io.FileX
|
||||||
import xyz.quaver.io.util.getChild
|
import xyz.quaver.io.util.getChild
|
||||||
import xyz.quaver.pupil.R
|
import xyz.quaver.pupil.R
|
||||||
|
import xyz.quaver.pupil.client
|
||||||
|
import xyz.quaver.pupil.clientBuilder
|
||||||
|
import xyz.quaver.pupil.clientHolder
|
||||||
import xyz.quaver.pupil.ui.LockActivity
|
import xyz.quaver.pupil.ui.LockActivity
|
||||||
import xyz.quaver.pupil.ui.SettingsActivity
|
import xyz.quaver.pupil.ui.SettingsActivity
|
||||||
import xyz.quaver.pupil.ui.dialog.*
|
import xyz.quaver.pupil.ui.dialog.*
|
||||||
import xyz.quaver.pupil.util.*
|
import xyz.quaver.pupil.util.*
|
||||||
import xyz.quaver.pupil.util.downloader.DownloadManager
|
import xyz.quaver.pupil.util.downloader.DownloadManager
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import java.util.concurrent.Executors
|
||||||
|
|
||||||
class SettingsFragment :
|
class SettingsFragment :
|
||||||
PreferenceFragmentCompat(),
|
PreferenceFragmentCompat(),
|
||||||
@@ -168,6 +173,18 @@ class SettingsFragment :
|
|||||||
"download_folder_name" -> {
|
"download_folder_name" -> {
|
||||||
summary = Preferences["download_folder_name", "[-id-] -title-"]
|
summary = Preferences["download_folder_name", "[-id-] -title-"]
|
||||||
}
|
}
|
||||||
|
"max_concurrent_download" -> {
|
||||||
|
val newValue = Preferences.get<String>(key).toIntOrNull() ?: 0
|
||||||
|
|
||||||
|
if (newValue == 0)
|
||||||
|
clientBuilder.dispatcher(Dispatcher())
|
||||||
|
else
|
||||||
|
clientBuilder.dispatcher((Dispatcher(Executors.newFixedThreadPool(newValue))))
|
||||||
|
|
||||||
|
clientHolder = null
|
||||||
|
client
|
||||||
|
}
|
||||||
|
else -> return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -247,6 +264,14 @@ class SettingsFragment :
|
|||||||
|
|
||||||
onPreferenceClickListener = this@SettingsFragment
|
onPreferenceClickListener = this@SettingsFragment
|
||||||
}
|
}
|
||||||
|
"mirrors" -> {
|
||||||
|
onPreferenceClickListener = this@SettingsFragment
|
||||||
|
}
|
||||||
|
"proxy" -> {
|
||||||
|
summary = getProxyInfo().type.name
|
||||||
|
|
||||||
|
onPreferenceClickListener = this@SettingsFragment
|
||||||
|
}
|
||||||
"tag_translation" -> {
|
"tag_translation" -> {
|
||||||
this as ListPreference
|
this as ListPreference
|
||||||
|
|
||||||
@@ -268,14 +293,6 @@ class SettingsFragment :
|
|||||||
onPreferenceChangeListener = this@SettingsFragment
|
onPreferenceChangeListener = this@SettingsFragment
|
||||||
|
|
||||||
}
|
}
|
||||||
"mirrors" -> {
|
|
||||||
onPreferenceClickListener = this@SettingsFragment
|
|
||||||
}
|
|
||||||
"proxy" -> {
|
|
||||||
summary = getProxyInfo().type.name
|
|
||||||
|
|
||||||
onPreferenceClickListener = this@SettingsFragment
|
|
||||||
}
|
|
||||||
"dark_mode" -> {
|
"dark_mode" -> {
|
||||||
onPreferenceChangeListener = this@SettingsFragment
|
onPreferenceChangeListener = this@SettingsFragment
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ class FloatingSearchView @JvmOverloads constructor(context: Context, attrs: Attr
|
|||||||
|
|
||||||
searchInputView.addTextChangedListener(this)
|
searchInputView.addTextChangedListener(this)
|
||||||
onSearchListener = this
|
onSearchListener = this
|
||||||
onBindSuggestionCallback = { a, b, c, d, e ->
|
onBindSuggestionCallback = { binding, item, itemPosition ->
|
||||||
onBindSuggestion(a, b, c, d, e)
|
onBindSuggestion(binding.root, binding.leftIcon, binding.body, item, itemPosition)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -151,9 +151,10 @@
|
|||||||
<string name="no_camera">この機器には前面カメラが装着されていません</string>
|
<string name="no_camera">この機器には前面カメラが装着されていません</string>
|
||||||
<string name="error">エラー</string>
|
<string name="error">エラー</string>
|
||||||
<string name="settings_cache_limit">キャッシュサイズ制限</string>
|
<string name="settings_cache_limit">キャッシュサイズ制限</string>
|
||||||
<string name="settings_cache_unlimited">制限なし</string>
|
<string name="unlimited">制限なし</string>
|
||||||
<string name="settings_tag_translation">タグ言語</string>
|
<string name="settings_tag_translation">タグ言語</string>
|
||||||
<string name="settings_tag_translation_message">Githubにて翻訳に参加できます</string>
|
<string name="settings_tag_translation_message">Githubにて翻訳に参加できます</string>
|
||||||
<string name="settings_concurrent_download">並列ダウンロード</string>
|
<string name="settings_max_concurrent_download">並列ダウンロード</string>
|
||||||
<string name="unaccessible_download_folder">アンドロイド11以上では外部からのアプリ内部空間接近が不可能です。ダウンロードフォルダを変更しますか?</string>
|
<string name="unaccessible_download_folder">アンドロイド11以上では外部からのアプリ内部空間接近が不可能です。ダウンロードフォルダを変更しますか?</string>
|
||||||
|
<string name="settings_networking">ネットワーク</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -151,9 +151,10 @@
|
|||||||
<string name="no_camera">이 장치에는 전면 카메라가 없습니다</string>
|
<string name="no_camera">이 장치에는 전면 카메라가 없습니다</string>
|
||||||
<string name="error">오류</string>
|
<string name="error">오류</string>
|
||||||
<string name="settings_cache_limit">캐시 크기 제한</string>
|
<string name="settings_cache_limit">캐시 크기 제한</string>
|
||||||
<string name="settings_cache_unlimited">무제한</string>
|
<string name="unlimited">무제한</string>
|
||||||
<string name="settings_tag_translation">태그 언어</string>
|
<string name="settings_tag_translation">태그 언어</string>
|
||||||
<string name="settings_tag_translation_message">Github에서 번역에 참여하세요</string>
|
<string name="settings_tag_translation_message">Github에서 번역에 참여하세요</string>
|
||||||
<string name="settings_concurrent_download">병렬 다운로드</string>
|
<string name="settings_max_concurrent_download">병렬 다운로드</string>
|
||||||
<string name="unaccessible_download_folder">안드로이드 11 이상에서는 외부에서 현재 다운로드 폴더에 접근할 수 없습니다. 변경하시겠습니까?</string>
|
<string name="unaccessible_download_folder">안드로이드 11 이상에서는 외부에서 현재 다운로드 폴더에 접근할 수 없습니다. 변경하시겠습니까?</string>
|
||||||
|
<string name="settings_networking">네트워크</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="cache_size_text">
|
<string-array name="cache_size_text">
|
||||||
<item>@string/settings_cache_unlimited</item>
|
<item>@string/unlimited</item>
|
||||||
<item>1G</item>
|
<item>1G</item>
|
||||||
<item>2G</item>
|
<item>2G</item>
|
||||||
<item>4G</item>
|
<item>4G</item>
|
||||||
@@ -79,4 +79,24 @@
|
|||||||
<item>32G</item>
|
<item>32G</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="concurrent_download">
|
||||||
|
<item>0</item>
|
||||||
|
<item>1</item>
|
||||||
|
<item>2</item>
|
||||||
|
<item>4</item>
|
||||||
|
<item>8</item>
|
||||||
|
<item>16</item>
|
||||||
|
<item>32</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="concurrent_download_text">
|
||||||
|
<item>@string/unlimited</item>
|
||||||
|
<item>1</item>
|
||||||
|
<item>2</item>
|
||||||
|
<item>4</item>
|
||||||
|
<item>8</item>
|
||||||
|
<item>16</item>
|
||||||
|
<item>32</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
@@ -30,6 +30,8 @@
|
|||||||
|
|
||||||
<string name="ignore">Ignore</string>
|
<string name="ignore">Ignore</string>
|
||||||
|
|
||||||
|
<string name="unlimited">Unlimited</string>
|
||||||
|
|
||||||
<string name="copied_to_clipboard">Copied to clipboard</string>
|
<string name="copied_to_clipboard">Copied to clipboard</string>
|
||||||
|
|
||||||
<string name="channel_download">Download</string>
|
<string name="channel_download">Download</string>
|
||||||
@@ -166,7 +168,6 @@
|
|||||||
<string name="settings_download_folder_custom">Custom Location</string>
|
<string name="settings_download_folder_custom">Custom Location</string>
|
||||||
<string name="settings_download_folder_not_writable">This folder is not writable. Please select another folder.</string>
|
<string name="settings_download_folder_not_writable">This folder is not writable. Please select another folder.</string>
|
||||||
<string name="settings_cache_limit">Cache Limit</string>
|
<string name="settings_cache_limit">Cache Limit</string>
|
||||||
<string name="settings_cache_unlimited">Unlimited</string>
|
|
||||||
<string name="settings_nomedia_title">Hide image from gallery</string>
|
<string name="settings_nomedia_title">Hide image from gallery</string>
|
||||||
<string name="settings_low_quality">Low quality images</string>
|
<string name="settings_low_quality">Low quality images</string>
|
||||||
<string name="settings_low_quality_summary">Load low quality images to improve load speed and data usage</string>
|
<string name="settings_low_quality_summary">Load low quality images to improve load speed and data usage</string>
|
||||||
@@ -176,14 +177,17 @@
|
|||||||
<string name="settings_app_lock">App lock</string>
|
<string name="settings_app_lock">App lock</string>
|
||||||
<string name="settings_app_lock_type">App lock type</string>
|
<string name="settings_app_lock_type">App lock type</string>
|
||||||
|
|
||||||
|
<!-- SETTINGS/NETWORKING -->
|
||||||
|
<string name="settings_networking">Networking</string>
|
||||||
|
<string name="settings_mirror_summary">Load images from mirrors</string>
|
||||||
|
<string name="settings_proxy_title">Proxy</string>
|
||||||
|
<string name="settings_max_concurrent_download">Concurrent Download</string>
|
||||||
|
|
||||||
<!-- SETTINGS/MISCELLANEOUS -->
|
<!-- SETTINGS/MISCELLANEOUS -->
|
||||||
|
|
||||||
<string name="settings_miscellaneous_title">Miscellaneous</string>
|
<string name="settings_miscellaneous_title">Miscellaneous</string>
|
||||||
<string name="settings_tag_translation">Tag Language</string>
|
<string name="settings_tag_translation">Tag Language</string>
|
||||||
<string name="settings_concurrent_download">Concurrent Download</string>
|
|
||||||
<string name="settings_tag_translation_message">Participate in translation on Github</string>
|
<string name="settings_tag_translation_message">Participate in translation on Github</string>
|
||||||
<string name="settings_mirror_summary">Load images from mirrors</string>
|
|
||||||
<string name="settings_proxy_title">Proxy</string>
|
|
||||||
<string name="settings_rtl">Turn pages Right-to-Left</string>
|
<string name="settings_rtl">Turn pages Right-to-Left</string>
|
||||||
<string name="settings_security_mode_title">Enable security mode</string>
|
<string name="settings_security_mode_title">Enable security mode</string>
|
||||||
<string name="settings_security_mode_summary">Enable security mode to make the screen invisible on recent app window</string>
|
<string name="settings_security_mode_summary">Enable security mode to make the screen invisible on recent app window</string>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
|
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
app:key="app_version"
|
app:key="app_version"
|
||||||
@@ -73,12 +74,7 @@
|
|||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
app:title="@string/settings_miscellaneous_title">
|
app:title="@string/settings_networking">
|
||||||
|
|
||||||
<ListPreference
|
|
||||||
app:key="tag_translation"
|
|
||||||
app:title="@string/settings_tag_translation"
|
|
||||||
app:useSimpleSummaryProvider="true"/>
|
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
app:key="mirrors"
|
app:key="mirrors"
|
||||||
@@ -89,6 +85,24 @@
|
|||||||
app:key="proxy"
|
app:key="proxy"
|
||||||
app:title="@string/settings_proxy_title"/>
|
app:title="@string/settings_proxy_title"/>
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
app:key="max_concurrent_download"
|
||||||
|
android:title="@string/settings_max_concurrent_download"
|
||||||
|
app:entries="@array/concurrent_download_text"
|
||||||
|
app:entryValues="@array/concurrent_download"
|
||||||
|
android:defaultValue="0"
|
||||||
|
app:useSimpleSummaryProvider="true"/>
|
||||||
|
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
<PreferenceCategory
|
||||||
|
app:title="@string/settings_miscellaneous_title">
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
app:key="tag_translation"
|
||||||
|
app:title="@string/settings_tag_translation"
|
||||||
|
app:useSimpleSummaryProvider="true"/>
|
||||||
|
|
||||||
<SwitchPreferenceCompat
|
<SwitchPreferenceCompat
|
||||||
app:key="rtl"
|
app:key="rtl"
|
||||||
app:title="@string/settings_rtl"
|
app:title="@string/settings_rtl"
|
||||||
|
|||||||
@@ -6,11 +6,11 @@ buildscript {
|
|||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:4.1.1'
|
classpath 'com.android.tools.build:gradle:4.1.2'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||||
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
|
||||||
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
|
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
|
||||||
classpath "com.google.gms:google-services:4.3.4"
|
classpath "com.google.gms:google-services:4.3.5"
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
// NOTE: Do not place your application dependencies here; they belong
|
||||||
// in the individual module build.gradle files
|
// in the individual module build.gradle files
|
||||||
classpath "com.google.firebase:firebase-crashlytics-gradle:2.4.1"
|
classpath "com.google.firebase:firebase-crashlytics-gradle:2.4.1"
|
||||||
|
|||||||
@@ -20,4 +20,4 @@ kotlin.code.style=official
|
|||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
|
|
||||||
kotlin_version=1.4.20
|
kotlin_version=1.4.30
|
||||||
Reference in New Issue
Block a user