From 2f2be2f78519961c8a5c44c0b72a365154d6e9a4 Mon Sep 17 00:00:00 2001 From: Ilham Firdausi Putra <ilhamfputra31@gmail.com> Date: Sun, 24 Feb 2019 17:48:09 +0700 Subject: [PATCH] make chatroom display start from the bottom and fix bot chatroom sender&receiver id --- android/.idea/misc.xml | 2 +- .../main/java/com/chatman/activity/ChatRoomActivity.java | 3 ++- .../src/main/java/com/chatman/fragment/BotFragment.java | 9 +++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/android/.idea/misc.xml b/android/.idea/misc.xml index 37a7509..9fdea7e 100644 --- a/android/.idea/misc.xml +++ b/android/.idea/misc.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8 (1)" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/build/classes" /> </component> <component name="ProjectType"> diff --git a/android/app/src/main/java/com/chatman/activity/ChatRoomActivity.java b/android/app/src/main/java/com/chatman/activity/ChatRoomActivity.java index 08d8d83..eef29a1 100644 --- a/android/app/src/main/java/com/chatman/activity/ChatRoomActivity.java +++ b/android/app/src/main/java/com/chatman/activity/ChatRoomActivity.java @@ -87,7 +87,7 @@ public class ChatRoomActivity extends AppCompatActivity { chatRv.setLayoutManager(linearLayoutManager); adapter = new ChatAdapter(chatList); chatRv.setAdapter(adapter); - + chatRv.scrollToPosition(chatList.size() - 1); initializeListener(); } @@ -138,6 +138,7 @@ public class ChatRoomActivity extends AppCompatActivity { public void onDataChange(@NonNull DataSnapshot dataSnapshot) { chatList.add(dataSnapshot.getValue(Chat.class)); adapter.notifyDataSetChanged(); + chatRv.scrollToPosition(chatList.size() - 1); } @Override diff --git a/android/app/src/main/java/com/chatman/fragment/BotFragment.java b/android/app/src/main/java/com/chatman/fragment/BotFragment.java index 6c1ce4f..3511b4b 100644 --- a/android/app/src/main/java/com/chatman/fragment/BotFragment.java +++ b/android/app/src/main/java/com/chatman/fragment/BotFragment.java @@ -47,7 +47,7 @@ public class BotFragment extends Fragment { private RecyclerView recycler; private ChatAdapter adapter; private List<Chat> chatList; - private static final String BOT_KEY = "BOT_KEY"; + private static final String BOT_TOKEN = "BOT_TOKEN"; public BotFragment() { // Required empty public constructor @@ -79,12 +79,12 @@ 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.getToken(context), PreferencesHelper.getUserName(context), BOT_KEY, Calendar.getInstance().getTime(), message.getText().toString()); + Chat sendMessage = new Chat(PreferencesHelper.getToken(context), PreferencesHelper.getUserName(context), BOT_TOKEN, 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"); + Chat botMessage = new Chat(BOT_TOKEN, "ChatMan Bot", PreferencesHelper.getToken(context), Calendar.getInstance().getTime(), "Halo! Selamat datang di ChatMan"); String botKey = FirebaseHelper.dbMessage.push().getKey(); FirebaseHelper.dbMessage.child(botKey).setValue(botMessage); @@ -113,6 +113,7 @@ public class BotFragment extends Fragment { public void onDataChange(@NonNull DataSnapshot dataSnapshot) { getAllChat(dataSnapshot); adapter.notifyDataSetChanged(); + recycler.scrollToPosition(chatList.size() - 1); } @Override @@ -125,7 +126,7 @@ public class BotFragment extends Fragment { private void getAllChat(DataSnapshot dataSnapshot) { chatList = new ArrayList<>(); for (DataSnapshot ds : dataSnapshot.getChildren()) { - if (ds.getValue(Chat.class).getIdSender().equals(PreferencesHelper.getUserFirebaseKey(context)) || ds.getValue(Chat.class).getIdReceiver().equals(PreferencesHelper.getUserFirebaseKey(context))) { + if ( (ds.getValue(Chat.class).getIdSender().equals(PreferencesHelper.getToken(context)) && ds.getValue(Chat.class).getIdReceiver().equals(BOT_TOKEN)) || (ds.getValue(Chat.class).getIdReceiver().equals(PreferencesHelper.getToken(context)) && ds.getValue(Chat.class).getIdSender().equals(BOT_TOKEN))) { chatList.add(ds.getValue(Chat.class)); } } -- GitLab