pull/32/head
kunfei 5 years ago
parent 395f95aff1
commit 8db3d70859
  1. 5
      app/src/main/java/io/legado/app/lib/theme/TintHelper.kt
  2. 18
      app/src/main/java/io/legado/app/lib/theme/view/ATEAccentBgTextView.kt
  3. 26
      app/src/main/java/io/legado/app/lib/theme/view/ATEAccentStrokeTextView.kt
  4. 18
      app/src/main/java/io/legado/app/lib/theme/view/ATEAutoCompleteTextView.kt
  5. 18
      app/src/main/java/io/legado/app/lib/theme/view/ATECheckBox.kt
  6. 18
      app/src/main/java/io/legado/app/lib/theme/view/ATEEditText.kt
  7. 18
      app/src/main/java/io/legado/app/lib/theme/view/ATEPrimaryTextView.kt
  8. 22
      app/src/main/java/io/legado/app/lib/theme/view/ATEProgressBar.kt
  9. 18
      app/src/main/java/io/legado/app/lib/theme/view/ATERadioButton.kt
  10. 18
      app/src/main/java/io/legado/app/lib/theme/view/ATERadioNoButton.kt
  11. 22
      app/src/main/java/io/legado/app/lib/theme/view/ATESecondaryTextView.kt
  12. 18
      app/src/main/java/io/legado/app/lib/theme/view/ATEStrokeTextView.kt
  13. 26
      app/src/main/java/io/legado/app/lib/theme/view/ATESwitch.kt
  14. 23
      app/src/main/java/io/legado/app/lib/theme/view/ATETextInputLayout.kt
  15. 10
      app/src/main/java/io/legado/app/ui/readbook/config/ReadStyleDialog.kt
  16. 11
      app/src/main/res/layout/dialog_read_bg_text.xml
  17. 3
      app/src/main/res/values/strings.xml

