diff --git a/src/cheogram/res/values/strings.xml b/src/cheogram/res/values/strings.xml
index f30ca68a50e84a3e0839d28eadac6565cd81b844..046be099bc7814d874973b533824c460db0a4d74 100644
--- a/src/cheogram/res/values/strings.xml
+++ b/src/cheogram/res/values/strings.xml
@@ -3,7 +3,7 @@
Pick your Jabber service
Use ChatterboxTown
Get Jabber ID
- I need to sign up for a new Jabber ID
+ I need to sign up
I already have a Jabber ID
I am a Snikket user
Do you already have a Jabber ID? This might be the case if you are already using a different Jabber client or have used Cheogram Android, Conversations, or Snikket before. If not you can create a new Jabber ID right now.
diff --git a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java
index 0d246161366d16b38ff522ec58f69ba13aeb84c3..393f4832057948dd36c8d6b87a340e96057d8561 100644
--- a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java
@@ -447,9 +447,7 @@ public class EditAccountActivity extends OmemoActivity implements OnAccountUpdat
final boolean wasFirstAccount = xmppConnectionService != null && xmppConnectionService.getAccounts().size() == 1;
if (avatar != null || (connection != null && !connection.getFeatures().pep())) {
intent = new Intent(getApplicationContext(), StartConversationActivity.class);
- if (wasFirstAccount) {
- intent.putExtra("init", true);
- }
+ intent.putExtra("init", true);
intent.putExtra(EXTRA_ACCOUNT, mAccount.getJid().asBareJid().toEscapedString());
} else {
intent = new Intent(getApplicationContext(), PublishProfilePictureActivity.class);
diff --git a/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java b/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java
index 16607b81ea4af5b93bb2b907d0e1713ac4052330..9c74bb70f8759d8cc7aa774f72b8c01627107a0f 100644
--- a/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java
@@ -108,10 +108,7 @@ public class PublishProfilePictureActivity extends XmppActivity implements XmppC
final Intent intent =
new Intent(
getApplicationContext(), StartConversationActivity.class);
- if (xmppConnectionService != null
- && xmppConnectionService.getAccounts().size() == 1) {
- intent.putExtra("init", true);
- }
+ intent.putExtra("init", true);
StartConversationActivity.addInviteUri(intent, getIntent());
if (account != null) {
intent.putExtra(
diff --git a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java
index 8717ef3c1837a52488cdff4dd2ce2def986f674d..7e33f600edd4ad37e365e459a461d4119791a1e7 100644
--- a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java
@@ -314,6 +314,10 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
intent = savedInstanceState.getParcelable("intent");
}
+ if (intent.getBooleanExtra("init", false)) {
+ pendingViewIntent.push(intent);
+ }
+
if (isViewIntent(intent)) {
pendingViewIntent.push(intent);
createdByViewIntent = true;
@@ -868,6 +872,41 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
this.mActivatedAccounts.addAll(AccountUtils.getEnabledAccounts(xmppConnectionService));
configureHomeButton();
Intent intent = pendingViewIntent.pop();
+
+ if (intent != null && intent.getBooleanExtra("init", false)) {
+ Account selectedAccount = xmppConnectionService.getAccounts().get(0);
+ final String accountJid = intent.getStringExtra(EXTRA_ACCOUNT);
+ intent = null;
+ boolean hasPstnOrSms = false;
+ outer:
+ for (Account account : xmppConnectionService.getAccounts()) {
+ if (accountJid != null) {
+ if(account.getJid().asBareJid().toEscapedString().equals(accountJid)) {
+ selectedAccount = account;
+ } else {
+ continue;
+ }
+ }
+
+ for (Contact contact : account.getRoster().getContacts()) {
+ if (contact.getPresences().anyIdentity("gateway", "pstn")) {
+ hasPstnOrSms = true;
+ break outer;
+ }
+ if (contact.getPresences().anyIdentity("gateway", "sms")) {
+ hasPstnOrSms = true;
+ break outer;
+ }
+ }
+ }
+
+ if (!hasPstnOrSms) {
+ startCommand(selectedAccount, Jid.of("cheogram.com/CHEOGRAM%jabber:iq:register"), "jabber:iq:register");
+ finish();
+ return;
+ }
+ }
+
if (intent != null && processViewIntent(intent)) {
filter(null);
} else {