Skip to content

Commit

Permalink
Rework options dialogs
Browse files Browse the repository at this point in the history
  • Loading branch information
max-kammerer committed May 31, 2024
1 parent 40ebb4a commit 34e4822
Show file tree
Hide file tree
Showing 16 changed files with 362 additions and 492 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -97,14 +97,14 @@ abstract class BaseViewerActivityTest(


protected fun applyZoom() {
onView(ViewMatchers.withId(R.id.zoom_preview)).perform(ViewActions.click())
onView(ViewMatchers.withId(R.id.zoom_picker_close)).perform(ViewActions.click())
onView(ViewMatchers.withId(R.id.option_dialog_bottom_apply)).perform(ViewActions.click())
onView(ViewMatchers.withId(R.id.option_dialog_bottom_close)).perform(ViewActions.click())
}

protected fun applyGoTo() {
if (!globalOptions.isNewUI) {
onView(ViewMatchers.withId(R.id.page_preview)).perform(ViewActions.click())
onView(ViewMatchers.withId(R.id.page_picker_close)).perform(ViewActions.click())
onView(ViewMatchers.withId(R.id.option_dialog_bottom_apply)).perform(ViewActions.click())
onView(ViewMatchers.withId(R.id.option_dialog_bottom_close)).perform(ViewActions.click())
} else {
onView(ViewMatchers.withId(R.id.view)).perform(ViewActions.click())
}
Expand All @@ -123,8 +123,8 @@ abstract class BaseViewerActivityTest(
}

fun applyCrop() {
onView(ViewMatchers.withId(R.id.crop_preview)).perform(ViewActions.click())
onView(ViewMatchers.withId(R.id.crop_close)).perform(ViewActions.click())
onView(ViewMatchers.withId(R.id.option_dialog_bottom_apply)).perform(ViewActions.click())
onView(ViewMatchers.withId(R.id.option_dialog_bottom_close)).perform(ViewActions.click())
}

private fun openMenuAndSelect(id: Int, resId: Int) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ public void doAction(Controller controller, OrionViewerActivity activity, Object

BOOK_OPTIONS (R.string.action_book_options, R.integer.action_book_options) {
@Override
public void doAction(Controller controller, OrionViewerActivity activity, Object parameter) {
public void doAction(OrionBaseActivity activity) {
Intent intent = new Intent(activity, OrionBookPreferencesActivityX.class);
activity.startActivity(intent);
}
Expand All @@ -215,9 +215,9 @@ public void doAction(Controller controller, OrionViewerActivity activity, Object
},

PAGE_LAYOUT (R.string.action_layout_page, R.integer.action_page_layout) {
@Override
public void doAction(Controller controller, OrionViewerActivity activity, Object parameter) {
activity.showOrionDialog(OrionViewerActivity.PAGE_LAYOUT_SCREEN, null, null);
@Override
public void doAction(OrionBaseActivity activity) {
BOOK_OPTIONS.doAction(activity);
}
},

Expand All @@ -237,9 +237,9 @@ public void doAction(Controller controller, OrionViewerActivity activity, Object
},

ROTATION (R.string.action_rotation_page, R.integer.action_rotation_page) {
@Override
public void doAction(Controller controller, OrionViewerActivity activity, Object parameter) {
activity.showOrionDialog(OrionViewerActivity.ROTATION_SCREEN, null, null);
@Override
public void doAction(OrionBaseActivity activity) {
BOOK_OPTIONS.doAction(activity);
}
},

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import android.widget.LinearLayout
import android.widget.SeekBar
import android.widget.TextView

class MainMenu(private val mainMenu: View, val orionViewerActivity: OrionViewerActivity) {
class MainMenu(private val mainMenu: View, val activity: OrionViewerActivity) {

private val pageSeeker = mainMenu.findViewById<SeekBar>(R.id.page_picker_seeker)!!
private val pageCount = mainMenu.findViewById<TextView>(R.id.page_count)!!
Expand All @@ -29,37 +29,14 @@ class MainMenu(private val mainMenu: View, val orionViewerActivity: OrionViewerA
hideMenu()
}

pageSeeker.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
if (fromUser) {
openPage(progress)
}
curPage.setGotoSpannable((progress + 1).toString())
}

override fun onStartTrackingTouch(seekBar: SeekBar?) {}

override fun onStopTrackingTouch(seekBar: SeekBar?) {}
})

mainMenu.findViewById<View>(R.id.menu_top_actions).setOnClickListener {}
mainMenu.findViewById<View>(R.id.menu_botton_actions_all).setOnClickListener {}
mainMenu.findViewById<ImageView>(R.id.page_picker_minus).setOnClickListener {
if (pageSeeker.progress - 1 >= 0) {
pageSeeker.progress -= 1
openPage(pageSeeker.progress)
}
}
mainMenu.findViewById<ImageView>(R.id.page_picker_plus).setOnClickListener {
if (pageSeeker.progress + 1 <= pageSeeker.max) {
pageSeeker.progress += 1
openPage(pageSeeker.progress)
}
}
}

private fun openPage(pageNum: Int) {
orionViewerActivity.controller?.drawPage(pageNum, isTapNavigation = true)
val minus = mainMenu.findViewById<ImageView>(R.id.page_picker_minus)
val plus = mainMenu.findViewById<ImageView>(R.id.page_picker_plus)
initPageNavControls(activity, pageSeeker, minus, plus, curPage) {
setGotoSpannable(it.toString())
}
}

private fun initImageViewActions(view: View, id: Int) {
Expand Down Expand Up @@ -88,7 +65,7 @@ class MainMenu(private val mainMenu: View, val orionViewerActivity: OrionViewerA
topExtraPanel.visibility = newVisibility
} else {
hideMenu()
orionViewerActivity.doMenuAction(viewId)
activity.doMenuAction(viewId)
}
}

Expand All @@ -98,29 +75,83 @@ class MainMenu(private val mainMenu: View, val orionViewerActivity: OrionViewerA


fun showMenu() {
val controller = orionViewerActivity.controller
if (controller != null) {
pageSeeker.max = controller.pageCount - 1
pageSeeker.progress = controller.currentPage
pageCount.setGotoSpannable(controller.pageCount.toString())
} else {
pageSeeker.max = 1
pageSeeker.progress = 1
pageCount.text = "1"
val controller = activity.controller
initPageNavigationValues(controller, pageSeeker, pageCount) {
setGotoSpannable(controller!!.pageCount.toString())
}
mainMenu.visibility = View.VISIBLE
mainMenu.visibility = VISIBLE
}

private fun TextView.setGotoSpannable(text: String) {
val spannable = SpannableStringBuilder(text)
val onClick = object : ClickableSpan() {
override fun onClick(widget: View) {
hideMenu()
orionViewerActivity.doMenuAction(R.id.goto_menu_item)
activity.doMenuAction(R.id.goto_menu_item)
}
}
spannable.setSpan(onClick, 0, spannable.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
this.text = spannable
this.movementMethod = LinkMovementMethod.getInstance();
}
}

fun initPageNavigationValues(
controller: Controller?,
pageSeeker: SeekBar,
pageCount: TextView,
setTextAction: TextView.(page: Int) -> Unit = { text = it.toString() }
) {
if (controller != null) {
pageSeeker.max = controller.pageCount - 1
pageSeeker.progress = controller.currentPage
pageCount.setTextAction(controller.pageCount)
} else {
pageSeeker.max = 1
pageSeeker.progress = 1
pageCount.text = "1"
}
}

fun initPageNavControls(
activity: OrionViewerActivity,
pageSeeker: SeekBar,
minus: View,
plus: View,
curPage: TextView,
setTextAction: TextView.(page: Int) -> Unit = {
text = it.toString()
}
) {
pageSeeker.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
if (fromUser) {
openPage(activity.controller, progress)
}
curPage.setTextAction(progress + 1)
}

override fun onStartTrackingTouch(seekBar: SeekBar?) {}

override fun onStopTrackingTouch(seekBar: SeekBar?) {}
})


minus.setOnClickListener {
if (pageSeeker.progress - 1 >= 0) {
pageSeeker.progress -= 1
openPage(activity.controller, pageSeeker.progress)
}
}

plus.setOnClickListener {
if (pageSeeker.progress + 1 <= pageSeeker.max) {
pageSeeker.progress += 1
openPage(activity.controller, pageSeeker.progress)
}
}
}

private fun openPage(controller: Controller?, pageNum: Int) {
controller?.drawPage(pageNum, isTapNavigation = true)
}
Original file line number Diff line number Diff line change
Expand Up @@ -132,18 +132,6 @@ abstract class OrionBaseActivity(createDevice: Boolean = true, val viewerType: I
device?.onUserInteraction()
}

protected open fun findMyViewById(id: Int): View {
return findViewById(id)
}

protected open fun onAnimatorCancel() {

}

protected open fun onApplyAction() {

}

fun showWarning(warning: String) {
Toast.makeText(this, warning, Toast.LENGTH_SHORT).show()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ class OrionBookmarkActivity : OrionBaseActivity(false) {

onNewIntent(intent)

val view = findMyViewById(R.id.bookmarks) as ListView
val view = findViewById<ListView>(R.id.bookmarks)
view.onItemClickListener = AdapterView.OnItemClickListener { parent, _, position, _ ->
val bookmark = parent.getItemAtPosition(position) as Bookmark
val result = Intent()
Expand All @@ -72,7 +72,7 @@ class OrionBookmarkActivity : OrionBaseActivity(false) {
private fun updateView(bookId: Long) {
val accessor = orionContext.getBookmarkAccessor()
val bookmarks = accessor.selectBookmarks(bookId)
val view = findMyViewById(R.id.bookmarks) as ListView
val view = findViewById<ListView>(R.id.bookmarks)
view.adapter = object : ArrayAdapter<Bookmark>(this, R.layout.bookmark_entry, R.id.bookmark_entry, bookmarks) {
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
var convertView = convertView
Expand Down
Loading

0 comments on commit 34e4822

Please sign in to comment.