Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1. firebaseConvAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
  2. @Override
  3. public void onItemRangeInserted(int positionStart, int itemCount) {
  4. super.onItemRangeInserted(positionStart, itemCount);
  5.  
  6. int chatMessage = firebaseConvAdapter.getItemCount();
  7. int lastVisiblePosition = linearLayoutManager.findLastCompletelyVisibleItemPosition();
  8.  
  9. if (lastVisiblePosition == -1 ||
  10. (positionStart >= (chatMessage)&& lastVisiblePosition==(positionStart))){
  11.  
  12. mConvList.scrollToPosition(positionStart);
  13.  
  14. }
  15. }
  16. });
  17. mConvList.setAdapter(firebaseConvAdapter);
  18.  
  19. }
  20.  
  21. @Override
  22. public void onStart() {
  23. super.onStart();
  24.  
  25. Query conversationQuery = mConvDatabase.orderByChild("timestamp");
  26.  
  27.  
  28. FirebaseRecyclerAdapter<Conv, ConvViewHolder> firebaseConvAdapter = new FirebaseRecyclerAdapter<Conv, ConvViewHolder>(
  29. Conv.class,
  30. R.layout.users_layout,
  31. ConvViewHolder.class,
  32. conversationQuery
  33. ) {
  34. @Override
  35. protected void populateViewHolder(final ConvViewHolder convViewHolder, final Conv conv, int i) {
  36.  
  37.  
  38. final String list_user_id = getRef(i).getKey();
  39.  
  40. // Query MessageQuery = mMessageDatabase.child(list_user_id);
  41.  
  42.  
  43. Query lastMessageQuery = mMessageDatabase.child(list_user_id).limitToLast(1);
  44.  
  45. lastMessageQuery.addChildEventListener(new ChildEventListener() {
  46. @Override
  47. public void onChildAdded(DataSnapshot dataSnapshot, String s) {
  48.  
  49. String data = dataSnapshot.child("message").getValue().toString();
  50. String type_image = dataSnapshot.child("type").getValue().toString();
  51.  
  52. boolean seen = Boolean.parseBoolean(dataSnapshot.getKey());
  53.  
  54.  
  55. if (type_image.equals("image")){
  56. convViewHolder.setMessage("image",conv.isSeen());
  57. }else {
  58.  
  59. convViewHolder.setMessage(data, conv.isSeen());
  60.  
  61. }}
  62.  
  63. @Override
  64. public void onChildChanged(DataSnapshot dataSnapshot, String s) {
  65.  
  66. }
  67.  
  68. @Override
  69. public void onChildRemoved(DataSnapshot dataSnapshot) {
  70.  
  71. }
  72.  
  73. @Override
  74. public void onChildMoved(DataSnapshot dataSnapshot, String s) {
  75.  
  76. }
  77.  
  78. @Override
  79. public void onCancelled(DatabaseError databaseError) {
  80.  
  81. }
  82. });
  83.  
  84. mUsersDatabase.child(list_user_id).addValueEventListener(new ValueEventListener() {
  85. @Override
  86. public void onDataChange(DataSnapshot dataSnapshot) {
  87.  
  88. final String userName = dataSnapshot.child("name").getValue().toString();
  89. String userThumb = dataSnapshot.child("thumb_image").getValue().toString();
  90.  
  91. if(dataSnapshot.hasChild("online")) {
  92.  
  93. String userOnline = dataSnapshot.child("online").getValue().toString();
  94. convViewHolder.setUserOnline(userOnline, getActivity());
  95.  
  96. }
  97.  
  98. convViewHolder.setName(userName);
  99. convViewHolder.setUserImage(userThumb, getContext());
  100.  
  101. convViewHolder.mView.setOnClickListener(new View.OnClickListener() {
  102. @Override
  103. public void onClick(View view) {
  104.  
  105.  
  106. Intent chatIntent = new Intent(getContext(), ChatActivity.class);
  107. chatIntent.putExtra("user_id", list_user_id);
  108. chatIntent.putExtra("user_name", userName);
  109. startActivity(chatIntent);
  110.  
  111. }
  112. });
  113.  
  114. }
  115.  
  116. @Override
  117. public void onCancelled(DatabaseError databaseError) {
  118.  
  119. }
  120. });
  121.  
  122. }
  123. };
  124.  
  125. firebaseConvAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
  126. @Override
  127. public void onItemRangeInserted(int positionStart, int itemCount) {
  128. super.onItemRangeInserted(positionStart, itemCount);
  129.  
  130. int chatMessage = firebaseConvAdapter.getItemCount();
  131. int lastVisiblePosition = linearLayoutManager.findLastCompletelyVisibleItemPosition();
  132.  
  133. if (lastVisiblePosition == -1 ||
  134. (positionStart >= (chatMessage)&& lastVisiblePosition==(positionStart))){
  135.  
  136. mConvList.scrollToPosition(positionStart);
  137.  
  138. }
  139. }
  140. });
  141. mConvList.setAdapter(firebaseConvAdapter);
  142.  
  143. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement