Merge branch 'master' of github.com:open-keychain/open-keychain

This commit is contained in:
Dominik Schürmann
2015-07-07 19:27:49 +02:00
11 changed files with 181 additions and 79 deletions

View File

@@ -209,8 +209,13 @@ public class HkpKeyserver extends Keyserver {
Log.w(Constants.TAG, e);
}
client.setProxy(proxy);
client.setConnectTimeout(proxy != null ? 30000 : 5000, TimeUnit.MILLISECONDS);
if (proxy != null) {
client.setProxy(proxy);
client.setConnectTimeout(30000, TimeUnit.MILLISECONDS);
} else {
client.setProxy(Proxy.NO_PROXY);
client.setConnectTimeout(5000, TimeUnit.MILLISECONDS);
}
client.setReadTimeout(45000, TimeUnit.MILLISECONDS);
return client;

View File

@@ -279,7 +279,7 @@ public class PgpSignEncryptOperation extends BaseOperation {
CanonicalizedPublicKey key = keyRing.getPublicKey(subKeyId);
cPk.addMethod(key.getPubKeyEncryptionGenerator(input.isHiddenRecipients()));
log.add(LogType.MSG_PSE_KEY_OK, indent + 1,
KeyFormattingUtils.convertKeyIdToHex(id));
KeyFormattingUtils.convertKeyIdToHex(subKeyId));
}
if (encryptSubKeyIds.isEmpty()) {
log.add(LogType.MSG_PSE_KEY_WARN, indent + 1,

View File

@@ -65,7 +65,6 @@ import org.sufficientlysecure.keychain.operations.results.DecryptVerifyResult;
import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyInputParcel;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.provider.TemporaryStorageProvider;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
// this import NEEDS to be above the ViewModel one, or it won't compile! (as of 06/06/15)
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.StatusHolder;
import org.sufficientlysecure.keychain.ui.DecryptListFragment.DecryptFilesAdapter.ViewModel;
@@ -111,6 +110,10 @@ public class DecryptListFragment
return frag;
}
public DecryptListFragment() {
super(null);
}
/**
* Inflate the layout for this fragment
*/
@@ -248,11 +251,6 @@ public class DecryptListFragment
}
}
@Override
protected void cryptoOperation(CryptoInputParcel cryptoInput) {
super.cryptoOperation(cryptoInput, false);
}
@Override
public boolean onCryptoSetProgress(String msg, int progress, int max) {
mAdapter.setProgress(mCurrentInputUri, progress, max, msg);

View File

@@ -652,38 +652,6 @@ public class ViewKeyActivity extends BaseNfcActivity implements
}
}
private void updateFromKeyserver(Uri dataUri, ProviderHelper providerHelper)
throws ProviderHelper.NotFoundException {
mIsRefreshing = true;
mRefreshItem.setEnabled(false);
mRefreshItem.setActionView(mRefresh);
mRefresh.startAnimation(mRotate);
byte[] blob = (byte[]) providerHelper.getGenericData(
KeychainContract.KeyRings.buildUnifiedKeyRingUri(dataUri),
KeychainContract.Keys.FINGERPRINT, ProviderHelper.FIELD_TYPE_BLOB);
String fingerprint = KeyFormattingUtils.convertFingerprintToHex(blob);
ParcelableKeyRing keyEntry = new ParcelableKeyRing(fingerprint, null, null);
ArrayList<ParcelableKeyRing> entries = new ArrayList<>();
entries.add(keyEntry);
mKeyList = entries;
// search config
{
Preferences prefs = Preferences.getPreferences(this);
Preferences.CloudSearchPrefs cloudPrefs =
new Preferences.CloudSearchPrefs(true, true, prefs.getPreferredKeyserver());
mKeyserver = cloudPrefs.keyserver;
}
mOperationHelper = new CryptoOperationHelper<>(
this, this, R.string.progress_importing);
mOperationHelper.cryptoOperation();
}
private void editKey(Uri dataUri) {
Intent editIntent = new Intent(this, EditKeyActivity.class);
editIntent.setData(KeychainContract.KeyRingData.buildSecretKeyRingUri(dataUri));
@@ -971,6 +939,37 @@ public class ViewKeyActivity extends BaseNfcActivity implements
// CryptoOperationHelper.Callback functions
private void updateFromKeyserver(Uri dataUri, ProviderHelper providerHelper)
throws ProviderHelper.NotFoundException {
mIsRefreshing = true;
mRefreshItem.setEnabled(false);
mRefreshItem.setActionView(mRefresh);
mRefresh.startAnimation(mRotate);
byte[] blob = (byte[]) providerHelper.getGenericData(
KeychainContract.KeyRings.buildUnifiedKeyRingUri(dataUri),
KeychainContract.Keys.FINGERPRINT, ProviderHelper.FIELD_TYPE_BLOB);
String fingerprint = KeyFormattingUtils.convertFingerprintToHex(blob);
ParcelableKeyRing keyEntry = new ParcelableKeyRing(fingerprint, null, null);
ArrayList<ParcelableKeyRing> entries = new ArrayList<>();
entries.add(keyEntry);
mKeyList = entries;
// search config
{
Preferences prefs = Preferences.getPreferences(this);
Preferences.CloudSearchPrefs cloudPrefs =
new Preferences.CloudSearchPrefs(true, true, prefs.getPreferredKeyserver());
mKeyserver = cloudPrefs.keyserver;
}
mOperationHelper = new CryptoOperationHelper<>(this, this, null);
mOperationHelper.cryptoOperation();
}
@Override
public ImportKeyringParcel createOperationInput() {
return new ImportKeyringParcel(mKeyList, mKeyserver);
@@ -995,6 +994,6 @@ public class ViewKeyActivity extends BaseNfcActivity implements
@Override
public boolean onCryptoSetProgress(String msg, int progress, int max) {
return false;
return true;
}
}

View File

@@ -75,6 +75,10 @@ public class ViewKeyYubiKeyFragment
return frag;
}
public ViewKeyYubiKeyFragment() {
super(R.string.progress_processing);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

View File

@@ -103,7 +103,7 @@ public class ImportKeysListCloudLoader
ArrayList<ImportKeysListEntry> searchResult = CloudSearch.search(
mServerQuery,
mCloudPrefs,
mParcelableProxy.getProxy()
mParcelableProxy != null ? mParcelableProxy.getProxy() : null
);
mEntryList.clear();

View File

@@ -4,6 +4,7 @@ package org.sufficientlysecure.keychain.ui.base;
import android.os.Bundle;
import android.os.Parcelable;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.operations.results.OperationResult;

View File

@@ -23,6 +23,7 @@ import android.os.Parcelable;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.operations.results.OperationResult;
import org.sufficientlysecure.keychain.service.KeychainService;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
@@ -50,9 +51,12 @@ public abstract class CryptoOperationFragment<T extends Parcelable, S extends Op
final private CryptoOperationHelper<T, S> mOperationHelper;
public CryptoOperationFragment() {
public CryptoOperationFragment(Integer initialProgressMsg) {
mOperationHelper = new CryptoOperationHelper<>(this, this, initialProgressMsg);
}
mOperationHelper = new CryptoOperationHelper<>(this, this);
public CryptoOperationFragment() {
mOperationHelper = new CryptoOperationHelper<>(this, this, R.string.progress_processing);
}
@Override
@@ -76,10 +80,6 @@ public abstract class CryptoOperationFragment<T extends Parcelable, S extends Op
mOperationHelper.cryptoOperation(cryptoInput);
}
protected void cryptoOperation(CryptoInputParcel cryptoInput, boolean showProgress) {
mOperationHelper.cryptoOperation(cryptoInput, showProgress);
}
@Override @Nullable
/** Creates input for the crypto operation. Called internally after the
* crypto operation is started by a call to cryptoOperation(). Silently

View File

@@ -74,7 +74,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
// otherwise all CryptoOperationHandlers may respond to the same onActivityResult
private int mRequestedCode = -1;
private int mProgressMessageResource;
private Integer mProgressMessageResource;
private FragmentActivity mActivity;
private Fragment mFragment;
@@ -85,7 +85,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
/**
* If OperationHelper is being integrated into an activity
*/
public CryptoOperationHelper(FragmentActivity activity, Callback<T, S> callback, int progressMessageString) {
public CryptoOperationHelper(FragmentActivity activity, Callback<T, S> callback, Integer progressMessageString) {
mActivity = activity;
mUseFragment = false;
mCallback = callback;
@@ -95,23 +95,13 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
/**
* if OperationHelper is being integrated into a fragment
*/
public CryptoOperationHelper(Fragment fragment, Callback<T, S> callback, int progressMessageString) {
public CryptoOperationHelper(Fragment fragment, Callback<T, S> callback, Integer progressMessageString) {
mFragment = fragment;
mUseFragment = true;
mProgressMessageResource = progressMessageString;
mCallback = callback;
}
/**
* if OperationHelper is being integrated into a fragment with default message for the progress dialog
*/
public CryptoOperationHelper(Fragment fragment, Callback<T, S> callback) {
mFragment = fragment;
mUseFragment = true;
mProgressMessageResource = R.string.progress_building_key;
mCallback = callback;
}
public void setProgressMessageResource(int id) {
mProgressMessageResource = id;
}
@@ -248,7 +238,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
}
public void cryptoOperation(final CryptoInputParcel cryptoInput, boolean showProgress) {
public void cryptoOperation(final CryptoInputParcel cryptoInput) {
FragmentActivity activity = mUseFragment ? mFragment.getActivity() : mActivity;
@@ -297,7 +287,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
Messenger messenger = new Messenger(saveHandler);
intent.putExtra(KeychainService.EXTRA_MESSENGER, messenger);
if (showProgress) {
if (mProgressMessageResource != null) {
saveHandler.showProgressDialog(
activity.getString(mProgressMessageResource),
ProgressDialog.STYLE_HORIZONTAL, false);
@@ -306,10 +296,6 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
activity.startService(intent);
}
public void cryptoOperation(CryptoInputParcel cryptoInputParcel) {
cryptoOperation(cryptoInputParcel, true);
}
public void cryptoOperation() {
cryptoOperation(new CryptoInputParcel());
}