Skip to content

Commit 88ad166

Browse files
committed
implement change password dialog
1 parent 9268090 commit 88ad166

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

app/src/main/java/com/anotherdev/sample/firebase/auth/ChangePasswordDialog.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,25 @@
44
import android.view.View;
55
import android.widget.EditText;
66

7+
@SuppressWarnings("WeakerAccess")
78
public class ChangePasswordDialog extends MultipleTextInputDialog {
89

10+
public interface OnConfirmClickListener {
11+
void onConfirmClick(String oldPassword, String newPassword);
12+
}
13+
914
private EditText currentPasswordEditText;
1015
private EditText newPasswordEditText;
1116
private EditText verifyPasswordEditText;
1217

18+
private OnConfirmClickListener confirmClickListener;
19+
1320

1421
public ChangePasswordDialog(Context context) {
1522
super(context);
23+
setTopTitle(R.string.change_password);
24+
setTopTitleColor(context.getResources().getColor(android.R.color.white));
25+
setIcon(R.drawable.ic_vpn_key_white_24dp);
1626
}
1727

1828
@Override
@@ -40,8 +50,17 @@ public ChangePasswordDialog setConfirmButtonText(int confirmTextRes) {
4050
return this;
4151
}
4252

53+
public ChangePasswordDialog onConfirm(OnConfirmClickListener listener) {
54+
confirmClickListener = listener;
55+
return this;
56+
}
57+
4358
@Override
4459
protected void dispatchOnConfirmClick() {
45-
// TODO implement this
60+
String oldPassword = currentPasswordEditText.getText().toString();
61+
String newPassword = newPasswordEditText.getText().toString();
62+
if (confirmClickListener != null) {
63+
confirmClickListener.onConfirmClick(oldPassword, newPassword);
64+
}
4665
}
4766
}

app/src/main/java/com/anotherdev/sample/firebase/auth/EmailPasswordDialog.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ public EmailPasswordDialog setConfirmButtonText(int confirmTextRes) {
5050
return this;
5151
}
5252

53+
public EmailPasswordDialog onConfirm(OnConfirmClickListener listener) {
54+
confirmClickListener = listener;
55+
return this;
56+
}
57+
5358
@Override
5459
protected void dispatchOnConfirmClick() {
5560
String email = emailEditText.getText().toString();
@@ -58,9 +63,4 @@ protected void dispatchOnConfirmClick() {
5863
confirmClickListener.onConfirmClick(email, password);
5964
}
6065
}
61-
62-
public EmailPasswordDialog onConfirm(OnConfirmClickListener listener) {
63-
confirmClickListener = listener;
64-
return this;
65-
}
6666
}

app/src/main/java/com/anotherdev/sample/firebase/auth/LoginActivity.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ private void startPasswordChange() {
154154
FirebaseUser user = firebaseAuth.getCurrentUser();
155155
if (user != null) {
156156
new ChangePasswordDialog(this)
157+
.onConfirm(this::changePassword)
157158
.show();
158159
}
159160
}
@@ -163,16 +164,16 @@ private void changePassword(String oldPassword, String newPassword) {
163164
FirebaseUser user = auth.getCurrentUser();
164165

165166
if (user != null && user.getEmail() != null) {
166-
EmailAuthCredential email = EmailAuthProvider.getCredential(user.getEmail(), oldPassword);
167-
onDestroy.add(user.reauthenticate(email)
168-
.flatMapCompletable(response -> {
169-
FirebaseUser reAuthUser = auth.getCurrentUser();
170-
return reAuthUser.updatePassword(newPassword);
171-
})
167+
EmailAuthCredential oldCredential = EmailAuthProvider.getCredential(user.getEmail(), oldPassword);
168+
//noinspection ResultOfMethodCallIgnored
169+
user.reauthenticate(oldCredential)
170+
.flatMapCompletable(response -> auth.getCurrentUser()
171+
.updatePassword(newPassword))
172+
.doOnSubscribe(onDestroy::add)
172173
.observeOn(AndroidSchedulers.mainThread())
173-
.doOnComplete(() -> dialog("", "Password changed"))
174+
.doOnComplete(() -> dialog(getString(R.string.change_password), "Password changed"))
174175
.doOnError(this::dialog)
175-
.subscribe(Functions.EMPTY_ACTION, RxUtil.ON_ERROR_LOG_V3));
176+
.subscribe(Functions.EMPTY_ACTION, RxUtil.ON_ERROR_LOG_V3);
176177
}
177178
}
178179

0 commit comments

Comments
 (0)