Skip to content

Commit 39c85f0

Browse files
SUPERCILEXsamtstern
authored andcommitted
Prep for final refactors (#1188)
1 parent 0857d59 commit 39c85f0

27 files changed

+211
-314
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.firebase.ui.auth.data.model;
2+
3+
import android.content.Intent;
4+
import android.support.annotation.NonNull;
5+
import android.support.annotation.RestrictTo;
6+
7+
import com.firebase.ui.auth.ErrorCodes;
8+
import com.firebase.ui.auth.FirebaseUiException;
9+
10+
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
11+
public class IntentRequiredException extends FirebaseUiException {
12+
private final Intent mIntent;
13+
private final int mRequestCode;
14+
15+
public IntentRequiredException(@NonNull Intent intent, int requestCode) {
16+
super(ErrorCodes.UNKNOWN_ERROR);
17+
mIntent = intent;
18+
mRequestCode = requestCode;
19+
}
20+
21+
@NonNull
22+
public Intent getIntent() {
23+
return mIntent;
24+
}
25+
26+
public int getRequestCode() {
27+
return mRequestCode;
28+
}
29+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package com.firebase.ui.auth.data.model;
2+
3+
import android.app.PendingIntent;
4+
import android.support.annotation.NonNull;
5+
import android.support.annotation.RestrictTo;
6+
7+
import com.firebase.ui.auth.ErrorCodes;
8+
import com.firebase.ui.auth.FirebaseUiException;
9+
10+
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
11+
public class PendingIntentRequiredException extends FirebaseUiException {
12+
private final PendingIntent mPendingIntent;
13+
private final int mRequestCode;
14+
15+
public PendingIntentRequiredException(@NonNull PendingIntent pendingIntent, int requestCode) {
16+
super(ErrorCodes.UNKNOWN_ERROR);
17+
mPendingIntent = pendingIntent;
18+
mRequestCode = requestCode;
19+
}
20+
21+
@NonNull
22+
public PendingIntent getPendingIntent() {
23+
return mPendingIntent;
24+
}
25+
26+
public int getRequestCode() {
27+
return mRequestCode;
28+
}
29+
}

auth/src/main/java/com/firebase/ui/auth/data/model/Resource.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ public final class Resource<T> {
1717
private final T mValue;
1818
private final Exception mException;
1919

20+
private boolean mUsed;
21+
2022
private Resource(State state, T value, Exception exception) {
2123
mState = state;
2224
mValue = value;
@@ -62,14 +64,20 @@ public State getState() {
6264

6365
@Nullable
6466
public final Exception getException() {
67+
mUsed = true;
6568
return mException;
6669
}
6770

6871
@Nullable
6972
public T getValue() {
73+
mUsed = true;
7074
return mValue;
7175
}
7276

77+
public boolean isUsed() {
78+
return mUsed;
79+
}
80+
7381
@Override
7482
public boolean equals(Object o) {
7583
if (this == o) return true;

auth/src/main/java/com/firebase/ui/auth/data/remote/ProfileMerger.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
import com.firebase.ui.auth.IdpResponse;
99
import com.firebase.ui.auth.data.model.User;
10-
import com.firebase.ui.auth.ui.TaskFailureLogger;
10+
import com.firebase.ui.auth.util.data.TaskFailureLogger;
1111
import com.google.android.gms.tasks.Continuation;
1212
import com.google.android.gms.tasks.Task;
1313
import com.google.android.gms.tasks.Tasks;

auth/src/main/java/com/firebase/ui/auth/ui/TaskFailureLogger.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

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

Lines changed: 10 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import android.arch.lifecycle.ViewModelProviders;
55
import android.content.Context;
66
import android.content.Intent;
7-
import android.content.IntentSender;
87
import android.os.Bundle;
98
import android.support.annotation.NonNull;
109
import android.support.annotation.Nullable;
@@ -15,17 +14,15 @@
1514
import com.firebase.ui.auth.data.model.Resource;
1615
import com.firebase.ui.auth.ui.HelperActivityBase;
1716
import com.firebase.ui.auth.util.ExtraConstants;
18-
import com.firebase.ui.auth.viewmodel.PendingResolution;
19-
import com.firebase.ui.auth.viewmodel.ResolutionCodes;
17+
import com.firebase.ui.auth.util.ui.FlowUtils;
2018
import com.firebase.ui.auth.viewmodel.smartlock.SmartLockHandler;
2119
import com.google.android.gms.auth.api.credentials.Credential;
2220

2321
/**
2422
* Invisible Activity used for saving credentials to SmartLock.
2523
*/
2624
public class CredentialSaveActivity extends HelperActivityBase {
27-
28-
private static final String TAG = "SmartlockSave";
25+
private static final String TAG = "CredentialSaveActivity";
2926

3027
private SmartLockHandler mHandler;
3128
private IdpResponse mIdpResponse;
@@ -50,7 +47,7 @@ protected void onCreate(Bundle savedInstanceState) {
5047
Credential credential = getIntent().getParcelableExtra(ExtraConstants.EXTRA_CREDENTIAL);
5148
mIdpResponse = getIntent().getParcelableExtra(ExtraConstants.EXTRA_IDP_RESPONSE);
5249

53-
mHandler.getSaveOperation().observe(this, new Observer<Resource<Void>>() {
50+
mHandler.getOperation().observe(this, new Observer<Resource<Void>>() {
5451
@Override
5552
public void onChanged(@Nullable Resource<Void> resource) {
5653
if (resource == null) {
@@ -62,20 +59,8 @@ public void onChanged(@Nullable Resource<Void> resource) {
6259
}
6360
});
6461

65-
mHandler.getPendingResolution().observe(this, new Observer<PendingResolution>() {
66-
@Override
67-
public void onChanged(@Nullable PendingResolution resolution) {
68-
if (resolution == null) {
69-
Log.w(TAG, "getPendingResolution:onChanged: null");
70-
return;
71-
}
72-
73-
onPendingResolution(resolution);
74-
}
75-
});
76-
7762
// Avoid double-saving
78-
Resource<Void> currentOp = mHandler.getSaveOperation().getValue();
63+
Resource<Void> currentOp = mHandler.getOperation().getValue();
7964
if (currentOp == null) {
8065
Log.d(TAG, "Launching save operation.");
8166
mHandler.saveCredentials(credential);
@@ -86,10 +71,8 @@ public void onChanged(@Nullable PendingResolution resolution) {
8671

8772
@Override
8873
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
89-
// Forward activity results to the ViewModel
90-
if (!mHandler.onActivityResult(requestCode, resultCode, data)) {
91-
super.onActivityResult(requestCode, resultCode, data);
92-
}
74+
super.onActivityResult(requestCode, resultCode, data);
75+
mHandler.onActivityResult(requestCode, resultCode);
9376
}
9477

9578
private void onSaveOperation(@NonNull Resource<Void> resource) {
@@ -99,23 +82,11 @@ private void onSaveOperation(@NonNull Resource<Void> resource) {
9982
break;
10083
case SUCCESS:
10184
case FAILURE:
102-
finish(RESULT_OK, mIdpResponse.toIntent());
85+
if (!resource.isUsed()
86+
&& !FlowUtils.handleError(this, resource.getException())) {
87+
finish(RESULT_OK, mIdpResponse.toIntent());
88+
}
10389
break;
10490
}
10591
}
106-
107-
private void onPendingResolution(@NonNull PendingResolution resolution) {
108-
if (resolution.getRequestCode() == ResolutionCodes.RC_CRED_SAVE) {
109-
try {
110-
startIntentSenderForResult(
111-
resolution.getPendingIntent().getIntentSender(),
112-
resolution.getRequestCode(),
113-
null, 0, 0, 0);
114-
} catch (IntentSender.SendIntentException e) {
115-
Log.e(TAG, "Failed to send resolution.", e);
116-
finish(RESULT_OK, mIdpResponse.toIntent());
117-
};
118-
}
119-
}
120-
12192
}

auth/src/main/java/com/firebase/ui/auth/ui/email/RecoverPasswordActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ protected void onCreate(Bundle savedInstanceState) {
6464

6565
mHandler = ViewModelProviders.of(this).get(RecoverPasswordHandler.class);
6666
mHandler.init(getFlowHolder().getArguments());
67-
mHandler.getProgressLiveData().observe(this, new Observer<Resource<String>>() {
67+
mHandler.getOperation().observe(this, new Observer<Resource<String>>() {
6868
@Override
6969
public void onChanged(Resource<String> resource) {
7070
if (resource.getState() == State.LOADING) {

auth/src/main/java/com/firebase/ui/auth/ui/email/RegisterEmailFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
import com.firebase.ui.auth.data.model.User;
2222
import com.firebase.ui.auth.data.remote.ProfileMerger;
2323
import com.firebase.ui.auth.ui.FragmentBase;
24-
import com.firebase.ui.auth.ui.TaskFailureLogger;
2524
import com.firebase.ui.auth.ui.idp.WelcomeBackIdpPrompt;
2625
import com.firebase.ui.auth.util.ExtraConstants;
2726
import com.firebase.ui.auth.util.data.ProviderUtils;
27+
import com.firebase.ui.auth.util.data.TaskFailureLogger;
2828
import com.firebase.ui.auth.util.ui.ImeHelper;
2929
import com.firebase.ui.auth.util.ui.PreambleHandler;
3030
import com.firebase.ui.auth.util.ui.fieldvalidators.BaseValidator;

auth/src/main/java/com/firebase/ui/auth/ui/email/WelcomeBackPasswordPrompt.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ protected void onCreate(Bundle savedInstanceState) {
110110
mHandler.init(getFlowHolder().getArguments());
111111

112112
// Observe the state of the main auth operation
113-
mHandler.getSignInOperation().observe(this, new Observer<Resource<IdpResponse>>() {
113+
mHandler.getOperation().observe(this, new Observer<Resource<IdpResponse>>() {
114114
@Override
115115
public void onChanged(@Nullable Resource<IdpResponse> resource) {
116116
onSignInOperation(resource);

auth/src/main/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,10 @@
4141
import com.firebase.ui.auth.provider.TwitterProvider;
4242
import com.firebase.ui.auth.ui.AppCompatBase;
4343
import com.firebase.ui.auth.ui.HelperActivityBase;
44-
import com.firebase.ui.auth.ui.TaskFailureLogger;
4544
import com.firebase.ui.auth.ui.email.EmailActivity;
4645
import com.firebase.ui.auth.ui.phone.PhoneActivity;
4746
import com.firebase.ui.auth.util.data.ProviderUtils;
47+
import com.firebase.ui.auth.util.data.TaskFailureLogger;
4848
import com.google.android.gms.tasks.OnSuccessListener;
4949
import com.google.firebase.auth.AuthCredential;
5050
import com.google.firebase.auth.AuthResult;

0 commit comments

Comments
 (0)