diff --git a/android_app/app/src/main/java/com/health/openscale/gui/DataEntryActivity.java b/android_app/app/src/main/java/com/health/openscale/gui/DataEntryActivity.java index cdf72601..1bc6c806 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/DataEntryActivity.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/DataEntryActivity.java @@ -20,6 +20,7 @@ import android.app.AlertDialog; import android.app.DatePickerDialog; import android.app.TimePickerDialog; import android.content.Context; +import android.content.DialogInterface; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; @@ -453,6 +454,33 @@ public class DataEntryActivity extends Activity { private class onClickListenerDelete implements View.OnClickListener { @Override public void onClick(View v) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(v.getContext()); + boolean deleteConfirmationEnable = prefs.getBoolean("deleteConfirmationEnable", true); + + if (deleteConfirmationEnable) { + AlertDialog.Builder deleteAllDialog = new AlertDialog.Builder(v.getContext()); + deleteAllDialog.setMessage(getResources().getString(R.string.question_really_delete)); + + deleteAllDialog.setPositiveButton(getResources().getString(R.string.label_yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + deleteMeasurement(); + } + }); + + deleteAllDialog.setNegativeButton(getResources().getString(R.string.label_no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + } + }); + + deleteAllDialog.show(); + } + else { + deleteMeasurement(); + } + } + + void deleteMeasurement() { long delId = id; boolean hasNext = moveLeft(); diff --git a/android_app/app/src/main/java/com/health/openscale/gui/TableFragment.java b/android_app/app/src/main/java/com/health/openscale/gui/TableFragment.java index 30efd84e..59d247f1 100644 --- a/android_app/app/src/main/java/com/health/openscale/gui/TableFragment.java +++ b/android_app/app/src/main/java/com/health/openscale/gui/TableFragment.java @@ -421,13 +421,42 @@ public class TableFragment extends Fragment implements FragmentUpdateListener { } private class onClickListenerDelete implements View.OnClickListener { + private long row_id; + @Override public void onClick(View v) { TableRow dataRow = (TableRow)v.getParent(); TextView idTextView = (TextView) dataRow.getChildAt(0); - long id = Long.parseLong(idTextView.getText().toString()); + row_id = Long.parseLong(idTextView.getText().toString()); - OpenScale.getInstance(tableView.getContext()).deleteScaleData(id); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(v.getContext()); + boolean deleteConfirmationEnable = prefs.getBoolean("deleteConfirmationEnable", true); + + if (deleteConfirmationEnable) { + AlertDialog.Builder deleteAllDialog = new AlertDialog.Builder(getActivity()); + deleteAllDialog.setMessage(getResources().getString(R.string.question_really_delete)); + + deleteAllDialog.setPositiveButton(getResources().getString(R.string.label_yes), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + deleteMeasurement(); + } + }); + + deleteAllDialog.setNegativeButton(getResources().getString(R.string.label_no), new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int id) { + dialog.dismiss(); + } + }); + + deleteAllDialog.show(); + } + else { + deleteMeasurement(); + } + } + + public void deleteMeasurement() { + OpenScale.getInstance(tableView.getContext()).deleteScaleData(row_id); Toast.makeText(tableView.getContext(), getResources().getString(R.string.info_data_deleted), Toast.LENGTH_SHORT).show(); updateOnView(OpenScale.getInstance(tableView.getContext()).getScaleDataList()); diff --git a/android_app/app/src/main/res/values-de/strings.xml b/android_app/app/src/main/res/values-de/strings.xml index 682682f6..4c88fa11 100644 --- a/android_app/app/src/main/res/values-de/strings.xml +++ b/android_app/app/src/main/res/values-de/strings.xml @@ -111,4 +111,6 @@ Zeit Wochentage Messwerte + Löschbestätigung + Wollen Sie wirklich den Datenbankeintrag löschen? \ No newline at end of file diff --git a/android_app/app/src/main/res/values-ja/strings.xml b/android_app/app/src/main/res/values-ja/strings.xml index cb6101e9..16ad6afe 100644 --- a/android_app/app/src/main/res/values-ja/strings.xml +++ b/android_app/app/src/main/res/values-ja/strings.xml @@ -111,4 +111,6 @@ 時刻 平日 観測 + 確認の削除 + あなたは本当にレコードを削除しますか \ No newline at end of file diff --git a/android_app/app/src/main/res/values/strings.xml b/android_app/app/src/main/res/values/strings.xml index 05e38107..9d49d036 100644 --- a/android_app/app/src/main/res/values/strings.xml +++ b/android_app/app/src/main/res/values/strings.xml @@ -105,6 +105,7 @@ No user exists. Please create a new user in the settings. Can\'t evaluate the value + Do you really want to delete database entry? Do you really want to delete all database entries? Do you really want to delete the user? @@ -115,6 +116,8 @@ Label on data point + Delete confirmation + Reminder Weekdays Time diff --git a/android_app/app/src/main/res/xml/measurement_preferences.xml b/android_app/app/src/main/res/xml/measurement_preferences.xml index 08ab0487..3df4138d 100644 --- a/android_app/app/src/main/res/xml/measurement_preferences.xml +++ b/android_app/app/src/main/res/xml/measurement_preferences.xml @@ -5,4 +5,5 @@ + \ No newline at end of file