Darsiwan

Untitled

Sep 4th, 2016
43,874
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.31 KB | None | 0 0
  1. import android.provider.ContactsContract;
  2. import android.support.v7.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.widget.Button;
  6. import android.widget.EditText;
  7. import android.widget.TextView;
  8.  
  9. import com.google.firebase.database.ChildEventListener;
  10. import com.google.firebase.database.DataSnapshot;
  11. import com.google.firebase.database.DatabaseError;
  12. import com.google.firebase.database.DatabaseReference;
  13. import com.google.firebase.database.FirebaseDatabase;
  14.  
  15. import java.util.HashMap;
  16. import java.util.Iterator;
  17. import java.util.Map;
  18.  
  19. public class chatroom extends AppCompatActivity {
  20.  
  21.     private Button btn_send_msg;
  22.     private EditText input_msg;
  23.     private TextView chat_conversation;
  24.     private String user_name ,room_name;
  25.     private DatabaseReference root;
  26.     private String temp_key;
  27.  
  28.     @Override
  29.     protected void onCreate(Bundle savedInstanceState) {
  30.         super.onCreate(savedInstanceState);
  31.         setContentView(R.layout.activity_chatroom);
  32.         btn_send_msg = (Button)findViewById(R.id.button);
  33.         input_msg = (EditText)findViewById(R.id.editText);
  34.         chat_conversation = (TextView)findViewById(R.id.textView);
  35.         user_name = getIntent().getExtras().get("user_name").toString();
  36.         room_name = getIntent().getExtras().get("room_name").toString();
  37.         setTitle("Room - "+room_name);
  38.  
  39.         root = FirebaseDatabase.getInstance().getReference().child(room_name);
  40.  
  41.         btn_send_msg.setOnClickListener(new View.OnClickListener() {
  42.             @Override
  43.             public void onClick(View view) {
  44.  
  45.                 Map<String,Object> map = new HashMap<String, Object>();
  46.                 temp_key = root.push().getKey();
  47.                 root.updateChildren(map);
  48.  
  49.                 DatabaseReference message_root = root.child(temp_key);
  50.                 Map<String,Object> map2 = new HashMap<String, Object>();
  51.                 map2.put("name",user_name);
  52.                 map2.put("msg",input_msg.getText().toString());
  53.  
  54.                 message_root.updateChildren(map2);
  55.  
  56.             }
  57.         });
  58.  
  59.         root.addChildEventListener(new ChildEventListener() {
  60.             @Override
  61.             public void onChildAdded(DataSnapshot dataSnapshot, String s) {
  62.  
  63.                 append_chat_conversatin(dataSnapshot);
  64.  
  65.             }
  66.  
  67.             @Override
  68.             public void onChildChanged(DataSnapshot dataSnapshot, String s) {
  69.                 append_chat_conversatin(dataSnapshot);
  70.             }
  71.  
  72.             @Override
  73.             public void onChildRemoved(DataSnapshot dataSnapshot) {
  74.  
  75.             }
  76.  
  77.             @Override
  78.             public void onChildMoved(DataSnapshot dataSnapshot, String s) {
  79.  
  80.             }
  81.  
  82.             @Override
  83.             public void onCancelled(DatabaseError databaseError) {
  84.  
  85.             }
  86.         });
  87.  
  88.     }
  89. private String chat_msg, chat_user_name;
  90.  
  91.     private void append_chat_conversatin(DataSnapshot dataSnapshot) {
  92.         Iterator i = dataSnapshot.getChildren().iterator();
  93.         while (i.hasNext())
  94.         {
  95.             chat_msg = (String) ((DataSnapshot)i.next()).getValue();
  96.             chat_user_name = (String) ((DataSnapshot)i.next()).getValue();
  97.  
  98.             chat_conversation.append(chat_user_name + " : "+chat_msg +"\n");
  99.  
  100.  
  101.         }
  102.     }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment