diff --git a/res/menu/conversation_insecure.xml b/res/menu/conversation_insecure.xml index 7ba1e70a4..9dc33df0f 100644 --- a/res/menu/conversation_insecure.xml +++ b/res/menu/conversation_insecure.xml @@ -1,13 +1,7 @@ - - - - + + + - - diff --git a/res/menu/conversation_insecure_no_push.xml b/res/menu/conversation_insecure_no_push.xml new file mode 100644 index 000000000..7ba1e70a4 --- /dev/null +++ b/res/menu/conversation_insecure_no_push.xml @@ -0,0 +1,13 @@ + + + + + + + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 396a8f0dc..816cb3428 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -109,6 +109,8 @@ Secure SMS Secure MMS TextSecure + Get with it: %s + Install TextSecure: %s Message details @@ -750,7 +752,7 @@ Save attachment - + Start secure session diff --git a/src/org/thoughtcrime/securesms/ConversationActivity.java b/src/org/thoughtcrime/securesms/ConversationActivity.java index 6cc154c18..a97af438a 100644 --- a/src/org/thoughtcrime/securesms/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationActivity.java @@ -41,7 +41,6 @@ import android.view.KeyEvent; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; -import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnFocusChangeListener; @@ -109,7 +108,8 @@ import org.whispersystems.libaxolotl.state.SessionStore; import org.whispersystems.textsecure.api.push.PushAddress; import java.io.IOException; -import java.util.LinkedList; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; import java.util.List; import static org.thoughtcrime.securesms.database.GroupDatabase.GroupRecord; @@ -257,7 +257,8 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity if (isSingleConversation() && isEncryptedConversation) { inflater.inflate(R.menu.conversation_secure_identity, menu); inflater.inflate(R.menu.conversation_secure_sms, menu.findItem(R.id.menu_security).getSubMenu()); - } else if (isSingleConversation() && !pushRegistered) { + } else if (isSingleConversation()) { + if (!pushRegistered) inflater.inflate(R.menu.conversation_insecure_no_push, menu); inflater.inflate(R.menu.conversation_insecure, menu); } @@ -304,6 +305,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity case R.id.menu_distribution_conversation: handleDistributionConversationEnabled(item); return true; case R.id.menu_edit_group: handleEditPushGroup(); return true; case R.id.menu_leave: handleLeavePushGroup(); return true; + case R.id.menu_invite: handleInviteLink(); return true; case android.R.id.home: handleReturnToConversationList(); return true; } @@ -330,6 +332,16 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity finish(); } + private void handleInviteLink() { + try { + boolean a = SecureRandom.getInstance("SHA1PRNG").nextBoolean(); + if (a) composeText.setText(getString(R.string.ConversationActivity_get_with_it, "http://sgnl.link/zhrzvk6")); + else composeText.setText(getString(R.string.ConversationActivity_install_textsecure, "http://sgnl.link/1yKYqoN")); + } catch (NoSuchAlgorithmException e) { + throw new AssertionError(e); + } + } + private void handleVerifyIdentity() { Intent verifyIdentityIntent = new Intent(this, VerifyIdentityActivity.class); verifyIdentityIntent.putExtra("recipient", getRecipients().getPrimaryRecipient()); @@ -846,10 +858,11 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } private void selectContactInfo(ContactData contactData) { - final CharSequence[] numbers = new CharSequence[contactData.numbers.size()]; + final CharSequence[] numbers = new CharSequence[contactData.numbers.size()]; final CharSequence[] numberItems = new CharSequence[contactData.numbers.size()]; + for (int i = 0; i < contactData.numbers.size(); i++) { - numbers[i] = contactData.numbers.get(i).number; + numbers[i] = contactData.numbers.get(i).number; numberItems[i] = contactData.numbers.get(i).type + ": " + contactData.numbers.get(i).number; }