M src/cheogram/res/values/strings.xml => src/cheogram/res/values/strings.xml +1 -1
@@ 3,7 3,7 @@
<string name="pick_a_server">Pick your Jabber service</string>
<string name="use_conversations.im">Use ChatterboxTown</string>
<string name="get_jabber_id">Get Jabber ID</string>
- <string name="create_new_account">I need to sign up for a new Jabber ID</string>
+ <string name="create_new_account">I need to sign up</string>
<string name="i_already_have_an_account">I already have a Jabber ID</string>
<string name="i_am_snikket_user">I am a Snikket user</string>
<string name="do_you_have_an_account">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.</string>
M src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java => src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java +1 -3
@@ 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);
M src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java => src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java +1 -4
@@ 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(
M src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java => src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java +39 -0
@@ 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 {