Skip to content

Commit 891947f

Browse files
committed
Remove .iml, migrated auth into helpers, add PasswordAuthHelper, clean-up dependencies
1 parent 16d932d commit 891947f

20 files changed

+278
-616
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,5 @@
44
.DS_Store
55
/build
66
/captures
7-
/library/target
7+
/library/target
8+
/**/*.iml

FirebaseUI-Android.iml

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

app/app.iml

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

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

Lines changed: 60 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,14 @@
11
package com.firebase.uidemo;
22

3-
import android.app.Activity;
4-
import android.app.AlertDialog;
5-
import android.app.Dialog;
6-
import android.app.DialogFragment;
7-
import android.content.DialogInterface;
83
import android.graphics.Color;
4+
import android.graphics.Typeface;
95
import android.os.Bundle;
106
import android.support.v7.widget.LinearLayoutManager;
117
import android.support.v7.widget.RecyclerView;
128
import android.util.Log;
139
import android.view.Gravity;
14-
import android.view.LayoutInflater;
1510
import android.view.Menu;
11+
import android.view.MenuInflater;
1612
import android.view.MenuItem;
1713
import android.view.View;
1814
import android.widget.Button;
@@ -25,13 +21,14 @@
2521
import com.firebase.client.Query;
2622
import com.firebase.ui.FirebaseLoginBaseActivity;
2723
import com.firebase.ui.FirebaseRecyclerViewAdapter;
28-
import com.firebase.ui.com.firebasei.ui.authimpl.SocialProvider;
2924

