kopia lustrzana https://github.com/ryukoposting/Signal-Android
Move ViewOnceMessageManager and ExpiringMessageManager to AppDependencies.
rodzic
0020c7c6dc
commit
670aed2074
|
@ -95,9 +95,7 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr
|
|||
|
||||
private static final String TAG = Log.tag(ApplicationContext.class);
|
||||
|
||||
private ExpiringMessageManager expiringMessageManager;
|
||||
private ViewOnceMessageManager viewOnceMessageManager;
|
||||
private PersistentLogger persistentLogger;
|
||||
private PersistentLogger persistentLogger;
|
||||
|
||||
public static ApplicationContext getInstance(Context context) {
|
||||
return (ApplicationContext)context.getApplicationContext();
|
||||
|
@ -194,17 +192,6 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr
|
|||
ApplicationDependencies.getShakeToReport().disable();
|
||||
}
|
||||
|
||||
public ExpiringMessageManager getExpiringMessageManager() {
|
||||
if (expiringMessageManager == null) {
|
||||
initializeExpiringMessageManager();
|
||||
}
|
||||
return expiringMessageManager;
|
||||
}
|
||||
|
||||
public ViewOnceMessageManager getViewOnceMessageManager() {
|
||||
return viewOnceMessageManager;
|
||||
}
|
||||
|
||||
public PersistentLogger getPersistentLogger() {
|
||||
return persistentLogger;
|
||||
}
|
||||
|
@ -299,11 +286,11 @@ public class ApplicationContext extends MultiDexApplication implements AppForegr
|
|||
}
|
||||
|
||||
private void initializeExpiringMessageManager() {
|
||||
this.expiringMessageManager = new ExpiringMessageManager(this);
|
||||
ApplicationDependencies.getExpiringMessageManager().checkSchedule();
|
||||
}
|
||||
|
||||
private void initializeRevealableMessageManager() {
|
||||
this.viewOnceMessageManager = new ViewOnceMessageManager(this);
|
||||
ApplicationDependencies.getViewOnceMessageManager().scheduleIfNecessary();
|
||||
}
|
||||
|
||||
private void initializePeriodicTasks() {
|
||||
|
|
|
@ -26,6 +26,7 @@ import org.thoughtcrime.securesms.R;
|
|||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||
import org.thoughtcrime.securesms.database.model.MessageRecord;
|
||||
import org.thoughtcrime.securesms.database.model.MmsMessageRecord;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.permissions.Permissions;
|
||||
import org.thoughtcrime.securesms.service.ExpiringMessageManager;
|
||||
import org.thoughtcrime.securesms.util.DateUtils;
|
||||
|
@ -197,11 +198,11 @@ public class ConversationItemFooter extends LinearLayout {
|
|||
this.timerView.startAnimation();
|
||||
|
||||
if (messageRecord.getExpireStarted() + messageRecord.getExpiresIn() <= System.currentTimeMillis()) {
|
||||
ApplicationContext.getInstance(getContext()).getExpiringMessageManager().checkSchedule();
|
||||
ApplicationDependencies.getExpiringMessageManager().checkSchedule();
|
||||
}
|
||||
} else if (!messageRecord.isOutgoing() && !messageRecord.isMediaPending()) {
|
||||
SignalExecutors.BOUNDED.execute(() -> {
|
||||
ExpiringMessageManager expirationManager = ApplicationContext.getInstance(getContext()).getExpiringMessageManager();
|
||||
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
|
||||
long id = messageRecord.getId();
|
||||
boolean mms = messageRecord.isMms();
|
||||
|
||||
|
|
|
@ -1382,9 +1382,7 @@ public class ConversationFragment extends LoggingFragment {
|
|||
|
||||
DatabaseFactory.getAttachmentDatabase(requireContext()).deleteAttachmentFilesForViewOnceMessage(messageRecord.getId());
|
||||
|
||||
ApplicationContext.getInstance(requireContext())
|
||||
.getViewOnceMessageManager()
|
||||
.scheduleIfNecessary();
|
||||
ApplicationDependencies.getViewOnceMessageManager().scheduleIfNecessary();
|
||||
|
||||
ApplicationDependencies.getJobManager().add(new MultiDeviceViewOnceOpenJob(new MessageDatabase.SyncMessageId(messageRecord.getIndividualRecipient().getId(), messageRecord.getDateSent())));
|
||||
|
||||
|
|
|
@ -23,6 +23,8 @@ import org.thoughtcrime.securesms.notifications.MessageNotifier;
|
|||
import org.thoughtcrime.securesms.payments.Payments;
|
||||
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
|
||||
import org.thoughtcrime.securesms.recipients.LiveRecipientCache;
|
||||
import org.thoughtcrime.securesms.revealable.ViewOnceMessageManager;
|
||||
import org.thoughtcrime.securesms.service.ExpiringMessageManager;
|
||||
import org.thoughtcrime.securesms.service.TrimThreadsByDateManager;
|
||||
import org.thoughtcrime.securesms.service.webrtc.SignalCallManager;
|
||||
import org.thoughtcrime.securesms.shakereport.ShakeToReport;
|
||||
|
@ -75,6 +77,8 @@ public class ApplicationDependencies {
|
|||
private static volatile TypingStatusSender typingStatusSender;
|
||||
private static volatile DatabaseObserver databaseObserver;
|
||||
private static volatile TrimThreadsByDateManager trimThreadsByDateManager;
|
||||
private static volatile ViewOnceMessageManager viewOnceMessageManager;
|
||||
private static volatile ExpiringMessageManager expiringMessageManager;
|
||||
private static volatile Payments payments;
|
||||
private static volatile ShakeToReport shakeToReport;
|
||||
private static volatile SignalCallManager signalCallManager;
|
||||
|
@ -341,9 +345,37 @@ public class ApplicationDependencies {
|
|||
return trimThreadsByDateManager;
|
||||
}
|
||||
|
||||
public static @NonNull ViewOnceMessageManager getViewOnceMessageManager() {
|
||||
if (viewOnceMessageManager == null) {
|
||||
synchronized (LOCK) {
|
||||
if (viewOnceMessageManager == null) {
|
||||
viewOnceMessageManager = provider.provideViewOnceMessageManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return viewOnceMessageManager;
|
||||
}
|
||||
|
||||
public static @NonNull ExpiringMessageManager getExpiringMessageManager() {
|
||||
if (expiringMessageManager == null) {
|
||||
synchronized (LOCK) {
|
||||
if (expiringMessageManager == null) {
|
||||
expiringMessageManager = provider.provideExpiringMessageManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return expiringMessageManager;
|
||||
}
|
||||
|
||||
public static TypingStatusRepository getTypingStatusRepository() {
|
||||
if (typingStatusRepository == null) {
|
||||
typingStatusRepository = provider.provideTypingStatusRepository();
|
||||
synchronized (LOCK) {
|
||||
if (typingStatusRepository == null) {
|
||||
typingStatusRepository = provider.provideTypingStatusRepository();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return typingStatusRepository;
|
||||
|
@ -351,7 +383,11 @@ public class ApplicationDependencies {
|
|||
|
||||
public static TypingStatusSender getTypingStatusSender() {
|
||||
if (typingStatusSender == null) {
|
||||
typingStatusSender = provider.provideTypingStatusSender();
|
||||
synchronized (LOCK) {
|
||||
if (typingStatusSender == null) {
|
||||
typingStatusSender = provider.provideTypingStatusSender();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return typingStatusSender;
|
||||
|
@ -427,6 +463,8 @@ public class ApplicationDependencies {
|
|||
@NonNull MessageNotifier provideMessageNotifier();
|
||||
@NonNull IncomingMessageObserver provideIncomingMessageObserver();
|
||||
@NonNull TrimThreadsByDateManager provideTrimThreadsByDateManager();
|
||||
@NonNull ViewOnceMessageManager provideViewOnceMessageManager();
|
||||
@NonNull ExpiringMessageManager provideExpiringMessageManager();
|
||||
@NonNull TypingStatusRepository provideTypingStatusRepository();
|
||||
@NonNull TypingStatusSender provideTypingStatusSender();
|
||||
@NonNull DatabaseObserver provideDatabaseObserver();
|
||||
|
|
|
@ -42,6 +42,8 @@ import org.thoughtcrime.securesms.payments.Payments;
|
|||
import org.thoughtcrime.securesms.push.SecurityEventListener;
|
||||
import org.thoughtcrime.securesms.push.SignalServiceNetworkAccess;
|
||||
import org.thoughtcrime.securesms.recipients.LiveRecipientCache;
|
||||
import org.thoughtcrime.securesms.revealable.ViewOnceMessageManager;
|
||||
import org.thoughtcrime.securesms.service.ExpiringMessageManager;
|
||||
import org.thoughtcrime.securesms.service.TrimThreadsByDateManager;
|
||||
import org.thoughtcrime.securesms.service.webrtc.SignalCallManager;
|
||||
import org.thoughtcrime.securesms.shakereport.ShakeToReport;
|
||||
|
@ -196,6 +198,16 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr
|
|||
return new TrimThreadsByDateManager(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull ViewOnceMessageManager provideViewOnceMessageManager() {
|
||||
return new ViewOnceMessageManager(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull ExpiringMessageManager provideExpiringMessageManager() {
|
||||
return new ExpiringMessageManager(context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NonNull TypingStatusRepository provideTypingStatusRepository() {
|
||||
return new TypingStatusRepository();
|
||||
|
|
|
@ -236,9 +236,8 @@ public final class PushGroupSendJob extends PushSendJob {
|
|||
|
||||
if (message.getExpiresIn() > 0 && !message.isExpirationUpdate()) {
|
||||
database.markExpireStarted(messageId);
|
||||
ApplicationContext.getInstance(context)
|
||||
.getExpiringMessageManager()
|
||||
.scheduleDeletion(messageId, true, message.getExpiresIn());
|
||||
ApplicationDependencies.getExpiringMessageManager()
|
||||
.scheduleDeletion(messageId, true, message.getExpiresIn());
|
||||
}
|
||||
|
||||
if (message.isViewOnce()) {
|
||||
|
|
|
@ -107,7 +107,7 @@ public class PushMediaSendJob extends PushSendJob {
|
|||
public void onPushSend()
|
||||
throws IOException, MmsException, NoSuchMessageException, UndeliverableMessageException
|
||||
{
|
||||
ExpiringMessageManager expirationManager = ApplicationContext.getInstance(context).getExpiringMessageManager();
|
||||
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
|
||||
MessageDatabase database = DatabaseFactory.getMmsDatabase(context);
|
||||
OutgoingMediaMessage message = database.getOutgoingMessage(messageId);
|
||||
long threadId = database.getMessageRecord(messageId).getThreadId();
|
||||
|
|
|
@ -74,7 +74,7 @@ public class PushTextSendJob extends PushSendJob {
|
|||
|
||||
@Override
|
||||
public void onPushSend() throws IOException, NoSuchMessageException, UndeliverableMessageException {
|
||||
ExpiringMessageManager expirationManager = ApplicationContext.getInstance(context).getExpiringMessageManager();
|
||||
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
|
||||
MessageDatabase database = DatabaseFactory.getSmsDatabase(context);
|
||||
SmsMessageRecord record = database.getSmsMessage(messageId);
|
||||
|
||||
|
|
|
@ -992,15 +992,13 @@ public final class MessageContentProcessor {
|
|||
List<Pair<Long, Long>> expiringMedia = DatabaseFactory.getMmsDatabase(context).setTimestampRead(new SyncMessageId(Recipient.externalPush(context, readMessage.getSender()).getId(), readMessage.getTimestamp()), envelopeTimestamp);
|
||||
|
||||
for (Pair<Long, Long> expiringMessage : expiringText) {
|
||||
ApplicationContext.getInstance(context)
|
||||
.getExpiringMessageManager()
|
||||
.scheduleDeletion(expiringMessage.first(), false, envelopeTimestamp, expiringMessage.second());
|
||||
ApplicationDependencies.getExpiringMessageManager()
|
||||
.scheduleDeletion(expiringMessage.first(), false, envelopeTimestamp, expiringMessage.second());
|
||||
}
|
||||
|
||||
for (Pair<Long, Long> expiringMessage : expiringMedia) {
|
||||
ApplicationContext.getInstance(context)
|
||||
.getExpiringMessageManager()
|
||||
.scheduleDeletion(expiringMessage.first(), true, envelopeTimestamp, expiringMessage.second());
|
||||
ApplicationDependencies.getExpiringMessageManager()
|
||||
.scheduleDeletion(expiringMessage.first(), true, envelopeTimestamp, expiringMessage.second());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1094,7 +1092,7 @@ public final class MessageContentProcessor {
|
|||
ApplicationDependencies.getJobManager().add(new TrimThreadJob(insertResult.get().getThreadId()));
|
||||
|
||||
if (message.isViewOnce()) {
|
||||
ApplicationContext.getInstance(context).getViewOnceMessageManager().scheduleIfNecessary();
|
||||
ApplicationDependencies.getViewOnceMessageManager().scheduleIfNecessary();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1181,11 +1179,11 @@ public final class MessageContentProcessor {
|
|||
|
||||
if (message.getMessage().getExpiresInSeconds() > 0) {
|
||||
database.markExpireStarted(messageId, message.getExpirationStartTimestamp());
|
||||
ApplicationContext.getInstance(context)
|
||||
.getExpiringMessageManager()
|
||||
.scheduleDeletion(messageId, true,
|
||||
message.getExpirationStartTimestamp(),
|
||||
message.getMessage().getExpiresInSeconds() * 1000L);
|
||||
ApplicationDependencies.getExpiringMessageManager()
|
||||
.scheduleDeletion(messageId,
|
||||
true,
|
||||
message.getExpirationStartTimestamp(),
|
||||
message.getMessage().getExpiresInSeconds() * 1000L);
|
||||
}
|
||||
|
||||
if (recipients.isSelf()) {
|
||||
|
@ -1341,9 +1339,8 @@ public final class MessageContentProcessor {
|
|||
|
||||
if (expiresInMillis > 0) {
|
||||
database.markExpireStarted(messageId, message.getExpirationStartTimestamp());
|
||||
ApplicationContext.getInstance(context)
|
||||
.getExpiringMessageManager()
|
||||
.scheduleDeletion(messageId, isGroup, message.getExpirationStartTimestamp(), expiresInMillis);
|
||||
ApplicationDependencies.getExpiringMessageManager()
|
||||
.scheduleDeletion(messageId, isGroup, message.getExpirationStartTimestamp(), expiresInMillis);
|
||||
}
|
||||
|
||||
if (recipient.isSelf()) {
|
||||
|
|
|
@ -111,7 +111,7 @@ public class MarkReadReceiver extends BroadcastReceiver {
|
|||
}
|
||||
|
||||
if (smsExpirationInfo.size() + mmsExpirationInfo.size() > 0) {
|
||||
ExpiringMessageManager expirationManager = ApplicationContext.getInstance(context).getExpiringMessageManager();
|
||||
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
|
||||
|
||||
Stream.concat(Stream.of(smsExpirationInfo), Stream.of(mmsExpirationInfo))
|
||||
.forEach(info -> expirationManager.scheduleDeletion(info.getId(), info.isMms(), info.getExpiresIn()));
|
||||
|
|
|
@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.ApplicationContext;
|
|||
import org.thoughtcrime.securesms.database.AttachmentDatabase;
|
||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||
import org.thoughtcrime.securesms.database.MessageDatabase;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.service.TimedEventManager;
|
||||
|
||||
/**
|
||||
|
@ -79,7 +80,7 @@ public class ViewOnceMessageManager extends TimedEventManager<ViewOnceExpiration
|
|||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Log.d(TAG, "onReceive()");
|
||||
ApplicationContext.getInstance(context).getViewOnceMessageManager().scheduleIfNecessary();
|
||||
ApplicationDependencies.getViewOnceMessageManager().scheduleIfNecessary();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,12 +7,13 @@ import android.content.Context;
|
|||
import android.content.Intent;
|
||||
|
||||
import org.thoughtcrime.securesms.ApplicationContext;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
|
||||
public class ExpirationListener extends BroadcastReceiver {
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
ApplicationContext.getInstance(context).getExpiringMessageManager().checkSchedule();
|
||||
ApplicationDependencies.getExpiringMessageManager().checkSchedule();
|
||||
}
|
||||
|
||||
public static void setAlarm(Context context, long waitTimeMillis) {
|
||||
|
|
|
@ -472,7 +472,7 @@ public class MessageSender {
|
|||
|
||||
private static void sendLocalMediaSelf(Context context, long messageId) {
|
||||
try {
|
||||
ExpiringMessageManager expirationManager = ApplicationContext.getInstance(context).getExpiringMessageManager();
|
||||
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
|
||||
MessageDatabase mmsDatabase = DatabaseFactory.getMmsDatabase(context);
|
||||
MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
|
||||
OutgoingMediaMessage message = mmsDatabase.getOutgoingMessage(messageId);
|
||||
|
@ -523,7 +523,7 @@ public class MessageSender {
|
|||
|
||||
private static void sendLocalTextSelf(Context context, long messageId) {
|
||||
try {
|
||||
ExpiringMessageManager expirationManager = ApplicationContext.getInstance(context).getExpiringMessageManager();
|
||||
ExpiringMessageManager expirationManager = ApplicationDependencies.getExpiringMessageManager();
|
||||
MessageDatabase smsDatabase = DatabaseFactory.getSmsDatabase(context);
|
||||
MmsSmsDatabase mmsSmsDatabase = DatabaseFactory.getMmsSmsDatabase(context);
|
||||
SmsMessageRecord message = smsDatabase.getSmsMessage(messageId);
|
||||
|
|
Ładowanie…
Reference in New Issue