]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/storage/contacts/JsonContactsStore.java
86514bc16e14aa2968a951d7f01c548f6c5ca007
[signal-cli] / src / main / java / org / asamk / signal / storage / contacts / JsonContactsStore.java
1 package org.asamk.signal.storage.contacts;
2
3 import com.fasterxml.jackson.annotation.JsonProperty;
4
5 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
6
7 import java.util.ArrayList;
8 import java.util.List;
9
10 public class JsonContactsStore {
11
12 @JsonProperty("contacts")
13 private List<ContactInfo> contacts = new ArrayList<>();
14
15 public void updateContact(ContactInfo contact) {
16 final SignalServiceAddress contactAddress = contact.getAddress();
17 for (int i = 0; i < contacts.size(); i++) {
18 if (contacts.get(i).getAddress().matches(contactAddress)) {
19 contacts.set(i, contact);
20 return;
21 }
22 }
23
24 contacts.add(contact);
25 }
26
27 public ContactInfo getContact(SignalServiceAddress address) {
28 for (ContactInfo contact : contacts) {
29 if (contact.getAddress().matches(address)) {
30 return contact;
31 }
32 }
33 return null;
34 }
35
36 public List<ContactInfo> getContacts() {
37 return new ArrayList<>(contacts);
38 }
39
40 /**
41 * Remove all contacts from the store
42 */
43 public void clear() {
44 contacts.clear();
45 }
46 }