added confirmation for Unpin/Deletion

This commit is contained in:
l0l67 2022-07-14 13:45:33 +00:00 committed by birdbird
parent 74ddd7be3e
commit d91d908cbb
6 changed files with 66 additions and 3 deletions
ultrasonic/src/main

@ -44,6 +44,7 @@ import org.moire.ultrasonic.subsonic.ShareHandler
import org.moire.ultrasonic.subsonic.VideoPlayer
import org.moire.ultrasonic.util.CancellationToken
import org.moire.ultrasonic.util.CommunicationError
import org.moire.ultrasonic.util.ConfirmationDialog
import org.moire.ultrasonic.util.Constants
import org.moire.ultrasonic.util.EntryByDiscAndTrackComparator
import org.moire.ultrasonic.util.Settings
@ -187,7 +188,15 @@ open class TrackCollectionFragment : MultiListFragment<MusicDirectory.Child>() {
}
unpinButton?.setOnClickListener {
unpin()
if (Settings.showConfirmationDialog) {
ConfirmationDialog.Builder(context)
.setMessage(R.string.common_unpin_selection_confirmation)
.setPositiveButton(R.string.common_unpin) { _, _ ->
unpin()
}.show()
} else {
unpin()
}
}
downloadButton?.setOnClickListener {
@ -195,7 +204,15 @@ open class TrackCollectionFragment : MultiListFragment<MusicDirectory.Child>() {
}
deleteButton?.setOnClickListener {
delete()
if (Settings.showConfirmationDialog) {
ConfirmationDialog.Builder(context)
.setMessage(R.string.common_delete_selection_confirmation)
.setPositiveButton(R.string.common_delete) { _, _ ->
delete()
}.show()
} else {
delete()
}
}
}

@ -76,3 +76,33 @@ class ErrorDialog(
}
}
}
class ConfirmationDialog(
context: Context,
message: CharSequence?,
activity: Activity? = null,
finishActivityOnClose: Boolean = false
) : InfoDialog(context, message, activity, finishActivityOnClose) {
override var builder: AlertDialog.Builder = Builder(activity ?: context, message)
class Builder(context: Context?) : AlertDialog.Builder(context) {
constructor(context: Context, message: CharSequence?) : this(context) {
setMessage(message)
}
init {
setIcon(R.drawable.ic_baseline_info)
setTitle(R.string.common_confirm)
setCancelable(true)
setPositiveButton(R.string.common_confirm) { _, _ ->
// Gets overwritten
}
setNegativeButton(R.string.common_cancel) { _, _ ->
// Just close it
}
}
}
}

@ -265,6 +265,12 @@ object Settings {
0
)
@JvmStatic
var showConfirmationDialog by BooleanSetting(
getKey(R.string.setting_key_show_confirmation_dialog),
false
)
// TODO: Remove in December 2022
fun migrateFeatureStorage() {
val sp = appContext.getSharedPreferences("feature_flags", Context.MODE_PRIVATE)

@ -53,4 +53,5 @@
<string name="setting_key.debug_log_to_file" translatable="false">debugLogToFile</string>
<string name="setting_key.override_language" translatable="false">overrideLanguage</string>
<string name="setting_key.first_installed_version" translatable="false">firstInstalledVersion</string>
<string name="setting_key.show_confirmation_dialog" translatable="false">showConfirmationDialog</string>
</resources>

@ -50,6 +50,8 @@
<string name="common.select_all">Select all</string>
<string name="common.title">Title</string>
<string name="common.unpin">Unpin</string>
<string name="common.delete_selection_confirmation">Do you really want to delete the current selection?</string>
<string name="common.unpin_selection_confirmation">Do you really want to unpin the current selection?</string>
<string name="common.various_artists">Various Artists</string>
<string name="delete_playlist">Do you want to delete %1$s</string>
<string name="download.bookmark_removed" formatted="false">Bookmark removed.</string>
@ -374,6 +376,8 @@
<string name="download.menu_show_artist">Show Artist</string>
<string name="albumArt">albumArt</string>
<string name="common_multiple_years">Multiple Years</string>
<string name="settings.show_confirmation_dialog">Show confirmation dialog</string>
<string name="settings.show_confirmation_dialog_summary">Displays a confirmation dialog before deleting or unpinning songs</string>
<string name="settings.debug.title">Debug options</string>
<string name="settings.debug.log_to_file">Write debug log to file</string>
<string name="settings.debug.log_path">The log files are available at %1$s/%2$s</string>
@ -452,5 +456,4 @@
<string name="settings.use_hw_offload_title">Use hardware playback (experimental)</string>
<string name="settings.use_hw_offload_description">Try to play the media using the media decoder chip on your phone. This can improve battery usage.</string>
</resources>

@ -317,6 +317,12 @@
a:title="@string/settings.override_language"
a:summary="@string/settings.override_language_summary"
app:iconSpaceReserved="false"/>
<CheckBoxPreference
a:defaultValue="false"
a:key="@string/setting_key.show_confirmation_dialog"
a:title="@string/settings.show_confirmation_dialog"
a:summary="@string/settings.show_confirmation_dialog_summary"
app:iconSpaceReserved="false"/>
</PreferenceCategory>
<PreferenceCategory
a:title="@string/settings.debug.title"