| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package com.knacki.mimou.sms;
- import android.content.Context;
- import android.telephony.PhoneNumberUtils;
- import com.knacki.mimou.bridge.JSONObjifiable;
- import org.json.JSONArray;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.util.ArrayList;
- /**
- * Created by thibal on 1/5/18.
- */
- public class Conversation implements JSONObjifiable{
- private final String address;
- private int messageCount = 0;
- private int unreadCount = 0;
- private long created = Long.MAX_VALUE;
- private ArrayList<String> members = new ArrayList<>();
- private Sms lastSms = null;
- private Sms firstUnread = null;
- public Conversation(String address) {
- this.address = address;
- }
- public Conversation addMessage(Context c, Sms sms) {
- messageCount++;
- if (lastSms == null || lastSms.getDate() < sms.getDate()) {
- lastSms = sms;
- }
- if (!sms.isRead()) {
- if (firstUnread == null || firstUnread.getDate() > sms.getDate())
- firstUnread = sms;
- unreadCount++;
- }
- boolean containsMember = false;
- for (String i: members) {
- if (PhoneNumberUtils.compare(c, i, sms.getAddress())) {
- containsMember = true;
- break;
- }
- }
- if (!containsMember) {
- members.add(sms.getAddress());
- }
- created = Math.min(created, sms.getDate());
- return this;
- }
- public String getAddress() {
- return address;
- }
- @Override
- public JSONObject toJSON() throws JSONException {
- JSONObject obj = new JSONObject();
- obj.put("created", created);
- obj.put("id", address);
- obj.put("is_archived", false);
- obj.put("is_member", true);
- JSONArray membersArr = new JSONArray();
- for (String i: members)
- membersArr.put(i);
- obj.put("members", membersArr);
- obj.put("is_private", true);
- obj.put("messageCount", messageCount);
- obj.put("name", "address"); // FIXME
- if (lastSms != null)
- obj.put("last_msg", lastSms.getDate());
- if (unreadCount > 0)
- obj.put("last_read", 1); // FIXME
- return obj;
- }
- }
|