Fix code formatting

devel
Koitharu 6 months ago
parent e73f077dc5
commit 9fde0106be
Signed by: Koitharu
GPG Key ID: 676DEE768C17A9D7

@ -38,226 +38,226 @@ import javax.inject.Inject
@AndroidEntryPoint @AndroidEntryPoint
class ReaderConfigSheet : class ReaderConfigSheet :
BaseAdaptiveSheet<SheetReaderConfigBinding>(), BaseAdaptiveSheet<SheetReaderConfigBinding>(),
View.OnClickListener, View.OnClickListener,
MaterialButtonToggleGroup.OnButtonCheckedListener, MaterialButtonToggleGroup.OnButtonCheckedListener,
CompoundButton.OnCheckedChangeListener, CompoundButton.OnCheckedChangeListener,
Slider.OnChangeListener { Slider.OnChangeListener {
private val viewModel by activityViewModels<ReaderViewModel>() private val viewModel by activityViewModels<ReaderViewModel>()
@Inject @Inject
lateinit var orientationHelper: ScreenOrientationHelper lateinit var orientationHelper: ScreenOrientationHelper
@Inject @Inject
lateinit var mangaRepositoryFactory: MangaRepository.Factory lateinit var mangaRepositoryFactory: MangaRepository.Factory
@Inject @Inject
lateinit var pageLoader: PageLoader lateinit var pageLoader: PageLoader
private lateinit var mode: ReaderMode private lateinit var mode: ReaderMode
private lateinit var imageServerDelegate: ImageServerDelegate private lateinit var imageServerDelegate: ImageServerDelegate
@Inject @Inject
lateinit var settings: AppSettings lateinit var settings: AppSettings
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
mode = arguments?.getInt(AppRouter.KEY_READER_MODE) mode = arguments?.getInt(AppRouter.KEY_READER_MODE)
?.let { ReaderMode.valueOf(it) } ?.let { ReaderMode.valueOf(it) }
?: ReaderMode.STANDARD ?: ReaderMode.STANDARD
imageServerDelegate = ImageServerDelegate( imageServerDelegate = ImageServerDelegate(
mangaRepositoryFactory = mangaRepositoryFactory, mangaRepositoryFactory = mangaRepositoryFactory,
mangaSource = viewModel.getMangaOrNull()?.source, mangaSource = viewModel.getMangaOrNull()?.source,
) )
} }
override fun onCreateViewBinding( override fun onCreateViewBinding(
inflater: LayoutInflater, inflater: LayoutInflater,
container: ViewGroup?, container: ViewGroup?,
): SheetReaderConfigBinding { ): SheetReaderConfigBinding {
return SheetReaderConfigBinding.inflate(inflater, container, false) return SheetReaderConfigBinding.inflate(inflater, container, false)
} }
override fun onViewBindingCreated( override fun onViewBindingCreated(
binding: SheetReaderConfigBinding, binding: SheetReaderConfigBinding,
savedInstanceState: Bundle?, savedInstanceState: Bundle?,
) { ) {
super.onViewBindingCreated(binding, savedInstanceState) super.onViewBindingCreated(binding, savedInstanceState)
observeScreenOrientation() observeScreenOrientation()
binding.buttonStandard.isChecked = mode == ReaderMode.STANDARD binding.buttonStandard.isChecked = mode == ReaderMode.STANDARD
binding.buttonReversed.isChecked = mode == ReaderMode.REVERSED binding.buttonReversed.isChecked = mode == ReaderMode.REVERSED
binding.buttonWebtoon.isChecked = mode == ReaderMode.WEBTOON binding.buttonWebtoon.isChecked = mode == ReaderMode.WEBTOON
binding.buttonVertical.isChecked = mode == ReaderMode.VERTICAL binding.buttonVertical.isChecked = mode == ReaderMode.VERTICAL
binding.switchDoubleReader.isChecked = settings.isReaderDoubleOnLandscape binding.switchDoubleReader.isChecked = settings.isReaderDoubleOnLandscape
binding.switchDoubleReader.isEnabled = mode == ReaderMode.STANDARD || mode == ReaderMode.REVERSED binding.switchDoubleReader.isEnabled = mode == ReaderMode.STANDARD || mode == ReaderMode.REVERSED
binding.switchDoubleFoldable.isChecked = settings.isReaderDoubleOnFoldable binding.switchDoubleFoldable.isChecked = settings.isReaderDoubleOnFoldable
binding.switchDoubleFoldable.isEnabled = binding.switchDoubleReader.isEnabled binding.switchDoubleFoldable.isEnabled = binding.switchDoubleReader.isEnabled
binding.sliderDoubleSensitivity.setValueRounded(settings.readerDoublePagesSensitivity * 100f) binding.sliderDoubleSensitivity.setValueRounded(settings.readerDoublePagesSensitivity * 100f)
binding.sliderDoubleSensitivity.setLabelFormatter(IntPercentLabelFormatter(binding.root.context)) binding.sliderDoubleSensitivity.setLabelFormatter(IntPercentLabelFormatter(binding.root.context))
binding.adjustSensitivitySlider(withAnimation = false) binding.adjustSensitivitySlider(withAnimation = false)
binding.checkableGroup.addOnButtonCheckedListener(this) binding.checkableGroup.addOnButtonCheckedListener(this)
binding.buttonSavePage.setOnClickListener(this) binding.buttonSavePage.setOnClickListener(this)
binding.buttonScreenRotate.setOnClickListener(this) binding.buttonScreenRotate.setOnClickListener(this)
binding.buttonSettings.setOnClickListener(this) binding.buttonSettings.setOnClickListener(this)
binding.buttonImageServer.setOnClickListener(this) binding.buttonImageServer.setOnClickListener(this)
binding.buttonColorFilter.setOnClickListener(this) binding.buttonColorFilter.setOnClickListener(this)
binding.buttonScrollTimer.setOnClickListener(this) binding.buttonScrollTimer.setOnClickListener(this)
binding.buttonBookmark.setOnClickListener(this) binding.buttonBookmark.setOnClickListener(this)
binding.switchDoubleReader.setOnCheckedChangeListener(this) binding.switchDoubleReader.setOnCheckedChangeListener(this)
binding.switchDoubleFoldable.setOnCheckedChangeListener(this) binding.switchDoubleFoldable.setOnCheckedChangeListener(this)
binding.sliderDoubleSensitivity.addOnChangeListener(this) binding.sliderDoubleSensitivity.addOnChangeListener(this)
viewModel.isBookmarkAdded.observe(viewLifecycleOwner) { viewModel.isBookmarkAdded.observe(viewLifecycleOwner) {
binding.buttonBookmark.setText(if (it) R.string.bookmark_remove else R.string.bookmark_add) binding.buttonBookmark.setText(if (it) R.string.bookmark_remove else R.string.bookmark_add)
binding.buttonBookmark.setCompoundDrawablesRelativeWithIntrinsicBounds( binding.buttonBookmark.setCompoundDrawablesRelativeWithIntrinsicBounds(
if (it) R.drawable.ic_bookmark_checked else R.drawable.ic_bookmark, 0, 0, 0, if (it) R.drawable.ic_bookmark_checked else R.drawable.ic_bookmark, 0, 0, 0,
) )
} }
viewLifecycleScope.launch { viewLifecycleScope.launch {
val isAvailable = imageServerDelegate.isAvailable() val isAvailable = imageServerDelegate.isAvailable()
if (isAvailable) { if (isAvailable) {
bindImageServerTitle() bindImageServerTitle()
} }
binding.buttonImageServer.isVisible = isAvailable binding.buttonImageServer.isVisible = isAvailable
} }
} }
override fun onApplyWindowInsets(v: View, insets: WindowInsetsCompat): WindowInsetsCompat { override fun onApplyWindowInsets(v: View, insets: WindowInsetsCompat): WindowInsetsCompat {
val typeMask = WindowInsetsCompat.Type.systemBars() val typeMask = WindowInsetsCompat.Type.systemBars()
viewBinding?.scrollView?.updatePadding( viewBinding?.scrollView?.updatePadding(
bottom = insets.getInsets(typeMask).bottom, bottom = insets.getInsets(typeMask).bottom,
) )
return insets.consume(v, typeMask, bottom = true) return insets.consume(v, typeMask, bottom = true)
} }
override fun onClick(v: View) { override fun onClick(v: View) {
when (v.id) { when (v.id) {
R.id.button_settings -> { R.id.button_settings -> {
router.openReaderSettings() router.openReaderSettings()
dismissAllowingStateLoss() dismissAllowingStateLoss()
} }
R.id.button_scroll_timer -> { R.id.button_scroll_timer -> {
findParentCallback(Callback::class.java)?.onScrollTimerClick(false) ?: return findParentCallback(Callback::class.java)?.onScrollTimerClick(false) ?: return
dismissAllowingStateLoss() dismissAllowingStateLoss()
} }
R.id.button_save_page -> { R.id.button_save_page -> {
findParentCallback(Callback::class.java)?.onSavePageClick() ?: return findParentCallback(Callback::class.java)?.onSavePageClick() ?: return
dismissAllowingStateLoss() dismissAllowingStateLoss()
} }
R.id.button_screen_rotate -> { R.id.button_screen_rotate -> {
orientationHelper.isLandscape = !orientationHelper.isLandscape orientationHelper.isLandscape = !orientationHelper.isLandscape
} }
R.id.button_bookmark -> { R.id.button_bookmark -> {
viewModel.toggleBookmark() viewModel.toggleBookmark()
} }
R.id.button_color_filter -> { R.id.button_color_filter -> {
val page = viewModel.getCurrentPage() ?: return val page = viewModel.getCurrentPage() ?: return
val manga = viewModel.getMangaOrNull() ?: return val manga = viewModel.getMangaOrNull() ?: return
router.openColorFilterConfig(manga, page) router.openColorFilterConfig(manga, page)
} }
R.id.button_image_server -> viewLifecycleScope.launch { R.id.button_image_server -> viewLifecycleScope.launch {
if (imageServerDelegate.showDialog(v.context)) { if (imageServerDelegate.showDialog(v.context)) {
bindImageServerTitle() bindImageServerTitle()
pageLoader.invalidate(clearCache = true) pageLoader.invalidate(clearCache = true)
viewModel.switchChapterBy(0) viewModel.switchChapterBy(0)
} }
} }
} }
} }
override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) { override fun onCheckedChanged(buttonView: CompoundButton, isChecked: Boolean) {
when (buttonView.id) { when (buttonView.id) {
R.id.switch_screen_lock_rotation -> { R.id.switch_screen_lock_rotation -> {
orientationHelper.isLocked = isChecked orientationHelper.isLocked = isChecked
} }
R.id.switch_double_reader -> { R.id.switch_double_reader -> {
settings.isReaderDoubleOnLandscape = isChecked settings.isReaderDoubleOnLandscape = isChecked
viewBinding?.adjustSensitivitySlider(withAnimation = true) viewBinding?.adjustSensitivitySlider(withAnimation = true)
findParentCallback(Callback::class.java)?.onDoubleModeChanged(isChecked) findParentCallback(Callback::class.java)?.onDoubleModeChanged(isChecked)
} }
R.id.switch_double_foldable -> { R.id.switch_double_foldable -> {
settings.isReaderDoubleOnFoldable = isChecked settings.isReaderDoubleOnFoldable = isChecked
// Re-evaluate double-page considering foldable state and current manual toggle // Re-evaluate double-page considering foldable state and current manual toggle
findParentCallback(Callback::class.java)?.onDoubleModeChanged(settings.isReaderDoubleOnLandscape) findParentCallback(Callback::class.java)?.onDoubleModeChanged(settings.isReaderDoubleOnLandscape)
} }
} }
} }
override fun onValueChange(slider: Slider, value: Float, fromUser: Boolean) { override fun onValueChange(slider: Slider, value: Float, fromUser: Boolean) {
settings.readerDoublePagesSensitivity = value / 100f settings.readerDoublePagesSensitivity = value / 100f
} }
override fun onButtonChecked( override fun onButtonChecked(
group: MaterialButtonToggleGroup?, group: MaterialButtonToggleGroup?,
checkedId: Int, checkedId: Int,
isChecked: Boolean, isChecked: Boolean,
) { ) {
if (!isChecked) { if (!isChecked) {
return return
} }
val newMode = when (checkedId) { val newMode = when (checkedId) {
R.id.button_standard -> ReaderMode.STANDARD R.id.button_standard -> ReaderMode.STANDARD
R.id.button_webtoon -> ReaderMode.WEBTOON R.id.button_webtoon -> ReaderMode.WEBTOON
R.id.button_reversed -> ReaderMode.REVERSED R.id.button_reversed -> ReaderMode.REVERSED
R.id.button_vertical -> ReaderMode.VERTICAL R.id.button_vertical -> ReaderMode.VERTICAL
else -> return else -> return
} }
viewBinding?.run { viewBinding?.run {
switchDoubleReader.isEnabled = newMode == ReaderMode.STANDARD || newMode == ReaderMode.REVERSED switchDoubleReader.isEnabled = newMode == ReaderMode.STANDARD || newMode == ReaderMode.REVERSED
switchDoubleFoldable.isEnabled = switchDoubleReader.isEnabled switchDoubleFoldable.isEnabled = switchDoubleReader.isEnabled
adjustSensitivitySlider(withAnimation = true) adjustSensitivitySlider(withAnimation = true)
} }
if (newMode == mode) { if (newMode == mode) {
return return
} }
findParentCallback(Callback::class.java)?.onReaderModeChanged(newMode) ?: return findParentCallback(Callback::class.java)?.onReaderModeChanged(newMode) ?: return
mode = newMode mode = newMode
} }
private fun observeScreenOrientation() { private fun observeScreenOrientation() {
orientationHelper.observeAutoOrientation() orientationHelper.observeAutoOrientation()
.onEach { .onEach {
with(requireViewBinding()) { with(requireViewBinding()) {
buttonScreenRotate.isGone = it buttonScreenRotate.isGone = it
switchScreenLockRotation.isVisible = it switchScreenLockRotation.isVisible = it
updateOrientationLockSwitch() updateOrientationLockSwitch()
} }
}.launchIn(viewLifecycleScope) }.launchIn(viewLifecycleScope)
} }
private fun updateOrientationLockSwitch() { private fun updateOrientationLockSwitch() {
val switch = viewBinding?.switchScreenLockRotation ?: return val switch = viewBinding?.switchScreenLockRotation ?: return
switch.setOnCheckedChangeListener(null) switch.setOnCheckedChangeListener(null)
switch.isChecked = orientationHelper.isLocked switch.isChecked = orientationHelper.isLocked
switch.setOnCheckedChangeListener(this) switch.setOnCheckedChangeListener(this)
} }
private suspend fun bindImageServerTitle() { private suspend fun bindImageServerTitle() {
viewBinding?.buttonImageServer?.text = getString( viewBinding?.buttonImageServer?.text = getString(
R.string.inline_preference_pattern, R.string.inline_preference_pattern,
getString(R.string.image_server), getString(R.string.image_server),
imageServerDelegate.getValue() ?: getString(R.string.automatic), imageServerDelegate.getValue() ?: getString(R.string.automatic),
) )
} }
private fun SheetReaderConfigBinding.adjustSensitivitySlider(withAnimation: Boolean) { private fun SheetReaderConfigBinding.adjustSensitivitySlider(withAnimation: Boolean) {
val isSubOptionsVisible = switchDoubleReader.isEnabled && switchDoubleReader.isChecked val isSubOptionsVisible = switchDoubleReader.isEnabled && switchDoubleReader.isChecked
val needTransition = withAnimation && ( val needTransition = withAnimation && (
(isSubOptionsVisible != sliderDoubleSensitivity.isVisible) || (isSubOptionsVisible != sliderDoubleSensitivity.isVisible) ||
(isSubOptionsVisible != textDoubleSensitivity.isVisible) || (isSubOptionsVisible != textDoubleSensitivity.isVisible) ||
(isSubOptionsVisible != switchDoubleFoldable.isVisible) (isSubOptionsVisible != switchDoubleFoldable.isVisible)
) )
if (needTransition) { if (needTransition) {
TransitionManager.beginDelayedTransition(layoutMain) TransitionManager.beginDelayedTransition(layoutMain)
} }
@ -266,16 +266,16 @@ class ReaderConfigSheet :
switchDoubleFoldable.isVisible = isSubOptionsVisible switchDoubleFoldable.isVisible = isSubOptionsVisible
} }
interface Callback { interface Callback {
fun onReaderModeChanged(mode: ReaderMode) fun onReaderModeChanged(mode: ReaderMode)
fun onDoubleModeChanged(isEnabled: Boolean) fun onDoubleModeChanged(isEnabled: Boolean)
fun onSavePageClick() fun onSavePageClick()
fun onScrollTimerClick(isLongClick: Boolean) fun onScrollTimerClick(isLongClick: Boolean)
fun onBookmarkClick() fun onBookmarkClick()
} }
} }

Loading…
Cancel
Save