mirror of
https://gitlab.com/ultrasonic/ultrasonic.git
synced 2025-04-24 12:50:58 +03:00
added confirmation for Unpin/Deletion
This commit is contained in:
parent
74ddd7be3e
commit
d91d908cbb
ultrasonic/src/main
kotlin/org/moire/ultrasonic
res
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user