1
0
mirror of https://github.com/fumiama/copymanga.git synced 2026-06-29 23:30:41 +08:00

2.0.beta13

1. 解决一些闪退
2. 增加设置页面
3. 升级ABI
This commit is contained in:
源文雨
2022-10-17 22:49:43 +08:00
parent 36852a52dd
commit 663f853e81
18 changed files with 108 additions and 35 deletions

4
.idea/misc.xml generated
View File

@@ -10,6 +10,7 @@
<entry key="app/src/main/res/layout/activity_dlist.xml" value="0.48641304347826086" /> <entry key="app/src/main/res/layout/activity_dlist.xml" value="0.48641304347826086" />
<entry key="app/src/main/res/layout/activity_login.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/activity_login.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/activity_main.xml" value="0.5095108695652174" /> <entry key="app/src/main/res/layout/activity_main.xml" value="0.5095108695652174" />
<entry key="app/src/main/res/layout/activity_viewmanga.xml" value="0.5395833333333333" />
<entry key="app/src/main/res/layout/app_bar_main.xml" value="0.5095108695652174" /> <entry key="app/src/main/res/layout/app_bar_main.xml" value="0.5095108695652174" />
<entry key="app/src/main/res/layout/card_book.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/card_book.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/card_book_plain.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/card_book_plain.xml" value="0.49592391304347827" />
@@ -18,6 +19,7 @@
<entry key="app/src/main/res/layout/fragment_chapters.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/fragment_chapters.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/fragment_download.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/fragment_download.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/fragment_home.xml" value="0.4376278118609407" /> <entry key="app/src/main/res/layout/fragment_home.xml" value="0.4376278118609407" />
<entry key="app/src/main/res/layout/fragment_settings.xml" value="0.5255208333333333" />
<entry key="app/src/main/res/layout/line_1bookline.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/line_1bookline.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/line_bookinfo.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/line_bookinfo.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/line_booktandb.xml" value="0.48596014492753625" /> <entry key="app/src/main/res/layout/line_booktandb.xml" value="0.48596014492753625" />
@@ -28,7 +30,9 @@
<entry key="app/src/main/res/layout/nav_header_main.xml" value="0.48596014492753625" /> <entry key="app/src/main/res/layout/nav_header_main.xml" value="0.48596014492753625" />
<entry key="app/src/main/res/layout/viewpage_banner.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/viewpage_banner.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/viewpage_horizonal.xml" value="0.49592391304347827" /> <entry key="app/src/main/res/layout/viewpage_horizonal.xml" value="0.49592391304347827" />
<entry key="app/src/main/res/layout/widget_infodrawer.xml" value="0.5395833333333333" />
<entry key="app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" value="0.5572916666666666" /> <entry key="app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml" value="0.5572916666666666" />
<entry key="app/src/main/res/xml/pref_setting.xml" value="0.6289537712895377" />
</map> </map>
</option> </option>
</component> </component>

View File

