From 0482c525f49d8161e0a07ab9ba92a54340ddeaf9 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 7 Feb 2023 14:09:30 -0500 Subject: [PATCH 1/2] You need to sign up, no matter what for --- src/cheogram/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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. From ac6519dea82aa0ae1346368e481d12b60811c5ac Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 7 Feb 2023 14:10:10 -0500 Subject: [PATCH 2/2] Start cheogram.com register on first setup if no other PSTNS/SMS gateway --- .../conversations/ui/EditAccountActivity.java | 4 +- .../ui/PublishProfilePictureActivity.java | 5 +-- .../ui/StartConversationActivity.java | 39 +++++++++++++++++++ 3 files changed, 41 insertions(+), 7 deletions(-) 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 {