Skip to content

Commit 4fe329b

Browse files
committed
Error routing fixes
1 parent 3f12e19 commit 4fe329b

14 files changed

+108
-94
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@
4141
android:value="@string/facebook_app_id" />
4242

4343
<activity android:name="com.firebase.ui.auth.google.GoogleSignInActivity" />
44-
44+
<meta-data
45+
android:name="com.firebase.ui.GoogleClientId"
46+
android:value="@string/google_client_id"></meta-data>
4547

4648
</application>
4749

app/src/main/res/layout/message.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@
2626
android:layout_marginRight="26dp">
2727

2828
<TextView android:id="@+id/message_text"
29-
android:layout_width="match_parent"
29+
android:layout_width="wrap_content"
3030
android:layout_height="0dp"
3131
android:layout_weight="1"
3232
android:textStyle="bold"/>
3333

3434
<TextView android:id="@+id/name_text"
3535
android:textStyle="normal"
36-
android:layout_width="match_parent"
36+
android:layout_width="wrap_content"
3737
android:layout_height="0dp"
3838
android:layout_weight="1" />
3939
</LinearLayout>

library/src/main/java/com/firebase/ui/auth/core/FirebaseActions.java

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

library/src/main/java/com/firebase/ui/auth/core/FirebaseAuthHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public void onFirebaseTokenReceived(FirebaseOAuthToken token, TokenAuthHandler h
2626
}
2727

