Skip to content

Last final try #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
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 @@ -106,6 +106,73 @@ public Map<String, String> getHeaders() throws AuthFailureError {
}
}

public void confirmPassword(final String password){
String passwordUrl=url+"/login/confirmPassword";
getToken();
StringRequest cnfPassRequest=new StringRequest(Request.Method.POST, passwordUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if(response!=null){
mListener.onSuccess();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "onErrorResponse: error"+error );
mListener.onFailure(403);
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> headers=new HashMap<>();
headers.put("authorization","Bearer "+authToken);
return headers;
}

@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params=new HashMap<>();
params.put("password",password);
return params;
}
};

mRequestQueue.add(cnfPassRequest);
}

public void resetPassword(final String newPassword){
String passwordUrl=url+"/login/changePassword";
getToken();
StringRequest resetPassword=new StringRequest(Request.Method.POST, passwordUrl, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
mListener.onSuccess();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e(TAG, "onErrorResponse: error"+error );
mListener.onFailure(403);
}
}){
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String,String> headers=new HashMap<>();
headers.put("authorization","Bearer "+authToken);
return headers;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params=new HashMap<>();
params.put("newPassword",newPassword);
return params;
}
};

mRequestQueue.add(resetPassword);
}



}
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,41 @@

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.TextureView;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatDialogFragment;

import com.google.android.material.snackbar.Snackbar;

import akshatchhaya.example.javaminiproject.MainActivity;
import akshatchhaya.example.javaminiproject.R;
import akshatchhaya.example.javaminiproject.api.LoginAPI;
import akshatchhaya.example.javaminiproject.api.OnResponseListener;

public class Confirmation_dialogue extends AppCompatDialogFragment {
private EditText password_for_confirmation;
private Button confirmButton;

final String TAG="Confirm Password";
public ExampleDialogListener listener;
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder=new AlertDialog.Builder(getActivity());
LayoutInflater inflater=getActivity().getLayoutInflater();
View view=inflater.inflate(R.layout.password_dialogue,null);
final View view=inflater.inflate(R.layout.password_dialogue,null);


builder.setView(view).setTitle("Confirm your password to change the password").setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Expand All @@ -32,10 +45,23 @@ public void onClick(DialogInterface dialog, int which) {
}).setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText password=view.findViewById(R.id.confirm_password_for_changing);
listener.applyTexts(password.getText().toString());

}
});
password_for_confirmation= view.findViewById(R.id.confirm_password_for_changing);
return builder.create();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
listener = (ExampleDialogListener)getTargetFragment();
} catch (ClassCastException e) {
Log.e(TAG,"Dakho onAttach");
}
}
public interface ExampleDialogListener {
void applyTexts(String password);
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package akshatchhaya.example.javaminiproject.ui.slideshow;

import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.annotation.NonNull;
Expand All @@ -15,28 +18,80 @@
import androidx.lifecycle.ViewModelProvider;


import com.google.android.material.snackbar.Snackbar;

import akshatchhaya.example.javaminiproject.MainActivity;
import akshatchhaya.example.javaminiproject.R;
import akshatchhaya.example.javaminiproject.api.LoginAPI;
import akshatchhaya.example.javaminiproject.api.OnResponseListener;

public class SlideshowFragment extends Fragment {
public class SlideshowFragment extends Fragment implements Confirmation_dialogue.ExampleDialogListener {
private SlideshowViewModel slideshowViewModel;

final String TAG="Reset Password";
public String password_from_dialogue;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
slideshowViewModel =
new ViewModelProvider(this).get(SlideshowViewModel.class);
View root = inflater.inflate(R.layout.fragment_slideshow, container, false);
Button button=(Button)root.findViewById(R.id.button_reset_password);
final Button button=(Button)root.findViewById(R.id.button_reset_password);
final Button button1=(Button)root.findViewById(R.id.button_reset_password_1);
final EditText new_Password1=root.findViewById(R.id.new_password);
final EditText new_Password2=root.findViewById(R.id.confirm_password);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View root){
public void onClick(final View root){
openDialog();
LoginAPI api = new LoginAPI(getActivity(), new OnResponseListener() {
@Override
public void onSuccess() {

}
@Override
public void onFailure(int statusCode) {
button.setVisibility(View.INVISIBLE);
button1.setVisibility(View.VISIBLE);
new_Password1.setVisibility(View.VISIBLE);
new_Password2.setVisibility(View.VISIBLE);
}
});
api.confirmPassword(password_from_dialogue);
}
});
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View root){
final String s1=new_Password1.getText().toString();
final String s2=new_Password2.getText().toString();

if(s1==s2) {
LoginAPI api = new LoginAPI(getActivity(), new OnResponseListener() {
@Override
public void onSuccess() {
TextView t3=root.findViewById(R.id.textView3);
t3.setVisibility(View.VISIBLE);
t3.setText(s1);
}
@Override
public void onFailure(int statusCode) {
Log.e(TAG, "onFailure: error" + statusCode);
}
});
api.resetPassword(new_Password1.getText().toString());
}
}
});
return root;
}

