Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ public void onSuccess(Intent intent) {
};

IntentFilter intentFilter = new IntentFilter(SmsRetriever.SMS_RETRIEVED_ACTION);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
requireActivity().registerReceiver(smsBroadcastReceiver, intentFilter,RECEIVER_NOT_EXPORTED);
}else{
requireActivity().registerReceiver(smsBroadcastReceiver, intentFilter);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
package org.commcare.fragments.connectId;

import static android.app.Activity.RESULT_OK;

import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.os.Handler;
import android.text.Editable;
Expand All @@ -12,18 +8,11 @@
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.navigation.Navigation;

import com.google.android.gms.auth.api.phone.SmsRetriever;
import com.google.android.gms.auth.api.phone.SmsRetrieverClient;

import org.commcare.connect.ConnectConstants;
import org.commcare.connect.SMSBroadcastReceiver;
import org.commcare.connect.SMSListener;
import org.commcare.connect.network.ApiConnectId;
import org.commcare.connect.network.IApiCallback;
import org.commcare.dalvik.R;
Expand All @@ -41,8 +30,6 @@
import java.io.InputStream;
import java.util.Locale;
import java.util.Objects;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* A simple {@link Fragment} subclass.
Expand All @@ -54,7 +41,6 @@ public class ConnectIdUserDeactivateOTPVerificationFragment extends Fragment {
private String primaryPhone;
private String username;
private String password;
private SMSBroadcastReceiver smsBroadcastReceiver;
private DateTime smsTime = null;

private ScreenConnectUserDeactivateOtpVerifyBinding binding;
Expand Down Expand Up @@ -111,9 +97,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
binding.connectPhoneVerifyButton.setEnabled(false);
getActivity().setTitle(getString(R.string.connect_verify_phone_title));
buttonEnabled("");
SmsRetrieverClient client = SmsRetriever.getClient(getActivity());// starting the SmsRetriever API
client.startSmsUserConsent(null);


if (getArguments() != null) {
int method = Integer.parseInt(Objects.requireNonNull(ConnectIdPhoneVerificationFragmnetArgs.fromBundle(getArguments()).getMethod()));
Expand Down Expand Up @@ -172,26 +155,6 @@ private void buttonEnabled(String code) {
@Override
public void onStart() {
super.onStart();
registerBrodcastReciever();

}

@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQ_USER_CONSENT && (resultCode == RESULT_OK) && data != null) {
String message = data.getStringExtra(SmsRetriever.EXTRA_SMS_MESSAGE);
getOtpFromMessage(message);

}
}

private void getOtpFromMessage(String message) {
Pattern otpPattern = Pattern.compile("(|^)\\d{6}");
Matcher matcher = otpPattern.matcher(message);
if (matcher.find()) {
binding.connectPhoneVerifyCode.setText(matcher.group(0));
}
}

@Override
Expand All @@ -200,35 +163,6 @@ public void onResume() {
requestInputFocus();
}

@Override
public void onStop() {
super.onStop();
}

@Override
public void onPause() {
super.onPause();
try {
requireActivity().unregisterReceiver(smsBroadcastReceiver);
} catch (IllegalArgumentException e) {
e.printStackTrace();
}
}

public void registerBrodcastReciever() {
smsBroadcastReceiver = new SMSBroadcastReceiver();

smsBroadcastReceiver.smsListener = new SMSListener() {
@Override
public void onSuccess(Intent intent) {
startActivityForResult(intent, REQ_USER_CONSENT);
}
};

IntentFilter intentFilter = new IntentFilter(SmsRetriever.SMS_RETRIEVED_ACTION);
requireActivity().registerReceiver(smsBroadcastReceiver, intentFilter);
}

public void setErrorMessage(String message) {
if (message == null) {
binding.connectPhoneVerifyError.setVisibility(View.GONE);
Expand Down