diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-08-29 13:28:56 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-08-29 13:28:56 +0200 |
commit | a6e25e6448ab162b351288ee0c241512e05c3611 (patch) | |
tree | d7eec4fcd2d98bc9d00e880ab3c103c86a8edbe2 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base | |
parent | 765ec094c9415fcaddd65b7b743179b2ea7dc098 (diff) | |
parent | 5b75b542e8d2d467ce9e34bd9df2038d6c88885e (diff) | |
download | open-keychain-a6e25e6448ab162b351288ee0c241512e05c3611.tar.gz open-keychain-a6e25e6448ab162b351288ee0c241512e05c3611.tar.bz2 open-keychain-a6e25e6448ab162b351288ee0c241512e05c3611.zip |
Merge branch 'linked-identities' (and fix OperationHelper ids)
Merge Linked Identities.
Also includes an important fix for OperationHelper ids, which had an
error in the bit mask logic.
Conflicts:
Graphics/update-drawables.sh
OpenKeychain/build.gradle
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/CertifyActionsParcel.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateYubiKeyImportFragment.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java
OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java
OpenKeychain/src/main/res/anim/fade_in.xml
OpenKeychain/src/main/res/anim/fade_out.xml
OpenKeychain/src/main/res/layout/decrypt_text_fragment.xml
OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml
OpenKeychain/src/main/res/layout/view_key_fragment.xml
OpenKeychain/src/main/res/menu/key_view.xml
OpenKeychain/src/main/res/values/strings.xml
OpenKeychain/src/test/java/org/sufficientlysecure/keychain/operations/CertifyOperationTest.java
README.md
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base')
2 files changed, 20 insertions, 14 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java index 52507f3e9..de90d48fd 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java @@ -18,9 +18,9 @@ package org.sufficientlysecure.keychain.ui.base; + import android.content.Context; import android.content.Intent; -import android.os.Bundle; import android.os.Parcelable; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; @@ -50,17 +50,21 @@ import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; * @see KeychainService * */ -abstract class CryptoOperationFragment<T extends Parcelable, S extends OperationResult> +public abstract class CryptoOperationFragment<T extends Parcelable, S extends OperationResult> extends Fragment implements CryptoOperationHelper.Callback<T, S> { final private CryptoOperationHelper<T, S> mOperationHelper; + public CryptoOperationFragment() { + mOperationHelper = new CryptoOperationHelper<>(1, this, this, R.string.progress_processing); + } + public CryptoOperationFragment(Integer initialProgressMsg) { mOperationHelper = new CryptoOperationHelper<>(1, this, this, initialProgressMsg); } - public CryptoOperationFragment() { - mOperationHelper = new CryptoOperationHelper<>(1, this, this, R.string.progress_processing); + public CryptoOperationFragment(int id, Integer initialProgressMsg) { + mOperationHelper = new CryptoOperationHelper<>(id, this, this, initialProgressMsg); } @Override diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java index b33128978..6d7bf4cd0 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationHelper.java @@ -70,9 +70,11 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu // particular helper. a request code looks as follows: // (id << 9) + (1<<8) + REQUEST_CODE_X // that is, starting from LSB, there are 8 bits request code, 1 - // fixed bit set, then 7 bit operator-id code. the first two - // summands are stored in the mId for easy operation. - private final int mId; + // fixed bit set, then 7 bit helper-id code. the first two + // summands are stored in the mHelperId for easy operation. + private final int mHelperId; + // bitmask for helperId is everything except the least 8 bits + public static final int HELPER_ID_BITMASK = ~0xff; public static final int REQUEST_CODE_PASSPHRASE = 1; public static final int REQUEST_CODE_NFC = 2; @@ -92,7 +94,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu */ public CryptoOperationHelper(int id, FragmentActivity activity, Callback<T, S> callback, Integer progressMessageString) { - mId = (id << 9) + (1<<8); + mHelperId = (id << 9) + (1<<8); mActivity = activity; mUseFragment = false; mCallback = callback; @@ -103,7 +105,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu * if OperationHelper is being integrated into a fragment */ public CryptoOperationHelper(int id, Fragment fragment, Callback<T, S> callback, Integer progressMessageString) { - mId = (id << 9) + (1<<8); + mHelperId = (id << 9) + (1<<8); mFragment = fragment; mUseFragment = true; mProgressMessageResource = progressMessageString; @@ -162,9 +164,9 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu protected void startActivityForResult(Intent intent, int requestCode) { if (mUseFragment) { - mFragment.startActivityForResult(intent, mId + requestCode); + mFragment.startActivityForResult(intent, mHelperId + requestCode); } else { - mActivity.startActivityForResult(intent, mId + requestCode); + mActivity.startActivityForResult(intent, mHelperId + requestCode); } } @@ -176,13 +178,13 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu public boolean handleActivityResult(int requestCode, int resultCode, Intent data) { Log.d(Constants.TAG, "received activity result in OperationHelper"); - if ((requestCode & mId) != mId) { + if ((requestCode & HELPER_ID_BITMASK) != mHelperId) { // this wasn't meant for us to handle return false; } Log.d(Constants.TAG, "handling activity result in OperationHelper"); - // filter out mId from requestCode - requestCode ^= mId; + // filter out mHelperId from requestCode + requestCode ^= mHelperId; if (resultCode == Activity.RESULT_CANCELED) { mCallback.onCryptoOperationCancelled(); |