That's it , for the resource file.
Now we are going to create .java file under your project folder where the MainActivity.java , Now Edit Your MainActivity.java file.
public class MainActivity extends AppCompatActivity {
private static int SIGN_IN_REQUEST_CODE = 1;
private FirebaseListAdapter<ChatMessage> adapter;
RelativeLayout activity_main;
FloatingActionButton fab;
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
if(item.getItemId() == R.id.menu_sign_out)
{
AuthUI.getInstance().signOut(this).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Snackbar.make(activity_main,"You Have been Signed Out ", Snackbar.LENGTH_SHORT).show();
finish();
}
});
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.main_menu,menu);
return true;
}
@Override
protected void onActivityResult(int requestcode, int resultcode, Intent data) {
super.onActivityResult(requestcode, resultcode, data);
if(requestcode == SIGN_IN_REQUEST_CODE)
{
if(resultcode == RESULT_OK)
{
Snackbar.make(activity_main,"Successfully Sign In. Welcome ! ", Snackbar.LENGTH_SHORT).show();
displayChatMessage();
}
else
{
Snackbar.make(activity_main,"We couldn't Sign you in ! Please Try Again later ", Snackbar.LENGTH_SHORT).show();
finish();
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity_main = (RelativeLayout) findViewById(R.id.activity_main);
fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText input = (EditText) findViewById(R.id.input);
FirebaseDatabase.getInstance().getReference().push().setValue(new ChatMessage(input.getText().toString(),
FirebaseAuth.getInstance().getCurrentUser().getEmail()));
input.setText("");
}
});
//Check if not sign in then navigate sign in page
if (FirebaseAuth.getInstance().getCurrentUser() == null) {
startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().build(), SIGN_IN_REQUEST_CODE);
} else {
Snackbar.make(activity_main,"Welcome"+FirebaseAuth.getInstance().getCurrentUser().getEmail(), Snackbar.LENGTH_SHORT).show();
//Load Contents
displayChatMessage();
}
}
public void displayChatMessage() {
ListView listOfMessage = (ListView) findViewById(R.id.list_of_message);
adapter = new FirebaseListAdapter<ChatMessage>(this,ChatMessage.class,R.layout.list_item,FirebaseDatabase.getInstance().getReference())
{
@Override
protected void populateView(View v, ChatMessage model, int position) {
//Get References to the view of list item.xml
TextView messageText,messageUser,messageTime;
messageText =(TextView) v.findViewById(R.id.message_text);
messageUser =(TextView) v.findViewById(R.id.message_user);
messageTime =(TextView) v.findViewById(R.id.message_time);
messageText.setText(model.getMessageText());
messageUser.setText(model.getMessageUser());
messageTime.setText(DateFormat.format("dd-MM-yyyy (HH:mm:ss)",model.getMessageTime()));
}
};
listOfMessage.setAdapter(adapter);
}
}
Create One More Java File .....
ChatMessage.java
public class ChatMessage {
private String messageText;
private String messageUser;
private long messageTime;
public ChatMessage(String messageText, String messageUser)
{
this.messageText = messageText;
this.messageUser = messageUser;
messageTime = new Date().getTime();
}
public ChatMessage() {
}
public String getMessageText() {
return messageText;
}
public void setMessageText(String messageText) {
this.messageText = messageText;
}
public String getMessageUser() {
return messageUser;
}
public void setMessageUser(String messageUser) {
this.messageUser = messageUser;
}
public long getMessageTime() {
return messageTime;
}
public void setMessageTime(long messageTime) {
this.messageTime = messageTime;
}
}
That's it, Now Build Your Application And Run this code for Your Android Emulator. Your Chatting Application is ready to use ....
Your post is really useful for beginners too. To get PHP Training in Chennai is absolutely the right choice and it will be helpful in growing our career. Thank you for your post. Keep posting.
ReplyDelete