Fix smart background for real this time, fix issues with theme not changing

This commit is contained in:
Jobobby04 2020-10-29 00:37:07 -04:00
parent 4881571293
commit 406b5a89c8
6 changed files with 26 additions and 35 deletions

View File

@ -166,9 +166,6 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
when (preferences.readerTheme().get()) {
0 -> R.style.Theme_Reader_Light
2 -> R.style.Theme_Reader_Dark_Grey
// SY -->
3, 4 -> R.style.Theme_Reader_Dark_Smart
// SY <--
else -> R.style.Theme_Reader_Dark
}
)
@ -945,12 +942,10 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
}
.launchIn(scope)
// SY -->
/*preferences.readerTheme().asFlow()
preferences.readerTheme().asFlow()
.drop(1) // We only care about updates
.onEach { recreate() }
.launchIn(scope)*/
// SY <--
.launchIn(scope)
preferences.showPageNumber().asFlow()
.onEach { setPageNumberVisibility(it) }

View File

@ -268,7 +268,7 @@ class HttpPageLoader(
val image = BitmapFactory.decodeStream(stream)
page.bg = ImageUtil.autoSetBackground(
image,
readerTheme == 2,
readerTheme == 3,
prefs.context
)
page.bgType = PagerPageHolder.getBGType(readerTheme, prefs.context)

View File

@ -20,11 +20,6 @@ class PagerConfig(private val viewer: PagerViewer, preferences: PreferencesHelpe
var imageCropBorders = false
private set
// SY -->
var readerTheme = 0
private set
// SY <--
init {
preferences.imageScaleType()
.register({ imageScaleType = it }, { imagePropertyChangedListener?.invoke() })
@ -34,11 +29,6 @@ class PagerConfig(private val viewer: PagerViewer, preferences: PreferencesHelpe
preferences.cropBorders()
.register({ imageCropBorders = it }, { imagePropertyChangedListener?.invoke() })
// SY -->
preferences.readerTheme()
.register({ readerTheme = it }, { imagePropertyChangedListener?.invoke() })
// SY <--
}
private fun zoomTypeFromPreference(value: Int) {

View File

@ -46,7 +46,8 @@ import rx.Observable
import rx.Subscription
import rx.android.schedulers.AndroidSchedulers
import rx.schedulers.Schedulers
import uy.kohesive.injekt.injectLazy
import uy.kohesive.injekt.Injekt
import uy.kohesive.injekt.api.get
import java.io.InputStream
import java.util.concurrent.TimeUnit
@ -106,6 +107,12 @@ class PagerPageHolder(
*/
private var readImageHeaderSubscription: Subscription? = null
// SY -->
private val readerTheme by lazy {
Injekt.get<PreferencesHelper>().readerTheme().get()
}
// SY <--
init {
addView(progressBar)
observeStatus()
@ -251,9 +258,9 @@ class PagerPageHolder(
.doOnNext { isAnimated ->
if (!isAnimated) {
// SY -->
if (viewer.config.readerTheme >= 3) {
if (readerTheme >= 3) {
val imageView = initSubsamplingImageView()
if (page.bg != null && page.bgType == getBGType(viewer.config.readerTheme, context)) {
if (page.bg != null && page.bgType == getBGType(readerTheme, context)) {
imageView.setImage(ImageSource.inputStream(openStream!!))
imageView.background = page.bg
}
@ -267,7 +274,7 @@ class PagerPageHolder(
launchUI {
imageView.background = setBG(bytesArray)
page.bg = imageView.background
page.bgType = getBGType(viewer.config.readerTheme, context)
page.bgType = getBGType(readerTheme, context)
}
}
} else {
@ -287,14 +294,13 @@ class PagerPageHolder(
// SY -->
private suspend fun setBG(bytesArray: ByteArray): Drawable {
return withContext(Dispatchers.Default) {
val preferences by injectLazy<PreferencesHelper>()
ImageUtil.autoSetBackground(
BitmapFactory.decodeByteArray(
bytesArray,
0,
bytesArray.size
),
preferences.readerTheme().get() == 3,
readerTheme == 3,
context
)
}
@ -522,8 +528,8 @@ class PagerPageHolder(
// SY -->
companion object {
fun getBGType(readerTheme: Int, context: Context): Int {
return if (readerTheme == 3) {
if (context.isInNightMode()) 2 else 1
return if (readerTheme == 4) {
if (context.isInNightMode) 2 else 1
} else 0
}
}

View File

@ -5,20 +5,22 @@ import android.content.ClipboardManager
import android.content.Context
import android.content.res.Configuration
import android.net.wifi.WifiManager
import androidx.core.content.getSystemService
/**
* Property to get the wifi manager from the context.
*/
val Context.wifiManager: WifiManager
get() = applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager
get() = applicationContext.getSystemService()!!
val Context.clipboardManager: ClipboardManager
get() = applicationContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
get() = applicationContext.getSystemService()!!
val Context.jobScheduler: JobScheduler
get() = applicationContext.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
get() = applicationContext.getSystemService()!!
fun Context.isInNightMode(): Boolean {
val currentNightMode = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
return currentNightMode == Configuration.UI_MODE_NIGHT_YES
}
val Context.isInNightMode: Boolean
get() {
val currentNightMode = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
return currentNightMode == Configuration.UI_MODE_NIGHT_YES
}

View File

@ -254,8 +254,6 @@
<style name="Theme.Reader.Light" parent="Theme.Base.Reader.Light" />
<style name="Theme.Reader.Dark.Smart" parent="Theme.Base.Reader.Light"/>
<!--===============-->
<!-- Launch Screen -->