Rewording/Working of track dialogs

This commit is contained in:
Jay 2020-01-13 21:06:41 -08:00
parent 2d80f6f26b
commit 905dc0caa4
5 changed files with 26 additions and 11 deletions

View File

@ -137,7 +137,7 @@ internal class DownloadNotifier(private val context: Context) {
NotificationReceiver.resumeDownloadsPendingBroadcast(context)) NotificationReceiver.resumeDownloadsPendingBroadcast(context))
//Clear action //Clear action
addAction(R.drawable.ic_clear_grey_24dp_img, addAction(R.drawable.ic_clear_grey_24dp_img,
context.getString(R.string.action_clear), context.getString(R.string.action_cancel_all),
NotificationReceiver.clearDownloadsPendingBroadcast(context)) NotificationReceiver.clearDownloadsPendingBroadcast(context))
} }

View File

@ -34,14 +34,14 @@ class SetTrackStatusDialog<T> : DialogController
override fun onCreateDialog(savedViewState: Bundle?): Dialog { override fun onCreateDialog(savedViewState: Bundle?): Dialog {
val item = item val item = item
val statusList = item.service.getStatusList() val statusList = item.service.getStatusList()
val statusString = statusList.mapNotNull { item.service.getStatus(it) } val statusString = statusList.map { item.service.getStatus(it) }
val selectedIndex = statusList.indexOf(item.track?.status) val selectedIndex = statusList.indexOf(item.track?.status)
return MaterialDialog(activity!!) return MaterialDialog(activity!!)
.title(R.string.status) .title(R.string.status)
.negativeButton(android.R.string.cancel) .negativeButton(android.R.string.cancel)
.positiveButton(android.R.string.ok) .listItemsSingleChoice(items = statusString, initialSelection = selectedIndex,
.listItemsSingleChoice(items = statusString, initialSelection = selectedIndex) waitForPositiveButton = false)
{ dialog, position, _ -> { dialog, position, _ ->
(targetController as? Listener)?.setStatus(item, position) (targetController as? Listener)?.setStatus(item, position)
dialog.dismiss() dialog.dismiss()

View File

@ -98,7 +98,8 @@ class TrackController : NucleusController<TrackPresenter>(),
override fun onTitleClick(position: Int) { override fun onTitleClick(position: Int) {
val item = adapter?.getItem(position) ?: return val item = adapter?.getItem(position) ?: return
TrackSearchDialog(this, item.service).showDialog(router, TAG_SEARCH_CONTROLLER) TrackSearchDialog(this, item.service, item.track != null).showDialog(router,
TAG_SEARCH_CONTROLLER)
} }
override fun onStatusClick(position: Int) { override fun onStatusClick(position: Int) {

View File

@ -4,6 +4,8 @@ import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.WhichButton
import com.afollestad.materialdialogs.actions.setActionButtonEnabled
import com.afollestad.materialdialogs.customview.customView import com.afollestad.materialdialogs.customview.customView
import com.jakewharton.rxbinding.widget.itemClicks import com.jakewharton.rxbinding.widget.itemClicks
import com.jakewharton.rxbinding.widget.textChanges import com.jakewharton.rxbinding.widget.textChanges
@ -40,9 +42,13 @@ class TrackSearchDialog : DialogController {
private val trackController private val trackController
get() = targetController as TrackController get() = targetController as TrackController
constructor(target: TrackController, service: TrackService) : super(Bundle().apply { private var wasPreviouslyTracked:Boolean = false
constructor(target: TrackController, service: TrackService, wasTracked:Boolean) : super(Bundle()
.apply {
putInt(KEY_SERVICE, service.id) putInt(KEY_SERVICE, service.id)
}) { }) {
wasPreviouslyTracked = wasTracked
targetController = target targetController = target
this.service = service this.service = service
} }
@ -53,10 +59,14 @@ class TrackSearchDialog : DialogController {
} }
override fun onCreateDialog(savedViewState: Bundle?): Dialog { override fun onCreateDialog(savedViewState: Bundle?): Dialog {
val dialog = MaterialDialog(activity!!) val dialog = MaterialDialog(activity!!).apply {
.customView(viewRes = R.layout.track_search_dialog, scrollable = false) customView(viewRes = R.layout.track_search_dialog, scrollable = false)
.negativeButton(android.R.string.cancel) negativeButton(android.R.string.cancel)
.positiveButton(android.R.string.ok) { onPositiveButtonClick() } positiveButton(
if (wasPreviouslyTracked) R.string.action_clear
else R.string.action_track){ onPositiveButtonClick() }
setActionButtonEnabled(WhichButton.POSITIVE, wasPreviouslyTracked)
}
if (subscriptions.isUnsubscribed) { if (subscriptions.isUnsubscribed) {
subscriptions = CompositeSubscription() subscriptions = CompositeSubscription()
@ -79,6 +89,8 @@ class TrackSearchDialog : DialogController {
subscriptions += view.track_search_list.itemClicks().subscribe { position -> subscriptions += view.track_search_list.itemClicks().subscribe { position ->
selectedItem = adapter.getItem(position) selectedItem = adapter.getItem(position)
(dialog as? MaterialDialog)?.positiveButton(R.string.action_track)
(dialog as? MaterialDialog)?.setActionButtonEnabled(WhichButton.POSITIVE, true)
} }
// Do an initial search based on the manga's title // Do an initial search based on the manga's title

View File

@ -69,7 +69,8 @@
<string name="action_start">Start</string> <string name="action_start">Start</string>
<string name="action_stop">Stop</string> <string name="action_stop">Stop</string>
<string name="action_pause">Pause</string> <string name="action_pause">Pause</string>
<string name="action_clear">Cancel all</string> <string name="action_cancel_all">Cancel all</string>
<string name="action_clear">Clear</string>
<string name="action_close">Close</string> <string name="action_close">Close</string>
<string name="action_previous_chapter">Previous chapter</string> <string name="action_previous_chapter">Previous chapter</string>
<string name="action_next_chapter">Next chapter</string> <string name="action_next_chapter">Next chapter</string>
@ -115,6 +116,7 @@
<string name="action_oldest">Oldest</string> <string name="action_oldest">Oldest</string>
<string name="action_move_to_top">Move to top</string> <string name="action_move_to_top">Move to top</string>
<string name="action_move_to_bottom">Move to bottom</string> <string name="action_move_to_bottom">Move to bottom</string>
<string name="action_track">Track</string>
<!-- Operations --> <!-- Operations -->
<string name="deleting">Deleting…</string> <string name="deleting">Deleting…</string>