diff options
author | Christian Schneppe <christian@pix-art.de> | 2018-11-23 08:58:55 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2018-11-23 08:58:55 +0100 |
commit | fce2177268b9bcdf3c8bccea161450db63d651a8 (patch) | |
tree | b6299a237c12f76eb4e22360c57b9305b7081f1f /src/main/java/de/pixart/messenger/entities/Contact.java | |
parent | 35d5d97544cd6abc45809a19324898dfbf457467 (diff) |
basic phone number sync
Diffstat (limited to 'src/main/java/de/pixart/messenger/entities/Contact.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/entities/Contact.java | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/Contact.java b/src/main/java/de/pixart/messenger/entities/Contact.java index fad4806de..e428362c6 100644 --- a/src/main/java/de/pixart/messenger/entities/Contact.java +++ b/src/main/java/de/pixart/messenger/entities/Contact.java @@ -20,6 +20,7 @@ import java.util.Locale; import de.pixart.messenger.Config; import de.pixart.messenger.R; +import de.pixart.messenger.android.AbstractPhoneContact; import de.pixart.messenger.utils.JidHelper; import de.pixart.messenger.utils.UIHelper; import de.pixart.messenger.xml.Element; @@ -579,6 +580,27 @@ public class Contact implements ListItem, Blockable { return serverName; } + public synchronized boolean setPhoneContact(AbstractPhoneContact phoneContact) { + setOption(getOption(phoneContact.getClass())); + setSystemAccount(phoneContact.getLookupUri()); + boolean changed = setSystemName(phoneContact.getDisplayName()); + changed |= setPhotoUri(phoneContact.getPhotoUri()); + return changed; + } + public synchronized boolean unsetPhoneContact(Class<?extends AbstractPhoneContact> clazz) { + resetOption(getOption(clazz)); + boolean changed = false; + if (!getOption(Options.SYNCED_VIA_ADDRESSBOOK) && !getOption(Options.SYNCED_VIA_OTHER)) { + setSystemAccount(null); + changed |= setPhotoUri(null); + changed |= setSystemName(null); + } + return changed; + } + public static int getOption(Class<? extends AbstractPhoneContact> clazz) { + return Options.SYNCED_VIA_OTHER; + } + public final class Options { public static final int TO = 0; public static final int FROM = 1; @@ -588,5 +610,7 @@ public class Contact implements ListItem, Blockable { public static final int PENDING_SUBSCRIPTION_REQUEST = 5; public static final int DIRTY_PUSH = 6; public static final int DIRTY_DELETE = 7; + private static final int SYNCED_VIA_ADDRESSBOOK = 8; + private static final int SYNCED_VIA_OTHER = 9; } } |