@@ -46,7 +46,8 @@ public class FirestoreChatActivity extends AppCompatActivity
4646 private static final CollectionReference sChatCollection =
4747 FirebaseFirestore .getInstance ().collection ("chats" );
4848 /** Get the last 50 chat messages ordered by timestamp . */
49- private static final Query sChatQuery = sChatCollection .orderBy ("timestamp" ).limit (50 );
49+ private static final Query sChatQuery =
50+ sChatCollection .orderBy ("timestamp" , Query .Direction .DESCENDING ).limit (50 );
5051
5152 static {
5253 FirebaseFirestore .setLoggingEnabled (true );
@@ -70,8 +71,12 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
7071 setContentView (R .layout .activity_chat );
7172 ButterKnife .bind (this );
7273
74+ LinearLayoutManager manager = new LinearLayoutManager (this );
75+ manager .setReverseLayout (true );
76+ manager .setStackFromEnd (true );
77+
7378 mRecyclerView .setHasFixedSize (true );
74- mRecyclerView .setLayoutManager (new LinearLayoutManager ( this ) );
79+ mRecyclerView .setLayoutManager (manager );
7580
7681 ImeHelper .setImeOnDoneListener (mMessageEdit , new ImeHelper .DonePressedListener () {
7782 @ Override
@@ -118,7 +123,7 @@ private void attachRecyclerViewAdapter() {
118123 adapter .registerAdapterDataObserver (new RecyclerView .AdapterDataObserver () {
119124 @ Override
120125 public void onItemRangeInserted (int positionStart , int itemCount ) {
121- mRecyclerView .smoothScrollToPosition (adapter . getItemCount () );
126+ mRecyclerView .smoothScrollToPosition (0 );
122127 }
123128 });
124129
0 commit comments