mirror of
https://github.com/Nezumi-2711/PRM392.git
synced 2026-09-22 13:48:29 +00:00
Get otp from message
This commit is contained in:
@@ -7,6 +7,10 @@
|
|||||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
|
||||||
|
<uses-permission android:name="android.permission.RECEIVE_SMS" />
|
||||||
|
<uses-permission android:name="android.permission.READ_SMS" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
@@ -19,6 +23,13 @@
|
|||||||
android:theme="@style/Theme.Foodify"
|
android:theme="@style/Theme.Foodify"
|
||||||
tools:replace="android:theme"
|
tools:replace="android:theme"
|
||||||
tools:targetApi="31">
|
tools:targetApi="31">
|
||||||
|
|
||||||
|
<receiver android:name=".OTP_Receiver">
|
||||||
|
|
||||||
|
<intent-filter>
|
||||||
|
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
|
||||||
|
</intent-filter>
|
||||||
|
</receiver>
|
||||||
<activity
|
<activity
|
||||||
android:name=".OrderStatusDetail"
|
android:name=".OrderStatusDetail"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
package com.waterbase.foodify;
|
||||||
|
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.provider.Telephony;
|
||||||
|
import android.telephony.SmsMessage;
|
||||||
|
import android.widget.EditText;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public class OTP_Receiver extends BroadcastReceiver {
|
||||||
|
|
||||||
|
private static EditText otp1, otp2, otp3, otp4, otp5, otp6;
|
||||||
|
|
||||||
|
public void setEditText(EditText otp1, EditText otp2, EditText otp3, EditText otp4, EditText otp5, EditText otp6){
|
||||||
|
OTP_Receiver.otp1 = otp1;
|
||||||
|
OTP_Receiver.otp2 = otp2;
|
||||||
|
OTP_Receiver.otp3 = otp3;
|
||||||
|
OTP_Receiver.otp4 = otp4;
|
||||||
|
OTP_Receiver.otp5 = otp5;
|
||||||
|
OTP_Receiver.otp6 = otp6;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
|
||||||
|
|
||||||
|
for(SmsMessage sms: messages){
|
||||||
|
String message = sms.getMessageBody();
|
||||||
|
|
||||||
|
Pattern otpPattern = Pattern.compile("(|^)\\d{6}");
|
||||||
|
Matcher matcher = otpPattern.matcher(message);
|
||||||
|
if (matcher.find()){
|
||||||
|
Double otp = Double.parseDouble(matcher.group(0));
|
||||||
|
|
||||||
|
otp6.setText(String.valueOf(otp % 10));
|
||||||
|
otp = otp / 10;
|
||||||
|
otp5.setText(String.valueOf(otp % 10));
|
||||||
|
otp = otp / 10;
|
||||||
|
otp4.setText(String.valueOf(otp % 10));
|
||||||
|
otp = otp / 10;
|
||||||
|
otp3.setText(String.valueOf(otp % 10));
|
||||||
|
otp = otp / 10;
|
||||||
|
otp2.setText(String.valueOf(otp % 10));
|
||||||
|
otp = otp / 10;
|
||||||
|
otp1.setText(String.valueOf(otp % 10));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.waterbase.foodify;
|
package com.waterbase.foodify;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.CountDownTimer;
|
import android.os.CountDownTimer;
|
||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
@@ -15,6 +17,8 @@ import android.widget.Toast;
|
|||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.core.app.ActivityCompat;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
|
|
||||||
import com.google.android.gms.tasks.OnCompleteListener;
|
import com.google.android.gms.tasks.OnCompleteListener;
|
||||||
import com.google.android.gms.tasks.Task;
|
import com.google.android.gms.tasks.Task;
|
||||||
@@ -86,6 +90,11 @@ public class VerifyPhone extends AppCompatActivity {
|
|||||||
};
|
};
|
||||||
count.start();
|
count.start();
|
||||||
|
|
||||||
|
requestSMSPermission();
|
||||||
|
new OTP_Receiver().setEditText(inputCode1, inputCode2, inputCode3, inputCode4, inputCode5, inputCode6);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
resendCode.setOnClickListener(new View.OnClickListener() {
|
resendCode.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
@@ -297,4 +306,17 @@ public class VerifyPhone extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void requestSMSPermission()
|
||||||
|
{
|
||||||
|
String permission = Manifest.permission.RECEIVE_SMS;
|
||||||
|
|
||||||
|
int grant = ContextCompat.checkSelfPermission(this, permission);
|
||||||
|
if(grant != PackageManager.PERMISSION_GRANTED){
|
||||||
|
String[] permission_list = new String[1];
|
||||||
|
permission_list[0] = permission;
|
||||||
|
|
||||||
|
ActivityCompat.requestPermissions(this, permission_list, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user