diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedCookieResource.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedCookieResource.java index 606c951b8..37265b2b5 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedCookieResource.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedCookieResource.java @@ -35,7 +35,7 @@ public abstract class LinkedCookieResource extends LinkedResource { public URI toUri () { StringBuilder b = new StringBuilder(); - b.append("pgpid+cookie:"); + b.append("openpgpid+cookie:"); // add flags if (mFlags != null) { @@ -73,12 +73,12 @@ public abstract class LinkedCookieResource extends LinkedResource { } public static String generate (Context context, byte[] fingerprint) { - return String.format("[Verifying my PGP key: openpgp4fpr:%s]", + return String.format("[Verifying my OpenPGP key: openpgp4fpr:%s]", KeyFormattingUtils.convertFingerprintToHex(fingerprint)); } public static String generatePreview () { - return "[Verifying my PGP key: openpgp4fpr:0x…]"; + return "[Verifying my OpenPGP key: openpgp4fpr:0x…]"; } public LinkedVerifyResult verify(byte[] fingerprint) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedResource.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedResource.java index 5a0fc6e47..26fc9f4cf 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedResource.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/LinkedResource.java @@ -26,7 +26,7 @@ public abstract class LinkedResource { protected final HashMap mParams; public static Pattern magicPattern = - Pattern.compile("\\[Verifying my PGP key: openpgp4fpr:([a-zA-Z0-9]+)]"); + Pattern.compile("\\[Verifying my (?:Open)?PGP key: openpgp4fpr:([a-zA-Z0-9]+)]"); protected LinkedResource(Set flags, HashMap params, URI uri) { mFlags = flags; @@ -44,7 +44,7 @@ public abstract class LinkedResource { protected static LinkedCookieResource fromUri (URI uri) { - if (!"pgpid+cookie".equals(uri.getScheme())) { + if (!"openpgpid+cookie".equals(uri.getScheme())) { Log.e(Constants.TAG, "unknown uri scheme in (suspected) linked id packet"); return null; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/DnsResource.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/DnsResource.java index a8faa435d..3ca71c74b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/DnsResource.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/linked/resources/DnsResource.java @@ -27,7 +27,7 @@ import de.measite.minidns.record.TXT; public class DnsResource extends LinkedCookieResource { final static Pattern magicPattern = - Pattern.compile("pgpid\\+cookie=([a-zA-Z0-9]+)(?:#|;)([a-zA-Z0-9]+)"); + Pattern.compile("openpgpid\\+cookie=([a-zA-Z0-9]+)(?:#|;)([a-zA-Z0-9]+)"); String mFqdn; CLASS mClass; @@ -44,7 +44,7 @@ public class DnsResource extends LinkedCookieResource { public static String generateText (Context context, byte[] fingerprint) { - return String.format("pgpid+cookie=%s", + return String.format("openpgpid+cookie=%s", KeyFormattingUtils.convertFingerprintToHex(fingerprint)); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateFinalFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateFinalFragment.java index b98fc6238..ef9ae9ac4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateFinalFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateFinalFragment.java @@ -162,7 +162,7 @@ public abstract class LinkedIdCreateFinalFragment extends CryptoOperationFragmen } else { setVerifyProgress(false, false); // on error, show error message - result.createNotify(getActivity()).show(); + result.createNotify(getActivity()).show(LinkedIdCreateFinalFragment.this); } } }.execute(); @@ -172,7 +172,8 @@ public abstract class LinkedIdCreateFinalFragment extends CryptoOperationFragmen protected void cryptoOperation(CryptoInputParcel cryptoInput) { if (mVerifiedResource == null) { - Notify.create(getActivity(), R.string.linked_need_verify, Notify.Style.ERROR).show(); + Notify.create(getActivity(), R.string.linked_need_verify, Notify.Style.ERROR) + .show(LinkedIdCreateFinalFragment.this); return; } @@ -206,7 +207,7 @@ public abstract class LinkedIdCreateFinalFragment extends CryptoOperationFragmen // if bad -> display here! if (!result.success()) { - result.createNotify(getActivity()).show(); + result.createNotify(getActivity()).show(LinkedIdCreateFinalFragment.this); return; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep1Fragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep1Fragment.java index d7c7a6f2e..0d6d36ca4 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep1Fragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep1Fragment.java @@ -66,11 +66,17 @@ public class LinkedIdCreateTwitterStep1Fragment extends Fragment { final String handle = mEditHandle.getText().toString(); + if ("".equals(handle)) { + mEditHandle.setError("Please input a Twitter handle!"); + return; + } + new AsyncTask() { @Override protected Boolean doInBackground(Void... params) { - return true; // return checkHandle(handle); + return true; + // return checkHandle(handle); } @Override @@ -79,13 +85,15 @@ public class LinkedIdCreateTwitterStep1Fragment extends Fragment { if (result == null) { Notify.create(getActivity(), - "Connection error while checking username!", Notify.Style.ERROR); + "Connection error while checking username!", + Notify.Style.ERROR).show(LinkedIdCreateTwitterStep1Fragment.this); return; } if (!result) { Notify.create(getActivity(), - "This handle does not exist on Twitter!", Notify.Style.ERROR); + "This handle does not exist on Twitter!", + Notify.Style.ERROR).show(LinkedIdCreateTwitterStep1Fragment.this); return; } @@ -107,7 +115,6 @@ public class LinkedIdCreateTwitterStep1Fragment extends Fragment { }); mEditHandle = (EditText) view.findViewById(R.id.linked_create_twitter_handle); - mEditHandle.setText(""); return view; } @@ -117,9 +124,9 @@ public class LinkedIdCreateTwitterStep1Fragment extends Fragment { HttpURLConnection nection = (HttpURLConnection) new URL("https://twitter.com/" + handle).openConnection(); nection.setRequestMethod("HEAD"); + nection.setRequestProperty("User-Agent", "OpenKeychain"); return nection.getResponseCode() == 200; } catch (IOException e) { - e.printStackTrace(); return null; } } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep2Fragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep2Fragment.java index 66e86f7d4..295ef4aef 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep2Fragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdCreateTwitterStep2Fragment.java @@ -25,6 +25,7 @@ import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.EditText; +import android.widget.TextView; import org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.OperationResult.OperationLog; @@ -79,6 +80,10 @@ public class LinkedIdCreateTwitterStep2Fragment extends LinkedIdCreateFinalFragm } }); + ((TextView) view.findViewById(R.id.linked_tweet_published)).setText( + getString(R.string.linked_create_twitter_2_3, mResourceHandle) + ); + return view; } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdWizard.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdWizard.java index 161efc8fb..6165efd90 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdWizard.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/linked/LinkedIdWizard.java @@ -17,11 +17,14 @@ package org.sufficientlysecure.keychain.ui.linked; +import android.content.Context; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.ActionBarActivity; +import android.view.View; +import android.view.inputmethod.InputMethodManager; import org.sufficientlysecure.keychain.Constants; import org.sufficientlysecure.keychain.R; @@ -29,9 +32,10 @@ import org.sufficientlysecure.keychain.pgp.exception.PgpKeyNotFoundException; import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing; import org.sufficientlysecure.keychain.provider.KeychainContract; import org.sufficientlysecure.keychain.provider.ProviderHelper; +import org.sufficientlysecure.keychain.ui.base.BaseActivity; import org.sufficientlysecure.keychain.util.Log; -public class LinkedIdWizard extends ActionBarActivity { +public class LinkedIdWizard extends BaseActivity { public static final int FRAG_ACTION_START = 0; public static final int FRAG_ACTION_TO_RIGHT = 1; @@ -44,7 +48,7 @@ public class LinkedIdWizard extends ActionBarActivity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.create_key_activity); + setTitle(getString(R.string.title_linked_id_create)); try { Uri uri = getIntent().getData(); @@ -69,6 +73,11 @@ public class LinkedIdWizard extends ActionBarActivity { loadFragment(null, frag, FRAG_ACTION_START); } + @Override + protected void initLayout() { + setContentView(R.layout.create_key_activity); + } + public void loadFragment(Bundle savedInstanceState, Fragment fragment, int action) { // However, if we're being restored from a previous state, // then we don't need to do anything and should return or else @@ -77,6 +86,8 @@ public class LinkedIdWizard extends ActionBarActivity { return; } + hideKeyboard(); + // Add the fragment to the 'fragment_container' FrameLayout // NOTE: We use commitAllowingStateLoss() to prevent weird crashes! FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); @@ -103,4 +114,16 @@ public class LinkedIdWizard extends ActionBarActivity { getSupportFragmentManager().executePendingTransactions(); } + private void hideKeyboard() { + InputMethodManager inputManager = (InputMethodManager) + getSystemService(Context.INPUT_METHOD_SERVICE); + + // check if no view has focus + View v = getCurrentFocus(); + if (v == null) + return; + + inputManager.hideSoftInputFromWindow(v.getWindowToken(), 0); + } + } diff --git a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml index bd640d9af..6f76ada72 100644 --- a/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml +++ b/OpenKeychain/src/main/res/layout/encrypt_decrypt_overview_fragment.xml @@ -105,14 +105,6 @@ android:layout_height="wrap_content" android:text="@string/btn_decrypt_clipboard" /> - - diff --git a/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step2.xml b/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step2.xml index e42c23b51..e66946482 100644 --- a/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step2.xml +++ b/OpenKeychain/src/main/res/layout/linked_create_twitter_fragment_step2.xml @@ -1,5 +1,6 @@ @@ -27,7 +28,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" - android:textAppearance="?android:attr/textAppearanceMedium" + android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/linked_create_twitter_2_2" /> + tools:text="@string/linked_create_twitter_2_3" /> diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 0c80066c0..55aec5e6d 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -55,8 +55,8 @@ "Key" "Keyserver" "Fingerprint" - "Encrypt" - "Decrypt" + "Encrypt and/or sign" + "Decrypt and verify signatures" "Current expiry" "New expiry" @@ -74,15 +74,15 @@ "Back" "No" "Fingerprints match" - "Encrypt and share text" - "Encrypt and copy text" + "Encrypt/sign and share text" + "Encrypt/sign and copy text" "View certification key" "Create key" "Add file(s)" "Share decrypted text" "Copy decrypted text" "Decrypt text from clipboard" - "and verify signatures" + "" "Decrypt files" "Encrypt files" "Encrypt text" @@ -1309,7 +1309,7 @@ Twitter Handle "Click either button to tweet the message!" "You can edit the Tweet before posting it, so long as the text inside the brackets is unmodified." - "Once your Tweet is published, click the Verify button to scan your timeline for it." + "Once your Tweet is published as @%s, click the Verify button to scan your timeline for it." "After successful verification, press the Finish button to add the Linked Identity to your keyring and finish the process." "By creating a Linked Identity of this type, you can link your key to a Github account you control." @@ -1372,5 +1372,6 @@ Error Confirming… %d more unknown identity types + Create Linked Identity