Skip to content
Snippets Groups Projects
Commit 0787a142 authored by priagungs's avatar priagungs
Browse files

WIP chatting

parent 5b3874e2
Branches
No related merge requests found
......@@ -2,11 +2,14 @@ package com.chatman.activity;
import android.content.Intent;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
......@@ -14,15 +17,30 @@ import android.widget.ImageButton;
import android.widget.TextView;
import com.chatman.R;
import com.chatman.adapter.ChatAdapter;
import com.chatman.helper.FirebaseHelper;
import com.chatman.helper.PreferencesHelper;
import com.chatman.model.Chat;
import com.chatman.model.ChatRoom;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.Calendar;
import java.util.List;
public class ChatRoomActivity extends AppCompatActivity {
private static final String TAG = ChatRoomActivity.class.getSimpleName();
private Toolbar toolbar;
private RecyclerView chatRv;
private ChatAdapter adapter;
private EditText chatEt;
private ImageButton chatSend;
private TextView toolbarName;
private List<Chat> chatList;
private String chatRoomId;
......@@ -58,6 +76,55 @@ public class ChatRoomActivity extends AppCompatActivity {
toolbarName.setText(intent.getStringExtra("name"));
chatRoomId = intent.getStringExtra("chatRoomId");
}
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setReverseLayout(false);
linearLayoutManager.setStackFromEnd(false);
chatRv.setLayoutManager(linearLayoutManager);
adapter = new ChatAdapter(chatList);
chatRv.setAdapter(adapter);
initializeListener();
}
private void initializeListener() {
chatSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!chatEt.getText().toString().equals("")) {
FirebaseDatabase.getInstance().getReference().child("chatroom").child(chatRoomId)
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String friendId = "";
for(DataSnapshot userId : dataSnapshot.child("users").getChildren()) {
if (!((String) userId.getValue()).equals(PreferencesHelper.getToken(ChatRoomActivity.this))) {
friendId = (String) userId.getValue();
Log.d(TAG, "onDataChange: friendId " + friendId);
}
}
Chat sendChat = new Chat(PreferencesHelper.getToken(ChatRoomActivity.this),
PreferencesHelper.getUserName(ChatRoomActivity.this), friendId,
Calendar.getInstance().getTime(), chatEt.getText().toString());
String idChat = FirebaseHelper.dbMessage.push().getKey();
Log.d(TAG, "onDataChange: idChat" + idChat);
FirebaseHelper.dbMessage.child(idChat).setValue(sendChat);
String index = String.valueOf(dataSnapshot.child("messages").getChildrenCount());
Log.d(TAG, "onDataChange: index chat " + index);
FirebaseDatabase.getInstance().getReference("chatroom/" + chatRoomId + "/messages")
.child(index).setValue(idChat);
chatEt.setText("");
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
});
}
@Override
......
......@@ -78,7 +78,7 @@ public class ChatAdapter extends RecyclerView.Adapter {
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
context = parent.getContext();
currentUser = PreferencesHelper.getUserFirebaseKey(context);
currentUser = PreferencesHelper.getToken(context);
View view;
if (viewType == VIEW_TYPE_MESSAGE_SENT) {
......
......@@ -79,10 +79,10 @@ public class BotFragment extends Fragment {
public void onClick(View view) {
if (!message.getText().toString().equals("")){
Toast.makeText(context, "Send: "+message.getText().toString(), Toast.LENGTH_SHORT).show();
Chat sendMessage = new Chat(PreferencesHelper.getUserFirebaseKey(context), PreferencesHelper.getUserName(context), BOT_KEY, Calendar.getInstance().getTime(), message.getText().toString());
Chat sendMessage = new Chat(PreferencesHelper.getToken(context), PreferencesHelper.getUserName(context), BOT_KEY, Calendar.getInstance().getTime(), message.getText().toString());
String key = FirebaseHelper.dbMessage.push().getKey();
FirebaseHelper.dbMessage.child(key).setValue(sendMessage);
message.setText("");
// BALASAN DARI BOT
Chat botMessage = new Chat(BOT_KEY, "ChatMan Bot", PreferencesHelper.getUserFirebaseKey(context), Calendar.getInstance().getTime(), "Halo! Selamat datang di ChatMan");
String botKey = FirebaseHelper.dbMessage.push().getKey();
......
......@@ -223,7 +223,7 @@ public class HomeFragment extends Fragment {
for (DataSnapshot ds : userSnapshot.getChildren()) {
String instanceId = (String) ds.getValue();
Log.d(TAG, "onDataChange: instance id " + instanceId);
if (!instanceId.equals(PreferencesHelper.getToken(getContext()))) {
if (!instanceId.equals(PreferencesHelper.getToken(getActivity()))) {
Log.d(TAG, "onDataChange: user found");
Log.d(TAG, "onDataChange: instance id 2 " + instanceId);
FirebaseDatabase.getInstance().getReference().child("user").orderByChild("key").limitToFirst(1)
......
......@@ -38,10 +38,9 @@
<android.support.v7.widget.RecyclerView
android:id="@+id/chat_rv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toTopOf="@+id/constraintLayout"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
......
......@@ -9,20 +9,21 @@
<android.support.v7.widget.RecyclerView
android:id="@+id/chat_bot_room_rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="56dp"
app:layout_constraintTop_toTopOf="parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/constraintLayout3"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent">
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
</android.support.v7.widget.RecyclerView>
<android.support.constraint.ConstraintLayout
android:id="@+id/constraintLayout3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="56dp"
app:layout_constraintBottom_toBottomOf="parent"
android:orientation="horizontal">
android:orientation="horizontal"
app:layout_constraintBottom_toBottomOf="parent">
<EditText
android:id="@+id/chat_bot_room_et"
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment