mirror of
https://github.com/moparisthebest/open-keychain
synced 2024-12-26 00:48:51 -05:00
Merge pull request #760 from mar-v-in/fix-encrypt-intent
Fix encrypt intent
This commit is contained in:
commit
e4c8674792
@ -81,10 +81,6 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn
|
||||
PagerTabStripAdapter mTabsAdapterContent;
|
||||
|
||||
// tabs
|
||||
Bundle mAsymmetricFragmentBundle = new Bundle();
|
||||
Bundle mSymmetricFragmentBundle = new Bundle();
|
||||
Bundle mMessageFragmentBundle = new Bundle();
|
||||
Bundle mFileFragmentBundle = new Bundle();
|
||||
int mSwitchToMode = PAGER_MODE_ASYMMETRIC;
|
||||
int mSwitchToContent = PAGER_CONTENT_MESSAGE;
|
||||
|
||||
@ -93,7 +89,7 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn
|
||||
private static final int PAGER_CONTENT_MESSAGE = 0;
|
||||
private static final int PAGER_CONTENT_FILE = 1;
|
||||
|
||||
// model used by message and file fragments
|
||||
// model used by fragments
|
||||
private long mEncryptionKeyIds[] = null;
|
||||
private String mEncryptionUserIds[] = null;
|
||||
private long mSigningKeyId = Constants.key.none;
|
||||
@ -503,16 +499,12 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn
|
||||
// Handle intent actions
|
||||
handleActions(getIntent());
|
||||
|
||||
mTabsAdapterMode.addTab(EncryptAsymmetricFragment.class,
|
||||
mAsymmetricFragmentBundle, getString(R.string.label_asymmetric));
|
||||
mTabsAdapterMode.addTab(EncryptSymmetricFragment.class,
|
||||
mSymmetricFragmentBundle, getString(R.string.label_symmetric));
|
||||
mTabsAdapterMode.addTab(EncryptAsymmetricFragment.class, null, getString(R.string.label_asymmetric));
|
||||
mTabsAdapterMode.addTab(EncryptSymmetricFragment.class, null, getString(R.string.label_symmetric));
|
||||
mViewPagerMode.setCurrentItem(mSwitchToMode);
|
||||
|
||||
mTabsAdapterContent.addTab(EncryptMessageFragment.class,
|
||||
mMessageFragmentBundle, getString(R.string.label_message));
|
||||
mTabsAdapterContent.addTab(EncryptFileFragment.class,
|
||||
mFileFragmentBundle, getString(R.string.label_files));
|
||||
mTabsAdapterContent.addTab(EncryptMessageFragment.class, null, getString(R.string.label_message));
|
||||
mTabsAdapterContent.addTab(EncryptFileFragment.class, null, getString(R.string.label_files));
|
||||
mViewPagerContent.setCurrentItem(mSwitchToContent);
|
||||
|
||||
mUseArmor = Preferences.getPreferences(this).getDefaultAsciiArmor();
|
||||
@ -604,14 +596,10 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn
|
||||
|
||||
String textData = extras.getString(EXTRA_TEXT);
|
||||
|
||||
long signatureKeyId = extras.getLong(EXTRA_SIGNATURE_KEY_ID);
|
||||
long[] encryptionKeyIds = extras.getLongArray(EXTRA_ENCRYPTION_KEY_IDS);
|
||||
mSigningKeyId = extras.getLong(EXTRA_SIGNATURE_KEY_ID);
|
||||
mEncryptionKeyIds = extras.getLongArray(EXTRA_ENCRYPTION_KEY_IDS);
|
||||
|
||||
// preselect keys given by intent
|
||||
mAsymmetricFragmentBundle.putLongArray(EncryptAsymmetricFragment.ARG_ENCRYPTION_KEY_IDS,
|
||||
encryptionKeyIds);
|
||||
mAsymmetricFragmentBundle.putLong(EncryptAsymmetricFragment.ARG_SIGNATURE_KEY_ID,
|
||||
signatureKeyId);
|
||||
mSwitchToMode = PAGER_MODE_ASYMMETRIC;
|
||||
|
||||
/**
|
||||
@ -619,11 +607,11 @@ public class EncryptActivity extends DrawerActivity implements EncryptActivityIn
|
||||
*/
|
||||
if (ACTION_ENCRYPT.equals(action) && textData != null) {
|
||||
// encrypt text based on given extra
|
||||
mMessageFragmentBundle.putString(EncryptMessageFragment.ARG_TEXT, textData);
|
||||
mMessage = textData;
|
||||
mSwitchToContent = PAGER_CONTENT_MESSAGE;
|
||||
} else if (ACTION_ENCRYPT.equals(action) && uris != null && !uris.isEmpty()) {
|
||||
// encrypt file based on Uri
|
||||
mFileFragmentBundle.putParcelableArrayList(EncryptFileFragment.ARG_URIS, uris);
|
||||
mInputUris = uris;
|
||||
mSwitchToContent = PAGER_CONTENT_FILE;
|
||||
} else if (ACTION_ENCRYPT.equals(action)) {
|
||||
Log.e(Constants.TAG,
|
||||
|
@ -123,14 +123,10 @@ public class EncryptAsymmetricFragment extends Fragment implements EncryptActivi
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
long signatureKeyId = getArguments().getLong(ARG_SIGNATURE_KEY_ID);
|
||||
long[] encryptionKeyIds = getArguments().getLongArray(ARG_ENCRYPTION_KEY_IDS);
|
||||
|
||||
mProviderHelper = new ProviderHelper(getActivity());
|
||||
|
||||
// preselect keys given by arguments (given by Intent to EncryptActivity)
|
||||
preselectKeys(signatureKeyId, encryptionKeyIds, mProviderHelper);
|
||||
// preselect keys given
|
||||
preselectKeys();
|
||||
|
||||
getLoaderManager().initLoader(1, null, new LoaderManager.LoaderCallbacks<Cursor>() {
|
||||
@Override
|
||||
@ -187,19 +183,15 @@ public class EncryptAsymmetricFragment extends Fragment implements EncryptActivi
|
||||
|
||||
/**
|
||||
* If an Intent gives a signatureMasterKeyId and/or encryptionMasterKeyIds, preselect those!
|
||||
*
|
||||
* @param preselectedSignatureKeyId
|
||||
* @param preselectedEncryptionKeyIds
|
||||
*/
|
||||
private void preselectKeys(long preselectedSignatureKeyId, long[] preselectedEncryptionKeyIds,
|
||||
ProviderHelper providerHelper) {
|
||||
private void preselectKeys() {
|
||||
// TODO all of this works under the assumption that the first suitable subkey is always used!
|
||||
// not sure if we need to distinguish between different subkeys here?
|
||||
if (preselectedSignatureKeyId != 0) {
|
||||
long signatureKey = mEncryptInterface.getSignatureKey();
|
||||
if (signatureKey != Constants.key.none) {
|
||||
try {
|
||||
CachedPublicKeyRing keyring =
|
||||
providerHelper.getCachedPublicKeyRing(
|
||||
KeyRings.buildUnifiedKeyRingUri(preselectedSignatureKeyId));
|
||||
CachedPublicKeyRing keyring = mProviderHelper.getCachedPublicKeyRing(
|
||||
KeyRings.buildUnifiedKeyRingUri(signatureKey));
|
||||
if(keyring.hasAnySecret()) {
|
||||
setSignatureKeyId(keyring.getMasterKeyId());
|
||||
}
|
||||
@ -208,10 +200,11 @@ public class EncryptAsymmetricFragment extends Fragment implements EncryptActivi
|
||||
}
|
||||
}
|
||||
|
||||
if (preselectedEncryptionKeyIds != null) {
|
||||
for (long preselectedId : preselectedEncryptionKeyIds) {
|
||||
long[] encryptionKeyIds = mEncryptInterface.getEncryptionKeys();
|
||||
if (encryptionKeyIds != null) {
|
||||
for (long preselectedId : encryptionKeyIds) {
|
||||
try {
|
||||
CachedPublicKeyRing ring = providerHelper.getCachedPublicKeyRing(
|
||||
CachedPublicKeyRing ring = mProviderHelper.getCachedPublicKeyRing(
|
||||
KeyRings.buildUnifiedKeyRingsFindBySubkeyUri(preselectedId));
|
||||
mEncryptKeyView.addObject(mEncryptKeyView.new EncryptionKey(ring));
|
||||
} catch (PgpGeneralException e) {
|
||||
|
@ -111,8 +111,6 @@ public class EncryptFileFragment extends Fragment implements EncryptActivityInte
|
||||
@Override
|
||||
public void onActivityCreated(Bundle savedInstanceState) {
|
||||
super.onActivityCreated(savedInstanceState);
|
||||
|
||||
addInputUris(getArguments().<Uri>getParcelableArrayList(ARG_URIS));
|
||||
}
|
||||
|
||||
private void addInputUri() {
|
||||
@ -125,14 +123,6 @@ public class EncryptFileFragment extends Fragment implements EncryptActivityInte
|
||||
}
|
||||
}
|
||||
|
||||
private void addInputUris(List<Uri> uris) {
|
||||
if (uris != null) {
|
||||
for (Uri uri : uris) {
|
||||
addInputUri(uri);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void addInputUri(Uri inputUri) {
|
||||
if (inputUri == null) {
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user