mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 17:29:32 +01:00
Rewrite the AppDependencies system.
This commit is contained in:
committed by
Cody Henthorne
parent
a0131bf39b
commit
b6a4e1f145
@@ -7,7 +7,7 @@ import android.content.Intent;
|
||||
|
||||
import org.signal.core.util.concurrent.SignalExecutors;
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
import org.thoughtcrime.securesms.notifications.v2.ConversationId;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -23,7 +23,7 @@ public class DeleteNotificationReceiver extends BroadcastReceiver {
|
||||
@Override
|
||||
public void onReceive(final Context context, Intent intent) {
|
||||
if (DELETE_NOTIFICATION_ACTION.equals(intent.getAction())) {
|
||||
MessageNotifier notifier = ApplicationDependencies.getMessageNotifier();
|
||||
MessageNotifier notifier = AppDependencies.getMessageNotifier();
|
||||
|
||||
final long[] ids = intent.getLongArrayExtra(EXTRA_IDS);
|
||||
final boolean[] mms = intent.getBooleanArrayExtra(EXTRA_MMS);
|
||||
|
||||
@@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.database.MessageTable.ExpirationInfo;
|
||||
import org.thoughtcrime.securesms.database.MessageTable.MarkedMessageInfo;
|
||||
import org.thoughtcrime.securesms.database.MessageTable.SyncMessageId;
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
import org.thoughtcrime.securesms.jobs.CallLogEventSendJob;
|
||||
import org.thoughtcrime.securesms.jobs.MultiDeviceReadUpdateJob;
|
||||
import org.thoughtcrime.securesms.jobs.SendReadReceiptJob;
|
||||
@@ -45,7 +45,7 @@ public class MarkReadReceiver extends BroadcastReceiver {
|
||||
final ArrayList<ConversationId> threads = intent.getParcelableArrayListExtra(THREADS_EXTRA);
|
||||
|
||||
if (threads != null) {
|
||||
MessageNotifier notifier = ApplicationDependencies.getMessageNotifier();
|
||||
MessageNotifier notifier = AppDependencies.getMessageNotifier();
|
||||
for (ConversationId thread : threads) {
|
||||
notifier.removeStickyThread(thread);
|
||||
}
|
||||
@@ -65,7 +65,7 @@ public class MarkReadReceiver extends BroadcastReceiver {
|
||||
process(messageIdsCollection);
|
||||
processCallEvents(threads, System.currentTimeMillis());
|
||||
|
||||
ApplicationDependencies.getMessageNotifier().updateNotification(context);
|
||||
AppDependencies.getMessageNotifier().updateNotification(context);
|
||||
finisher.finish();
|
||||
});
|
||||
}
|
||||
@@ -113,7 +113,7 @@ public class MarkReadReceiver extends BroadcastReceiver {
|
||||
for (RecipientId peer : peers) {
|
||||
CallTable.Call lastCallInThread = SignalDatabase.calls().markAllCallEventsWithPeerBeforeTimestampRead(peer, timestamp);
|
||||
if (lastCallInThread != null) {
|
||||
ApplicationDependencies.getJobManager().add(CallLogEventSendJob.forMarkedAsReadInConversation(lastCallInThread));
|
||||
AppDependencies.getJobManager().add(CallLogEventSendJob.forMarkedAsReadInConversation(lastCallInThread));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -123,8 +123,8 @@ public class MarkReadReceiver extends BroadcastReceiver {
|
||||
long now = System.currentTimeMillis();
|
||||
SignalDatabase.messages().markExpireStarted(Stream.of(expirationInfo).map(info -> new kotlin.Pair<>(info.getId(), now)).toList());
|
||||
|
||||
ApplicationDependencies.getExpiringMessageManager()
|
||||
.scheduleDeletion(Stream.of(expirationInfo).map(info -> info.copy(info.getId(), info.getExpiresIn(), now, info.isMms())).toList());
|
||||
AppDependencies.getExpiringMessageManager()
|
||||
.scheduleDeletion(Stream.of(expirationInfo).map(info -> info.copy(info.getId(), info.getExpiresIn(), now, info.isMms())).toList());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,10 +8,9 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import org.signal.core.util.concurrent.SignalExecutors;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
import org.thoughtcrime.securesms.notifications.v2.ConversationId;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.BubbleUtil;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@@ -34,7 +33,7 @@ public interface MessageNotifier {
|
||||
@Override
|
||||
public void onReceive(final Context context, final Intent intent) {
|
||||
SignalExecutors.BOUNDED.execute(() -> {
|
||||
ApplicationDependencies.getMessageNotifier().updateNotification(context);
|
||||
AppDependencies.getMessageNotifier().updateNotification(context);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import com.annimon.stream.Stream;
|
||||
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
import org.thoughtcrime.securesms.notifications.v2.DefaultMessageNotifier;
|
||||
import org.thoughtcrime.securesms.notifications.v2.ConversationId;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
@@ -186,7 +186,7 @@ public final class NotificationCancellationHelper {
|
||||
}
|
||||
|
||||
Long threadId = SignalDatabase.threads().getThreadIdFor(recipientId);
|
||||
Optional<ConversationId> focusedThread = ApplicationDependencies.getMessageNotifier().getVisibleThread();
|
||||
Optional<ConversationId> focusedThread = AppDependencies.getMessageNotifier().getVisibleThread();
|
||||
Long focusedThreadId = focusedThread.map(ConversationId::getThreadId).orElse(null);
|
||||
Long focusedGroupStoryId = focusedThread.map(ConversationId::getGroupStoryId).orElse(null);
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ import org.thoughtcrime.securesms.R;
|
||||
import org.thoughtcrime.securesms.database.RecipientTable;
|
||||
import org.thoughtcrime.securesms.database.RecipientTable.VibrateState;
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId;
|
||||
@@ -89,7 +89,7 @@ public class NotificationChannels {
|
||||
if (instance == null) {
|
||||
synchronized (NotificationChannels.class) {
|
||||
if (instance == null) {
|
||||
instance = new NotificationChannels(ApplicationDependencies.getApplication());
|
||||
instance = new NotificationChannels(AppDependencies.getApplication());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -694,7 +694,7 @@ public class NotificationChannels {
|
||||
}
|
||||
|
||||
if (oldVersion < Version.AUDIO_ATTRIBUTE_CHANGE) {
|
||||
Context context = ApplicationDependencies.getApplication();
|
||||
Context context = AppDependencies.getApplication();
|
||||
int existingMessageChannelVersion = TextSecurePreferences.getNotificationMessagesChannelVersion(context);
|
||||
int newMessageChannelVersion = existingMessageChannelVersion + 1;
|
||||
String existingChannelId = "messages_" + existingMessageChannelVersion;
|
||||
|
||||
@@ -30,7 +30,7 @@ import org.thoughtcrime.securesms.database.MessageTable.MarkedMessageInfo;
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase;
|
||||
import org.thoughtcrime.securesms.database.model.ParentStoryId;
|
||||
import org.thoughtcrime.securesms.database.model.StoryType;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||
import org.thoughtcrime.securesms.mms.OutgoingMessage;
|
||||
import org.thoughtcrime.securesms.notifications.v2.DefaultMessageNotifier;
|
||||
import org.thoughtcrime.securesms.notifications.v2.ConversationId;
|
||||
@@ -114,13 +114,13 @@ public class RemoteReplyReceiver extends BroadcastReceiver {
|
||||
throw new AssertionError("Unknown Reply method");
|
||||
}
|
||||
|
||||
ApplicationDependencies.getMessageNotifier()
|
||||
.addStickyThread(new ConversationId(threadId, groupStoryId != Long.MIN_VALUE ? groupStoryId : null),
|
||||
AppDependencies.getMessageNotifier()
|
||||
.addStickyThread(new ConversationId(threadId, groupStoryId != Long.MIN_VALUE ? groupStoryId : null),
|
||||
intent.getLongExtra(EARLIEST_TIMESTAMP, System.currentTimeMillis()));
|
||||
|
||||
List<MarkedMessageInfo> messageIds = SignalDatabase.threads().setRead(threadId, true);
|
||||
|
||||
ApplicationDependencies.getMessageNotifier().updateNotification(context);
|
||||
AppDependencies.getMessageNotifier().updateNotification(context);
|
||||
MarkReadReceiver.process(messageIds);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import android.text.TextUtils
|
||||
import androidx.annotation.WorkerThread
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.database.LocalMetricsDatabase
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.util.DeviceProperties
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags
|
||||
@@ -102,7 +102,7 @@ object SlowNotificationHeuristics {
|
||||
return false
|
||||
}
|
||||
val configuration = getConfiguration()
|
||||
val db = LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication())
|
||||
val db = LocalMetricsDatabase.getInstance(AppDependencies.application)
|
||||
|
||||
val metrics = db.getMetrics()
|
||||
|
||||
@@ -133,7 +133,7 @@ object SlowNotificationHeuristics {
|
||||
*/
|
||||
@JvmStatic
|
||||
fun isPotentiallyCausedByBatteryOptimizations(): Boolean {
|
||||
val applicationContext = ApplicationDependencies.getApplication()
|
||||
val applicationContext = AppDependencies.application
|
||||
if (DeviceProperties.getDataSaverState(applicationContext) == DeviceProperties.DataSaverState.ENABLED) {
|
||||
return false
|
||||
}
|
||||
@@ -187,7 +187,7 @@ object SlowNotificationHeuristics {
|
||||
Log.d(TAG, "not enough messages for message latency")
|
||||
return false
|
||||
}
|
||||
val db = LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication())
|
||||
val db = LocalMetricsDatabase.getInstance(AppDependencies.application)
|
||||
for ((percentage, threshold) in percentiles.entries) {
|
||||
val averageLatency = db.eventPercent(SignalLocalMetrics.MessageLatency.NAME_HIGH, percentage.coerceAtMost(100).coerceAtLeast(0))
|
||||
|
||||
@@ -200,7 +200,7 @@ object SlowNotificationHeuristics {
|
||||
}
|
||||
|
||||
private fun haveEnoughData(eventName: String, minimumEventAgeMs: Long): Boolean {
|
||||
val db = LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication())
|
||||
val db = LocalMetricsDatabase.getInstance(AppDependencies.application)
|
||||
|
||||
val oldestEvent = db.getOldestMetricTime(eventName)
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ import org.signal.core.util.PendingIntentFlags
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.messages.IncomingMessageObserver
|
||||
import org.thoughtcrime.securesms.notifications.MessageNotifier
|
||||
@@ -395,8 +395,8 @@ private class CancelableExecutor {
|
||||
}
|
||||
if (!canceled.get()) {
|
||||
Log.i(TAG, "Not canceled, notifying...")
|
||||
ApplicationDependencies.getMessageNotifier().cancelDelayedNotifications()
|
||||
ApplicationDependencies.getMessageNotifier().updateNotification(context, thread)
|
||||
AppDependencies.messageNotifier.cancelDelayedNotifications()
|
||||
AppDependencies.messageNotifier.updateNotification(context, thread)
|
||||
} else {
|
||||
Log.w(TAG, "Canceled, not notifying...")
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto
|
||||
import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto
|
||||
import org.thoughtcrime.securesms.contacts.avatars.GeneratedContactPhoto
|
||||
import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri
|
||||
import org.thoughtcrime.securesms.notifications.NotificationIds
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
@@ -42,7 +42,7 @@ fun Recipient.getContactDrawable(context: Context): Drawable? {
|
||||
try {
|
||||
val transforms: MutableList<Transformation<Bitmap>> = mutableListOf()
|
||||
if (shouldBlurAvatar) {
|
||||
transforms += BlurTransformation(ApplicationDependencies.getApplication(), 0.25f, BlurTransformation.MAX_RADIUS)
|
||||
transforms += BlurTransformation(AppDependencies.application, 0.25f, BlurTransformation.MAX_RADIUS)
|
||||
}
|
||||
transforms += CircleCrop()
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.conversation.ConversationIntents
|
||||
import org.thoughtcrime.securesms.conversation.colors.AvatarColor
|
||||
import org.thoughtcrime.securesms.database.SignalDatabase
|
||||
import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.notifications.NotificationChannels
|
||||
import org.thoughtcrime.securesms.notifications.NotificationIds
|
||||
@@ -201,7 +201,7 @@ object NotificationFactory {
|
||||
private fun shouldAlert(conversation: NotificationConversation, lastNotificationTimestamp: Long, alertOverride: Boolean): Boolean {
|
||||
val throttle: Duration = when {
|
||||
conversation.recipient.isGroup && (conversation.mostRecentNotification as? MessageNotification)?.hasSelfMention == false -> GROUP_THROTTLE
|
||||
ApplicationDependencies.getIncomingMessageObserver().decryptionDrained -> STILL_DECRYPTING_INDIVIDUAL_THROTTLE
|
||||
AppDependencies.incomingMessageObserver.decryptionDrained -> STILL_DECRYPTING_INDIVIDUAL_THROTTLE
|
||||
else -> 0.seconds
|
||||
}
|
||||
val canAlertBasedOnTime: Boolean = lastNotificationTimestamp < System.currentTimeMillis() - throttle.inWholeMilliseconds || lastNotificationTimestamp > System.currentTimeMillis()
|
||||
|
||||
@@ -7,7 +7,7 @@ import org.signal.core.util.asListContains
|
||||
import org.signal.core.util.concurrent.SignalExecutors
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.database.model.MessageId
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader
|
||||
import org.thoughtcrime.securesms.mms.Slide
|
||||
import org.thoughtcrime.securesms.providers.BlobProvider
|
||||
@@ -143,7 +143,7 @@ object NotificationThumbnails {
|
||||
thumbnailCache[messageId] = CachedThumbnail(thumbnailUri, result.mimeType)
|
||||
}
|
||||
|
||||
ApplicationDependencies.getMessageNotifier().updateNotification(context, notificationItem.thread)
|
||||
AppDependencies.messageNotifier.updateNotification(context, notificationItem.thread)
|
||||
} else {
|
||||
Log.i(TAG, "Unable to compress attachment thumbnail for $messageId")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user