Sort chatrooms in chatrooms list

This commit is contained in:
Sylvain Berfini 2017-12-07 12:50:48 +01:00
parent 4fa623033d
commit e760604c46

View file

@ -26,9 +26,7 @@ import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.TextView;
@ -41,11 +39,14 @@ import org.linphone.contacts.LinphoneContact;
import org.linphone.core.Address;
import org.linphone.core.ChatMessage;
import org.linphone.core.ChatRoom;
import org.linphone.core.EventLog;
import org.linphone.ui.ListSelectionAdapter;
import org.linphone.ui.ListSelectionHelper;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class ChatRoomsAdapter extends ListSelectionAdapter {
@ -84,6 +85,18 @@ public class ChatRoomsAdapter extends ListSelectionAdapter {
public void refresh() {
mRooms = new ArrayList<>(Arrays.asList(LinphoneManager.getLc().getChatRooms()));
Collections.sort(mRooms, new Comparator<ChatRoom>() {
public int compare(ChatRoom cr1, ChatRoom cr2) {
EventLog cr1Logs[] = cr1.getHistoryEvents(1);
EventLog cr2Logs[] = cr2.getHistoryEvents(1);
if (cr1Logs.length <= 0) return -1;
if (cr2Logs.length <= 0) return 1;
long timeDiff = cr1Logs[0].getCreationTime() - cr2Logs[0].getCreationTime();
if (timeDiff > 0) return 1;
else if (timeDiff == 0) return 0;
return 1;
}
});
notifyDataSetChanged();
}