commit
b87359661e
@ -0,0 +1,191 @@ |
|||||||
|
package io.legado.app.ui.filechooser |
||||||
|
|
||||||
|
import android.content.Intent |
||||||
|
import androidx.appcompat.app.AppCompatActivity |
||||||
|
import androidx.fragment.app.Fragment |
||||||
|
import io.legado.app.R |
||||||
|
import io.legado.app.base.BaseActivity |
||||||
|
import io.legado.app.help.permission.Permissions |
||||||
|
import io.legado.app.help.permission.PermissionsCompat |
||||||
|
import io.legado.app.lib.dialogs.alert |
||||||
|
import io.legado.app.utils.toast |
||||||
|
import org.jetbrains.anko.toast |
||||||
|
|
||||||
|
@Suppress("unused") |
||||||
|
object FilePicker { |
||||||
|
|
||||||
|
fun selectFolder(activity: AppCompatActivity, requestCode: Int, default: (() -> Unit)? = null) { |
||||||
|
activity.alert(titleResource = R.string.select_folder) { |
||||||
|
val selectList = |
||||||
|
activity.resources.getStringArray(R.array.select_folder).toMutableList() |
||||||
|
default ?: let { |
||||||
|
selectList.removeAt(0) |
||||||
|
} |
||||||
|
items(selectList) { _, index -> |
||||||
|
when (if (default == null) index + 1 else index) { |
||||||
|
0 -> default?.invoke() |
||||||
|
1 -> { |
||||||
|
try { |
||||||
|
val intent = getSelectDirIntent() |
||||||
|
activity.startActivityForResult(intent, requestCode) |
||||||
|
} catch (e: java.lang.Exception) { |
||||||
|
e.printStackTrace() |
||||||
|
activity.toast(e.localizedMessage ?: "ERROR") |
||||||
|
} |
||||||
|
} |
||||||
|
2 -> checkPermissions(activity) { |
||||||
|
FileChooserDialog.show( |
||||||
|
activity.supportFragmentManager, |
||||||
|
requestCode, |
||||||
|
mode = FileChooserDialog.DIRECTORY |
||||||
|
) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}.show() |
||||||
|
} |
||||||
|
|
||||||
|
fun selectFolder(fragment: Fragment, requestCode: Int, default: (() -> Unit)? = null) { |
||||||
|
fragment.requireContext() |
||||||
|
.alert(titleResource = R.string.select_folder) { |
||||||
|
val selectList = |
||||||
|
fragment.resources.getStringArray(R.array.select_folder).toMutableList() |
||||||
|
default ?: let { |
||||||
|
selectList.removeAt(0) |
||||||
|
} |
||||||
|
items(selectList) { _, index -> |
||||||
|
when (if (default == null) index + 1 else index) { |
||||||
|
0 -> default?.invoke() |
||||||
|
1 -> { |
||||||
|
try { |
||||||
|
val intent = getSelectDirIntent() |
||||||
|
fragment.startActivityForResult(intent, requestCode) |
||||||
|
} catch (e: java.lang.Exception) { |
||||||
|
e.printStackTrace() |
||||||
|
fragment.toast(e.localizedMessage ?: "ERROR") |
||||||
|
} |
||||||
|
} |
||||||
|
2 -> checkPermissions(fragment) { |
||||||
|
FileChooserDialog.show( |
||||||
|
fragment.childFragmentManager, |
||||||
|
requestCode, |
||||||
|
mode = FileChooserDialog.DIRECTORY |
||||||
|
) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}.show() |
||||||
|
} |
||||||
|
|
||||||
|
fun selectFile( |
||||||
|
activity: BaseActivity, |
||||||
|
requestCode: Int, |
||||||
|
type: String, |
||||||
|
allowExtensions: Array<String>?, |
||||||
|
default: (() -> Unit)? = null |
||||||
|
) { |
||||||
|
activity.alert(titleResource = R.string.select_file) { |
||||||
|
val selectList = |
||||||
|
activity.resources.getStringArray(R.array.select_folder).toMutableList() |
||||||
|
default ?: let { |
||||||
|
selectList.removeAt(0) |
||||||
|
} |
||||||
|
items(selectList) { _, index -> |
||||||
|
when (if (default == null) index + 1 else index) { |
||||||
|
0 -> default?.invoke() |
||||||
|
1 -> { |
||||||
|
try { |
||||||
|
val intent = getSelectFileIntent() |
||||||
|
intent.type = type//设置类型 |
||||||
|
activity.startActivityForResult(intent, requestCode) |
||||||
|
} catch (e: java.lang.Exception) { |
||||||
|
e.printStackTrace() |
||||||
|
activity.toast(e.localizedMessage ?: "ERROR") |
||||||
|
} |
||||||
|
} |
||||||
|
2 -> checkPermissions(activity) { |
||||||
|
FileChooserDialog.show( |
||||||
|
activity.supportFragmentManager, |
||||||
|
requestCode, |
||||||
|
mode = FileChooserDialog.FILE, |
||||||
|
allowExtensions = allowExtensions |
||||||
|
) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}.show() |
||||||
|
} |
||||||
|
|
||||||
|
fun selectFile( |
||||||
|
fragment: Fragment, |
||||||
|
requestCode: Int, |
||||||
|
type: String, |
||||||
|
allowExtensions: Array<String>, |
||||||
|
default: (() -> Unit)? = null |
||||||
|
) { |
||||||
|
fragment.requireContext() |
||||||
|
.alert(titleResource = R.string.select_file) { |
||||||
|
val selectList = |
||||||
|
fragment.resources.getStringArray(R.array.select_folder).toMutableList() |
||||||
|
default ?: let { |
||||||
|
selectList.removeAt(0) |
||||||
|
} |
||||||
|
items(selectList) { _, index -> |
||||||
|
when (if (default == null) index + 1 else index) { |
||||||
|
0 -> default?.invoke() |
||||||
|
1 -> { |
||||||
|
try { |
||||||
|
val intent = getSelectFileIntent() |
||||||
|
intent.type = type//设置类型 |
||||||
|
fragment.startActivityForResult(intent, requestCode) |
||||||
|
} catch (e: java.lang.Exception) { |
||||||
|
e.printStackTrace() |
||||||
|
fragment.toast(e.localizedMessage ?: "ERROR") |
||||||
|
} |
||||||
|
} |
||||||
|
2 -> checkPermissions(fragment) { |
||||||
|
FileChooserDialog.show( |
||||||
|
fragment.childFragmentManager, |
||||||
|
requestCode, |
||||||
|
mode = FileChooserDialog.FILE, |
||||||
|
allowExtensions = allowExtensions |
||||||
|
) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
}.show() |
||||||
|
} |
||||||
|
|
||||||
|
private fun getSelectFileIntent(): Intent { |
||||||
|
val intent = Intent(Intent.ACTION_GET_CONTENT) |
||||||
|
intent.addCategory(Intent.CATEGORY_OPENABLE) |
||||||
|
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) |
||||||
|
return intent |
||||||
|
} |
||||||
|
|
||||||
|
private fun getSelectDirIntent(): Intent { |
||||||
|
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) |
||||||
|
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) |
||||||
|
return intent |
||||||
|
} |
||||||
|
|
||||||
|
private fun checkPermissions(fragment: Fragment, success: (() -> Unit)? = null) { |
||||||
|
PermissionsCompat.Builder(fragment) |
||||||
|
.addPermissions(*Permissions.Group.STORAGE) |
||||||
|
.rationale(R.string.tip_perm_request_storage) |
||||||
|
.onGranted { |
||||||
|
success?.invoke() |
||||||
|
} |
||||||
|
.request() |
||||||
|
} |
||||||
|
|
||||||
|
private fun checkPermissions(activity: AppCompatActivity, success: (() -> Unit)? = null) { |
||||||
|
PermissionsCompat.Builder(activity) |
||||||
|
.addPermissions(*Permissions.Group.STORAGE) |
||||||
|
.rationale(R.string.tip_perm_request_storage) |
||||||
|
.onGranted { |
||||||
|
success?.invoke() |
||||||
|
} |
||||||
|
.request() |
||||||
|
} |
||||||
|
} |
@ -1,4 +1,4 @@ |
|||||||
package io.legado.app.ui.filechooser; |
package io.legado.app.ui.filechooser.utils; |
||||||
|
|
||||||
/** |
/** |
||||||
* Generated by https://github.com/gzu-liyujiang/Image2ByteVar
|
* Generated by https://github.com/gzu-liyujiang/Image2ByteVar
|
@ -1,14 +1,79 @@ |
|||||||
package io.legado.app.ui.login |
package io.legado.app.ui.login |
||||||
|
|
||||||
|
import android.annotation.SuppressLint |
||||||
|
import android.graphics.Bitmap |
||||||
import android.os.Bundle |
import android.os.Bundle |
||||||
|
import android.view.Menu |
||||||
|
import android.view.MenuItem |
||||||
|
import android.webkit.CookieManager |
||||||
|
import android.webkit.WebView |
||||||
|
import android.webkit.WebViewClient |
||||||
import io.legado.app.R |
import io.legado.app.R |
||||||
import io.legado.app.base.BaseActivity |
import io.legado.app.base.BaseActivity |
||||||
|
import io.legado.app.help.http.CookieStore |
||||||
|
import io.legado.app.utils.snackbar |
||||||
|
import kotlinx.android.synthetic.main.activity_source_login.* |
||||||
|
|
||||||
|
|
||||||
class SourceLogin : BaseActivity(R.layout.activity_source_login) { |
class SourceLogin : BaseActivity(R.layout.activity_source_login) { |
||||||
|
|
||||||
|
var sourceUrl: String? = null |
||||||
|
var loginUrl: String? = null |
||||||
|
var checking = false |
||||||
|
|
||||||
override fun onActivityCreated(savedInstanceState: Bundle?) { |
override fun onActivityCreated(savedInstanceState: Bundle?) { |
||||||
|
sourceUrl = intent.getStringExtra("sourceUrl") |
||||||
|
loginUrl = intent.getStringExtra("loginUrl") |
||||||
|
title = getString(R.string.login_source, sourceUrl) |
||||||
|
initWebView() |
||||||
|
} |
||||||
|
|
||||||
|
@SuppressLint("SetJavaScriptEnabled") |
||||||
|
private fun initWebView() { |
||||||
|
val settings = web_view.settings |
||||||
|
settings.setSupportZoom(true) |
||||||
|
settings.builtInZoomControls = true |
||||||
|
settings.javaScriptEnabled = true |
||||||
|
val cookieManager = CookieManager.getInstance() |
||||||
|
web_view.webViewClient = object : WebViewClient() { |
||||||
|
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { |
||||||
|
val cookie = cookieManager.getCookie(url) |
||||||
|
sourceUrl?.let { |
||||||
|
CookieStore.setCookie(it, cookie) |
||||||
|
} |
||||||
|
super.onPageStarted(view, url, favicon) |
||||||
|
} |
||||||
|
|
||||||
|
override fun onPageFinished(view: WebView?, url: String?) { |
||||||
|
val cookie = cookieManager.getCookie(url) |
||||||
|
sourceUrl?.let { |
||||||
|
CookieStore.setCookie(it, cookie) |
||||||
|
} |
||||||
|
if (checking) { |
||||||
|
finish() |
||||||
|
} |
||||||
|
super.onPageFinished(view, url) |
||||||
|
} |
||||||
|
} |
||||||
|
web_view.loadUrl(loginUrl) |
||||||
|
} |
||||||
|
|
||||||
|
override fun onCompatCreateOptionsMenu(menu: Menu): Boolean { |
||||||
|
menuInflater.inflate(R.menu.source_login, menu) |
||||||
|
return super.onCompatCreateOptionsMenu(menu) |
||||||
|
} |
||||||
|
|
||||||
|
override fun onCompatOptionsItemSelected(item: MenuItem): Boolean { |
||||||
|
when (item.itemId) { |
||||||
|
R.id.menu_success -> { |
||||||
|
if (!checking) { |
||||||
|
checking = true |
||||||
|
title_bar.snackbar(R.string.check_host_cookie) |
||||||
|
web_view.loadUrl(sourceUrl) |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
return super.onCompatOptionsItemSelected(item) |
||||||
} |
} |
||||||
|
|
||||||
} |
} |
@ -1,75 +0,0 @@ |
|||||||
<vector xmlns:android="http://schemas.android.com/apk/res/android" |
|
||||||
android:width="680.311dp" |
|
||||||
android:height="1360.631dp" |
|
||||||
android:viewportWidth="680.311" |
|
||||||
android:viewportHeight="1360.631"> |
|
||||||
|
|
||||||
<path |
|
||||||
android:strokeColor="#82A6F5" |
|
||||||
android:strokeWidth="10" |
|
||||||
android:strokeMiterLimit="10" |
|
||||||
android:pathData="M 225.539 182.693 L 225.539 407.308" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M282,212.126c0.481,0.289,0.674,0.578,0.674,0.771c0,0.191-0.191,0.48-0.576,0.674l-2.407,1.444v45.431 c0,7.315,0.192,15.497,0.385,18.865v0.674c0,1.348-0.385,1.731-2.406,2.599c-0.865,0.386-1.348,0.578-1.829,0.578 c-0.674,0-0.77-0.578-0.77-2.021v-1.06c0.193-5.679,0.289-14.341,0.289-19.828v-38.501c0-3.945-0.193-10.49-0.385-14.053 L282,212.126z M281.229,194.32c9.433,4.235,12.513,7.315,13.09,9.433c0.097,0.289,0.097,0.675,0.097,1.06 c0,2.214-1.443,5.005-3.369,5.005c-1.251,0-1.731-0.771-2.214-3.369c-0.385-2.021-2.502-5.583-8.181-11.261L281.229,194.32z M336.672,251.302c0,8.759,0.48,10.684,2.406,11.646c0.481,0.289,0.674,0.481,0.674,0.962c0,0.192,0,0.385-0.097,0.674 c-1.54,4.429-3.369,5.294-10.105,5.294c-12.031,0-14.149-0.865-14.149-6.256v-19.924h-7.219 c0.097,18.577-8.855,26.277-24.642,31.956l-0.385-1.347c15.785-8.566,20.117-15.979,20.694-30.608h-6.545v3.272 c0,0.962-0.192,1.348-1.637,2.021c-1.059,0.481-1.829,0.771-2.214,0.771c-0.577,0-0.77-0.481-0.77-1.251v-0.866 c0.192-2.6,0.289-4.62,0.289-9.048v-8.663c0-1.829-0.097-5.486-0.289-7.894l5.102,3.946h16.748 c3.272-5.968,5.679-10.78,8.181-17.614l5.68,2.6c0.385,0.192,0.577,0.385,0.577,0.577c0,0.289-0.192,0.481-0.673,0.675 c-2.118,0.962-2.407,1.154-11.743,13.764h9.048l2.502-3.465l5.39,3.85c0.386,0.289,0.578,0.481,0.578,0.771 s-2.214,1.732-2.694,2.021v7.412c0,3.08,0,5.102,0.289,7.796v0.289c0,1.349-3.851,2.695-4.14,2.695 c-0.577,0-0.577-0.385-0.577-3.658h-7.123v20.117c0,1.731,0.771,2.406,8.278,2.406c5.679,0,6.545-0.866,7.123-14.919H336.672z M297.593,209.335c8.566,4.717,10.78,6.738,10.78,9.723c0,2.405-2.021,4.042-3.08,4.042c-1.251,0-1.829-1.06-2.214-4.14 c-0.289-2.118-1.636-4.332-6.16-8.663L297.593,209.335z M326.95,241.58v-13.475h-29.646v13.475H326.95z M352.072,201.731 c0.385,0.385,0.674,0.674,0.674,0.867c0,0.289-0.289,0.48-0.771,0.77l-2.695,1.637v69.977c0,5.583-0.577,7.123-6.545,9.336 c-0.289,0.096-0.48,0.192-0.674,0.192c-0.385,0-0.674-0.289-0.771-0.866c-0.48-2.118-2.021-3.946-11.068-6.545l0.096-1.251 c5.391,1.059,8.855,1.54,10.973,1.54c3.081,0,3.563-0.964,3.563-2.792v-70.938h-35.421c-2.021,0-4.813,0.385-6.449,1.059 l-2.695-3.561c2.406,0.192,4.813,0.385,7.026,0.385h35.517l3.851-4.428L352.072,201.731z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M298.748,378.356c-8.47,7.219-13.283,11.743-16.555,15.688c-0.578,0.675-0.867,0.962-1.251,0.962 c-0.289,0-0.481-0.191-0.771-0.576l-3.85-4.813c2.695-1.155,4.716-3.85,4.716-6.063v-37.25l-6.834,0.385 c-2.599,0.191-3.369,0.385-4.813,0.77l-2.889-2.983c2.889,0.096,4.429,0.096,6.643,0l7.7-0.386l2.888-3.85l5.967,4.813 c0.481,0.385,0.674,0.673,0.674,0.865c0,0.289-0.289,0.481-0.77,0.771l-4.14,2.213v35.902l12.417-7.7L298.748,378.356z M276.417,313.289c5.391,2.984,14.63,9.625,14.63,13.283c0,2.117-1.443,4.62-3.08,4.62c-1.059,0-1.539-0.578-2.31-2.984 c-0.866-2.694-4.235-8.952-9.914-13.957L276.417,313.289z M354.286,372.196c0.48,0.481,0.675,0.77,0.675,1.059 s-0.289,0.386-0.964,0.386h-25.796c-0.674,1.731-1.442,3.465-2.502,5.101c9.818,3.658,18.866,9.145,21.753,12.224 c1.349,1.444,1.828,3.08,1.828,4.524c0,1.925-0.866,3.465-2.021,3.465c-0.867,0-1.638-0.48-4.235-4.813 c-1.733-2.888-8.854-9.625-18.288-13.957c-5.583,8.085-15.4,14.534-30.801,19.442l-0.674-1.251 c16.459-6.737,26.661-15.304,30.512-24.736h-23.967c-2.021,0-4.909,0.385-6.449,0.962l-2.695-3.465 c2.311,0.192,4.813,0.385,7.026,0.385h26.854c2.405-7.315,3.561-14.919,3.85-26.758l7.219,3.368 c0.481,0.289,0.771,0.481,0.771,0.771c0,0.193-0.192,0.48-0.675,0.771l-2.694,1.829c-0.481,5.68-2.021,14.054-4.043,20.021h14.535 l4.428-5.583L354.286,372.196z M356.885,341.78c0.577,0.578,0.962,0.866,0.962,1.059c0,0.097-0.385,0.097-1.154,0.289 c-5.391,1.155-7.797,2.889-14.053,10.203l-1.251-0.77l6.738-11.261h-45.239c-2.021,0-4.909,0.288-6.449,0.865l-2.695-3.369 c2.311,0.289,4.813,0.386,7.026,0.386h20.501v-12.417h-12.417c-2.021,0-4.909,0.385-6.449,0.962l-2.695-3.465 c2.311,0.192,4.813,0.385,7.027,0.385h14.534v-5.486c0-3.754-0.097-6.063-0.289-9.433l6.93,2.983 c0.771,0.289,1.155,0.577,1.155,0.963c0,0.288-0.289,0.577-0.866,1.059l-2.31,1.925v7.989h16.17l4.043-4.909l5.486,5.679 c0.385,0.481,0.576,0.771,0.576,0.962c0,0.289-0.287,0.386-0.865,0.386h-25.411v12.417h21.08l3.562-3.946L356.885,341.78z M299.999,356.314c6.642,2.118,11.936,4.813,13.667,7.219c0.481,0.577,0.674,1.347,0.674,2.021c0,1.828-1.154,3.562-2.405,3.562 c-0.866,0-1.349-0.385-2.117-1.925c-1.54-3.08-5.103-6.737-10.396-9.914L299.999,356.314z M305.87,343.897 c6.064,1.829,11.55,4.909,12.994,7.219c0.385,0.674,0.578,1.444,0.578,2.214c0,1.829-1.06,3.465-2.118,3.465 c-0.866,0-1.347-0.578-2.118-2.021c-1.442-2.695-4.042-6.256-9.816-9.818L305.87,343.897z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M454.938,335.997c0.252,0.216,0.36,0.396,0.36,0.54c0,0.181-0.182,0.288-0.54,0.288h-14.688v5.688 c0,1.943-0.61,2.34-2.987,3.42c-0.071,0.036-0.145,0.071-0.18,0.071c-0.107,0-0.217-0.107-0.252-0.287 c-0.396-1.297-1.62-1.979-4.464-2.771l0.108-0.468c2.123,0.54,3.563,0.756,4.463,0.756c1.368,0,1.691-0.468,1.691-1.188v-5.219 h-12.419c-0.756,0-1.8,0.145-2.412,0.396l-1.008-1.332c0.9,0.071,1.8,0.144,2.628,0.144h13.211c0-1.188-0.036-2.556-0.071-3.204 l2.122,0.973l6.877-3.563h-18.286c-0.757,0-1.801,0.145-2.412,0.396l-1.008-1.332c0.899,0.071,1.8,0.144,2.628,0.144h19.582 l1.8-1.152l1.583,2.232c0.145,0.216,0.217,0.396,0.217,0.468c0,0.108-0.072,0.145-0.217,0.145c-0.107,0-0.539-0.036-0.647-0.036 c-1.728,0-4.787,1.116-10.547,3.671v1.26h10.728l1.619-2.231L454.938,335.997z M454.723,317.063 c0.252,0.216,0.359,0.396,0.359,0.54c0,0.144-0.181,0.252-0.504,0.252H426.43c-0.756,0-1.799,0.144-2.411,0.396l-1.008-1.332 c0.898,0.072,1.8,0.145,2.628,0.145h25.196l1.512-2.087L454.723,317.063z M449.359,320.699c0.216,0.145,0.324,0.216,0.324,0.36 c0,0.071-0.108,0.18-0.288,0.323l-0.937,0.685v1.872c0,1.224,0.035,1.979,0.107,2.879v0.144c0,0.612-1.151,0.9-1.476,0.9 c-0.325,0-0.324-0.108-0.324-1.296h-15.334c0,1.224,0,1.368-0.685,1.62c-0.359,0.144-0.611,0.216-0.792,0.216 c-0.252,0-0.323-0.145-0.323-0.54v-0.288c0.071-0.647,0.107-1.656,0.107-2.879v-2.7c0-0.899-0.036-1.908-0.107-2.592l1.979,1.332 h14.578l0.972-1.44L449.359,320.699z M446.768,325.774v-4.248h-15.334v4.248H446.768z M436.329,311.952 c3.349,1.152,4.355,2.052,4.355,3.384c0,0.9-0.504,1.62-1.08,1.62c-0.432,0-0.612-0.144-0.864-0.936 c-0.322-1.008-0.972-2.16-2.663-3.671L436.329,311.952z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M455.084,386.108c-1.872,0.18-2.593,0.504-3.276,1.439c-0.216,0.288-0.396,0.433-0.611,0.433 c-0.145,0-8.026-2.124-12.419-5.111c-4.031,3.023-9.719,4.896-15.838,5.867l-0.144-0.576c5.687-1.404,11.051-3.383,14.722-6.263 c-2.231-1.872-3.995-4.535-5.399-7.883c-1.332,0-1.69,0-2.734,0.288l-1.368-1.152c0.973,0.072,1.691,0.072,2.412,0.072h12.777 l1.188-1.152l2.268,1.764c0.252,0.181,0.36,0.324,0.36,0.396c0,0.107-0.145,0.18-0.504,0.288c-1.08,0.324-1.296,0.468-2.376,2.124 c-1.729,2.7-2.592,3.888-4.104,5.22c4.284,2.591,9.468,3.527,15.047,3.779V386.108L455.084,386.108z M454.723,368.867 c0.18,0.145,0.252,0.252,0.252,0.324c0,0.107-0.18,0.107-0.576,0.144c-1.655,0.108-3.022,1.584-4.967,3.672l-0.54-0.252 l2.556-3.995h-24.549c-0.252,2.771-0.685,3.995-1.62,4.606c-0.359,0.252-0.72,0.324-1.044,0.324c-0.504,0-1.116-0.252-1.116-0.937 c0-0.396,0.252-0.863,0.9-1.296c0.864-0.576,2.088-2.268,2.447-4.788l0.575,0.108c-0.035,0.432-0.035,0.828-0.071,1.188h15.37 c1.729-2.52,3.42-5.398,4.644-7.774l1.944,1.26c0.216,0.145,0.323,0.216,0.323,0.324s-0.253,0.216-0.827,0.396 c-0.324,0.108-0.828,0.612-1.548,1.513c-0.828,1.008-2.484,2.916-3.744,4.282h8.026l1.225-1.188L454.723,368.867z M450.763,358.32 c0.181,0.216,0.252,0.36,0.252,0.468c0,0.072-0.035,0.108-0.145,0.108c-0.108,0-0.252-0.036-0.468-0.108 c-0.359-0.107-1.044-0.252-1.728-0.252c-0.146,0-0.288,0.036-0.434,0.036c-5.614,0.54-14.47,1.08-22.893,1.332l0.036-0.504 c12.813-1.188,20.661-2.016,23.828-3.061L450.763,358.32z M429.635,361.344c0.646,0.359,4.392,2.411,4.392,4.139 c0,0.828-0.647,1.404-1.152,1.404c-0.322,0-0.72-0.324-0.826-0.937c-0.218-1.224-1.116-2.88-2.7-4.248L429.635,361.344z M432.945,374.014c1.548,2.986,3.601,5.326,5.688,6.946c2.016-1.836,3.384-3.852,4.787-6.946H432.945z M437.229,360.696 c2.736,1.656,3.708,2.988,3.815,3.6c0.035,0.145,0.035,0.252,0.035,0.396c0,1.044-0.898,1.62-1.366,1.62 c-0.434,0-0.576-0.288-0.757-1.548c-0.145-0.973-0.539-2.053-1.979-3.744L437.229,360.696z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M454.866,414.658c0.182,0.18,0.252,0.288,0.252,0.396c0,0.107-0.106,0.144-0.358,0.144h-28.868 c-0.721,0-1.765,0.145-2.304,0.36l-0.974-1.296c0.864,0.107,1.729,0.144,2.521,0.144h12.85v-4.284h-8.025 c-0.721,0-1.765,0.145-2.305,0.36l-0.973-1.295c0.828,0.107,1.729,0.144,2.521,0.144h8.782v-4.643h-9.719 c-0.756,0-1.836,0.144-2.411,0.359l-1.008-1.296c0.863,0.072,1.8,0.145,2.627,0.145h14.398c1.439-2.052,2.52-3.853,3.238-5.255 l1.98,1.296c0.216,0.144,0.324,0.252,0.324,0.324c0,0.107-0.146,0.18-0.396,0.252c-0.898,0.216-2.088,1.044-4.464,3.384h7.271 l1.225-1.765l2.34,2.017c0.18,0.18,0.288,0.288,0.288,0.396c0,0.108-0.145,0.145-0.433,0.145h-13.533v4.643h7.811l1.26-1.764 l2.017,1.979c0.181,0.181,0.288,0.324,0.288,0.396c0,0.144-0.145,0.18-0.396,0.18h-10.979v4.284h11.626l1.439-1.872 L454.866,414.658z M453.103,420.489c0.181,0.18,0.288,0.288,0.288,0.396c0,0.107-0.145,0.144-0.433,0.144h-14.541 c-1.729,5.579-5.651,8.963-15.228,11.123l-0.144-0.432c7.811-2.916,11.878-5.003,13.605-10.69h-8.963 c-0.721,0-1.765,0.144-2.304,0.36l-0.974-1.296c0.828,0.107,1.729,0.144,2.521,0.144h9.935c0.323-1.404,0.575-3.023,0.685-4.896 l2.412,1.224c0.18,0.107,0.286,0.216,0.286,0.324c0,0.071-0.07,0.18-0.252,0.252c-0.756,0.359-0.826,0.504-0.898,1.008 c-0.145,0.72-0.288,1.404-0.468,2.088h11.086l1.225-1.692L453.103,420.489z M431.073,398.784c2.16,0.432,4.032,1.188,4.788,2.196 c0.216,0.288,0.288,0.647,0.288,1.008c0,0.792-0.433,1.583-0.937,1.583c-0.324,0-0.576-0.108-0.863-0.972 c-0.288-0.9-1.692-2.593-3.456-3.492L431.073,398.784z M455.406,429.596c-1.512-0.072-2.556,0.432-3.312,1.548 c-0.107,0.18-0.216,0.252-0.359,0.252c-0.072,0-0.145-0.036-0.217-0.072c-5.327-2.124-9.034-5.076-11.626-10.295h0.684 c4.248,6.191,8.928,7.739,14.83,8.171V429.596L455.406,429.596z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M436.365,450.048c0.216,0.107,0.323,0.216,0.323,0.323c0,0.108-0.107,0.181-0.359,0.324l-1.115,0.576 c-0.359,5.759-1.296,10.475-3.023,14.074c2.88,1.728,4.355,3.06,4.355,4.68c0,1.008-0.612,1.404-0.973,1.404 c-0.288,0-0.54-0.252-0.937-0.937c-0.791-1.403-1.765-2.664-3.131-3.852c-2.053,3.456-4.824,6.119-9.287,8.351l-0.252-0.396 c3.814-2.448,6.623-5.507,8.387-8.927c-1.439-1.08-3.203-2.124-5.399-3.24c0.938-3.744,1.836-7.848,2.521-11.482l-1.835,0.072 c-0.756,0.036-1.8,0.288-2.376,0.576l-1.116-1.26c0.36,0,2.196-0.036,2.628-0.036l2.844-0.108c0.685-3.563,1.151-6.587,1.296-8.314 l2.483,1.512c0.145,0.072,0.216,0.144,0.216,0.252c0,0.072-0.071,0.144-0.18,0.216l-0.9,0.612c-0.396,1.8-0.827,3.672-1.295,5.688 l3.743-0.144l1.224-1.477L436.365,450.048z M429.058,450.911c-0.756,3.349-1.619,7.092-2.663,11.52 c1.655,0.684,3.167,1.403,4.463,2.124c1.477-3.348,2.34-8.027,2.556-13.858L429.058,450.911z M455.118,458.255 c0.36,0.323,0.504,0.54,0.504,0.684c0,0.18-0.216,0.252-0.646,0.252h-8.783v12.203c0,2.124-0.144,2.304-2.699,3.815 c-0.071,0.035-0.145,0.071-0.216,0.071c-0.107,0-0.216-0.107-0.252-0.288c-0.252-1.26-1.044-1.62-4.536-2.664l0.108-0.504 c2.16,0.396,3.563,0.612,4.428,0.612c1.403,0,1.477-0.576,1.477-1.872V459.19h-5.509c-0.756,0-1.8,0.144-2.411,0.396l-1.008-1.332 c0.899,0.071,1.8,0.144,2.628,0.144h6.3v-2.664c0-1.296-0.036-3.131-0.072-3.887l1.764,0.936l4.032-6.371h-9.791 c-0.756,0-1.8,0.145-2.412,0.396l-1.008-1.332c0.899,0.072,1.8,0.144,2.628,0.144h10.511l1.26-1.512l2.195,2.124 c0.181,0.18,0.252,0.288,0.252,0.396c0,0.144-0.144,0.18-0.432,0.216c-1.188,0.107-2.195,0.72-6.769,6.19 c0.182,0.072,0.612,0.324,0.612,0.433c0,0.107-0.108,0.18-1.08,0.684v4.248h5.508l1.513-2.016L455.118,458.255z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M435.645,489.288c0.181,0.145,0.288,0.217,0.288,0.324c0,0.072-0.107,0.181-0.288,0.288l-1.188,0.828 v15.046c0,2.736,0.036,4.067,0.108,5.219v0.216c0,0.757-1.512,1.477-1.548,1.477c-0.146,0-0.181-0.252-0.181-0.72v-1.656h-6.911 v3.06c0,0.396-0.071,0.469-0.756,0.9c-0.359,0.216-0.575,0.36-0.721,0.36c-0.216,0-0.252-0.253-0.252-0.828v-0.36 c0.072-2.232,0.108-4.679,0.108-7.523v-14.325c0-1.8-0.036-2.809-0.108-4.032l2.16,1.584h6.119l0.936-1.296L435.645,489.288z M432.838,498.755v-8.819h-6.911v8.819H432.838z M432.838,509.517v-9.971h-6.911v9.971H432.838z M455.19,494.399 c0.18,0.18,0.288,0.324,0.288,0.396c0,0.107-0.145,0.144-0.468,0.144h-5.508v19.833c0,2.339-0.036,2.483-2.735,3.635 c-0.145,0.036-0.216,0.072-0.324,0.072c-0.144,0-0.216-0.072-0.252-0.288c-0.288-1.332-0.972-1.944-5.219-3.06l0.106-0.576 c2.376,0.504,3.96,0.756,4.969,0.756c1.476,0,1.8-0.468,1.8-1.116v-19.257H439.1c-0.647,0-1.512,0.108-2.124,0.252l-1.296-1.188 c0.899,0.107,1.691,0.144,2.628,0.144h9.539v-3.814c0-2.988,0-3.996-0.072-5.221l2.556,1.296c0.253,0.145,0.396,0.216,0.396,0.324 s-0.146,0.216-0.396,0.36l-0.827,0.468v6.587h2.268l1.296-2.016L455.19,494.399z M438.849,498.646 c2.699,2.087,4.464,3.671,4.464,5.399c0,0.899-0.54,1.764-1.261,1.764c-0.468,0-0.685-0.252-0.973-1.692 c-0.287-1.512-0.972-3.275-2.592-5.184L438.849,498.646z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M453.535,550.342c0,4.176,0.396,5.398,1.477,5.976c0.18,0.108,0.288,0.18,0.288,0.324 c0,0.072-0.036,0.144-0.072,0.252c-1.044,2.16-1.584,2.484-3.779,2.736c-1.439,0.144-3.312,0.252-4.858,0.252 c-5.04,0-5.688-0.721-5.688-3.313V543.61h-5.508c-0.144,9.646-1.26,13.786-12.13,18.034l-0.252-0.468 c8.963-4.716,10.689-7.415,10.689-17.566h-7.307c-0.756,0-1.8,0.145-2.412,0.396l-1.008-1.332c0.898,0.071,1.8,0.144,2.628,0.144 h12.599v-9.395c0-1.477-0.071-3.924-0.145-5.256l2.628,1.477c0.216,0.107,0.324,0.252,0.324,0.432c0,0.108-0.072,0.252-0.218,0.36 l-0.898,0.792v11.59h1.584c1.8-2.412,5.075-7.667,6.659-10.941l2.34,1.764c0.106,0.107,0.18,0.18,0.18,0.252 c0,0.107-0.107,0.18-0.324,0.216c-0.684,0.144-1.188,0.54-1.584,1.008l-6.335,7.703h8.388l1.62-2.196l2.376,2.196 c0.252,0.216,0.358,0.396,0.358,0.54c0,0.145-0.18,0.252-0.575,0.252h-11.986v12.778c0,1.728,1.08,1.872,2.808,1.872 c1.44,0,4.212-0.108,5.185-0.216c1.691-0.217,2.376-0.685,2.376-7.703L453.535,550.342L453.535,550.342z M427.978,532.271 c3.492,2.088,5.939,4.716,5.939,5.651c0,1.403-0.433,2.411-1.225,2.411c-0.359,0-0.612-0.252-0.864-1.188 c-0.396-1.44-1.942-4.68-4.139-6.443L427.978,532.271z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M336.627,1009.641h1.169v0.174h-1.169V1009.641z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M323.57,1077.314l0.672,0.24c-1.651-1.31-5.873-4.357-11.369-6.172c-6.539-2.156-16.283-2.948-25.559,5.512 c-0.105,0.098-0.236,0.131-0.383,0.092c-2.219-0.543-11.82-24.271-20.374-46.504c-0.464,0.313-0.917,0.67-1.389,1.039 c-0.831,0.659-1.731,1.363-2.839,1.929c10.691,26.719,21.417,52.866,22.988,54.386 C295.088,1067.123,308.29,1071.844,323.57,1077.314z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M387.494,1076.688c-0.146,0.031-0.278,0-0.383-0.098c-9.277-8.462-19.022-7.668-25.567-5.515 c-5.47,1.803-9.669,4.826-11.339,6.144l0.064-0.025c14.236-5.228,28.957-10.629,38.836,10.312 c1.525-1.474,11.693-26.187,22.068-52.094c-0.115-0.052-0.228-0.097-0.33-0.126c-1.754-0.471-3.011-1.342-4.072-2.237 C398.51,1054.402,389.617,1076.162,387.494,1076.688z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M335.92,1009.988l-0.053-0.061c-3.911-4.523-39.396-43.937-80.371-34.611 c-0.289,0.447,1.828,4.865,4.064,8.907l7.104-0.201l-3.673-6.462l0.247-0.039c23.855-3.857,63.73,25.469,71.48,31.385l-0.19,0.271 c0.216,0.123,0.427,0.246,0.633,0.37l0.344,0.202l-0.382,0.112c-0.129,0.037-0.264,0.225-0.264,0.494l2.018,66.188 c0,0.305,0.166,0.524,0.315,0.524h0.363c0.146,0,0.314-0.221,0.314-0.52l2.019-66.123c0-0.254-0.137-0.439-0.318-0.439h-0.811 l0.522-0.321c8.939-5.455,27.154-11.722,46.41-15.962c15.455-3.405,33.166-5.711,36.504-1.967l0.066,0.077l-0.031,0.098 c-0.393,1.073-3.553,9.711-7.83,21.094c1.662,0.418,3.478,0.954,5.074,1.563c4.443-11.213,8.469-21.466,11.311-28.748 c-43.979-4.454-80.327,16.482-90.432,23.016l-0.201-0.284c10.863-8.298,48.09-35.085,71.033-31.375l0.246,0.039l-3.674,6.453 l7.104,0.186c2.24-4.024,4.354-8.428,4.051-8.887c-40.827-9.281-76.438,30.404-80.362,34.959l-0.054,0.061h-0.317v-0.174h-0.384 h-1.169h-0.382v0.174H335.92L335.92,1009.988z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M252.195,992.182l-0.036-0.097l0.07-0.077c3.323-3.729,21.045-1.468,36.524,1.891 c18.602,4.035,36.266,9.92,45.519,15.133c-10.467-6.72-46.691-27.325-90.633-22.875c2.65,6.793,6.331,16.165,10.419,26.495 c1.791-0.464,3.706-0.826,5.328-1.065C255.435,1001.046,252.567,993.201,252.195,992.182z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M248.686,1016.834c-0.151,0.89,0.351,1.643,0.664,2.013c0.76,0.898,1.789,1.256,2.124,1.045 c2.864-1.798,7.438-3.373,13.588-4.676c0.74-0.158,2.808-0.822,2.62-1.787c-0.25-1.268-2.175-1.531-3.745-1.531 c-0.503,0-0.939,0.027-1.201,0.044c-0.102,0.007-0.18,0.011-0.23,0.013c-2.323,0.082-8.587,1.109-11.841,2.552 C249.854,1014.862,248.837,1015.934,248.686,1016.834z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M250.244,1023.291c0.381,1.347,1.087,2.028,2.096,2.028c0.705,0,1.309-0.335,1.478-0.437l0.156-0.097 c1.4-0.856,5.668-3.471,12.262-4.232c2.932-0.339,6.361-1.8,6.225-3.106c-0.045-0.441-0.185-1.783-3.015-1.783 c-1.49,0-3.229,0.354-4.731,0.698c-3.586,0.825-9.587,2.663-12.804,4.087C251.168,1020.777,249.874,1021.985,250.244,1023.291z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M268.087,1021.346c-0.074,0.01-0.14,0.016-0.189,0.022c-2.99,0.278-8.495,1.687-13.512,4.119 c-0.778,0.378-1.654,1.358-1.712,2.273c-0.062,1.046,0.34,1.709,0.688,2.078c0.526,0.559,1.183,0.757,1.623,0.757 c0.143,0,0.27-0.021,0.377-0.06c2.138-0.757,3.664-1.619,5.139-2.458c1.357-0.766,2.759-1.563,4.587-2.229 c0.065-0.021,0.231-0.068,0.47-0.131c4.775-1.277,5.376-2.258,5.31-2.729c-0.166-1.162-0.803-1.703-2.009-1.703 C268.558,1021.287,268.285,1021.32,268.087,1021.346z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M264.754,1027.191l-0.093,0.032c-2.167,0.767-3.479,1.604-6.098,3.271c-0.455,0.289-0.945,0.604-1.485,0.944 c-0.376,0.237-0.594,0.497-0.65,0.77c-0.055,0.268,0.036,0.571,0.271,0.916c0.609,0.881,1.08,0.979,1.38,0.979l0,0 c0.313,0,0.633-0.129,0.943-0.252c0.228-0.092,0.463-0.188,0.7-0.234c2.219-0.429,3.641-1.552,5.018-2.64 c0.624-0.493,1.212-0.958,1.862-1.354c0.039-0.021,0.089-0.053,0.15-0.086c0.451-0.26,1.652-0.94,1.813-1.784 c0.064-0.339-0.042-0.677-0.328-1.032c-0.099-0.124-0.344-0.192-0.69-0.192C266.588,1026.529,265.207,1027.029,264.754,1027.191z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M409.591,1012.775c-0.422-0.059-1.201-0.166-2.06-0.166c-1.201,0-2.692,0.225-2.985,1.289 c-0.261,0.949,1.756,1.763,2.483,1.973c6.041,1.744,10.486,3.645,13.217,5.645c0.07,0.056,0.183,0.083,0.324,0.083 c0.492,0,1.32-0.365,1.953-1.063c0.527-0.578,0.779-1.239,0.721-1.865c-0.086-0.908-1.024-2.052-1.805-2.468 c-3.143-1.674-9.311-3.149-11.625-3.397C409.766,1012.798,409.688,1012.788,409.591,1012.775z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M419.768,1022.044c-3.107-1.652-8.957-3.922-12.478-5.003c-1.706-0.522-3.661-1.059-5.237-1.059 c-2.047,0-2.441,0.9-2.566,1.58c-0.227,1.293,3.086,2.999,5.988,3.548c6.516,1.237,10.582,4.149,11.92,5.106l0.15,0.11 c0.182,0.126,0.829,0.545,1.596,0.545c0.93,0,1.631-0.63,2.086-1.879C421.688,1023.721,420.486,1022.425,419.768,1022.044z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M416.934,1026.889c-4.83-2.79-10.217-4.592-13.18-5.086c-0.05-0.01-0.111-0.021-0.185-0.035 c-0.25-0.051-0.623-0.125-1.018-0.125c-1.033,0-1.646,0.512-1.877,1.563c-0.099,0.464,0.428,1.486,5.104,3.104 c0.232,0.082,0.394,0.137,0.453,0.166c1.777,0.799,3.117,1.691,4.416,2.559c1.408,0.941,2.869,1.912,4.947,2.818 c0.137,0.059,0.303,0.09,0.487,0.09c0.98,0,2.369-0.824,2.394-2.662C418.486,1028.359,417.684,1027.32,416.934,1026.889z" /> |
|
||||||
<path |
|
||||||
android:fillColor="#82A6F5" |
|
||||||
android:pathData="M406.559,1027.88l-0.092-0.039c-1.291-0.578-2.271-0.869-2.902-0.869c-0.182,0-0.422,0.024-0.535,0.147 c-0.309,0.338-0.44,0.666-0.401,1.008c0.1,0.851,1.25,1.619,1.678,1.908c0.059,0.039,0.11,0.071,0.146,0.099 c0.619,0.44,1.172,0.946,1.761,1.485c1.295,1.183,2.633,2.406,4.813,2.993c0.234,0.065,0.461,0.175,0.682,0.282 c0.324,0.16,0.662,0.328,1,0.328c0.441,0,0.89-0.292,1.369-0.887c0.259-0.324,0.371-0.626,0.338-0.894 c-0.038-0.274-0.235-0.551-0.594-0.811c-0.514-0.381-0.977-0.729-1.406-1.046C409.923,1029.73,408.669,1028.796,406.559,1027.88z" /> |
|
||||||
</vector> |
|
@ -1,15 +1,71 @@ |
|||||||
<?xml version="1.0" encoding="utf-8"?> |
<?xml version="1.0" encoding="utf-8"?> |
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" |
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
xmlns:tools="http://schemas.android.com/tools" |
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto" |
||||||
|
android:id="@+id/root_view" |
||||||
android:orientation="vertical" |
android:orientation="vertical" |
||||||
android:layout_width="match_parent" |
android:layout_width="match_parent" |
||||||
android:layout_height="match_parent"> |
android:layout_height="match_parent" |
||||||
|
android:gravity="center_horizontal"> |
||||||
|
|
||||||
<ImageView |
<View |
||||||
android:id="@+id/iv_bg" |
android:id="@+id/vw_title_line" |
||||||
|
android:layout_width="6dp" |
||||||
|
android:layout_height="0dp" |
||||||
|
android:background="@color/colorAccent" |
||||||
|
app:layout_constraintTop_toTopOf="@+id/tv_title" |
||||||
|
app:layout_constraintBottom_toBottomOf="@+id/tv_title" |
||||||
|
app:layout_constraintLeft_toLeftOf="@id/iv_book" /> |
||||||
|
|
||||||
|
<io.legado.app.ui.widget.text.AccentTextView |
||||||
|
android:id="@+id/tv_title" |
||||||
android:layout_width="wrap_content" |
android:layout_width="wrap_content" |
||||||
android:layout_height="match_parent" |
android:layout_height="wrap_content" |
||||||
android:src="@drawable/image_welcome" |
android:ems="1" |
||||||
|
android:text="阅读" |
||||||
|
android:textSize="49sp" |
||||||
|
app:layout_constraintVertical_bias="0.3" |
||||||
|
app:layout_constraintRight_toLeftOf="@+id/tv_sub_title" |
||||||
|
app:layout_constraintLeft_toRightOf="@+id/vw_title_line" |
||||||
|
app:layout_constraintTop_toTopOf="parent" |
||||||
|
app:layout_constraintBottom_toTopOf="@+id/iv_book" |
||||||
|
tools:ignore="HardcodedText" /> |
||||||
|
|
||||||
|
<io.legado.app.ui.widget.text.AccentTextView |
||||||
|
android:id="@+id/tv_sub_title" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:layout_marginTop="60dp" |
||||||
|
android:ems="1" |
||||||
|
android:text="享受美好时光" |
||||||
|
android:textSize="16sp" |
||||||
|
app:layout_constraintTop_toTopOf="@+id/tv_title" |
||||||
|
app:layout_constraintLeft_toRightOf="@id/tv_title" |
||||||
|
app:layout_constraintRight_toRightOf="@id/iv_book" |
||||||
|
tools:ignore="HardcodedText" /> |
||||||
|
|
||||||
|
<ImageView |
||||||
|
android:id="@+id/iv_book" |
||||||
|
android:layout_width="120dp" |
||||||
|
android:layout_height="120dp" |
||||||
|
android:layout_marginBottom="32dp" |
||||||
|
android:src="@drawable/icon_read_book" |
||||||
android:scaleType="fitCenter" |
android:scaleType="fitCenter" |
||||||
android:contentDescription="@string/welcome" /> |
android:contentDescription="@string/welcome" |
||||||
|
app:layout_constraintBottom_toTopOf="@+id/tv_gzh" |
||||||
|
app:layout_constraintLeft_toLeftOf="parent" |
||||||
|
app:layout_constraintRight_toRightOf="parent" /> |
||||||
|
|
||||||
|
<io.legado.app.ui.widget.text.AccentTextView |
||||||
|
android:id="@+id/tv_gzh" |
||||||
|
android:layout_width="wrap_content" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="关注公众号[开源阅读软件]\n看文章点广告支持作者" |
||||||
|
android:layout_marginBottom="32dp" |
||||||
|
android:gravity="center_horizontal" |
||||||
|
app:layout_constraintBottom_toBottomOf="parent" |
||||||
|
app:layout_constraintLeft_toLeftOf="parent" |
||||||
|
app:layout_constraintRight_toRightOf="parent" |
||||||
|
tools:ignore="HardcodedText" /> |
||||||
|
|
||||||
</LinearLayout> |
</androidx.constraintlayout.widget.ConstraintLayout> |
@ -0,0 +1,105 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:padding="16dp" |
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"> |
||||||
|
|
||||||
|
<LinearLayout |
||||||
|
android:id="@+id/ll_layout" |
||||||
|
android:layout_width="0dp" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:orientation="vertical" |
||||||
|
app:layout_constraintRight_toLeftOf="@+id/ll_sort" |
||||||
|
app:layout_constraintTop_toTopOf="parent" |
||||||
|
app:layout_constraintLeft_toLeftOf="parent"> |
||||||
|
|
||||||
|
<io.legado.app.ui.widget.text.AccentTextView |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:padding="6dp" |
||||||
|
android:text="@string/view" |
||||||
|
android:textSize="16sp" /> |
||||||
|
|
||||||
|
<RadioGroup |
||||||
|
android:id="@+id/rg_layout" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:orientation="vertical"> |
||||||
|
|
||||||
|
<RadioButton |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="@string/layout_list" /> |
||||||
|
|
||||||
|
<RadioButton |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="@string/layout_grid3" /> |
||||||
|
|
||||||
|
<RadioButton |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="@string/layout_grid4" /> |
||||||
|
|
||||||
|
<RadioButton |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="@string/layout_grid5" /> |
||||||
|
|
||||||
|
<RadioButton |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="@string/layout_grid6" /> |
||||||
|
</RadioGroup> |
||||||
|
|
||||||
|
</LinearLayout> |
||||||
|
|
||||||
|
<LinearLayout |
||||||
|
android:id="@+id/ll_sort" |
||||||
|
android:layout_width="0dp" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:orientation="vertical" |
||||||
|
app:layout_constraintLeft_toRightOf="@+id/ll_layout" |
||||||
|
app:layout_constraintTop_toTopOf="parent" |
||||||
|
app:layout_constraintRight_toRightOf="parent"> |
||||||
|
|
||||||
|
<io.legado.app.ui.widget.text.AccentTextView |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="match_parent" |
||||||
|
android:padding="6dp" |
||||||
|
android:text="@string/sort" |
||||||
|
android:textSize="16sp" /> |
||||||
|
|
||||||
|
<RadioGroup |
||||||
|
android:id="@+id/rg_sort" |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:orientation="vertical"> |
||||||
|
|
||||||
|
<RadioButton |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="@string/bookshelf_px_0" /> |
||||||
|
|
||||||
|
<RadioButton |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="@string/bookshelf_px_1" /> |
||||||
|
|
||||||
|
<RadioButton |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="@string/bookshelf_px_2" /> |
||||||
|
|
||||||
|
<RadioButton |
||||||
|
android:layout_width="match_parent" |
||||||
|
android:layout_height="wrap_content" |
||||||
|
android:text="@string/bookshelf_px_3" /> |
||||||
|
|
||||||
|
</RadioGroup> |
||||||
|
|
||||||
|
</LinearLayout> |
||||||
|
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout> |
@ -0,0 +1,11 @@ |
|||||||
|
<?xml version="1.0" encoding="utf-8"?> |
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android" |
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"> |
||||||
|
|
||||||
|
<item |
||||||
|
android:id="@+id/menu_success" |
||||||
|
android:icon="@drawable/ic_check" |
||||||
|
android:title="@string/success" |
||||||
|
app:showAsAction="always" /> |
||||||
|
|
||||||
|
</menu> |
Loading…
Reference in new issue