Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/iNPUTmice/Conversations.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2021-01-19 17:45:41 +0300
committerDaniel Gultsch <daniel@gultsch.de>2021-01-19 17:45:43 +0300
commit26a4598f3c4a76baef69ae509dd2e77b8d5c25b7 (patch)
tree1dda075710f875231540011951f099d39940ac9f /src/quicksyPlaystore/java
parent624bb565a87b68ab9a94edfc7afbe19138f88074 (diff)
automatically receive Quicksy SMS. fixes #3962
requires new version of QuicksyServer
Diffstat (limited to 'src/quicksyPlaystore/java')
-rw-r--r--src/quicksyPlaystore/java/eu/siacs/conversations/utils/SmsRetrieverWrapper.java40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/quicksyPlaystore/java/eu/siacs/conversations/utils/SmsRetrieverWrapper.java b/src/quicksyPlaystore/java/eu/siacs/conversations/utils/SmsRetrieverWrapper.java
new file mode 100644
index 000000000..3aa38ab5f
--- /dev/null
+++ b/src/quicksyPlaystore/java/eu/siacs/conversations/utils/SmsRetrieverWrapper.java
@@ -0,0 +1,40 @@
+package eu.siacs.conversations.utils;
+
+import android.content.Context;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.google.android.gms.auth.api.phone.SmsRetriever;
+import com.google.android.gms.auth.api.phone.SmsRetrieverClient;
+import com.google.android.gms.common.api.CommonStatusCodes;
+import com.google.android.gms.common.api.Status;
+import com.google.android.gms.tasks.Task;
+import com.google.common.base.Strings;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import eu.siacs.conversations.Config;
+
+public class SmsRetrieverWrapper {
+
+ public static void start(final Context context) {
+ final SmsRetrieverClient client = SmsRetriever.getClient(context);
+ final Task<Void> task = client.startSmsRetriever();
+ task.addOnSuccessListener(aVoid -> Log.d(Config.LOGTAG, "successfully started SMS retriever"));
+ task.addOnFailureListener(e -> Log.d(Config.LOGTAG, "unable to start SMS retriever", e));
+ }
+
+ public static String extractPin(Bundle extras) {
+ final Status status = extras == null ? null : (Status) extras.get(SmsRetriever.EXTRA_STATUS);
+ if (status != null && status.getStatusCode() == CommonStatusCodes.SUCCESS) {
+ Log.d(Config.LOGTAG, "Verification SMS received with status success");
+ final String message = extras.getString(SmsRetriever.EXTRA_SMS_MESSAGE);
+ final Matcher m = Pattern.compile("(?<!\\d)\\d{6}(?!\\d)").matcher(Strings.nullToEmpty(message));
+ if (m.find()) {
+ return m.group();
+ }
+ }
+ return null;
+ }
+} \ No newline at end of file