@ -206,7 +206,7 @@ object TintHelper {
intArrayOf(android.R.attr.state_enabled, -android.R.attr.state_checked),
intArrayOf(android.R.attr.state_enabled, android.R.attr.state_checked)
), intArrayOf(
// Rdio button includes own alpha for disabled state
// Radio button includes own alpha for disabled state
ColorUtils.stripAlpha(
ContextCompat.getColor(
radioButton.context,
@ -223,11 +223,10 @@ object TintHelper {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
radioButton.buttonTintList = sl
} else {
val d = createTintedDrawable(
radioButton.buttonDrawable = createTintedDrawable(
ContextCompat.getDrawable(radioButton.context, R.drawable.abc_btn_radio_material),
sl
)
radioButton.buttonDrawable = d
}
}

@ -10,19 +10,17 @@ import io.legado.app.lib.theme.ThemeStore
import io.legado.app.utils.dp
class ATEAccentBgTextView : AppCompatTextView {
constructor(context: Context) : super(context) {
init(context)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context) {
init {
background = Selector.shapeBuild()
.setCornerRadius(3.dp)
.setDefaultBgColor(ThemeStore.accentColor(context))

@ -7,33 +7,31 @@ import io.legado.app.R
import io.legado.app.lib.theme.Selector
import io.legado.app.lib.theme.ThemeStore
import io.legado.app.utils.dp
import io.legado.app.utils.getCompatColor
class ATEAccentStrokeTextView : AppCompatTextView {
constructor(context: Context) : super(context) {
init(context)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
@Suppress("DEPRECATION")
private fun init(context: Context) {
init {
background = Selector.shapeBuild()
.setCornerRadius(3.dp)
.setStrokeWidth(1.dp)
.setDisabledStrokeColor(context.resources.getColor(R.color.md_grey_500))
.setDisabledStrokeColor(context.getCompatColor(R.color.md_grey_500))
.setDefaultStrokeColor(ThemeStore.accentColor(context))
.setPressedBgColor(context.resources.getColor(R.color.transparent30))
.setPressedBgColor(context.getCompatColor(R.color.transparent30))
.create()
setTextColor(
Selector.colorBuild()
.setDefaultColor(ThemeStore.accentColor(context))
.setDisabledColor(context.resources.getColor(R.color.md_grey_500))
.setDisabledColor(context.getCompatColor(R.color.md_grey_500))
.create()
)
}

@ -10,19 +10,17 @@ import io.legado.app.lib.theme.ThemeStore
class ATEAutoCompleteTextView : AppCompatAutoCompleteTextView {
constructor(context: Context) : super(context) {
init(context)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context) {
init {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
backgroundTintList = Selector.colorBuild()
.setFocusedColor(ThemeStore.accentColor(context))

@ -11,19 +11,17 @@ import io.legado.app.lib.theme.ThemeStore
*/
class ATECheckBox : AppCompatCheckBox {
constructor(context: Context) : super(context) {
init(context)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context) {
init {
ATH.setTint(this, ThemeStore.accentColor(context))
}
}

@ -11,19 +11,17 @@ import io.legado.app.lib.theme.ThemeStore
*/
class ATEEditText : AppCompatEditText {
constructor(context: Context) : super(context) {
init(context, null)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context, attrs: AttributeSet?) {
init {
ATH.setTint(this, ThemeStore.accentColor(context))
}
}

@ -10,19 +10,17 @@ import io.legado.app.lib.theme.ThemeStore
*/
class ATEPrimaryTextView : AppCompatTextView {
constructor(context: Context) : super(context) {
init(context)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context) {
init {
setTextColor(ThemeStore.textColorPrimary(context))
}
}

@ -13,17 +13,15 @@ import io.legado.app.lib.theme.ThemeStore
*/
class ATEProgressBar : ProgressBar {
constructor(context: Context) : super(context) {
init(context, null)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(
@ -31,11 +29,9 @@ class ATEProgressBar : ProgressBar {
attrs,
defStyleAttr,
defStyleRes
) {
init(context, attrs)
}
)
private fun init(context: Context, attrs: AttributeSet?) {
init {
ATH.setTint(this, ThemeStore.accentColor(context))
}
}

@ -11,19 +11,17 @@ import io.legado.app.lib.theme.accentColor
*/
class ATERadioButton : AppCompatRadioButton {
constructor(context: Context) : super(context) {
init(context)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context) {
init {
ATH.setTint(this@ATERadioButton, context.accentColor)
}
}

@ -14,19 +14,17 @@ import io.legado.app.utils.getCompatColor
*/
class ATERadioNoButton : AppCompatRadioButton {
constructor(context: Context) : super(context) {
init(context, null)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context, attrs: AttributeSet?) {
init {
background = Selector.shapeBuild()
.setCornerRadius(2.dp)
.setStrokeWidth(2.dp)

@ -3,26 +3,24 @@ package io.legado.app.lib.theme.view
import android.content.Context
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatTextView
import io.legado.app.lib.theme.ThemeStore
import io.legado.app.lib.theme.secondaryTextColor
/**
* @author Aidan Follestad (afollestad)
*/
class ATESecondaryTextView : AppCompatTextView {
constructor(context: Context) : super(context) {
init(context)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context) {
setTextColor(ThemeStore.textColorSecondary(context))
init {
setTextColor(context.secondaryTextColor)
}
}

@ -9,19 +9,17 @@ import io.legado.app.lib.theme.ThemeStore
import io.legado.app.utils.dp
class ATEStrokeTextView : AppCompatTextView {
constructor(context: Context) : super(context) {
init(context, null)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context, attrs: AttributeSet?) {
init {
background = Selector.shapeBuild()
.setCornerRadius(1.dp)
.setStrokeWidth(1.dp)

@ -2,33 +2,27 @@ package io.legado.app.lib.theme.view
import android.content.Context
import android.util.AttributeSet
import android.view.View
import androidx.appcompat.widget.SwitchCompat
import io.legado.app.lib.theme.ATH
import io.legado.app.lib.theme.ThemeStore
import io.legado.app.lib.theme.accentColor
/**
* @author Aidan Follestad (afollestad)
*/
class ATESwitch : SwitchCompat {
constructor(context: Context) : super(context) {
init(context, null)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context, attrs)
}
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context, attrs: AttributeSet?) {
ATH.setTint(this, ThemeStore.accentColor(context))
init {
ATH.setTint(this, context.accentColor)
}
override fun isShown(): Boolean {
return parent != null && visibility == View.VISIBLE
}
}

@ -1,31 +1,24 @@
package io.legado.app.lib.theme.view
import android.content.Context
import android.graphics.Canvas
import android.util.AttributeSet
import com.google.android.material.textfield.TextInputLayout
import io.legado.app.lib.theme.Selector
import io.legado.app.lib.theme.ThemeStore
class ATETextInputLayout : TextInputLayout {
constructor(context: Context) : super(context) {
init(context)
}
constructor(context: Context) : super(context)
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) {
init(context)
}
constructor(context: Context, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
init(context)
}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(
context,
attrs,
defStyleAttr
)
private fun init(context: Context) {
init {
defaultHintTextColor = Selector.colorBuild().setDefaultColor(ThemeStore.accentColor(context)).create()
}
override fun draw(canvas: Canvas) {
super.draw(canvas)
}
}

@ -213,10 +213,12 @@ class ReadStyleDialog : DialogFragment() {
}
private fun changeBg(index: Int) {
ReadBookConfig.styleSelect = index
ReadBookConfig.upBg()
upBg()
postEvent(Bus.UP_CONFIG, true)
if (ReadBookConfig.styleSelect != index) {
ReadBookConfig.styleSelect = index
ReadBookConfig.upBg()
upBg()
postEvent(Bus.UP_CONFIG, true)
}
}
private fun showBgTextConfig(index: Int): Boolean {

@ -8,8 +8,10 @@
android:padding="10dp">
<io.legado.app.lib.theme.view.ATESwitch
android:id="@+id/sw_dark_status_icon"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="6dp"
android:text="@string/dark_status_icon" />
<LinearLayout
@ -25,10 +27,11 @@
android:layout_gravity="center"
android:layout_margin="6dp"
android:layout_weight="1"
android:background="?attr/selectableItemBackground"
android:singleLine="true"
android:gravity="center"
android:padding="6dp"
android:text="文字颜色"
android:text="@string/text_color"
android:textSize="14sp"
tools:ignore="HardcodedText" />
@ -39,10 +42,11 @@
android:layout_gravity="center"
android:layout_margin="6dp"
android:layout_weight="1"
android:background="?attr/selectableItemBackground"
android:singleLine="true"
android:gravity="center"
android:padding="6dp"
android:text="背景颜色"
android:text="@string/bg_color"
android:textSize="14sp"
tools:ignore="HardcodedText" />
@ -53,6 +57,7 @@
android:layout_gravity="center"
android:layout_margin="6dp"
android:layout_weight="1"
android:background="?attr/selectableItemBackground"
android:singleLine="true"
android:gravity="center"
android:padding="6dp"
@ -74,7 +79,7 @@
android:layout_height="wrap_content"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:text="背景图片" />
android:text="@string/bg_image" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/bgImgList"

@ -486,5 +486,8 @@
<string name="timer_m">%d分钟</string>
<string name="brightness_auto">自动亮度%s</string>
<string name="byPage">按页</string>
<string name="bg_image">背景图片</string>
<string name="bg_color">背景颜色</string>
<string name="text_color">文字颜色</string>
</resources>

Loading…
Cancel
Save