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

View File

@ -268,7 +268,7 @@ class HttpPageLoader(
val image = BitmapFactory.decodeStream(stream) val image = BitmapFactory.decodeStream(stream)
page.bg = ImageUtil.autoSetBackground( page.bg = ImageUtil.autoSetBackground(
image, image,
readerTheme == 2, readerTheme == 3,
prefs.context prefs.context
) )
page.bgType = PagerPageHolder.getBGType(readerTheme, 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 var imageCropBorders = false
private set private set
// SY -->
var readerTheme = 0
private set
// SY <--
init { init {
preferences.imageScaleType() preferences.imageScaleType()
.register({ imageScaleType = it }, { imagePropertyChangedListener?.invoke() }) .register({ imageScaleType = it }, { imagePropertyChangedListener?.invoke() })
@ -34,11 +29,6 @@ class PagerConfig(private val viewer: PagerViewer, preferences: PreferencesHelpe
preferences.cropBorders() preferences.cropBorders()
.register({ imageCropBorders = it }, { imagePropertyChangedListener?.invoke() }) .register({ imageCropBorders = it }, { imagePropertyChangedListener?.invoke() })
// SY -->
preferences.readerTheme()
.register({ readerTheme = it }, { imagePropertyChangedListener?.invoke() })
// SY <--
} }
private fun zoomTypeFromPreference(value: Int) { private fun zoomTypeFromPreference(value: Int) {

View File

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

View File

@ -5,20 +5,22 @@ import android.content.ClipboardManager
import android.content.Context import android.content.Context
import android.content.res.Configuration import android.content.res.Configuration
import android.net.wifi.WifiManager import android.net.wifi.WifiManager
import androidx.core.content.getSystemService
/** /**
* Property to get the wifi manager from the context. * Property to get the wifi manager from the context.
*/ */
val Context.wifiManager: WifiManager val Context.wifiManager: WifiManager
get() = applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager get() = applicationContext.getSystemService()!!
val Context.clipboardManager: ClipboardManager val Context.clipboardManager: ClipboardManager
get() = applicationContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager get() = applicationContext.getSystemService()!!
val Context.jobScheduler: JobScheduler val Context.jobScheduler: JobScheduler
get() = applicationContext.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler get() = applicationContext.getSystemService()!!
fun Context.isInNightMode(): Boolean { val Context.isInNightMode: Boolean
get() {
val currentNightMode = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK val currentNightMode = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
return currentNightMode == Configuration.UI_MODE_NIGHT_YES 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.Light" parent="Theme.Base.Reader.Light" />
<style name="Theme.Reader.Dark.Smart" parent="Theme.Base.Reader.Light"/>
<!--===============--> <!--===============-->
<!-- Launch Screen --> <!-- Launch Screen -->