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;
}