~singpolyma/cheogram-android

729412912fd318366d85f09565a18909a88c2a0b — Stephen Paul Weber 3 months ago 966ecf8 + ac6519d
Merge branch 'onboarding'

* onboarding:
  Start cheogram.com register on first setup if no other PSTNS/SMS gateway
  You need to sign up, no matter what for
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 {