diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-23 16:58:40 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-23 16:58:40 +0200 |
commit | 6a5bd6509b088cf8cee3e9ddf9a5eac5a33de98a (patch) | |
tree | 9a2b162ce038a7dbbc252f9bae21198f6c6300ea /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui | |
parent | 558cc6befca479d33c20ca58f426bda486b5ee8f (diff) | |
download | open-keychain-6a5bd6509b088cf8cee3e9ddf9a5eac5a33de98a.tar.gz open-keychain-6a5bd6509b088cf8cee3e9ddf9a5eac5a33de98a.tar.bz2 open-keychain-6a5bd6509b088cf8cee3e9ddf9a5eac5a33de98a.zip |
implement saving of files
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java index 422a12a2e..0d527926d 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java @@ -19,6 +19,7 @@ package org.sufficientlysecure.keychain.ui; import java.io.File; +import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -220,8 +221,7 @@ public class DecryptListFragment if (resultCode == Activity.RESULT_OK && data != null) { Uri saveUri = data.getData(); Uri outputUri = mOutputUris.get(mCurrentInputUri); - // TODO save from outputUri to saveUri - + saveFile(saveUri, outputUri); mCurrentInputUri = null; } return; @@ -233,6 +233,21 @@ public class DecryptListFragment } } + private void saveFile(Uri outputUri, Uri saveUri) { + Activity activity = getActivity(); + if (activity == null) { + return; + } + + try { + FileHelper.copyUriData(activity, outputUri, saveUri); + Notify.create(activity, R.string.file_saved, Style.ERROR).show(); + } catch (IOException e) { + Log.e(Constants.TAG, "error saving file", e); + Notify.create(activity, R.string.error_saving_file, Style.ERROR).show(); + } + } + @Override protected void cryptoOperation(CryptoInputParcel cryptoInput) { super.cryptoOperation(cryptoInput, false); @@ -448,6 +463,12 @@ public class DecryptListFragment if (mAdapter.mMenuClickedModel == null || !mAdapter.mMenuClickedModel.hasResult()) { return false; } + + // don't process menu items until all items are done! + if (!mPendingInputUris.isEmpty()) { + return true; + } + Activity activity = getActivity(); if (activity == null) { return false; |