diff options
Diffstat (limited to 'OpenKeychain/src/main')
2 files changed, 14 insertions, 3 deletions
| diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java index 964c535dd..9b21b49ce 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java @@ -117,10 +117,12 @@ public class PgpImportExport {      public ImportKeyResult importKeyRings(Iterator<ParcelableKeyRing> entries, int num) {          updateProgress(R.string.progress_importing, 0, 100); +        OperationLog log = new OperationLog(); +          // If there aren't even any keys, do nothing here.          if (entries == null || !entries.hasNext()) {              return new ImportKeyResult( -                    ImportKeyResult.RESULT_FAIL_NOTHING, mProviderHelper.getLog(), 0, 0, 0, 0, +                    ImportKeyResult.RESULT_FAIL_NOTHING, log, 0, 0, 0, 0,                      new long[]{});          } @@ -156,6 +158,7 @@ public class PgpImportExport {                  }                  SaveKeyringResult result; +                mProviderHelper.clearLog();                  if (key.isSecret()) {                      result = mProviderHelper.saveSecretKeyRing(key,                              new ProgressScaler(mProgressable, (int)(position*progSteps), (int)((position+1)*progSteps), 100)); @@ -176,6 +179,8 @@ public class PgpImportExport {                      importedMasterKeyIds.add(key.getMasterKeyId());                  } +                log.add(result, 1); +              } catch (IOException e) {                  Log.e(Constants.TAG, "Encountered bad key on import!", e);                  ++badKeys; @@ -187,7 +192,6 @@ public class PgpImportExport {              position++;          } -        OperationLog log = mProviderHelper.getLog();          int resultType = 0;          // special return case: no new keys at all          if (badKeys == 0 && newKeys == 0 && oldKeys == 0) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResult.java index 495f9f861..d65a84e5b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/results/OperationResult.java @@ -641,7 +641,7 @@ public abstract class OperationResult implements Parcelable {          public void add(OperationResult subResult, int indent) {              OperationLog subLog = subResult.getLog(); -            mParcels.add(new SubLogEntryParcel(subResult, subLog.getLast().mType, indent, subLog.getLast().mParameters)); +            mParcels.add(new SubLogEntryParcel(subResult, subLog.getFirst().mType, indent, subLog.getFirst().mParameters));          }          public void clear() { @@ -678,6 +678,13 @@ public abstract class OperationResult implements Parcelable {              return mParcels.isEmpty();          } +        public LogEntryParcel getFirst() { +            if (mParcels.isEmpty()) { +                return null; +            } +            return mParcels.get(0); +        } +          public LogEntryParcel getLast() {              if (mParcels.isEmpty()) {                  return null; | 
