diff --git a/Foodify/app/src/main/AndroidManifest.xml b/Foodify/app/src/main/AndroidManifest.xml
index 4b1b3dd..93f0c18 100644
--- a/Foodify/app/src/main/AndroidManifest.xml
+++ b/Foodify/app/src/main/AndroidManifest.xml
@@ -7,6 +7,10 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/OTP_Receiver.java b/Foodify/app/src/main/java/com/waterbase/foodify/OTP_Receiver.java
new file mode 100644
index 0000000..a638596
--- /dev/null
+++ b/Foodify/app/src/main/java/com/waterbase/foodify/OTP_Receiver.java
@@ -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));
+
+ }
+ }
+ }
+
+}
diff --git a/Foodify/app/src/main/java/com/waterbase/foodify/VerifyPhone.java b/Foodify/app/src/main/java/com/waterbase/foodify/VerifyPhone.java
index f0f1ad3..d021536 100644
--- a/Foodify/app/src/main/java/com/waterbase/foodify/VerifyPhone.java
+++ b/Foodify/app/src/main/java/com/waterbase/foodify/VerifyPhone.java
@@ -1,7 +1,9 @@
package com.waterbase.foodify;
+import android.Manifest;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.text.Editable;
@@ -15,6 +17,8 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
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.Task;
@@ -86,6 +90,11 @@ public class VerifyPhone extends AppCompatActivity {
};
count.start();
+ requestSMSPermission();
+ new OTP_Receiver().setEditText(inputCode1, inputCode2, inputCode3, inputCode4, inputCode5, inputCode6);
+
+
+
resendCode.setOnClickListener(new View.OnClickListener() {
@Override
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);
+ }
+ }
}
\ No newline at end of file