Skip to content

Commit 028831e

Browse files
committed
Use ResourceObserver in CredentialSaveActivity
Signed-off-by: Alex Saveau <[email protected]>
1 parent d4462c9 commit 028831e

File tree

2 files changed

+33
-23
lines changed

2 files changed

+33
-23
lines changed

auth/src/main/java/com/firebase/ui/auth/ui/credentials/CredentialSaveActivity.java

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.firebase.ui.auth.ui.credentials;
22

3-
import android.arch.lifecycle.Observer;
43
import android.arch.lifecycle.ViewModelProviders;
54
import android.content.Context;
65
import android.content.Intent;
@@ -10,11 +9,12 @@
109
import android.util.Log;
1110

1211
import com.firebase.ui.auth.IdpResponse;
12+
import com.firebase.ui.auth.R;
1313
import com.firebase.ui.auth.data.model.FlowParameters;
1414
import com.firebase.ui.auth.data.model.Resource;
1515
import com.firebase.ui.auth.ui.HelperActivityBase;
1616
import com.firebase.ui.auth.util.ExtraConstants;
17-
import com.firebase.ui.auth.util.ui.FlowUtils;
17+
import com.firebase.ui.auth.viewmodel.VoidResourceObserver;
1818
import com.firebase.ui.auth.viewmodel.smartlock.SmartLockHandler;
1919
import com.google.android.gms.auth.api.credentials.Credential;
2020

@@ -47,15 +47,18 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
4747
Credential credential = getIntent().getParcelableExtra(ExtraConstants.CREDENTIAL);
4848
mIdpResponse = getIntent().getParcelableExtra(ExtraConstants.IDP_RESPONSE);
4949

50-
mHandler.getOperation().observe(this, new Observer<Resource<Void>>() {
50+
mHandler.getOperation().observe(this, new VoidResourceObserver(
51+
this, R.string.fui_progress_dialog_loading) {
5152
@Override
52-
public void onChanged(@Nullable Resource<Void> resource) {
53-
if (resource == null) {
54-
Log.w(TAG, "getSaveOperation:onChanged:null");
55-
return;
56-
}
53+
protected void onSuccess() {
54+
finish(RESULT_OK, mIdpResponse.toIntent());
55+
}
5756

58-
if (!resource.isUsed()) { onSaveOperation(resource); }
57+
@Override
58+
protected void onFailure(@NonNull Exception e) {
59+
// RESULT_OK since we don't want to halt sign-in just because of a credential save
60+
// error.
61+
finish(RESULT_OK, mIdpResponse.toIntent());
5962
}
6063
});
6164

@@ -74,18 +77,4 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
7477
super.onActivityResult(requestCode, resultCode, data);
7578
mHandler.onActivityResult(requestCode, resultCode);
7679
}
77-
78-
private void onSaveOperation(@NonNull Resource<Void> resource) {
79-
switch (resource.getState()) {
80-
case LOADING:
81-
// No-op?
82-
break;
83-
case SUCCESS:
84-
case FAILURE:
85-
if (FlowUtils.unhandled(this, resource.getException())) {
86-
finish(RESULT_OK, mIdpResponse.toIntent());
87-
}
88-
break;
89-
}
90-
}
9180
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.firebase.ui.auth.viewmodel;
2+
3+
import android.support.annotation.NonNull;
4+
import android.support.annotation.RestrictTo;
5+
import android.support.annotation.StringRes;
6+
7+
import com.firebase.ui.auth.ui.HelperActivityBase;
8+
9+
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
10+
public abstract class VoidResourceObserver extends ResourceObserver<Void> {
11+
protected VoidResourceObserver(@NonNull HelperActivityBase activity, @StringRes int message) {
12+
super(activity, message);
13+
}
14+
15+
@Override
16+
protected final void onSuccess(@NonNull Void aVoid) {
17+
onSuccess();
18+
}
19+
20+
protected abstract void onSuccess();
21+
}

0 commit comments

Comments
 (0)