@@ -46,7 +46,8 @@ public class FirestoreChatActivity extends AppCompatActivity
46
46
private static final CollectionReference sChatCollection =
47
47
FirebaseFirestore .getInstance ().collection ("chats" );
48
48
/** 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 );
50
51
51
52
static {
52
53
FirebaseFirestore .setLoggingEnabled (true );
@@ -70,8 +71,27 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
70
71
setContentView (R .layout .activity_chat );
71
72
ButterKnife .bind (this );
72
73
74
+ LinearLayoutManager manager = new LinearLayoutManager (this );
75
+ manager .setReverseLayout (true );
76
+ manager .setStackFromEnd (true );
77
+
73
78
mRecyclerView .setHasFixedSize (true );
74
- mRecyclerView .setLayoutManager (new LinearLayoutManager (this ));
79
+ mRecyclerView .setLayoutManager (manager );
80
+
81
+ mRecyclerView .addOnLayoutChangeListener (new View .OnLayoutChangeListener () {
82
+ @ Override
83
+ public void onLayoutChange (View view , int left , int top , int right , int bottom ,
84
+ int oldLeft , int oldTop , int oldRight , int oldBottom ) {
85
+ if (bottom < oldBottom ) {
86
+ mRecyclerView .postDelayed (new Runnable () {
87
+ @ Override
88
+ public void run () {
89
+ mRecyclerView .smoothScrollToPosition (0 );
90
+ }
91
+ }, 100 );
92
+ }
93
+ }
94
+ });
75
95
76
96
ImeHelper .setImeOnDoneListener (mMessageEdit , new ImeHelper .DonePressedListener () {
77
97
@ Override
@@ -118,7 +138,7 @@ private void attachRecyclerViewAdapter() {
118
138
adapter .registerAdapterDataObserver (new RecyclerView .AdapterDataObserver () {
119
139
@ Override
120
140
public void onItemRangeInserted (int positionStart , int itemCount ) {
121
- mRecyclerView .smoothScrollToPosition (adapter . getItemCount () );
141
+ mRecyclerView .smoothScrollToPosition (0 );
122
142
}
123
143
});
124
144
0 commit comments