aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities/Contact.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-11-23 08:58:55 +0100
committerChristian Schneppe <christian@pix-art.de>2018-11-23 08:58:55 +0100
commitfce2177268b9bcdf3c8bccea161450db63d651a8 (patch)
treeb6299a237c12f76eb4e22360c57b9305b7081f1f /src/main/java/de/pixart/messenger/entities/Contact.java
parent35d5d97544cd6abc45809a19324898dfbf457467 (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.java24
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;
}
}