Skip to content

Commit df0eca0

Browse files
authored
Merge pull request #308 from samtstern/version-1.0.0-dev
Check for null password or lack of network
2 parents f6d2e12 + 7167718 commit df0eca0

File tree

6 files changed

+55
-0
lines changed

6 files changed

+55
-0
lines changed

app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import android.widget.RadioButton;
3030

3131
import com.firebase.ui.auth.AuthUI;
32+
import com.firebase.ui.auth.ui.ResultCodes;
3233
import com.firebase.uidemo.R;
3334
import com.google.firebase.auth.FirebaseAuth;
3435

@@ -172,6 +173,11 @@ private void handleSignInResponse(int resultCode, Intent data) {
172173
return;
173174
}
174175

176+
if (resultCode == ResultCodes.RESULT_NO_NETWORK) {
177+
showSnackbar(R.string.no_internet_connection);
178+
return;
179+
}
180+
175181
showSnackbar(R.string.unknown_sign_in_response);
176182
}
177183

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<string name="ok_label">OK</string>
3434
<string name="unknown_sign_in_response">Unknown response from AuthUI sign-in</string>
3535
<string name="sign_in_cancelled">Sign in cancelled</string>
36+
<string name="no_internet_connection">No internet connection</string>
3637
<string name="signed_in_header">You are signed in!</string>
3738
<string name="sign_out">Sign out</string>
3839
<string name="delete_account_label">Delete account</string>

auth/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
xmlns:tools="http://schemas.android.com/tools"
33
package="com.firebase.ui.auth">
44

5+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
6+
57
<application>
68

79
<meta-data

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import android.content.Context;
1818
import android.content.DialogInterface;
1919
import android.content.Intent;
20+
import android.net.ConnectivityManager;
2021
import android.os.Bundle;
2122
import android.support.annotation.NonNull;
2223
import android.text.TextUtils;
@@ -46,6 +47,8 @@
4647

4748
import java.util.List;
4849

50+
import static com.firebase.ui.auth.ui.ResultCodes.RESULT_NO_NETWORK;
51+
4952
/**
5053
* Attempts to acquire a credential from Smart Lock for Passwords to sign in
5154
* an existing account. If this succeeds, an attempt is made to sign the user in
@@ -57,6 +60,7 @@
5760
*/
5861
public class ChooseAccountActivity extends ActivityBase {
5962
private static final String TAG = "ChooseAccountActivity";
63+
6064
private static final int RC_CREDENTIALS_READ = 2;
6165
private static final int RC_IDP_SIGNIN = 3;
6266
private static final int RC_AUTH_METHOD_PICKER = 4;
@@ -70,6 +74,13 @@ public class ChooseAccountActivity extends ActivityBase {
7074
protected void onCreate(Bundle savedInstance) {
7175
super.onCreate(savedInstance);
7276

77+
if (!hasNetworkConnection()) {
78+
Log.d(TAG, "No network connection");
79+
80+
finish(RESULT_NO_NETWORK, new Intent());
81+
return;
82+
}
83+
7384
// Make Google Play Services available at the correct version, if possible
7485
mPlayServicesHelper = PlayServicesHelper.getInstance(this);
7586
boolean madeAvailable = mPlayServicesHelper
@@ -112,6 +123,18 @@ protected void onStop() {
112123
}
113124
}
114125

126+
/**
127+
* Check if there is an active or soon-to-be-active network connection.
128+
*/
129+
private boolean hasNetworkConnection() {
130+
ConnectivityManager manager =
131+
(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
132+
133+
return manager != null
134+
&& manager.getActiveNetworkInfo() != null
135+
&& manager.getActiveNetworkInfo().isConnectedOrConnecting();
136+
}
137+
115138
/**
116139
* Called when the Credentials API connects.
117140
*/
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.firebase.ui.auth.ui;
2+
3+
import com.firebase.ui.auth.AuthUI;
4+
5+
/**
6+
* Result codes returned when using {@link AuthUI.SignInIntentBuilder#build()} with
7+
* {@code startActivityForResult}.
8+
*/
9+
public class ResultCodes {
10+
11+
/** Sign in failed due to lack of network connection **/
12+
public static final int RESULT_NO_NETWORK = 10;
13+
14+
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import android.support.design.widget.TextInputLayout;
2323
import android.text.Spannable;
2424
import android.text.SpannableStringBuilder;
25+
import android.text.TextUtils;
2526
import android.text.style.StyleSpan;
2627
import android.view.View;
2728
import android.widget.EditText;
@@ -115,6 +116,14 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
115116
private void next(String email, final String password) {
116117
final FirebaseAuth firebaseAuth = mActivityHelper.getFirebaseAuth();
117118

119+
// Check for null or empty password
120+
if (TextUtils.isEmpty(password)) {
121+
mPasswordField.setError(getString(R.string.required_field));
122+
return;
123+
} else {
124+
mPasswordField.setError(null);
125+
}
126+
118127
// Sign in with known email and the password provided
119128
firebaseAuth.signInWithEmailAndPassword(email, password)
120129
.addOnFailureListener(

0 commit comments

Comments
 (0)