3025
public class RecyclerViewDemoActivity extends FirebaseLoginBaseActivity {
3126

3227
public static String TAG = "FirebaseUI.chat";
3328
private Firebase mRef;
3429
private AuthData mAuthData;
30+
private String name;
31+
private String uid;
3532
private Button mSendButton;
3633
private EditText mMessageEdit;
3734

@@ -40,19 +37,15 @@ protected void onCreate(Bundle savedInstanceState) {
4037
super.onCreate(savedInstanceState);
4138
setContentView(R.layout.recycler_view_demo);
4239

43-
final String name = "Android User";
4440
mSendButton = (Button) findViewById(R.id.sendButton);
4541
mMessageEdit = (EditText) findViewById(R.id.messageEdit);
46-
final RecyclerView messages = (RecyclerView) findViewById(R.id.messagesList);
47-
messages.setHasFixedSize(true);
48-
messages.setLayoutManager(new LinearLayoutManager(this));
4942

5043
mRef = new Firebase("https://bucket.firebaseio.com/chat");
5144

5245
mSendButton.setOnClickListener(new View.OnClickListener() {
5346
@Override
5447
public void onClick(View v) {
55-
Chat chat = new Chat(name, mMessageEdit.getText().toString());
48+
Chat chat = new Chat(name, mAuthData.getUid(), mMessageEdit.getText().toString());
5649
mRef.push().setValue(chat, new Firebase.CompletionListener() {
5750
@Override
5851
public void onComplete(FirebaseError firebaseError, Firebase firebase) {
@@ -65,20 +58,36 @@ public void onComplete(FirebaseError firebaseError, Firebase firebase) {
6558
}
6659
});
6760

61+
updateChat();
62+
}
63+
64+
protected void updateChat() {
65+
final RecyclerView messages = (RecyclerView) findViewById(R.id.messagesList);
66+
67+
LinearLayoutManager manager = new LinearLayoutManager(this);
68+
manager.setStackFromEnd(true);
69+
70+
messages.setHasFixedSize(true);
71+
messages.setLayoutManager(manager);
72+
6873
Query recentMessages = mRef.limitToLast(50);
6974
FirebaseRecyclerViewAdapter<Chat, ChatHolder> adapter = new FirebaseRecyclerViewAdapter<Chat, ChatHolder>(Chat.class, android.R.layout.two_line_list_item, ChatHolder.class, recentMessages) {
7075
@Override
7176
public void populateViewHolder(ChatHolder chatView, Chat chat) {
7277
chatView.textView.setText(chat.getText());
73-
chatView.textView.setPadding(10, 0, 10, 0);
78+
chatView.textView.setPadding(30, 30, 30, 0);
7479
chatView.nameView.setText(chat.getName());
75-
chatView.nameView.setPadding(10, 0, 10, 15);
76-
if (chat.getName().equals(name)) {
80+
chatView.nameView.setPadding(30, 0, 30, 30);
81+
chatView.textView.setTextColor(Color.parseColor("#000000"));
82+
chatView.textView.setTypeface(null, Typeface.NORMAL);
83+
if (mAuthData != null && chat.getUid().equals(mAuthData.getUid())) {
7784
chatView.textView.setGravity(Gravity.END);
7885
chatView.nameView.setGravity(Gravity.END);
79-
chatView.nameView.setTextColor(Color.parseColor("#8BC34A"));
86+
chatView.nameView.setTextColor(Color.parseColor("#AAAAAA"));
87+
chatView.itemView.setBackground(getDrawable(R.drawable.outgoing_message));
8088
} else {
8189
chatView.nameView.setTextColor(Color.parseColor("#00BCD4"));
90+
chatView.itemView.setBackground(getDrawable(R.drawable.incoming_message));
8291
}
8392
}
8493
};
@@ -91,28 +100,28 @@ public void populateViewHolder(ChatHolder chatView, Chat chat) {
91100

92101
@Override
93102
public boolean onCreateOptionsMenu(Menu menu) {
94-
menu.add(LOGIN, LOGIN, LOGIN, "Login");
95-
menu.add(LOGOUT, LOGOUT, LOGOUT, "Log out");
96-
97-
return super.onCreateOptionsMenu(menu);
103+
MenuInflater inflater = getMenuInflater();
104+
inflater.inflate(R.menu.chat_login_menu, menu);
105+
return true;
98106
}
99107

100108
@Override
101109
public boolean onPrepareOptionsMenu(Menu menu) {
102-
menu.getItem(LOGIN-Menu.FIRST).setVisible(mAuthData == null);
103-
menu.getItem(LOGOUT-Menu.FIRST).setVisible(mAuthData != null);
110+
menu.findItem(R.id.login_menu_item).setVisible(mAuthData == null);
111+
menu.findItem(R.id.logout_menu_item).setVisible(mAuthData != null);
104112
mSendButton.setEnabled(mAuthData != null);
105113
mMessageEdit.setEnabled(mAuthData != null);
106-
return super.onPrepareOptionsMenu(menu);
114+
115+
return true;
107116
}
108117

109118
@Override
110119
public boolean onOptionsItemSelected(MenuItem item) {
111120
switch (item.getItemId()) {
112-
case LOGIN:
121+
case R.id.login_menu_item:
113122
this.showFirebaseLoginPrompt();
114123
return true;
115-
case LOGOUT:
124+
case R.id.logout_menu_item:
116125
this.logout();
117126
return true;
118127
}
@@ -124,26 +133,39 @@ public boolean onOptionsItemSelected(MenuItem item) {
124133
// Start of FirebaseLoginBaseActivity
125134

126135
@Override
127-
public void onFirebaseLogin(AuthData authData) {
128-
Log.i(TAG, "Logged in");
136+
public void onFirebaseLoginSuccess(AuthData authData) {
137+
Log.i(TAG, "Logged in to " + authData.getProvider().toString());
129138
mAuthData = authData;
139+
140+
switch (mAuthData.getProvider()) {
141+
case "password":
142+
name = (String) mAuthData.getProviderData().get("email");
143+
break;
144+
default:
145+
name = (String) mAuthData.getProviderData().get("displayName");
146+
break;
147+
}
148+
149+
updateChat();
130150
invalidateOptionsMenu();
131151
}
132152

133153
@Override
134154
public void onFirebaseLogout() {
135155
Log.i(TAG, "Logged out");
136156
mAuthData = null;
157+
name = "";
137158
invalidateOptionsMenu();
159+
updateChat();
138160
}
139161

140162
@Override
141-
public void onFirebaseLoginError(FirebaseError firebaseError) {
163+
public void onFirebaseLoginProviderError(FirebaseError firebaseError) {
142164
Log.e(TAG, firebaseError.toString());
143165
}
144166

145167
@Override
146-
public void onFirebaseLoginCancel() {
168+
public void onFirebaseLoginUserError(FirebaseError firebaseError) {
147169
Log.i(TAG, "Login cancelled");
148170
}
149171

@@ -157,29 +179,37 @@ public Firebase getFirebaseRef() {
157179
public static class Chat {
158180
String name;
159181
String text;
182+
String uid;
160183

161184
public Chat() {
162185
}
163186

164-
public Chat(String name, String message) {
187+
public Chat(String name, String uid, String message) {
165188
this.name = name;
166189
this.text = message;
190+
this.uid = uid;
167191
}
168192

169193
public String getName() {
170194
return name;
171195
}
172196

197+
public String getUid() {
198+
return uid;
199+
}
200+
173201
public String getText() {
174202
return text;
175203
}
176204
}
177205

178206
public static class ChatHolder extends RecyclerView.ViewHolder {
179207
TextView nameView, textView;
208+
View itemView;
180209

181210
public ChatHolder(View itemView) {
182211
super(itemView);
212+
this.itemView = itemView;
183213
nameView = (TextView) itemView.findViewById(android.R.id.text2);
184214
textView = (TextView) itemView.findViewById(android.R.id.text1);
185215
}

0 commit comments

Comments
 (0)