Преглед на файлове

Add support for last read message & fix pinned magic

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic преди 5 години
родител
ревизия
67e9405040

+ 10 - 5
app/src/main/java/com/nextcloud/talk/controllers/ChatController.java

@@ -992,13 +992,20 @@ public class ChatController extends BaseController implements MessagesListAdapte
             return;
         }
 
+        Map<String, Integer> fieldMap = new HashMap<>();
+        fieldMap.put("includeLastKnown", 0);
+
         if (lookIntoFuture > 0) {
             lookingIntoFuture = true;
+        } else if (isFirstMessagesProcessing) {
+            globalLastKnownFutureMessageId = currentConversation.getLastReadMessage();
+            globalLastKnownPastMessageId = currentConversation.getLastReadMessage();
+            fieldMap.put("includeLastKnown", 1);
         }
 
-        Map<String, Integer> fieldMap = new HashMap<>();
         fieldMap.put("lookIntoFuture", lookIntoFuture);
-        fieldMap.put("limit", 25);
+        fieldMap.put("limit", 10);
+        fieldMap.put("setReadMarker", 1);
 
         int lastKnown;
         if (lookIntoFuture > 0) {
@@ -1007,9 +1014,7 @@ public class ChatController extends BaseController implements MessagesListAdapte
             lastKnown = globalLastKnownPastMessageId;
         }
 
-        if (lastKnown != -1) {
-            fieldMap.put("lastKnownMessageId", lastKnown);
-        }
+        fieldMap.put("lastKnownMessageId", lastKnown);
 
         if (!wasDetached) {
             if (lookIntoFuture > 0) {

+ 2 - 1
app/src/main/java/com/nextcloud/talk/models/json/conversations/Conversation.java

@@ -92,7 +92,8 @@ public class Conversation {
     public LobbyState lobbyState;
     @JsonField(name = "lobbyTimer")
     public Long lobbyTimer;
-
+    @JsonField(name = "lastReadMessage")
+    public int lastReadMessage;
 
     public boolean isPublic() {
         return (ConversationType.ROOM_PUBLIC_CALL.equals(type));

+ 8 - 7
app/src/main/res/layout/rv_item_conversation_with_last_message.xml

@@ -41,6 +41,14 @@
             android:layout_centerVertical="true"
             android:layout_marginEnd="@dimen/margin_between_elements">
 
+            <com.facebook.drawee.view.SimpleDraweeView
+                android:id="@id/dialogAvatar"
+                android:layout_width="@dimen/small_item_height"
+                android:layout_height="@dimen/small_item_height"
+                android:contentDescription="@null"
+                app:roundAsCircle="true"
+                tools:src="@drawable/ic_call_black_24dp" />
+
             <ImageView
                 android:id="@+id/passwordProtectedRoomImageView"
                 android:layout_width="@dimen/margin_between_elements"
@@ -55,13 +63,6 @@
                 android:layout_gravity="top|end"
                 android:background="@drawable/shape_favorite_bubble" />
 
-            <com.facebook.drawee.view.SimpleDraweeView
-                android:id="@id/dialogAvatar"
-                android:layout_width="@dimen/small_item_height"
-                android:layout_height="@dimen/small_item_height"
-                android:contentDescription="@null"
-                app:roundAsCircle="true"
-                tools:src="@drawable/ic_call_black_24dp" />
         </FrameLayout>
 
         <RelativeLayout