public void openDialog(){
Confirmation_dialogue d1=new Confirmation_dialogue();
d1.show(getChildFragmentManager(),"Password Confirmation");
d1.setTargetFragment(SlideshowFragment.this,1);
d1.show(getParentFragmentManager(),"Password Confirmation");
}

@Override
public void applyTexts(String password) {
password_from_dialogue=password;
}
}
64 changes: 45 additions & 19 deletions AndroidApp/app/src/main/res/layout/fragment_slideshow.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,17 @@
android:id="@+id/textView2"
android:layout_width="294dp"
android:layout_height="71dp"
android:layout_marginTop="128dp"
android:layout_marginBottom="63dp"
android:fontFamily="@font/monserrat_alternatives_regular"
android:text="@string/reset_password"
android:textColor="@color/colorPrimaryDark"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/username"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.41"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.659" />

<EditText
android:id="@+id/username"
android:layout_width="293dp"
android:layout_height="48dp"
android:layout_marginBottom="16dp"
android:ems="10"
android:hint="@string/username"
android:inputType="textPersonName"
app:layout_constraintBottom_toTopOf="@+id/old_password"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintHorizontal_bias="0.495"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<EditText
android:id="@+id/old_password"
Expand All @@ -62,10 +51,12 @@
android:ems="10"
android:hint="@string/new_password"
android:inputType="textPassword"
android:visibility="invisible"
app:layout_constraintBottom_toTopOf="@+id/confirm_password"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.517"
app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintStart_toStartOf="parent"
tools:visibility="visible" />

<EditText
android:id="@+id/confirm_password"
Expand All @@ -75,10 +66,12 @@
android:ems="10"
android:hint="confirm_password"
android:inputType="textPassword"
android:visibility="invisible"
app:layout_constraintBottom_toTopOf="@+id/button_reset_password"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.517"
app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintStart_toStartOf="parent"
tools:visibility="visible" />

<Button
android:id="@+id/button_reset_password"
Expand All @@ -92,6 +85,26 @@
android:textColor="#ffffff"
android:textSize="25sp"
android:textStyle="bold"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.493"
app:layout_constraintStart_toStartOf="parent" />


<Button
android:id="@+id/button_reset_password_1"
style="@style/Widget.AppCompat.Button"
android:layout_width="330dp"
android:layout_height="49dp"
android:layout_marginBottom="136dp"
android:background="#9C27B0"
android:fontFamily="@font/monserrat_alternatives_regular"
android:text="@string/change_password"
android:textColor="#ffffff"
android:textSize="25sp"
android:textStyle="bold"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.493"
Expand All @@ -103,13 +116,26 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
android:visibility="gone"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.437" />

<TextView
android:id="@+id/textView3"
android:layout_width="160dp"
android:layout_height="38dp"
android:layout_marginStart="40dp"
android:layout_marginTop="9dp"
android:layout_marginEnd="211dp"
android:text="TextView"
android:visibility="invisible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button_reset_password_1" />
</androidx.constraintlayout.widget.ConstraintLayout>

</LinearLayout>