From 4eac70ff69df74918091db8609be09401749c4bd Mon Sep 17 00:00:00 2001 From: Jarne Demeulemeester Date: Tue, 8 Jun 2021 11:47:29 +0200 Subject: [PATCH] Add DeleteServerDialog --- .../dialogs/DeleteServerDialogFragment.kt | 27 +++++++++++++++++++ .../serverselect/ServerSelectFragment.kt | 3 ++- app/src/main/res/values/strings.xml | 4 +++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/dev/jdtech/jellyfin/dialogs/DeleteServerDialogFragment.kt diff --git a/app/src/main/java/dev/jdtech/jellyfin/dialogs/DeleteServerDialogFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/dialogs/DeleteServerDialogFragment.kt new file mode 100644 index 00000000..95f67d9d --- /dev/null +++ b/app/src/main/java/dev/jdtech/jellyfin/dialogs/DeleteServerDialogFragment.kt @@ -0,0 +1,27 @@ +package dev.jdtech.jellyfin.dialogs + +import android.app.AlertDialog +import android.app.Dialog +import android.os.Bundle +import androidx.fragment.app.DialogFragment +import dev.jdtech.jellyfin.R +import dev.jdtech.jellyfin.database.Server +import dev.jdtech.jellyfin.serverselect.ServerSelectViewModel +import java.lang.IllegalStateException + +class DeleteServerDialogFragment(private val viewModel: ServerSelectViewModel, val server: Server) : DialogFragment() { + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + return activity?.let { + val builder = AlertDialog.Builder(it) + builder.setTitle(getString(R.string.remove_server)) + .setMessage(getString(R.string.remove_server_dialog_text, server.name)) + .setPositiveButton(getString(R.string.remove)) { _, _ -> + viewModel.deleteServer(server) + } + .setNegativeButton(getString(R.string.cancel)) { _, _ -> + + } + builder.create() + } ?: throw IllegalStateException("Activity cannot be null") + } +} \ No newline at end of file diff --git a/app/src/main/java/dev/jdtech/jellyfin/serverselect/ServerSelectFragment.kt b/app/src/main/java/dev/jdtech/jellyfin/serverselect/ServerSelectFragment.kt index 95cd97b4..da75f361 100644 --- a/app/src/main/java/dev/jdtech/jellyfin/serverselect/ServerSelectFragment.kt +++ b/app/src/main/java/dev/jdtech/jellyfin/serverselect/ServerSelectFragment.kt @@ -11,6 +11,7 @@ import androidx.navigation.fragment.findNavController import dev.jdtech.jellyfin.R import dev.jdtech.jellyfin.database.ServerDatabase import dev.jdtech.jellyfin.databinding.FragmentServerSelectBinding +import dev.jdtech.jellyfin.dialogs.DeleteServerDialogFragment class ServerSelectFragment : Fragment() { @@ -32,7 +33,7 @@ class ServerSelectFragment : Fragment() { binding.serversRecyclerView.adapter = ServerGridAdapter(ServerGridAdapter.OnClickListener { server -> Toast.makeText(application, "You selected server ${server.name}", Toast.LENGTH_SHORT).show() }, ServerGridAdapter.OnLongClickListener { server -> - viewModel.deleteServer(server) + DeleteServerDialogFragment(viewModel, server).show(parentFragmentManager, "deleteServer") true }) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 330d4160..94bd6c40 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,4 +10,8 @@ Connect Login Server icon + Remove server + Are you sure you want to remove the server %1$s + Remove + Cancel \ No newline at end of file