Export identities to Documents folder

This commit is contained in:
str4d
2014-07-04 06:21:56 +00:00
parent 5ea895de01
commit d0ac806ff8
4 changed files with 50 additions and 0 deletions

View File

@@ -5,6 +5,7 @@
android:versionName="0.1.1" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.NFC" />
<uses-sdk

View File

@@ -8,6 +8,7 @@ import i2p.bote.android.util.SummaryEditTextPreference;
import i2p.bote.email.EmailIdentity;
import i2p.bote.fileencryption.PasswordException;
import java.io.File;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Collection;
@@ -22,6 +23,7 @@ import android.content.SharedPreferences;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.preference.CheckBoxPreference;
import android.preference.EditTextPreference;
import android.preference.ListPreference;
@@ -31,11 +33,15 @@ import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class SettingsActivity extends PreferenceActivity {
// Actions for legacy settings
@@ -120,6 +126,38 @@ public class SettingsActivity extends PreferenceActivity {
return SettingsFragment.class.getName().equals(fragmentName);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.settings, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
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();
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
//
// Building Headers

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:i2pandroid="http://schemas.android.com/apk/res-auto" >
<item
android:id="@+id/export_identities"
android:title="@string/export_identities"
i2pandroid:showAsAction="never" />
</menu>

View File

@@ -147,5 +147,6 @@
<string name="save_identity">Save identity</string>
<string name="delete_identity">Delete identity?</string>
<string name="identity_saved">Identity saved</string>
<string name="export_identities">Export identities</string>
</resources>