Skip to content

Commit b6e9378

Browse files
committed
Fixed onAuth triggering multiple times
1 parent 5052e58 commit b6e9378

File tree

7 files changed

+35
-35
lines changed

7 files changed

+35
-35
lines changed

app/src/main/java/com/firebase/uidemo/RecyclerViewDemoActivity.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,11 +86,9 @@ public void populateViewHolder(ChatHolder chatView, Chat chat) {
8686
chatView.setText(chat.getText());
8787

8888
if (mAuthData != null && chat.getUid().equals(mAuthData.getUid())) {
89-
// Is me
90-
chatView.setSender(true);
89+
chatView.setIsSender(true);
9190
} else {
92-
chatView.setSender(false);
93-
// Isn't me
91+
chatView.setIsSender(false);
9492
}
9593
}
9694
};
@@ -211,11 +209,12 @@ public ChatHolder(View itemView) {
211209
mView = itemView;
212210
}
213211

214-
public void setSender(Boolean isSender) {
212+
public void setIsSender(Boolean isSender) {
215213
FrameLayout left_arrow = (FrameLayout) mView.findViewById(R.id.left_arrow);
216214
FrameLayout right_arrow = (FrameLayout) mView.findViewById(R.id.right_arrow);
217215
RelativeLayout messageContainer = (RelativeLayout) mView.findViewById(R.id.message_container);
218216

217+
219218
if (isSender) {
220219
left_arrow.setVisibility(View.GONE);
221220
right_arrow.setVisibility(View.VISIBLE);
@@ -224,10 +223,6 @@ public void setSender(Boolean isSender) {
224223
left_arrow.setVisibility(View.VISIBLE);
225224
right_arrow.setVisibility(View.GONE);
226225
messageContainer.setGravity(Gravity.LEFT);
227-
//GradientDrawable messageBoxBackground= (GradientDrawable) (messageBox.getBackground());
228-
//messageBoxBackground.setColor(Color.MAGENTA);
229-
//GradientDrawable messageArrowBackground = (GradientDrawable) (messageArrow.getBackground());
230-
//messageArrowBackground.setColor(Color.MAGENTA);
231226

232227
}
233228
}

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

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
33
android:layout_height="wrap_content"
44
android:layout_width="match_parent"
5-
android:id="@+id/message_container">
5+
android:id="@+id/message_container"
6+
android:paddingTop="5dp"
7+
android:paddingBottom="5dp">
68

79
<FrameLayout
810
android:id="@+id/left_arrow"
@@ -21,18 +23,17 @@
2123
android:id="@+id/message"
2224
android:padding="10dp"
2325
android:layout_marginLeft="26dp"
24-
android:layout_marginRight="26dp"
25-
android:layout_marginBottom="10dp">
26+
android:layout_marginRight="26dp">
2627

2728
<TextView android:id="@+id/message_text"
28-
android:layout_width="fill_parent"
29+
android:layout_width="match_parent"
2930
android:layout_height="0dp"
3031
android:layout_weight="1"
3132
android:textStyle="bold"/>
3233

3334
<TextView android:id="@+id/name_text"
3435
android:textStyle="normal"
35-
android:layout_width="fill_parent"
36+
android:layout_width="match_parent"
3637
android:layout_height="0dp"
3738
android:layout_weight="1" />
3839
</LinearLayout>

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,7 @@
1313
android:layout_alignParentLeft="true"
1414
android:layout_alignParentStart="true"
1515
android:layout_alignParentTop="true"
16-
android:layout_above="@+id/footer"
17-
/>
16+
android:layout_above="@+id/footer" />
1817

1918
<LinearLayout
2019
android:orientation="horizontal"

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

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public abstract class FirebaseLoginBaseActivity extends AppCompatActivity {
2222
private FacebookAuthHelper mFacebookAuthHelper;
2323
private TwitterAuthHelper mTwitterAuthHelper;
2424
private PasswordAuthHelper mPasswordAuthHelper;
25+
private Firebase.AuthStateListener mAuthStateListener;
2526

2627
TokenAuthHandler mHandler;
2728

@@ -115,15 +116,28 @@ public void onProviderError(FirebaseError err) {
115116
}
116117
};
117118

119+
mAuthStateListener = new Firebase.AuthStateListener() {
120+
@Override
121+
public void onAuthStateChanged(AuthData authData) {
122+
if (authData != null) {
123+
mChosenProvider = SocialProvider.valueOf(authData.getProvider());
124+
onFirebaseLoginSuccess(authData);
125+
Log.d(TAG, "Auth data changed");
126+
} else {
127+
onFirebaseLogout();
128+
}
129+
}
130+
};
131+
118132
mFacebookAuthHelper = new FacebookAuthHelper(this, getFirebaseRef(), mHandler);
119133
mGoogleAuthHelper = new GoogleAuthHelper(this, getFirebaseRef(), mHandler);
120134
mTwitterAuthHelper = new TwitterAuthHelper(this, getFirebaseRef(), mHandler);
121135
mPasswordAuthHelper = new PasswordAuthHelper(this, getFirebaseRef(), mHandler);
122136

123137
mDialog = new FirebaseLoginDialog();
124138
mDialog
125-
.setContext(this)
126-
.setRef(getFirebaseRef())
139+
.setContext(this)
140+
.setRef(getFirebaseRef())
127141
.setHandler(mHandler);
128142

129143
mDialog
@@ -132,18 +146,11 @@ public void onProviderError(FirebaseError err) {
132146
.setProviderEnabled(SocialProvider.twitter)
133147
.setProviderEnabled(SocialProvider.password);
134148

135-
// TODO: should we remove the authStateListener on `onStop()`?
136-
getFirebaseRef().addAuthStateListener(new Firebase.AuthStateListener() {
137-
@Override
138-
public void onAuthStateChanged(AuthData authData) {
139-
if (authData != null) {
140-
mChosenProvider = SocialProvider.valueOf(authData.getProvider());
141-
onFirebaseLoginSuccess(authData);
142-
Log.d(TAG, "Auth data changed");
143-
} else {
144-
onFirebaseLogout();
145-
}
146-
}
147-
});
149+
getFirebaseRef().addAuthStateListener(mAuthStateListener);
150+
}
151+
152+
protected void onStop() {
153+
super.onStop();
154+
getFirebaseRef().removeAuthStateListener(mAuthStateListener);
148155
}
149156
}

library/src/main/java/com/firebase/ui/FirebaseLoginDialog.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,11 +58,8 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
5858
@Override
5959
public Dialog onCreateDialog(Bundle savedInstanceState) {
6060
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
61-
// Get the layout inflater
6261
LayoutInflater inflater = getActivity().getLayoutInflater();
6362

64-
// Inflate and set the layout for the dialog
65-
// Pass null as the parent view because its going in the dialog layout
6663
mView = inflater.inflate(R.layout.fragment_firebase_login, null);
6764

6865
if (mFacebookAuthHelper != null) showLoginOption(mFacebookAuthHelper, R.id.facebook_button);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ private void authenticateRefWithOAuthFirebasetoken(FirebaseOAuthToken token, fin
2929
Firebase.AuthResultHandler authResultHandler = new Firebase.AuthResultHandler() {
3030
@Override
3131
public void onAuthenticated(AuthData authData) {
32-
// Do nothing. Auth updates are handled in the AuthStateListener
32+
Log.d("Helper", "GO GO GO");
3333
handler.onSuccess(authData);
3434
}
3535

library/src/main/java/com/firebase/ui/auth/TwitterAuthHelper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.app.Activity;
44
import android.content.Context;
55
import android.content.Intent;
6+
import android.util.Log;
67

78
import com.firebase.client.Firebase;
89
import com.firebase.client.FirebaseError;

0 commit comments

Comments
 (0)