From 779d8ee9308853a3910cba2ca489bf76d4c64411 Mon Sep 17 00:00:00 2001 From: cpfeiffer Date: Wed, 6 Jan 2016 00:24:39 +0100 Subject: [PATCH] Add a confirmation dialog when performing a db import #197 --- .../activities/DebugActivity.java | 49 ++++++++++++------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java index 1e7cdc00d..51c5235b1 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java @@ -216,23 +216,38 @@ public class DebugActivity extends Activity { } private void importDB() { - DBHandler dbHandler = null; - try { - dbHandler = GBApplication.acquireDB(); - DBHelper helper = new DBHelper(this); - File dir = FileUtils.getExternalFilesDir(); - SQLiteOpenHelper sqLiteOpenHelper = dbHandler.getHelper(); - File sourceFile = new File(dir, sqLiteOpenHelper.getDatabaseName()); - helper.importDB(sqLiteOpenHelper, sourceFile); - helper.validateDB(sqLiteOpenHelper); - GB.toast(this, "Import successful.", Toast.LENGTH_LONG, GB.INFO); - } catch (Exception ex) { - GB.toast(this, "Error importing DB: " + ex.getMessage(), Toast.LENGTH_LONG, GB.ERROR, ex); - } finally { - if (dbHandler != null) { - dbHandler.release(); - } - } + AlertDialog dialog = new AlertDialog.Builder(this) + .setCancelable(true) + .setTitle("Import Activity Data?") + .setMessage("Really overwrite the current activity database? All your activity data (if any) will be lost.") + .setPositiveButton("Overwrite", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + DBHandler dbHandler = null; + try { + dbHandler = GBApplication.acquireDB(); + DBHelper helper = new DBHelper(DebugActivity.this); + File dir = FileUtils.getExternalFilesDir(); + SQLiteOpenHelper sqLiteOpenHelper = dbHandler.getHelper(); + File sourceFile = new File(dir, sqLiteOpenHelper.getDatabaseName()); + helper.importDB(sqLiteOpenHelper, sourceFile); + helper.validateDB(sqLiteOpenHelper); + GB.toast(DebugActivity.this, "Import successful.", Toast.LENGTH_LONG, GB.INFO); + } catch (Exception ex) { + GB.toast(DebugActivity.this, "Error importing DB: " + ex.getMessage(), Toast.LENGTH_LONG, GB.ERROR, ex); + } finally { + if (dbHandler != null) { + dbHandler.release(); + } + } + } + }) + .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }) + .show(); } private void deleteActivityDatabase() {