From 905ac511efacfc0fbd3df7defb9b9ede7d530e37 Mon Sep 17 00:00:00 2001 From: str4d Date: Fri, 4 Jul 2014 10:55:36 +0000 Subject: [PATCH] Prepare for export dialogs --- .../bote/android/config/SettingsActivity.java | 50 +++++++++++++------ app/src/main/res/values/strings.xml | 1 + 2 files changed, 35 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/i2p/bote/android/config/SettingsActivity.java b/app/src/main/java/i2p/bote/android/config/SettingsActivity.java index 9a0ddf6..86748cf 100644 --- a/app/src/main/java/i2p/bote/android/config/SettingsActivity.java +++ b/app/src/main/java/i2p/bote/android/config/SettingsActivity.java @@ -136,28 +136,46 @@ public class SettingsActivity extends PreferenceActivity { public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.export_identities: - // TODO ask if file should be encrypted (remove .txt from filename if yes) - // TODO ask for filename - File exportFile = new File(Environment.getExternalStoragePublicDirectory( - Environment.DIRECTORY_DOCUMENTS - ), "identities.txt"); - try { - // TODO ask for password - I2PBote.getInstance().getIdentities().export(exportFile, null); - Toast.makeText(this, "Identities exported to Documents folder", Toast.LENGTH_SHORT).show(); - } catch (IOException e) { - e.printStackTrace(); - } catch (GeneralSecurityException e) { - e.printStackTrace(); - } catch (PasswordException e) { - e.printStackTrace(); - } + // TODO ask if file should be encrypted + askForExportFilename(null); return true; default: return super.onOptionsItemSelected(item); } } + private void askForExportFilename(String password) { + // TODO ask for filename + String exportFilename = "identities"; + checkIfExportFileExists(exportFilename, password); + } + + private void checkIfExportFileExists(String exportFilename, String password) { + File exportFile = new File(Environment.getExternalStoragePublicDirectory( + Environment.DIRECTORY_DOCUMENTS + ), exportFilename + (password == null ? ".txt" : ".bote")); + if (exportFile.exists()) { + // TODO ask to rename or overwrite + //askForExportFilename(password); + exportIdentities(exportFile, password); + } else + exportIdentities(exportFile, password); + } + + private void exportIdentities(File exportFile, String password) { + try { + // TODO ask for password + I2PBote.getInstance().getIdentities().export(exportFile, password); + Toast.makeText(this, R.string.identities_exported, Toast.LENGTH_SHORT).show(); + } catch (IOException e) { + e.printStackTrace(); + } catch (GeneralSecurityException e) { + e.printStackTrace(); + } catch (PasswordException e) { + e.printStackTrace(); + } + } + // // Building Headers diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3562801..cd920e7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -148,5 +148,6 @@ Delete identity? Identity saved Export identities + Identities exported to Documents folder