diff --git a/Listify/app/src/main/java/com/example/listify/AuthManager.java b/Listify/app/src/main/java/com/example/listify/AuthManager.java index 87ab897..74096fe 100644 --- a/Listify/app/src/main/java/com/example/listify/AuthManager.java +++ b/Listify/app/src/main/java/com/example/listify/AuthManager.java @@ -60,6 +60,10 @@ public class AuthManager { return authSession.getUserPoolTokens().getValue().getIdToken(); } + public String getPassword() { + return password; + } + public void setAuthSession(AuthSession toSet) { authSession = (AWSCognitoAuthSession) toSet; waiting = false; diff --git a/Listify/app/src/main/java/com/example/listify/ui/home/HomeFragment.java b/Listify/app/src/main/java/com/example/listify/ui/home/HomeFragment.java index 68ec5e2..5565af8 100644 --- a/Listify/app/src/main/java/com/example/listify/ui/home/HomeFragment.java +++ b/Listify/app/src/main/java/com/example/listify/ui/home/HomeFragment.java @@ -1,5 +1,7 @@ package com.example.listify.ui.home; +import android.app.AlertDialog; +import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.util.Log; @@ -8,6 +10,8 @@ import android.widget.Button; import android.view.ViewGroup; import android.view.LayoutInflater; +import android.widget.EditText; + import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; @@ -44,19 +48,42 @@ public class HomeFragment extends Fragment { toDeleteAccountPage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - try { - Properties configs = new Properties(); - try { - configs = AuthManager.loadProperties(getContext(), "android.resource://" + getActivity().getPackageName() + "/raw/auths.json"); - } catch (IOException | JSONException e) { - e.printStackTrace(); + View passwordView = getLayoutInflater().inflate(R.layout.activity_code, null); + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + builder.setView(passwordView); + builder.setTitle("Account deletion verification"); + builder.setMessage("Are you sure you want to delete your account? If so, enter your password below and hit \"Yes\"."); + builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + EditText passwordText = (EditText) passwordView.findViewById(R.id.editTextCode); + String password = passwordText.getText().toString(); + if(password.equals(am.getPassword())) { + try { + Properties configs = new Properties(); + try { + configs = AuthManager.loadProperties(getContext(), "android.resource://" + getActivity().getPackageName() + "/raw/auths.json"); + } catch (IOException | JSONException e) { + e.printStackTrace(); + } + Requestor requestor = new Requestor(am, configs.getProperty("apiKey")); + am.deleteUser(requestor); + } + catch (Exception e) { + Log.i("Authentication", e.toString()); + } + } } - Requestor requestor = new Requestor(am, configs.getProperty("apiKey")); - am.deleteUser(requestor); - } - catch (Exception e) { - Log.i("Authentication", e.toString()); - } + }); + builder.setNegativeButton("No", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + return; + } + }); + + AlertDialog dialog = builder.create(); + dialog.show(); } });