Fix pages saving
This commit is contained in:
@@ -126,8 +126,8 @@ dependencies {
|
|||||||
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.2'
|
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.2'
|
||||||
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.2'
|
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.2'
|
||||||
|
|
||||||
implementation 'com.google.dagger:hilt-android:2.50'
|
implementation 'com.google.dagger:hilt-android:2.51'
|
||||||
kapt 'com.google.dagger:hilt-compiler:2.50'
|
kapt 'com.google.dagger:hilt-compiler:2.51'
|
||||||
implementation 'androidx.hilt:hilt-work:1.2.0'
|
implementation 'androidx.hilt:hilt-work:1.2.0'
|
||||||
kapt 'androidx.hilt:hilt-compiler:1.2.0'
|
kapt 'androidx.hilt:hilt-compiler:1.2.0'
|
||||||
|
|
||||||
@@ -160,6 +160,6 @@ dependencies {
|
|||||||
androidTestImplementation 'androidx.room:room-testing:2.6.1'
|
androidTestImplementation 'androidx.room:room-testing:2.6.1'
|
||||||
androidTestImplementation 'com.squareup.moshi:moshi-kotlin:1.15.1'
|
androidTestImplementation 'com.squareup.moshi:moshi-kotlin:1.15.1'
|
||||||
|
|
||||||
androidTestImplementation 'com.google.dagger:hilt-android-testing:2.50'
|
androidTestImplementation 'com.google.dagger:hilt-android-testing:2.51'
|
||||||
kaptAndroidTest 'com.google.dagger:hilt-android-compiler:2.50'
|
kaptAndroidTest 'com.google.dagger:hilt-android-compiler:2.51'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import android.view.MotionEvent
|
|||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup.MarginLayoutParams
|
import android.view.ViewGroup.MarginLayoutParams
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
|
import androidx.activity.result.ActivityResultCallback
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.core.graphics.Insets
|
import androidx.core.graphics.Insets
|
||||||
import androidx.core.view.OnApplyWindowInsetsListener
|
import androidx.core.view.OnApplyWindowInsetsListener
|
||||||
@@ -74,6 +75,7 @@ class ReaderActivity :
|
|||||||
ReaderControlDelegate.OnInteractionListener,
|
ReaderControlDelegate.OnInteractionListener,
|
||||||
OnApplyWindowInsetsListener,
|
OnApplyWindowInsetsListener,
|
||||||
IdlingDetector.Callback,
|
IdlingDetector.Callback,
|
||||||
|
ActivityResultCallback<Uri?>,
|
||||||
ZoomControl.ZoomControlListener {
|
ZoomControl.ZoomControlListener {
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@@ -83,6 +85,7 @@ class ReaderActivity :
|
|||||||
lateinit var tapGridSettings: TapGridSettings
|
lateinit var tapGridSettings: TapGridSettings
|
||||||
|
|
||||||
private val idlingDetector = IdlingDetector(TimeUnit.SECONDS.toMillis(10), this)
|
private val idlingDetector = IdlingDetector(TimeUnit.SECONDS.toMillis(10), this)
|
||||||
|
private val savePageRequest = registerForActivityResult(PageSaveContract(), this)
|
||||||
|
|
||||||
private val viewModel: ReaderViewModel by viewModels()
|
private val viewModel: ReaderViewModel by viewModels()
|
||||||
|
|
||||||
@@ -158,6 +161,10 @@ class ReaderActivity :
|
|||||||
viewBinding.toolbarBottom.addMenuProvider(ReaderBottomMenuProvider(this, readerManager, viewModel))
|
viewBinding.toolbarBottom.addMenuProvider(ReaderBottomMenuProvider(this, readerManager, viewModel))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onActivityResult(result: Uri?) {
|
||||||
|
viewModel.onActivityResult(result)
|
||||||
|
}
|
||||||
|
|
||||||
override fun getParentActivityIntent(): Intent? {
|
override fun getParentActivityIntent(): Intent? {
|
||||||
val manga = viewModel.manga?.toManga() ?: return null
|
val manga = viewModel.manga?.toManga() ?: return null
|
||||||
return DetailsActivity.newIntent(this, manga)
|
return DetailsActivity.newIntent(this, manga)
|
||||||
@@ -371,6 +378,11 @@ class ReaderActivity :
|
|||||||
return reader.isResumed && supportFragmentManager.fragments.lastOrNull() === reader
|
return reader.isResumed && supportFragmentManager.fragments.lastOrNull() === reader
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onSavePageClick() {
|
||||||
|
val page = viewModel.getCurrentPage() ?: return
|
||||||
|
viewModel.saveCurrentPage(page, savePageRequest)
|
||||||
|
}
|
||||||
|
|
||||||
private fun onReaderBarChanged(isBarEnabled: Boolean) {
|
private fun onReaderBarChanged(isBarEnabled: Boolean) {
|
||||||
viewBinding.infoBar.isVisible = isBarEnabled && viewBinding.appbarTop.isGone
|
viewBinding.infoBar.isVisible = isBarEnabled && viewBinding.appbarTop.isGone
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,14 +39,12 @@ import javax.inject.Inject
|
|||||||
@AndroidEntryPoint
|
@AndroidEntryPoint
|
||||||
class ReaderConfigSheet :
|
class ReaderConfigSheet :
|
||||||
BaseAdaptiveSheet<SheetReaderConfigBinding>(),
|
BaseAdaptiveSheet<SheetReaderConfigBinding>(),
|
||||||
ActivityResultCallback<Uri?>,
|
|
||||||
View.OnClickListener,
|
View.OnClickListener,
|
||||||
MaterialButtonToggleGroup.OnButtonCheckedListener,
|
MaterialButtonToggleGroup.OnButtonCheckedListener,
|
||||||
Slider.OnChangeListener,
|
Slider.OnChangeListener,
|
||||||
CompoundButton.OnCheckedChangeListener {
|
CompoundButton.OnCheckedChangeListener {
|
||||||
|
|
||||||
private val viewModel by activityViewModels<ReaderViewModel>()
|
private val viewModel by activityViewModels<ReaderViewModel>()
|
||||||
private val savePageRequest = registerForActivityResult(PageSaveContract(), this)
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var orientationHelper: ScreenOrientationHelper
|
lateinit var orientationHelper: ScreenOrientationHelper
|
||||||
@@ -115,8 +113,7 @@ class ReaderConfigSheet :
|
|||||||
}
|
}
|
||||||
|
|
||||||
R.id.button_save_page -> {
|
R.id.button_save_page -> {
|
||||||
val page = viewModel.getCurrentPage() ?: return
|
findCallback()?.onSavePageClick() ?: return
|
||||||
viewModel.saveCurrentPage(page, savePageRequest)
|
|
||||||
dismissAllowingStateLoss()
|
dismissAllowingStateLoss()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,11 +178,6 @@ class ReaderConfigSheet :
|
|||||||
(viewBinding ?: return).labelTimerValue.text = getString(R.string.speed_value, value * 10f)
|
(viewBinding ?: return).labelTimerValue.text = getString(R.string.speed_value, value * 10f)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActivityResult(result: Uri?) {
|
|
||||||
viewModel.onActivityResult(result)
|
|
||||||
dismissAllowingStateLoss()
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun observeScreenOrientation() {
|
private fun observeScreenOrientation() {
|
||||||
orientationHelper.observeAutoOrientation()
|
orientationHelper.observeAutoOrientation()
|
||||||
.onEach {
|
.onEach {
|
||||||
@@ -215,6 +207,8 @@ class ReaderConfigSheet :
|
|||||||
fun onReaderModeChanged(mode: ReaderMode)
|
fun onReaderModeChanged(mode: ReaderMode)
|
||||||
|
|
||||||
fun onDoubleModeChanged(isEnabled: Boolean)
|
fun onDoubleModeChanged(isEnabled: Boolean)
|
||||||
|
|
||||||
|
fun onSavePageClick()
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ buildscript {
|
|||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:8.2.2'
|
classpath 'com.android.tools.build:gradle:8.2.2'
|
||||||
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22'
|
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.22'
|
||||||
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.50'
|
classpath 'com.google.dagger:hilt-android-gradle-plugin:2.51'
|
||||||
classpath 'com.google.devtools.ksp:symbol-processing-gradle-plugin:1.9.22-1.0.16'
|
classpath 'com.google.devtools.ksp:symbol-processing-gradle-plugin:1.9.22-1.0.17'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user