From 848878b2a84efe884908ae56032b35e6e2fcd0a4 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Tue, 31 May 2016 18:55:28 +0200 Subject: add possibility to export database during update check --- .../eu/siacs/conversations/ui/UpdaterActivity.java | 44 ++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'src/main/java/eu/siacs/conversations/ui/UpdaterActivity.java') diff --git a/src/main/java/eu/siacs/conversations/ui/UpdaterActivity.java b/src/main/java/eu/siacs/conversations/ui/UpdaterActivity.java index a9adfb174..b47b0c1dd 100644 --- a/src/main/java/eu/siacs/conversations/ui/UpdaterActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/UpdaterActivity.java @@ -27,9 +27,15 @@ import org.json.JSONException; import org.json.JSONObject; import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import eu.siacs.conversations.Config; import eu.siacs.conversations.R; +import eu.siacs.conversations.persistance.DatabaseBackend; import eu.siacs.conversations.services.UpdaterWebService; public class UpdaterActivity extends Activity { @@ -94,6 +100,37 @@ public class UpdaterActivity extends Activity { } } + private void ExportDatabase() throws IOException { + + // Get hold of the db: + InputStream myInput = new + FileInputStream(this.getDatabasePath(DatabaseBackend.DATABASE_NAME)); + + // Set the output folder on the SDcard + File directory = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Pix-Art Messenger/.Database/"); + + // Create the folder if it doesn't exist: + if (!directory.exists()) { + directory.mkdirs(); + } + + // Set the output file stream up: + OutputStream myOutput = new FileOutputStream(directory.getPath() + "/Database.bak"); + + // Transfer bytes from the input file to the output file + byte[] buffer = new byte[1024]; + int length; + while ((length = myInput.read(buffer)) > 0) { + myOutput.write(buffer, 0, length); + } + + // Close and clear the streams + myOutput.flush(); + myOutput.close(); + myInput.close(); + } + + @Override public void onDestroy() { //unregister your receivers @@ -201,6 +238,13 @@ public class UpdaterActivity extends Activity { reponseObj = new JSONObject(responseMessage); boolean success = reponseObj.getBoolean("success"); if (success) { + //start backing up database + try { + ExportDatabase(); + Log.d(Config.LOGTAG,"AppUpdater: Database successfully exported"); + } catch (IOException e) { + e.printStackTrace(); + } //Overall information about the contents of a package //This corresponds to all of the information collected from AndroidManifest.xml. PackageInfo pInfo = null; -- cgit v1.2.3