Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Jay 2020-01-09 21:31:38 -08:00
commit 8c8e4fd716
5 changed files with 79 additions and 19 deletions

View File

@ -2,15 +2,14 @@ package eu.kanade.tachiyomi.ui.reader
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import androidx.appcompat.widget.AppCompatTextView
import android.text.Spannable
import android.text.SpannableString
import android.text.style.ScaleXSpan
import android.util.AttributeSet
import android.widget.TextView
import androidx.appcompat.widget.AppCompatTextView
import eu.kanade.tachiyomi.widget.OutlineSpan
/**
* Page indicator found at the bottom of the reader
@ -42,10 +41,13 @@ class PageIndicatorTextView(
val currText = " $text "
// Also add a bit of spacing between each character, as the stroke overlaps them
val finalText = SpannableString(currText.asIterable().joinToString("\u00A0"))
val finalText = SpannableString(currText.asIterable().joinToString("\u00A0")).apply {
// Apply text outline
setSpan(spanOutline, 1, length-1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
for (i in 1..finalText.lastIndex step 2) {
finalText.setSpan(ScaleXSpan(0.1f), i, i + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
for (i in 1..lastIndex step 2) {
setSpan(ScaleXSpan(0.2f), i, i + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
}
}
super.setText(finalText, TextView.BufferType.SPANNABLE)

View File

@ -69,7 +69,6 @@ class SettingsGeneralController : SettingsController() {
true
}
}
intListPreference {
key = Keys.startScreen
titleRes = R.string.pref_start_screen

View File

@ -20,7 +20,7 @@ class SettingsMainController : SettingsController() {
onClick { navigateTo(SettingsGeneralController()) }
}
preference {
iconRes = R.drawable.ic_in_library_24dp
iconRes = R.drawable.ic_book_black_24dp
iconTint = tintColor
titleRes = R.string.pref_category_library
onClick { navigateTo(SettingsLibraryController()) }

View File

@ -0,0 +1,57 @@
package eu.kanade.tachiyomi.widget
import android.graphics.Canvas
import android.graphics.Paint
import android.text.style.ReplacementSpan
import androidx.annotation.ColorInt
import androidx.annotation.Dimension
/**
* Source: https://github.com/santaevpavel
*
* A class that draws the outlines of a text when given a stroke color and stroke width.
*/
class OutlineSpan(
@ColorInt private val strokeColor: Int,
@Dimension private val strokeWidth: Float
) : ReplacementSpan() {
override fun getSize(
paint: Paint,
text: CharSequence,
start: Int,
end: Int,
fm: Paint.FontMetricsInt?
): Int {
return paint.measureText(text.toString().substring(start until end)).toInt()
}
override fun draw(
canvas: Canvas,
text: CharSequence,
start: Int,
end: Int,
x: Float,
top: Int,
y: Int,
bottom: Int,
paint: Paint
) {
val originTextColor = paint.color
paint.apply {
color = strokeColor
style = Paint.Style.STROKE
this.strokeWidth = this@OutlineSpan.strokeWidth
}
canvas.drawText(text, start, end, x, y.toFloat(), paint)
paint.apply {
color = originTextColor
style = Paint.Style.FILL
}
canvas.drawText(text, start, end, x, y.toFloat(), paint)
}
}

View File

@ -137,6 +137,19 @@
<string name="pref_category_about">About</string>
<!-- General section -->
<string name="pref_theme">App theme</string>
<string name="light_theme">Light</string>
<string name="dark_theme">Dark</string>
<string name="amoled_theme">AMOLED dark</string>
<string name="darkblue_theme">Dark blue</string>
<string name="system_theme">System default</string>
<string name="system_amoled_theme">System default (AMOLED dark)</string>
<string name="system_darkblue_theme">System default (Dark blue)</string>
<string name="pref_start_screen">Start screen</string>
<string name="pref_language">Language</string>
<string name="system_default">System default</string>
<!-- Library section -->
<string name="pref_library_columns">Library manga per row</string>
<string name="portrait">Portrait</string>
<string name="landscape">Landscape</string>
@ -169,17 +182,6 @@
<string name="pref_skip_pre_migration_summary">Use last saved pre-migration preferences
and sources to mass migrate</string>
<string name="pref_ask_update_manga_sync">Confirm before updating</string>
<string name="pref_theme">App theme</string>
<string name="light_theme">Light</string>
<string name="dark_theme">Dark</string>
<string name="amoled_theme">AMOLED dark</string>
<string name="darkblue_theme">Dark blue</string>
<string name="system_theme">System default</string>
<string name="system_amoled_theme">System default (AMOLED dark)</string>
<string name="system_darkblue_theme">System default (Dark blue)</string>
<string name="pref_start_screen">Start screen</string>
<string name="pref_language">Language</string>
<string name="system_default">System default</string>
<string name="default_category">Default category</string>
<string name="default_category_summary">Always ask</string>
<string name="lock_with_biometrics">Lock with biometrics</string>