From 30decacaa13407f9f637139dda4f45896cd08b7a Mon Sep 17 00:00:00 2001 From: Alexey Kuznetsov Date: Thu, 16 Feb 2017 22:45:42 +0300 Subject: [PATCH] prevent double click --- .../activities/RecordingActivity.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java index f89fb9e..deacc08 100644 --- a/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java +++ b/app/src/main/java/com/github/axet/audiorecorder/activities/RecordingActivity.java @@ -197,10 +197,11 @@ public class RecordingActivity extends AppCompatActivity { loadSamples(); - View cancel = findViewById(R.id.recording_cancel); + final View cancel = findViewById(R.id.recording_cancel); cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + cancel.setClickable(false); cancelDialog(new Runnable() { @Override public void run() { @@ -208,6 +209,11 @@ public class RecordingActivity extends AppCompatActivity { storage.delete(storage.getTempRecording()); finish(); } + }, new Runnable() { + @Override + public void run() { + cancel.setClickable(true); + } }); } }); @@ -220,10 +226,11 @@ public class RecordingActivity extends AppCompatActivity { } }); - View done = findViewById(R.id.recording_done); + final View done = findViewById(R.id.recording_done); done.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { + done.setClickable(false); stopRecording(getString(R.string.encoding)); try { encoding(new Runnable() { @@ -502,10 +509,10 @@ public class RecordingActivity extends AppCompatActivity { storage.delete(storage.getTempRecording()); finish(); } - }); + }, null); } - void cancelDialog(final Runnable run) { + void cancelDialog(final Runnable run, final Runnable cancel) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.confirm_cancel); builder.setMessage(R.string.are_you_sure_cancel); @@ -521,7 +528,15 @@ public class RecordingActivity extends AppCompatActivity { dialog.cancel(); } }); - builder.show(); + AlertDialog dialog = builder.create(); + dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { + @Override + public void onDismiss(DialogInterface dialog) { + if (cancel != null) + cancel.run(); + } + }); + dialog.show(); } @Override