|
@@ -209,6 +209,7 @@ abstract class ReaderActivity : KdanBaseActivity(), ReaderSettingListener, PdfTh
|
|
|
viewModel.isPageInBookmarksLiveData.observe(this, Observer(this::onIsPageInBookmarksChanged))
|
|
|
viewModel.isLeftToolbarOpenLiveData.observe(this, Observer(this::onLeftToolbarOpenStateChanged))
|
|
|
viewModel.leftToolbarTypeLiveData.observe(this, Observer(this::onLeftToolbarTypeChanged))
|
|
|
+ viewModel.eventLiveData.observe(this , Observer(this::onEvent))
|
|
|
isHidePdfPage = true
|
|
|
applySetting()
|
|
|
|
|
@@ -975,8 +976,12 @@ abstract class ReaderActivity : KdanBaseActivity(), ReaderSettingListener, PdfTh
|
|
|
private fun setupRightToolbar() {
|
|
|
viewGroup_readerActivity_rightToolbar.setScroll(false)
|
|
|
iv_readerActivity_highLight.apply {
|
|
|
- setOnClickListener { viewModel.onClickHighlightBtn() }
|
|
|
+ setOnClickListener {
|
|
|
+ onEvent(HookEvent.OnClickHighlightBtn())
|
|
|
+ viewModel.onClickHighlightBtn()
|
|
|
+ }
|
|
|
setOnLongClickListener { btn ->
|
|
|
+ onEvent(HookEvent.OnLongClickHighlightBtn())
|
|
|
viewModel.onLongClickHighlightBtn()
|
|
|
val context = this@ReaderActivity
|
|
|
AnnotationAttributeWindow(context, true).also { window ->
|
|
@@ -1003,8 +1008,12 @@ abstract class ReaderActivity : KdanBaseActivity(), ReaderSettingListener, PdfTh
|
|
|
}
|
|
|
}
|
|
|
iv_readerActivity_strike.apply {
|
|
|
- setOnClickListener { viewModel.onClickStrikeBtn() }
|
|
|
+ setOnClickListener {
|
|
|
+ onEvent(HookEvent.OnClickStrikeoutBtn())
|
|
|
+ viewModel.onClickStrikeBtn()
|
|
|
+ }
|
|
|
setOnLongClickListener { btn ->
|
|
|
+ onEvent(HookEvent.OnLongClickStrikeoutBtn())
|
|
|
viewModel.onLongClickStrikeBtn()
|
|
|
val context = this@ReaderActivity
|
|
|
AnnotationAttributeWindow(context, true).also { window ->
|
|
@@ -1031,8 +1040,12 @@ abstract class ReaderActivity : KdanBaseActivity(), ReaderSettingListener, PdfTh
|
|
|
}
|
|
|
}
|
|
|
iv_readerActivity_underline.apply {
|
|
|
- setOnClickListener { viewModel.onClickUnderlineBtn() }
|
|
|
+ setOnClickListener {
|
|
|
+ onEvent(HookEvent.OnClickUnderlineBtn())
|
|
|
+ viewModel.onClickUnderlineBtn()
|
|
|
+ }
|
|
|
setOnLongClickListener { btn ->
|
|
|
+ onEvent(HookEvent.OnLongClickUnderlineBtn())
|
|
|
viewModel.onLongClickUnderlineBtn()
|
|
|
val context = this@ReaderActivity
|
|
|
AnnotationAttributeWindow(context, true).also { window ->
|
|
@@ -1060,6 +1073,7 @@ abstract class ReaderActivity : KdanBaseActivity(), ReaderSettingListener, PdfTh
|
|
|
}
|
|
|
iv_readerActivity_ink.apply {
|
|
|
setOnClickListener {
|
|
|
+ onEvent(HookEvent.OnClickInkBtn())
|
|
|
if (viewModel.annotationModeLiveData.value == ReaderViewModel.AnnotationMode.INK) {
|
|
|
AnimationUtil.hideViewAlpha(view_ink_menu)
|
|
|
} else {
|
|
@@ -1068,6 +1082,7 @@ abstract class ReaderActivity : KdanBaseActivity(), ReaderSettingListener, PdfTh
|
|
|
viewModel.onClickInkBtn()
|
|
|
}
|
|
|
setOnLongClickListener { btn ->
|
|
|
+ onEvent(HookEvent.OnLongClickInkBtn())
|
|
|
viewModel.onLongClickInkBtn()
|
|
|
val context = this@ReaderActivity
|
|
|
AnnotationAttributeWindow(context, false).also { window ->
|
|
@@ -1245,12 +1260,37 @@ abstract class ReaderActivity : KdanBaseActivity(), ReaderSettingListener, PdfTh
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private fun onEvent(event: ReaderViewModel.Event?) {
|
|
|
+ if (event == null) return
|
|
|
+ when (event) {
|
|
|
+ is ReaderViewModel.Event.OnFinishedHighlight -> HookEvent.OnFinishedHighlight()
|
|
|
+ is ReaderViewModel.Event.OnFinishedStrikeout -> HookEvent.OnFinishedStrikeout()
|
|
|
+ is ReaderViewModel.Event.OnFinishedUnderLine -> HookEvent.OnFinishedUnderline()
|
|
|
+ is ReaderViewModel.Event.OnFinishedInk -> HookEvent.OnFinishedInk()
|
|
|
+ }.also {
|
|
|
+ onEvent(it)
|
|
|
+ }
|
|
|
+ viewModel.onEventConsumed(event)
|
|
|
+ }
|
|
|
+
|
|
|
protected sealed class HookEvent {
|
|
|
class OnClickTopBookmarkBtn : HookEvent()
|
|
|
class OnClickBottomPreviousBtn : HookEvent()
|
|
|
class OnClickBottomNextBtn : HookEvent()
|
|
|
class OnClickBottomMediaBoxBtn : HookEvent()
|
|
|
class OnClickBottomThumbnailBtn : HookEvent()
|
|
|
+ class OnClickHighlightBtn : HookEvent()
|
|
|
+ class OnClickStrikeoutBtn : HookEvent()
|
|
|
+ class OnClickUnderlineBtn : HookEvent()
|
|
|
+ class OnClickInkBtn : HookEvent()
|
|
|
+ class OnLongClickHighlightBtn : HookEvent()
|
|
|
+ class OnLongClickStrikeoutBtn : HookEvent()
|
|
|
+ class OnLongClickUnderlineBtn : HookEvent()
|
|
|
+ class OnLongClickInkBtn : HookEvent()
|
|
|
+ class OnFinishedHighlight : HookEvent()
|
|
|
+ class OnFinishedStrikeout : HookEvent()
|
|
|
+ class OnFinishedUnderline : HookEvent()
|
|
|
+ class OnFinishedInk : HookEvent()
|
|
|
class OnUserChangeHighlightPropertySuccess : HookEvent()
|
|
|
class OnUserChangeStrikeoutPropertySuccess : HookEvent()
|
|
|
class OnUserChangeUnderlinePropertySuccess : HookEvent()
|