mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-25 03:09:05 +00:00
Support for disappearing messages
// FREEBIE
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
package org.thoughtcrime.securesms.recipients;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.text.TextUtils;
|
||||
|
||||
@@ -31,6 +32,8 @@ import java.util.StringTokenizer;
|
||||
|
||||
public class RecipientFactory {
|
||||
|
||||
public static final String RECIPIENT_CLEAR_ACTION = "org.thoughtcrime.securesms.database.RecipientFactory.CLEAR";
|
||||
|
||||
private static final RecipientProvider provider = new RecipientProvider();
|
||||
|
||||
public static Recipients getRecipientsForIds(Context context, String recipientIds, boolean asynchronous) {
|
||||
@@ -133,8 +136,9 @@ public class RecipientFactory {
|
||||
return value;
|
||||
}
|
||||
|
||||
public static void clearCache() {
|
||||
public static void clearCache(Context context) {
|
||||
provider.clearCache();
|
||||
context.sendBroadcast(new Intent(RECIPIENT_CLEAR_ACTION));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -51,11 +51,12 @@ public class Recipients implements Iterable<Recipient>, RecipientModifiedListene
|
||||
private final Set<RecipientsModifiedListener> listeners = Collections.newSetFromMap(new WeakHashMap<RecipientsModifiedListener, Boolean>());
|
||||
private final List<Recipient> recipients;
|
||||
|
||||
private Uri ringtone = null;
|
||||
private long mutedUntil = 0;
|
||||
private boolean blocked = false;
|
||||
private VibrateState vibrate = VibrateState.DEFAULT;
|
||||
private boolean stale = false;
|
||||
private Uri ringtone = null;
|
||||
private long mutedUntil = 0;
|
||||
private boolean blocked = false;
|
||||
private VibrateState vibrate = VibrateState.DEFAULT;
|
||||
private int expireMessages = 0;
|
||||
private boolean stale = false;
|
||||
|
||||
Recipients() {
|
||||
this(new LinkedList<Recipient>(), null);
|
||||
@@ -65,10 +66,11 @@ public class Recipients implements Iterable<Recipient>, RecipientModifiedListene
|
||||
this.recipients = recipients;
|
||||
|
||||
if (preferences != null) {
|
||||
ringtone = preferences.getRingtone();
|
||||
mutedUntil = preferences.getMuteUntil();
|
||||
vibrate = preferences.getVibrateState();
|
||||
blocked = preferences.isBlocked();
|
||||
ringtone = preferences.getRingtone();
|
||||
mutedUntil = preferences.getMuteUntil();
|
||||
vibrate = preferences.getVibrateState();
|
||||
blocked = preferences.isBlocked();
|
||||
expireMessages = preferences.getExpireMessages();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -79,10 +81,11 @@ public class Recipients implements Iterable<Recipient>, RecipientModifiedListene
|
||||
this.recipients = recipients;
|
||||
|
||||
if (stale != null) {
|
||||
ringtone = stale.ringtone;
|
||||
mutedUntil = stale.mutedUntil;
|
||||
vibrate = stale.vibrate;
|
||||
blocked = stale.blocked;
|
||||
ringtone = stale.ringtone;
|
||||
mutedUntil = stale.mutedUntil;
|
||||
vibrate = stale.vibrate;
|
||||
blocked = stale.blocked;
|
||||
expireMessages = stale.expireMessages;
|
||||
}
|
||||
|
||||
preferences.addListener(new FutureTaskListener<RecipientsPreferences>() {
|
||||
@@ -93,10 +96,11 @@ public class Recipients implements Iterable<Recipient>, RecipientModifiedListene
|
||||
Set<RecipientsModifiedListener> localListeners;
|
||||
|
||||
synchronized (Recipients.this) {
|
||||
ringtone = result.getRingtone();
|
||||
mutedUntil = result.getMuteUntil();
|
||||
vibrate = result.getVibrateState();
|
||||
blocked = result.isBlocked();
|
||||
ringtone = result.getRingtone();
|
||||
mutedUntil = result.getMuteUntil();
|
||||
vibrate = result.getVibrateState();
|
||||
blocked = result.isBlocked();
|
||||
expireMessages = result.getExpireMessages();
|
||||
|
||||
localListeners = new HashSet<>(listeners);
|
||||
}
|
||||
@@ -178,6 +182,18 @@ public class Recipients implements Iterable<Recipient>, RecipientModifiedListene
|
||||
else if (!isEmpty()) recipients.get(0).setColor(color);
|
||||
}
|
||||
|
||||
public synchronized int getExpireMessages() {
|
||||
return expireMessages;
|
||||
}
|
||||
|
||||
public void setExpireMessages(int expireMessages) {
|
||||
synchronized (this) {
|
||||
this.expireMessages = expireMessages;
|
||||
}
|
||||
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
public synchronized void addListener(RecipientsModifiedListener listener) {
|
||||
if (listeners.isEmpty()) {
|
||||
for (Recipient recipient : recipients) {
|
||||
|
||||
Reference in New Issue
Block a user