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

View file

@ -18,69 +18,31 @@
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;
public class ImportKeyringParcel implements Parcelable {
// If null, keys are expected to be read from a cache file in ImportExportOperations
public ArrayList<ParcelableKeyRing> mKeyList;
public ParcelableHkpKeyserver mKeyserver; // must be set if keys are to be imported from a keyserver
import android.os.Parcelable;
import android.support.annotation.Nullable;
// If false, don't save the key, only return it as part of result
public boolean mSkipSave = false;
import com.google.auto.value.AutoValue;
import org.sufficientlysecure.keychain.keyimport.ParcelableHkpKeyserver;
import org.sufficientlysecure.keychain.keyimport.ParcelableKeyRing;
public ImportKeyringParcel(ArrayList<ParcelableKeyRing> keyList, ParcelableHkpKeyserver keyserver) {
mKeyList = keyList;
mKeyserver = keyserver;
@AutoValue
public abstract class ImportKeyringParcel implements Parcelable {
@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) {
this(keyList, keyserver);
mSkipSave = skipSave;
public static ImportKeyringParcel createWithSkipSave(ArrayList<ParcelableKeyRing> keyList,
ParcelableHkpKeyserver keyserver) {
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,
KeyWritableRepository.createDatabaseReadWriteInteractor(context), null);
return importOp.execute(
new ImportKeyringParcel(keyList,
ImportKeyringParcel.createImportKeyringParcel(keyList,
Preferences.getPreferences(context).getPreferredKeyserver()),
cryptoInputParcel
);
@ -384,7 +384,7 @@ public class KeyserverSyncAdapterService extends Service {
ImportKeyResult result =
new ImportOperation(context, KeyWritableRepository.createDatabaseReadWriteInteractor(context), null, mCancelled)
.execute(
new ImportKeyringParcel(
ImportKeyringParcel.createImportKeyringParcel(
keyWrapper,
Preferences.getPreferences(context)
.getPreferredKeyserver()

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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