From 905dc0caa4374c451f7cab7e455fddac54b8d89a Mon Sep 17 00:00:00 2001 From: Jay Date: Mon, 13 Jan 2020 21:06:41 -0800 Subject: [PATCH] Rewording/Working of track dialogs --- .../data/download/DownloadNotifier.kt | 2 +- .../ui/manga/track/SetTrackStatusDialog.kt | 6 ++--- .../ui/manga/track/TrackController.kt | 3 ++- .../ui/manga/track/TrackSearchDialog.kt | 22 ++++++++++++++----- app/src/main/res/values/strings.xml | 4 +++- 5 files changed, 26 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt index ea9dd71d7f..778f839344 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadNotifier.kt @@ -137,7 +137,7 @@ internal class DownloadNotifier(private val context: Context) { NotificationReceiver.resumeDownloadsPendingBroadcast(context)) //Clear action addAction(R.drawable.ic_clear_grey_24dp_img, - context.getString(R.string.action_clear), + context.getString(R.string.action_cancel_all), NotificationReceiver.clearDownloadsPendingBroadcast(context)) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/SetTrackStatusDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/SetTrackStatusDialog.kt index fbbb0f6faf..42ccd06a9f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/SetTrackStatusDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/SetTrackStatusDialog.kt @@ -34,14 +34,14 @@ class SetTrackStatusDialog : DialogController override fun onCreateDialog(savedViewState: Bundle?): Dialog { val item = item 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) return MaterialDialog(activity!!) .title(R.string.status) .negativeButton(android.R.string.cancel) - .positiveButton(android.R.string.ok) - .listItemsSingleChoice(items = statusString, initialSelection = selectedIndex) + .listItemsSingleChoice(items = statusString, initialSelection = selectedIndex, + waitForPositiveButton = false) { dialog, position, _ -> (targetController as? Listener)?.setStatus(item, position) dialog.dismiss() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackController.kt index ce1e81ec97..5dfed3efe9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackController.kt @@ -98,7 +98,8 @@ class TrackController : NucleusController(), override fun onTitleClick(position: Int) { 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) { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackSearchDialog.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackSearchDialog.kt index 473092544e..d5582f87b6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackSearchDialog.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/track/TrackSearchDialog.kt @@ -4,6 +4,8 @@ import android.app.Dialog import android.os.Bundle import android.view.View import com.afollestad.materialdialogs.MaterialDialog +import com.afollestad.materialdialogs.WhichButton +import com.afollestad.materialdialogs.actions.setActionButtonEnabled import com.afollestad.materialdialogs.customview.customView import com.jakewharton.rxbinding.widget.itemClicks import com.jakewharton.rxbinding.widget.textChanges @@ -40,9 +42,13 @@ class TrackSearchDialog : DialogController { private val 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) }) { + wasPreviouslyTracked = wasTracked targetController = target this.service = service } @@ -53,10 +59,14 @@ class TrackSearchDialog : DialogController { } override fun onCreateDialog(savedViewState: Bundle?): Dialog { - val dialog = MaterialDialog(activity!!) - .customView(viewRes = R.layout.track_search_dialog, scrollable = false) - .negativeButton(android.R.string.cancel) - .positiveButton(android.R.string.ok) { onPositiveButtonClick() } + val dialog = MaterialDialog(activity!!).apply { + customView(viewRes = R.layout.track_search_dialog, scrollable = false) + negativeButton(android.R.string.cancel) + positiveButton( + if (wasPreviouslyTracked) R.string.action_clear + else R.string.action_track){ onPositiveButtonClick() } + setActionButtonEnabled(WhichButton.POSITIVE, wasPreviouslyTracked) + } if (subscriptions.isUnsubscribed) { subscriptions = CompositeSubscription() @@ -79,6 +89,8 @@ class TrackSearchDialog : DialogController { subscriptions += view.track_search_list.itemClicks().subscribe { 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 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2b87498c9d..7768cae3c4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -69,7 +69,8 @@ Start Stop Pause - Cancel all + Cancel all + Clear Close Previous chapter Next chapter @@ -115,6 +116,7 @@ Oldest Move to top Move to bottom + Track Deleting…