@@ -3,12 +3,12 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-android-extensions'
android { android {
compileSdkVersion 31 compileSdkVersion 33
defaultConfig { defaultConfig {
applicationId 'top.fumiama.copymanga' applicationId 'top.fumiama.copymanga'
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 31 targetSdkVersion 33
versionCode 24 versionCode 24
versionName '2.0.beta12' versionName '2.0.beta12'
resConfigs "zh", "zh-rCN" resConfigs "zh", "zh-rCN"
@@ -53,18 +53,17 @@ android {
dependencies { dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"]) implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.appcompat:appcompat:1.4.1' implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'com.google.android.material:material:1.5.0' implementation 'com.google.android.material:material:1.6.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.navigation:navigation-fragment-ktx:2.4.1' implementation 'androidx.navigation:navigation-fragment-ktx:2.5.2'
implementation 'androidx.navigation:navigation-ui-ktx:2.4.1' implementation 'androidx.navigation:navigation-ui-ktx:2.5.2'
implementation 'androidx.navigation:navigation-fragment-ktx:2.4.1' implementation 'androidx.navigation:navigation-fragment-ktx:2.5.2'
implementation 'androidx.navigation:navigation-ui-ktx:2.4.1' implementation 'androidx.navigation:navigation-ui-ktx:2.5.2'
testImplementation 'junit:junit:4.13.2' testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3' implementation "androidx.preference:preference-ktx:1.2.0"
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
implementation 'com.afollestad.material-dialogs:input:3.3.0' implementation 'com.afollestad.material-dialogs:input:3.3.0'
implementation 'com.github.yalantis:ucrop:2.2.6' implementation 'com.github.yalantis:ucrop:2.2.6'
implementation 'com.to.aboomy:pager2banner:1.0.1' implementation 'com.to.aboomy:pager2banner:1.0.1'

View File

@@ -28,7 +28,6 @@ open class MangaPagesFragmentTemplate(inflateRes:Int, val isLazy: Boolean = true
var isRefresh = false var isRefresh = false
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
@ExperimentalStdlibApi
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)

View File

@@ -16,7 +16,7 @@ import java.lang.ref.WeakReference
open class InfoCardLoader(inflateRes:Int, private val navId:Int, private val isTypeBook: Boolean = false): MangaPagesFragmentTemplate(inflateRes) { open class InfoCardLoader(inflateRes:Int, private val navId:Int, private val isTypeBook: Boolean = false): MangaPagesFragmentTemplate(inflateRes) {
var offset = 0 var offset = 0
private val subUrl get() = getApiUrl() private val subUrl get() = getApiUrl()
private var ad: AutoDownloadThread? = null var ad: AutoDownloadThread? = null
init { init {
pageHandler = object : PageHandler { pageHandler = object : PageHandler {
override fun addPage(){ override fun addPage(){
@@ -32,6 +32,7 @@ open class InfoCardLoader(inflateRes:Int, private val navId:Int, private val isT
if(results.offset < results.total) { if(results.offset < results.total) {
if(code == 200) { if(code == 200) {
results.list.forEach { book -> results.list.forEach { book ->
if(ad?.exit == true) return@AutoDownloadThread
cardList.addCard(book.comic.name, null, book.comic.cover, book.comic.path_word, null, null, false) cardList.addCard(book.comic.name, null, book.comic.cover, book.comic.path_word, null, null, false)
} }
offset += results.list.size offset += results.list.size
@@ -46,6 +47,7 @@ open class InfoCardLoader(inflateRes:Int, private val navId:Int, private val isT
if(results.offset < results.total) { if(results.offset < results.total) {
if(code == 200) { if(code == 200) {
results.list.forEach{ book -> results.list.forEach{ book ->
if(ad?.exit == true) return@AutoDownloadThread
cardList.addCard(book.name, null, book.cover, book.path_word, null, null, false) cardList.addCard(book.name, null, book.cover, book.path_word, null, null, false)
} }
offset += results.list.size offset += results.list.size

View File

@@ -3,7 +3,7 @@ package top.fumiama.copymanga.tools.api
import com.bumptech.glide.load.model.LazyHeaders import com.bumptech.glide.load.model.LazyHeaders
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import top.fumiama.copymanga.MainActivity import top.fumiama.copymanga.MainActivity
import top.fumiama.copymanga.json.Chapter2Return import top.fumiama.copymanga.ui.settings.SettingsFragment.Companion.settingsPref
import java.io.File import java.io.File
object CMApi { object CMApi {
@@ -15,7 +15,7 @@ object CMApi {
.addHeader("User-Agent", MainActivity.mainWeakReference?.get()?.getString(R.string.pc_ua)!!) .addHeader("User-Agent", MainActivity.mainWeakReference?.get()?.getString(R.string.pc_ua)!!)
.addHeader("source", "copyApp") .addHeader("source", "copyApp")
.addHeader("webp", "1") .addHeader("webp", "1")
.addHeader("region", "1") .addHeader("region", if(settingsPref?.getBoolean("", false) == false) "1" else "0")
.addHeader("platform", "3") .addHeader("platform", "3")
.build() .build()
return field return field

View File

@@ -29,13 +29,13 @@ class DownloadPool(folder: String) {
} }
operator fun plusAssign(quest: Quest) { operator fun plusAssign(quest: Quest) {
packZipFile(quest.fileName, quest.imgUrl, quest.refer?:"") packZipFile(quest.fileName, quest.imgUrl, quest.refer)
} }
operator fun plusAssign(quests: Array<Quest>) { operator fun plusAssign(quests: Array<Quest>) {
Thread{ Thread{
quests.forEach { quest -> quests.forEach { quest ->
packZipFile(quest.fileName, quest.imgUrl, quest.refer?:"") packZipFile(quest.fileName, quest.imgUrl, quest.refer)
sleep(1000) sleep(1000)
} }
}.start() }.start()
@@ -49,7 +49,7 @@ class DownloadPool(folder: String) {
mOnPageDownloadListener = onPageDownloadListener mOnPageDownloadListener = onPageDownloadListener
} }
private fun packZipFile(fileName: String, imgUrls: Array<String>, refer: String) { private fun packZipFile(fileName: String, imgUrls: Array<String>, refer: String?) {
Thread{ Thread{
File(saveFolder, fileName).let { f -> File(saveFolder, fileName).let { f ->
f.parentFile?.let { if(!it.exists()) it.mkdirs() } f.parentFile?.let { if(!it.exists()) it.mkdirs() }

View File

@@ -3,6 +3,7 @@ package top.fumiama.copymanga.tools.http
import android.util.Log import android.util.Log
import top.fumiama.copymanga.tools.ssl.AllTrustManager import top.fumiama.copymanga.tools.ssl.AllTrustManager
import top.fumiama.copymanga.tools.ssl.IgnoreHostNameVerifier import top.fumiama.copymanga.tools.ssl.IgnoreHostNameVerifier
import top.fumiama.copymanga.ui.settings.SettingsFragment.Companion.settingsPref
import java.io.File import java.io.File
import java.net.HttpURLConnection import java.net.HttpURLConnection
import java.net.URL import java.net.URL
@@ -44,7 +45,7 @@ object DownloadTools {
refer?.let { setRequestProperty("referer", it) } refer?.let { setRequestProperty("referer", it) }
setRequestProperty("source", "copyApp") setRequestProperty("source", "copyApp")
setRequestProperty("webp", "1") setRequestProperty("webp", "1")
setRequestProperty("region", "0") setRequestProperty("region", if(settingsPref?.getBoolean("", false) == false) "1" else "0")
setRequestProperty("authorization", "Token") setRequestProperty("authorization", "Token")
setRequestProperty("platform", "3") setRequestProperty("platform", "3")
ua?.let { setRequestProperty("User-agent", it) } ua?.let { setRequestProperty("User-agent", it) }

View File

@@ -232,9 +232,11 @@ class BookHandler(that: WeakReference<BookFragment>, private val path: String)
that?.apply { that?.apply {
book?.results?.apply { book?.results?.apply {
mainWeakReference?.get()?.runOnUiThread{ mainWeakReference?.get()?.runOnUiThread{
if(exit) return@runOnUiThread
ViewMangaActivity.fileArray = arrayOf() ViewMangaActivity.fileArray = arrayOf()
ViewMangaActivity.urlArray = arrayOf() ViewMangaActivity.urlArray = arrayOf()
vols?.forEachIndexed { iv, v -> vols?.forEachIndexed { iv, v ->
if(exit) return@runOnUiThread
fbl.addView(layoutInflater.inflate(R.layout.div_h, fbl, false)) fbl.addView(layoutInflater.inflate(R.layout.div_h, fbl, false))
val t = layoutInflater.inflate(R.layout.line_caption, fbl, false) val t = layoutInflater.inflate(R.layout.line_caption, fbl, false)
t.tcptn.text = keys[iv] t.tcptn.text = keys[iv]

View File

@@ -36,8 +36,10 @@ class SortFragment : InfoCardLoader(R.layout.fragment_sort, R.id.action_nav_sort
setUpdate() setUpdate()
setHot() setHot()
AutoDownloadThread(getString(R.string.filterApiUrl)) { AutoDownloadThread(getString(R.string.filterApiUrl)) {
if(ad?.exit == true) return@AutoDownloadThread
it?.let { it?.let {
filter = Gson().fromJson(it.inputStream().reader(), FilterStructure::class.java) filter = Gson().fromJson(it.inputStream().reader(), FilterStructure::class.java)
if(ad?.exit == true) return@AutoDownloadThread
mainWeakReference?.get()?.runOnUiThread{ mainWeakReference?.get()?.runOnUiThread{
setClasses() setClasses()
} }
@@ -53,6 +55,7 @@ class SortFragment : InfoCardLoader(R.layout.fragment_sort, R.id.action_nav_sort
} }
private fun setUpdate(){ private fun setUpdate(){
if(ad?.exit == true) return
line_sort_time.apt.setText(R.string.menu_update_time) line_sort_time.apt.setText(R.string.menu_update_time)
line_sort_time.setOnClickListener { line_sort_time.setOnClickListener {
sortValue = if(it.apim.rotation == 0f) { sortValue = if(it.apim.rotation == 0f) {
@@ -71,6 +74,7 @@ class SortFragment : InfoCardLoader(R.layout.fragment_sort, R.id.action_nav_sort
private fun setClasses(){ private fun setClasses(){
filter?.results?.theme?.let { items -> filter?.results?.theme?.let { items ->
if(ad?.exit == true) return@let
line_sort_class.apt.text = "全部" line_sort_class.apt.text = "全部"
line_sort_class.setOnClickListener { line_sort_class.setOnClickListener {
val popupMenu = popupMenu { val popupMenu = popupMenu {
@@ -108,6 +112,7 @@ class SortFragment : InfoCardLoader(R.layout.fragment_sort, R.id.action_nav_sort
} }
private fun setHot() { private fun setHot() {
if(ad?.exit == true) return
line_sort_hot.apt.setText(R.string.menu_hot) line_sort_hot.apt.setText(R.string.menu_hot)
line_sort_hot.setOnClickListener { line_sort_hot.setOnClickListener {
sortValue = if (it.apim.rotation == 0f) { sortValue = if (it.apim.rotation == 0f) {

View File

@@ -25,10 +25,12 @@ class TopicFragment : InfoCardLoader(R.layout.fragment_topic, R.id.action_nav_to
AutoDownloadThread(getString(R.string.topicApiUrl).let { AutoDownloadThread(getString(R.string.topicApiUrl).let {
String.format(it, arguments?.getString("path")) String.format(it, arguments?.getString("path"))
}) { }) {
if(ad?.exit == true) return@AutoDownloadThread
it?.apply { it?.apply {
val r = inputStream().reader() val r = inputStream().reader()
val topic = Gson().fromJson(r, TopicStructure::class.java) val topic = Gson().fromJson(r, TopicStructure::class.java)
topic?.apply { topic?.apply {
if(ad?.exit == true) return@AutoDownloadThread
mainWeakReference?.get()?.let { mainWeakReference?.get()?.let {
it.runOnUiThread { it.runOnUiThread {
it.toolbar.title = results.title it.toolbar.title = results.title

View File

@@ -1,7 +1,20 @@
package top.fumiama.copymanga.ui.settings package top.fumiama.copymanga.ui.settings
import android.content.SharedPreferences
import android.os.Bundle
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceManager
import androidx.preference.SeekBarPreference
import top.fumiama.dmzj.copymanga.R import top.fumiama.dmzj.copymanga.R
import top.fumiama.copymanga.template.general.NoBackRefreshFragment
class SettingsFragment: NoBackRefreshFragment(R.layout.fragment_settings) { class SettingsFragment: PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.pref_setting, rootKey)
settingsPref = context?.let { PreferenceManager.getDefaultSharedPreferences(it) }
}
companion object {
var settingsPref: SharedPreferences? = null
}
} }

View File

@@ -120,14 +120,12 @@ class VMHandler(activity: ViewMangaActivity, url: String) : AutoDownloadHandler(
wv.get()?.toolsBox?.toastError("下载章节信息失败") wv.get()?.toolsBox?.toastError("下载章节信息失败")
} }
@ExperimentalStdlibApi
override fun doWhenFinishDownload() { override fun doWhenFinishDownload() {
super.doWhenFinishDownload() super.doWhenFinishDownload()
if(exit) return if(exit) return
prepareManga() prepareManga()
} }
@ExperimentalStdlibApi
fun loadFromFile(file: File): Boolean { fun loadFromFile(file: File): Boolean {
return try { return try {
val jsonFile = File(file.parentFile, "${file.nameWithoutExtension}.json") val jsonFile = File(file.parentFile, "${file.nameWithoutExtension}.json")
@@ -157,7 +155,6 @@ class VMHandler(activity: ViewMangaActivity, url: String) : AutoDownloadHandler(
} }
} }
@ExperimentalStdlibApi
private fun prepareManga(){ private fun prepareManga(){
if(comicName == null) { if(comicName == null) {
comicName = manga?.results?.comic?.name comicName = manga?.results?.comic?.name

View File

@@ -87,7 +87,6 @@ class ViewMangaActivity : TitleActivityTemplate() {
private var pm: PagesManager? = null private var pm: PagesManager? = null
val realCount get() = if(cut) indexMap.size else count val realCount get() = if(cut) indexMap.size else count
@ExperimentalStdlibApi
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
setContentView(R.layout.activity_viewmanga) setContentView(R.layout.activity_viewmanga)
@@ -131,7 +130,7 @@ class ViewMangaActivity : TitleActivityTemplate() {
} }
} }
@ExperimentalStdlibApi @OptIn(ExperimentalStdlibApi::class)
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
var flag = false var flag = false
if(volTurnPage) when(keyCode) { if(volTurnPage) when(keyCode) {
@@ -220,7 +219,7 @@ class ViewMangaActivity : TitleActivityTemplate() {
} }
} }
@ExperimentalStdlibApi @OptIn(ExperimentalStdlibApi::class)
fun initManga(){ fun initManga(){
handler.manga?.results?.chapter?.uuid?.let { handler.manga?.results?.chapter?.uuid?.let {
pn = getPreferences(MODE_PRIVATE).getInt(it, pn) pn = getPreferences(MODE_PRIVATE).getInt(it, pn)
@@ -230,7 +229,6 @@ class ViewMangaActivity : TitleActivityTemplate() {
if (!isVertical) restorePN() if (!isVertical) restorePN()
} }
@ExperimentalStdlibApi
private fun prepareImgFromWeb() { private fun prepareImgFromWeb() {
if(!noCellarAlert && toolsBox.netinfo == "移动数据") alertCellar() if(!noCellarAlert && toolsBox.netinfo == "移动数据") alertCellar()
else handler.startLoad() else handler.startLoad()
@@ -244,7 +242,6 @@ class ViewMangaActivity : TitleActivityTemplate() {
return op.outWidth.toFloat() / op.outHeight.toFloat() > 1 return op.outWidth.toFloat() / op.outHeight.toFloat() > 1
} }
@ExperimentalStdlibApi
fun countZipEntries(doWhenFinish : (count: Int) -> Unit) = Thread{ fun countZipEntries(doWhenFinish : (count: Int) -> Unit) = Thread{
if (zipFile != null) try { if (zipFile != null) try {
Log.d("Myvm", "zip: $zipFile") Log.d("Myvm", "zip: $zipFile")

View File

@@ -698,7 +698,7 @@ class ScaleImageView : ImageView {
private val isBig: Boolean private val isBig: Boolean
get() = getMatrixScale(mOuterMatrix)[0] > 1f get() = getMatrixScale(mOuterMatrix)[0] > 1f
@ExperimentalStdlibApi @OptIn(ExperimentalStdlibApi::class)
@SuppressLint("ClickableViewAccessibility") @SuppressLint("ClickableViewAccessibility")
override fun onTouchEvent(event: MotionEvent): Boolean { override fun onTouchEvent(event: MotionEvent): Boolean {
super.onTouchEvent(event) super.onTouchEvent(event)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout <top.fumiama.copymanga.ui.settings.SettingsFragment
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
</androidx.constraintlayout.widget.ConstraintLayout> </top.fumiama.copymanga.ui.settings.SettingsFragment>

View File

@@ -80,4 +80,16 @@
<string name="author">作者</string> <string name="author">作者</string>
<string name="caption">标签</string> <string name="caption">标签</string>
<string name="settings_cat_net">网络</string>
<string name="settings_cat_net_sw_use_foreign">使用海外线路</string>
<string name="settings_cat_net_sm_use_foreign">不管使用什么线路, API访问均是海外, 只有图片CDN可能会变化, 请酌情选择使用</string>
<string name="settings_cat_vm">漫画浏览</string>
<string name="settings_cat_vm_sw_vol_turn">音量键翻页</string>
<string name="settings_cat_vm_sm_vol_turn">使用音量上下键前后翻页</string>
<string name="settings_cat_vm_sb_vertical_max">竖向翻页一次加载页数</string>
<string name="settings_cat_vm_sm_vertical_max">默认为20</string>
<string name="settings_cat_vm_sb_quality">图片质量</string>
<string name="settings_cat_vm_sm_quality">默认为100</string>
</resources> </resources>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory
app:iconSpaceReserved="false"
app:title="@string/settings_cat_net">
<SwitchPreferenceCompat
app:iconSpaceReserved="false"
app:key="settings_cat_net_sw_use_foreign"
app:selectable="true"
app:summary="@string/settings_cat_net_sm_use_foreign"
app:title="@string/settings_cat_net_sw_use_foreign" />
</PreferenceCategory>
<PreferenceCategory
app:iconSpaceReserved="false"
app:title="@string/settings_cat_vm">
<SwitchPreferenceCompat
app:iconSpaceReserved="false"
app:key="settings_cat_vm_sw_vol_turn"
app:selectable="true"
app:summary="@string/settings_cat_vm_sm_vol_turn"
app:title="@string/settings_cat_vm_sw_vol_turn" />
<SeekBarPreference
android:defaultValue="20"
app:defaultValue="true"
app:iconSpaceReserved="false"
app:key="settings_cat_vm_sb_vertical_max"
app:showSeekBarValue="true"
app:summary="@string/settings_cat_vm_sm_vertical_max"
app:title="@string/settings_cat_vm_sb_vertical_max" />
<SeekBarPreference
android:defaultValue="100"
app:defaultValue="true"
app:iconSpaceReserved="false"
app:key="settings_cat_vm_sb_quality"
app:showSeekBarValue="true"
app:summary="@string/settings_cat_vm_sm_quality"
app:title="@string/settings_cat_vm_sb_quality" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -1,6 +1,6 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = '1.5.31' ext.kotlin_version = '1.6.10'
repositories { repositories {
google() google()
jcenter() jcenter()