use autovalue for ImportKeyringParcel

This commit is contained in:
Vincent Breitmoser 2017-05-22 12:28:59 +02:00
parent 0095df6d89
commit ef366173d0
13 changed files with 39 additions and 73 deletions

View file

@ -469,9 +469,9 @@ public class ImportOperation extends BaseReadWriteOperation<ImportKeyringParcel>
@NonNull @NonNull
@Override @Override
public ImportKeyResult execute(ImportKeyringParcel importInput, CryptoInputParcel cryptoInput) { public ImportKeyResult execute(ImportKeyringParcel importInput, CryptoInputParcel cryptoInput) {
ArrayList<ParcelableKeyRing> keyList = importInput.mKeyList; ArrayList<ParcelableKeyRing> keyList = importInput.getKeyList();
ParcelableHkpKeyserver keyServer = importInput.mKeyserver; ParcelableHkpKeyserver keyServer = importInput.getKeyserver();
boolean skipSave = importInput.mSkipSave; boolean skipSave = importInput.isSkipSave();
ImportKeyResult result; ImportKeyResult result;
if (keyList == null) {// import from file, do serially if (keyList == null) {// import from file, do serially
@ -495,7 +495,7 @@ public class ImportOperation extends BaseReadWriteOperation<ImportKeyringParcel>
result = multiThreadedKeyImport(keyList, keyServer, proxy, skipSave); result = multiThreadedKeyImport(keyList, keyServer, proxy, skipSave);
} }
if (!importInput.mSkipSave) { if (!skipSave) {
ContactSyncAdapterService.requestContactsSync(); ContactSyncAdapterService.requestContactsSync();
} }
return result; return result;

View file

@ -18,69 +18,31 @@
package org.sufficientlysecure.keychain.service; package org.sufficientlysecure.keychain.service;
import android.os.Parcel;
import android.os.Parcelable;
import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing;
import org.sufficientlysecure.keychain.keyimport.ParcelableHkpKeyserver;
import java.util.ArrayList; import java.util.ArrayList;
public class ImportKeyringParcel implements Parcelable { import android.os.Parcelable;
// If null, keys are expected to be read from a cache file in ImportExportOperations import android.support.annotation.Nullable;
public ArrayList<ParcelableKeyRing> mKeyList;
public ParcelableHkpKeyserver mKeyserver; // must be set if keys are to be imported from a keyserver
// If false, don't save the key, only return it as part of result import com.google.auto.value.AutoValue;
public boolean mSkipSave = false; import org.sufficientlysecure.keychain.keyimport.ParcelableHkpKeyserver;
import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing;
public ImportKeyringParcel(ArrayList<ParcelableKeyRing> keyList, ParcelableHkpKeyserver keyserver) { @AutoValue
mKeyList = keyList; public abstract class ImportKeyringParcel implements Parcelable {
mKeyserver = keyserver; @Nullable // If null, keys are expected to be read from a cache file in ImportExportOperations
public abstract ArrayList<ParcelableKeyRing> getKeyList();
@Nullable // must be set if keys are to be imported from a keyserver
public abstract ParcelableHkpKeyserver getKeyserver();
public abstract boolean isSkipSave();
public static ImportKeyringParcel createImportKeyringParcel(ArrayList<ParcelableKeyRing> keyList,
ParcelableHkpKeyserver keyserver) {
return new AutoValue_ImportKeyringParcel(keyList, keyserver, false);
} }
public ImportKeyringParcel(ArrayList<ParcelableKeyRing> keyList, ParcelableHkpKeyserver keyserver, boolean skipSave) { public static ImportKeyringParcel createWithSkipSave(ArrayList<ParcelableKeyRing> keyList,
this(keyList, keyserver); ParcelableHkpKeyserver keyserver) {
mSkipSave = skipSave; return new AutoValue_ImportKeyringParcel(keyList, keyserver, true);
} }
protected ImportKeyringParcel(Parcel in) {
if (in.readByte() == 0x01) {
mKeyList = new ArrayList<>();
in.readList(mKeyList, ParcelableKeyRing.class.getClassLoader());
} else {
mKeyList = null;
}
mKeyserver = in.readParcelable(ParcelableHkpKeyserver.class.getClassLoader());
mSkipSave = in.readInt() != 0;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
if (mKeyList == null) {
dest.writeByte((byte) (0x00));
} else {
dest.writeByte((byte) (0x01));
dest.writeList(mKeyList);
}
dest.writeParcelable(mKeyserver, flags);
dest.writeInt(mSkipSave ? 1 : 0);
}
public static final Parcelable.Creator<ImportKeyringParcel> CREATOR = new Parcelable.Creator<ImportKeyringParcel>() {
@Override
public ImportKeyringParcel createFromParcel(Parcel in) {
return new ImportKeyringParcel(in);
}
@Override
public ImportKeyringParcel[] newArray(int size) {
return new ImportKeyringParcel[size];
}
};
} }

View file

@ -324,7 +324,7 @@ public class KeyserverSyncAdapterService extends Service {
ImportOperation importOp = new ImportOperation(context, ImportOperation importOp = new ImportOperation(context,
KeyWritableRepository.createDatabaseReadWriteInteractor(context), null); KeyWritableRepository.createDatabaseReadWriteInteractor(context), null);
return importOp.execute( return importOp.execute(
new ImportKeyringParcel(keyList, ImportKeyringParcel.createImportKeyringParcel(keyList,
Preferences.getPreferences(context).getPreferredKeyserver()), Preferences.getPreferences(context).getPreferredKeyserver()),
cryptoInputParcel cryptoInputParcel
); );
@ -384,7 +384,7 @@ public class KeyserverSyncAdapterService extends Service {
ImportKeyResult result = ImportKeyResult result =
new ImportOperation(context, KeyWritableRepository.createDatabaseReadWriteInteractor(context), null, mCancelled) new ImportOperation(context, KeyWritableRepository.createDatabaseReadWriteInteractor(context), null, mCancelled)
.execute( .execute(
new ImportKeyringParcel( ImportKeyringParcel.createImportKeyringParcel(
keyWrapper, keyWrapper,
Preferences.getPreferences(context) Preferences.getPreferences(context)
.getPreferredKeyserver() .getPreferredKeyserver()

View file

@ -271,7 +271,7 @@ public class CreateSecurityTokenImportResetFragment
@Override @Override
public ImportKeyringParcel createOperationInput() { public ImportKeyringParcel createOperationInput() {
return new ImportKeyringParcel(mKeyList, mKeyserver); return ImportKeyringParcel.createImportKeyringParcel(mKeyList, mKeyserver);
} }
@Override @Override

View file

@ -159,7 +159,7 @@ public abstract class DecryptFragment extends Fragment implements LoaderManager.
@Override @Override
public ImportKeyringParcel createOperationInput() { public ImportKeyringParcel createOperationInput() {
return new ImportKeyringParcel(keyList, keyserver); return ImportKeyringParcel.createImportKeyringParcel(keyList, keyserver);
} }
@Override @Override

View file

@ -779,7 +779,7 @@ public class DecryptListFragment
@Override @Override
public ImportKeyringParcel createOperationInput() { public ImportKeyringParcel createOperationInput() {
return new ImportKeyringParcel(keyList, keyserver); return ImportKeyringParcel.createImportKeyringParcel(keyList, keyserver);
} }
@Override @Override

View file

@ -357,7 +357,7 @@ public class ImportKeysActivity extends BaseActivity implements ImportKeysListen
return; return;
} }
ImportKeyringParcel inputParcel = new ImportKeyringParcel(null, null); ImportKeyringParcel inputParcel = ImportKeyringParcel.createImportKeyringParcel(null, null);
ImportKeysOperationCallback callback = new ImportKeysOperationCallback(this, inputParcel, null); ImportKeysOperationCallback callback = new ImportKeysOperationCallback(this, inputParcel, null);
mOpHelper = new CryptoOperationHelper<>(1, this, callback, R.string.progress_importing); mOpHelper = new CryptoOperationHelper<>(1, this, callback, R.string.progress_importing);
mOpHelper.cryptoOperation(); mOpHelper.cryptoOperation();

View file

@ -223,7 +223,7 @@ public class ImportKeysProxyActivity extends FragmentActivity
@Override @Override
public ImportKeyringParcel createOperationInput() { public ImportKeyringParcel createOperationInput() {
return new ImportKeyringParcel(mKeyList, mKeyserver); return ImportKeyringParcel.createImportKeyringParcel(mKeyList, mKeyserver);
} }
@Override @Override

View file

@ -519,7 +519,7 @@ public class KeyListFragment extends RecyclerFragment<KeySectionedListAdapter>
@Override @Override
public ImportKeyringParcel createOperationInput() { public ImportKeyringParcel createOperationInput() {
return new ImportKeyringParcel(mKeyList, mKeyserver); return ImportKeyringParcel.createImportKeyringParcel(mKeyList, mKeyserver);
} }
@Override @Override

View file

@ -185,7 +185,7 @@ public class SafeSlingerActivity extends BaseActivity
@Override @Override
public ImportKeyringParcel createOperationInput() { public ImportKeyringParcel createOperationInput() {
return new ImportKeyringParcel(mKeyList, mKeyserver); return ImportKeyringParcel.createImportKeyringParcel(mKeyList, mKeyserver);
} }
@Override @Override

View file

@ -237,7 +237,11 @@ public class ImportKeysAdapter extends RecyclerView.Adapter<ImportKeysAdapter.Vi
keyserver = entry.getKeyserver(); keyserver = entry.getKeyserver();
} }
return new ImportKeyringParcel(keysList, keyserver, skipSave); if (skipSave) {
return ImportKeyringParcel.createWithSkipSave(keysList, keyserver);
} else {
return ImportKeyringParcel.createImportKeyringParcel(keysList, keyserver);
}
} }
@Override @Override

View file

@ -1176,7 +1176,7 @@ public class ViewKeyActivity extends BaseSecurityTokenActivity implements
@Override @Override
public ImportKeyringParcel createOperationInput() { public ImportKeyringParcel createOperationInput() {
return new ImportKeyringParcel(mKeyList, mKeyserver); return ImportKeyringParcel.createImportKeyringParcel(mKeyList, mKeyserver);
} }
@Override @Override

View file

@ -65,7 +65,7 @@ public class EmailKeyHelper {
@Override @Override
public ImportKeyringParcel createOperationInput() { public ImportKeyringParcel createOperationInput() {
return new ImportKeyringParcel(mKeyList, mKeyserver); return ImportKeyringParcel.createImportKeyringParcel(mKeyList, mKeyserver);
} }
} }