2828
private void authenticateRefWithOAuthFirebasetoken(FirebaseOAuthToken token, final TokenAuthHandler handler) {
29+
Log.d("Got a token", token.token);
2930
Firebase.AuthResultHandler authResultHandler = new Firebase.AuthResultHandler() {
3031
@Override
3132
public void onAuthenticated(AuthData authData) {
@@ -34,7 +35,7 @@ public void onAuthenticated(AuthData authData) {
3435

3536
@Override
3637
public void onAuthenticationError(FirebaseError firebaseError) {
37-
handler.onProviderError(new FirebaseLoginError(FirebaseErrors.PROVIDER_NOT_ENABLED, "Make sure " + getProviderName() + " login is enabled and configured in your Firebase."));
38+
handler.onProviderError(new FirebaseLoginError(FirebaseResponse.PROVIDER_NOT_ENABLED, "Make sure " + getProviderName() + " login is enabled and configured in your Firebase."));
3839
}
3940
};
4041

library/src/main/java/com/firebase/ui/auth/core/FirebaseErrors.java

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

library/src/main/java/com/firebase/ui/auth/core/FirebaseLoginBaseActivity.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,13 @@ public void onProviderError(FirebaseLoginError err) {
118118
mAuthStateListener = new Firebase.AuthStateListener() {
119119
@Override
120120
public void onAuthStateChanged(AuthData authData) {
121-
if (authData != null) {
122-
mChosenProvider = SocialProvider.valueOf(authData.getProvider());
123-
onFirebaseLoginSuccess(authData);
124-
Log.d(TAG, "Auth data changed");
125-
} else {
126-
onFirebaseLogout();
127-
}
121+
if (authData != null) {
122+
mChosenProvider = SocialProvider.valueOf(authData.getProvider());
123+
onFirebaseLoginSuccess(authData);
124+
Log.d(TAG, "Auth data changed");
125+
} else {
126+
onFirebaseLogout();
127+
}
128128
}
129129
};
130130

library/src/main/java/com/firebase/ui/auth/core/FirebaseLoginError.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,8 @@ public FirebaseLoginError(int error, String message) {
99
this.error = error;
1010
}
1111

12+
public String toString() {
13+
return Integer.toString(error) + ": " + message;
14+
}
15+
1216
}

library/src/main/java/com/firebase/ui/auth/facebook/FacebookAuthHelper.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import com.facebook.login.LoginResult;
1616
import com.firebase.client.Firebase;
1717
import com.firebase.ui.auth.core.FirebaseAuthHelper;
18-
import com.firebase.ui.auth.core.FirebaseErrors;
18+
import com.firebase.ui.auth.core.FirebaseResponse;
1919
import com.firebase.ui.auth.core.FirebaseLoginError;
2020
import com.firebase.ui.auth.core.FirebaseOAuthToken;
2121
import com.firebase.ui.auth.core.TokenAuthHandler;
@@ -60,12 +60,12 @@ public void onSuccess(LoginResult loginResult) {
6060

6161
@Override
6262
public void onCancel() {
63-
mHandler.onUserError(new FirebaseLoginError(FirebaseErrors.LOGIN_CANCELLED, "User closed login dialog"));
63+
mHandler.onUserError(new FirebaseLoginError(FirebaseResponse.LOGIN_CANCELLED, "User closed login dialog"));
6464
}
6565

6666
@Override
6767
public void onError(FacebookException ex) {
68-
mHandler.onProviderError(new FirebaseLoginError(FirebaseErrors.MISC_PROVIDER_ERROR, ex.toString()));
68+
mHandler.onProviderError(new FirebaseLoginError(FirebaseResponse.MISC_PROVIDER_ERROR, ex.toString()));
6969
}
7070
}
7171
);
@@ -80,12 +80,12 @@ public void onError(FacebookException ex) {
8080
} catch (NullPointerException e) {}
8181

8282
if (facebookAppId == null) {
83-
mHandler.onProviderError(new FirebaseLoginError(FirebaseErrors.MISSING_PROVIDER_APP_ID, "Missing Facebook Application ID, is it set in your AndroidManifest.xml?"));
83+
mHandler.onProviderError(new FirebaseLoginError(FirebaseResponse.MISSING_PROVIDER_APP_ID, "Missing Facebook Application ID, is it set in your AndroidManifest.xml?"));
8484
return;
8585
}
8686

8787
if (facebookAppId.compareTo("") == 0) {
88-
mHandler.onProviderError(new FirebaseLoginError(FirebaseErrors.INVALID_PROVIDER_APP_ID, "Invalid Facebook Application ID, is it set in your res/values/strings.xml?"));
88+
mHandler.onProviderError(new FirebaseLoginError(FirebaseResponse.INVALID_PROVIDER_APP_ID, "Invalid Facebook Application ID, is it set in your res/values/strings.xml?"));
8989
return;
9090
}
9191

library/src/main/java/com/firebase/ui/auth/google/GoogleAuthHelper.java

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,12 @@
33
import android.app.Activity;
44
import android.content.Context;
55
import android.content.Intent;
6-
import android.os.Bundle;
76

8-
import com.firebase.client.AuthData;
97
import com.firebase.client.Firebase;
10-
import com.firebase.client.FirebaseError;
11-
import com.firebase.ui.auth.core.FirebaseActions;
128
import com.firebase.ui.auth.core.FirebaseAuthHelper;
13-
import com.firebase.ui.auth.core.FirebaseErrors;
149
import com.firebase.ui.auth.core.FirebaseLoginError;
1510
import com.firebase.ui.auth.core.FirebaseOAuthToken;
1611
import com.firebase.ui.auth.core.TokenAuthHandler;
17-
import com.firebase.ui.auth.twitter.TwitterPromptActivity;
18-
import com.google.android.gms.auth.api.Auth;
19-
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
2012
import com.google.android.gms.common.api.GoogleApiClient;
2113

2214
public class GoogleAuthHelper extends FirebaseAuthHelper {
@@ -28,7 +20,6 @@ public class GoogleAuthHelper extends FirebaseAuthHelper {
2820
private TokenAuthHandler mHandler;
2921
private Activity mActivity;
3022
private Firebase mRef;
31-
private GoogleApiClient mGoogleApiClient;
3223

3324
public GoogleAuthHelper(Context context, Firebase ref, TokenAuthHandler handler) {
3425
mActivity = (Activity) context;
@@ -38,20 +29,22 @@ public GoogleAuthHelper(Context context, Firebase ref, TokenAuthHandler handler)
3829

3930
public String getProviderName() { return PROVIDER_NAME; }
4031
public Firebase getFirebaseRef() { return mRef; }
41-
public void logout() {}
32+
public void logout() {
33+
34+
}
4235
public void login() {
43-
mActivity.startActivityForResult(new Intent(mActivity, GoogleSignInActivity.class), FirebaseActions.LOGIN);
36+
mActivity.startActivityForResult(new Intent(mActivity, GoogleSignInActivity.class), GoogleActions.REQUEST);
4437
}
4538

4639
public void onActivityResult(int requestCode, int resultCode, Intent data) {
47-
if (resultCode == 120321) {
40+
if (resultCode == GoogleActions.SUCCESS) {
4841
FirebaseOAuthToken token = new FirebaseOAuthToken(
4942
PROVIDER_NAME,
5043
data.getStringExtra("oauth_token"));
5144
onFirebaseTokenReceived(token, mHandler);
52-
} else if (resultCode == FirebaseActions.USER_ERROR) {
45+
} else if (resultCode == GoogleActions.USER_ERROR) {
5346
mHandler.onUserError(new FirebaseLoginError(data.getIntExtra("code", 0), data.getStringExtra("error")));
54-
} else if (resultCode == FirebaseActions.PROVIDER_ERROR) {
47+
} else if (resultCode == GoogleActions.PROVIDER_ERROR) {
5548
mHandler.onProviderError(new FirebaseLoginError(data.getIntExtra("code", 0), data.getStringExtra("error")));
5649
}
5750
}

library/src/main/java/com/firebase/ui/auth/google/GoogleSignInActivity.java

Lines changed: 63 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
import android.app.Activity;
44
import android.content.Context;
55
import android.content.Intent;
6+
import android.content.pm.ApplicationInfo;
7+
import android.content.pm.PackageManager;
68
import android.os.AsyncTask;
79
import android.os.Bundle;
810
import android.support.v7.app.AppCompatActivity;
911
import android.util.Log;
10-
import android.view.View;
1112

12-
import com.firebase.ui.R;
13-
import com.firebase.ui.auth.core.FirebaseActions;
13+
import com.firebase.ui.auth.core.FirebaseResponse;
1414
import com.google.android.gms.auth.GoogleAuthException;
1515
import com.google.android.gms.auth.GoogleAuthUtil;
1616
import com.google.android.gms.auth.UserRecoverableAuthException;
@@ -25,7 +25,16 @@
2525
import com.google.android.gms.common.api.Status;
2626

2727
public class GoogleSignInActivity extends AppCompatActivity implements
28-
GoogleApiClient.OnConnectionFailedListener {
28+
GoogleApiClient.OnConnectionFailedListener,
29+
GoogleApiClient.ConnectionCallbacks {
30+
31+
public void onConnectionSuspended(int x) {
32+
33+
}
34+
35+
public void onConnected(Bundle x) {
36+
signIn();
37+
}
2938

3039
private static final String TAG = "GoogleSignInActivity";
3140
private static final int RC_SIGN_IN = 9001;
@@ -36,32 +45,62 @@ public class GoogleSignInActivity extends AppCompatActivity implements
3645
protected void onCreate(Bundle savedInstanceState) {
3746
super.onCreate(savedInstanceState);
3847

48+
String googleClientId = "";
49+
50+
try {
51+
ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
52+
Bundle bundle = ai.metaData;
53+
googleClientId = bundle.getString("com.firebase.ui.GoogleClientId");
54+
} catch (PackageManager.NameNotFoundException e) {
55+
} catch (NullPointerException e) {}
56+
57+
if (googleClientId == null) {
58+
Intent resultIntent = new Intent();
59+
resultIntent.putExtra("code", FirebaseResponse.MISSING_PROVIDER_APP_KEY);
60+
resultIntent.putExtra("error", "Missing Twitter key/secret, are they set in your AndroidManifest.xml?");
61+
setResult(GoogleActions.PROVIDER_ERROR, resultIntent);
62+
finish();
63+
return;
64+
}
65+
66+
if (googleClientId.compareTo("") == 0) {
67+
Intent resultIntent = new Intent();
68+
resultIntent.putExtra("code", FirebaseResponse.INVALID_PROVIDER_APP_KEY);
69+
resultIntent.putExtra("error", "Invalid Google key, are they set in your res/values/strings.xml?");
70+
setResult(GoogleActions.PROVIDER_ERROR, resultIntent);
71+
finish();
72+
return;
73+
}
74+
3975
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
40-
.requestIdToken("945226082630-pcab6ppnihnll7663tc8vp8aclc2flbj.apps.googleusercontent.com")
76+
.requestIdToken(googleClientId)
77+
.requestEmail()
4178
.build();
4279

4380
mGoogleApiClient = new GoogleApiClient.Builder(this)
44-
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
81+
.enableAutoManage(this, this)
4582
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
83+
.addConnectionCallbacks(this)
4684
.build();
4785
}
4886

4987
@Override
5088
public void onStart() {
5189
super.onStart();
5290

53-
OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient);
54-
if (opr.isDone()) {
55-
GoogleSignInResult result = opr.get();
56-
handleSignInResult(result);
57-
} else {
58-
opr.setResultCallback(new ResultCallback<GoogleSignInResult>() {
59-
@Override
60-
public void onResult(GoogleSignInResult googleSignInResult) {
61-
handleSignInResult(googleSignInResult);
62-
}
63-
});
64-
}
91+
// OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn(mGoogleApiClient);
92+
// if (opr.isDone()) {
93+
// GoogleSignInResult result = opr.get();
94+
// handleSignInResult(result);
95+
// } else {
96+
// opr.setResultCallback(new ResultCallback<GoogleSignInResult>() {
97+
// @Override
98+
// public void onResult(GoogleSignInResult googleSignInResult) {
99+
// handleSignInResult(googleSignInResult);
100+
// }
101+
// });
102+
// }
103+
//signOut();
65104
}
66105

67106
@Override
@@ -85,7 +124,6 @@ private void handleSignInResult(GoogleSignInResult result) {
85124
googleOauthTask.execute(acct.getEmail());
86125
} else {
87126
// Signed out, show unauthenticated UI
88-
89127
}
90128
}
91129

@@ -116,7 +154,11 @@ public void onResult(Status status) {
116154

117155
@Override
118156
public void onConnectionFailed(ConnectionResult connectionResult) {
119-
Log.d(TAG, "onConnectionFailed:" + connectionResult);
157+
Intent resultIntent = new Intent();
158+
resultIntent.putExtra("code", FirebaseResponse.MISC_PROVIDER_ERROR);
159+
resultIntent.putExtra("error", "onConnectionFailed:" + connectionResult);
160+
setResult(GoogleActions.PROVIDER_ERROR, resultIntent);
161+
finish();
120162
}
121163
}
122164

@@ -127,7 +169,6 @@ protected String doInBackground(String... emails) {
127169

128170
try {
129171
token = GoogleAuthUtil.getToken(context, emails[0], "oauth2:profile email");
130-
Log.d("Background", token);
131172
} catch (UserRecoverableAuthException e) {
132173

133174
} catch (GoogleAuthException e) {
@@ -147,7 +188,7 @@ protected void onPostExecute(String token) {
147188
Activity activity = ((Activity)context);
148189
Intent resultIntent = new Intent();
149190
resultIntent.putExtra("oauth_token", token);
150-
activity.setResult(120321, resultIntent);
191+
activity.setResult(GoogleActions.SUCCESS, resultIntent);
151192
activity.finish();
152193
}
153194
}

0 commit comments

Comments
 (0)