diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2014-07-31 23:07:20 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2014-07-31 23:07:20 +0200 |
commit | caad5d1fc15312da3cc665bf7a5c42b64306c140 (patch) | |
tree | b7c7002df78350d1f345400fdb55729718322b1b /OpenKeychain | |
parent | c5ce794ef782b6809c3f0b3cacfa3bcd6a5a85b7 (diff) | |
download | open-keychain-caad5d1fc15312da3cc665bf7a5c42b64306c140.tar.gz open-keychain-caad5d1fc15312da3cc665bf7a5c42b64306c140.tar.bz2 open-keychain-caad5d1fc15312da3cc665bf7a5c42b64306c140.zip |
fix bug in UploadKeyActivity, minor work on uri handling
Diffstat (limited to 'OpenKeychain')
3 files changed, 21 insertions, 25 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java index 9b35903f6..75d167d6b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/ProviderHelper.java @@ -233,6 +233,12 @@ public class ProviderHelper { } private KeyRing getCanonicalizedKeyRing(Uri queryUri, boolean secret) throws NotFoundException { + + // if this is not a unified query, we /will/ get hard to trace errors below! + if ( ! queryUri.getPath().contains("unified")) { + throw new RuntimeException("only unified uris can be passed to getCanonicalizedKeyRing!"); + } + Cursor cursor = mContentResolver.query(queryUri, new String[]{ // we pick from cache only information that is not easily available from keyrings diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java index dbd1b7507..a2c5a0d90 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/UploadKeyActivity.java @@ -36,6 +36,7 @@ import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.helper.Preferences; import org.sufficientlysecure.keychain.provider.KeychainContract; +import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.service.KeychainIntentService; import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler; import org.sufficientlysecure.keychain.util.Log; @@ -92,7 +93,7 @@ public class UploadKeyActivity extends ActionBarActivity { intent.setAction(KeychainIntentService.ACTION_UPLOAD_KEYRING); // set data uri as path to keyring - Uri blobUri = KeychainContract.KeyRingData.buildPublicKeyRingUri(mDataUri); + Uri blobUri = KeyRings.buildUnifiedKeyRingUri(mDataUri); intent.setData(blobUri); // fill values for this action diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java index 03e446723..b6b35a804 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ViewKeyActivity.java @@ -145,20 +145,27 @@ public class ViewKeyActivity extends ActionBarActivity implements switchToTab = intent.getExtras().getInt(EXTRA_SELECTED_TAB); } - Uri dataUri = getDataUri(); - if (dataUri == null) { - Log.e(Constants.TAG, "Data missing. Should be Uri of key!"); + mDataUri = getIntent().getData(); + if (mDataUri == null) { + Log.e(Constants.TAG, "Data missing. Should be uri of key!"); finish(); return; } + if (mDataUri.getHost().equals(ContactsContract.AUTHORITY)) { + mDataUri = ContactHelper.dataUriFromContactUri(this, mDataUri); + } - loadData(dataUri); + Log.i(Constants.TAG, "mDataUri: " + mDataUri.toString()); - initNfc(dataUri); + // Prepare the loaders. Either re-connect with an existing ones, + // or start new ones. + getSupportLoaderManager().initLoader(LOADER_ID_UNIFIED, null, this); + + initNfc(mDataUri); mShowAdvancedTabs = false; - initTabs(dataUri); + initTabs(mDataUri); // switch to tab selected by extra mViewPager.setCurrentItem(switchToTab); @@ -235,24 +242,6 @@ public class ViewKeyActivity extends ActionBarActivity implements mSlidingTabLayout.setViewPager(mViewPager); } - private Uri getDataUri() { - Uri dataUri = getIntent().getData(); - if (dataUri != null && dataUri.getHost().equals(ContactsContract.AUTHORITY)) { - dataUri = ContactHelper.dataUriFromContactUri(this, dataUri); - } - return dataUri; - } - - private void loadData(Uri dataUri) { - mDataUri = dataUri; - - Log.i(Constants.TAG, "mDataUri: " + mDataUri.toString()); - - // Prepare the loaders. Either re-connect with an existing ones, - // or start new ones. - getSupportLoaderManager().initLoader(LOADER_ID_UNIFIED, null, this); - } - @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); |