From a9af4e54a9df8f05df9c966ce4ac7c3c0df931a0 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Wed, 24 Oct 2018 18:47:52 -0700 Subject: [PATCH] Add confirmation dialog for PC deletion --- app/src/main/java/com/limelight/PcView.java | 17 +++++++---- .../java/com/limelight/utils/UiHelper.java | 29 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 41 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/limelight/PcView.java b/app/src/main/java/com/limelight/PcView.java index d04a9e61..30eb382f 100644 --- a/app/src/main/java/com/limelight/PcView.java +++ b/app/src/main/java/com/limelight/PcView.java @@ -567,12 +567,17 @@ public class PcView extends Activity implements AdapterFragmentCallbacks { LimeLog.info("Ignoring delete PC request from monkey"); return true; } - if (managerBinder == null) { - Toast.makeText(PcView.this, getResources().getString(R.string.error_manager_not_running), Toast.LENGTH_LONG).show(); - return true; - } - managerBinder.removeComputer(computer.details.name); - removeComputer(computer.details); + UiHelper.displayDeletePcConfirmationDialog(this, computer.details, new Runnable() { + @Override + public void run() { + if (managerBinder == null) { + Toast.makeText(PcView.this, getResources().getString(R.string.error_manager_not_running), Toast.LENGTH_LONG).show(); + return; + } + managerBinder.removeComputer(computer.details.name); + removeComputer(computer.details); + } + }, null); return true; case APP_LIST_ID: diff --git a/app/src/main/java/com/limelight/utils/UiHelper.java b/app/src/main/java/com/limelight/utils/UiHelper.java index 592def20..75cfd554 100644 --- a/app/src/main/java/com/limelight/utils/UiHelper.java +++ b/app/src/main/java/com/limelight/utils/UiHelper.java @@ -12,6 +12,7 @@ import android.view.View; import android.view.WindowManager; import com.limelight.R; +import com.limelight.nvstream.http.ComputerDetails; import com.limelight.preferences.PreferenceConfiguration; import java.util.Locale; @@ -135,4 +136,32 @@ public class UiHelper { .setNegativeButton(parent.getResources().getString(R.string.no), dialogClickListener) .show(); } + + public static void displayDeletePcConfirmationDialog(Activity parent, ComputerDetails computer, final Runnable onYes, final Runnable onNo) { + DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + switch (which){ + case DialogInterface.BUTTON_POSITIVE: + if (onYes != null) { + onYes.run(); + } + break; + + case DialogInterface.BUTTON_NEGATIVE: + if (onNo != null) { + onNo.run(); + } + break; + } + } + }; + + AlertDialog.Builder builder = new AlertDialog.Builder(parent); + builder.setMessage(parent.getResources().getString(R.string.delete_pc_msg)) + .setTitle(computer.name) + .setPositiveButton(parent.getResources().getString(R.string.yes), dialogClickListener) + .setNegativeButton(parent.getResources().getString(R.string.no), dialogClickListener) + .show(); + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e43b60b7..71e4561d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -83,6 +83,7 @@ Lost connection to PC Details Help + Are you sure you want to delete this PC? Connecting to PC…