mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-23 18:30:20 +01:00
Locally track message send time.
This commit is contained in:
committed by
Alex Hart
parent
37ae740138
commit
784c373a0e
@@ -26,8 +26,8 @@ import java.util.concurrent.Executor
|
||||
object LocalMetrics {
|
||||
private val TAG: String = Log.tag(LocalMetrics::class.java)
|
||||
|
||||
private val eventsById: MutableMap<String, LocalMetricsEvent> = mutableMapOf()
|
||||
private val lastSplitTimeById: MutableMap<String, Long> = mutableMapOf()
|
||||
private val eventsById: MutableMap<String, LocalMetricsEvent> = LRUCache(200)
|
||||
private val lastSplitTimeById: MutableMap<String, Long> = LRUCache(200)
|
||||
|
||||
private val executor: Executor = SignalExecutors.newCachedSingleThreadExecutor("signal-LocalMetrics")
|
||||
private val db: LocalMetricsDatabase by lazy { LocalMetricsDatabase.getInstance(ApplicationDependencies.getApplication()) }
|
||||
|
||||
@@ -25,8 +25,8 @@ public final class SignalLocalMetrics {
|
||||
|
||||
@MainThread
|
||||
public static void start() {
|
||||
conversationListId = NAME_CONVERSATION_LIST + System.currentTimeMillis();
|
||||
otherId = NAME_OTHER + System.currentTimeMillis();
|
||||
conversationListId = NAME_CONVERSATION_LIST + "-" + System.currentTimeMillis();
|
||||
otherId = NAME_OTHER + "-" + System.currentTimeMillis();
|
||||
|
||||
LocalMetrics.getInstance().start(conversationListId, NAME_CONVERSATION_LIST);
|
||||
LocalMetrics.getInstance().start(otherId, NAME_OTHER);
|
||||
@@ -63,4 +63,82 @@ public final class SignalLocalMetrics {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static final class IndividualMessageSend {
|
||||
private static final String NAME = "individual-message-send";
|
||||
|
||||
private static final String SPLIT_JOB_ENQUEUE = "job-enqueue";
|
||||
private static final String SPLIT_JOB_PRE_NETWORK = "job-pre-network";
|
||||
private static final String SPLIT_NETWORK = "network";
|
||||
private static final String SPLIT_JOB_POST_NETWORK = "job-post-network";
|
||||
private static final String SPLIT_UI_UPDATE = "ui-update";
|
||||
|
||||
public static void start(long messageId) {
|
||||
LocalMetrics.getInstance().start(buildId(messageId), NAME);
|
||||
}
|
||||
|
||||
public static void onJobStarted(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_JOB_ENQUEUE);
|
||||
}
|
||||
|
||||
public static void onNetworkStarted(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_JOB_PRE_NETWORK);
|
||||
}
|
||||
|
||||
public static void onNetworkFinished(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_NETWORK);
|
||||
}
|
||||
|
||||
public static void onJobFinished(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_JOB_POST_NETWORK);
|
||||
}
|
||||
|
||||
public static void onUiUpdated(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_UI_UPDATE);
|
||||
LocalMetrics.getInstance().end(buildId(messageId));
|
||||
}
|
||||
|
||||
private static String buildId(long messageId) {
|
||||
return NAME + "-" + messageId;
|
||||
}
|
||||
}
|
||||
|
||||
public static final class GroupMessageSend {
|
||||
private static final String NAME = "group-message-send";
|
||||
|
||||
private static final String SPLIT_JOB_ENQUEUE = "job-enqueue";
|
||||
private static final String SPLIT_JOB_PRE_NETWORK = "job-pre-network";
|
||||
private static final String SPLIT_NETWORK = "network";
|
||||
private static final String SPLIT_JOB_POST_NETWORK = "job-post-network";
|
||||
private static final String SPLIT_UI_UPDATE = "ui-update";
|
||||
|
||||
public static void start(long messageId) {
|
||||
LocalMetrics.getInstance().start(buildId(messageId), NAME);
|
||||
}
|
||||
|
||||
public static void onJobStarted(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_JOB_ENQUEUE);
|
||||
}
|
||||
|
||||
public static void onNetworkStarted(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_JOB_PRE_NETWORK);
|
||||
}
|
||||
|
||||
public static void onNetworkFinished(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_NETWORK);
|
||||
}
|
||||
|
||||
public static void onJobFinished(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_JOB_POST_NETWORK);
|
||||
}
|
||||
|
||||
public static void onUiUpdated(long messageId) {
|
||||
LocalMetrics.getInstance().split(buildId(messageId), SPLIT_UI_UPDATE);
|
||||
LocalMetrics.getInstance().end(buildId(messageId));
|
||||
}
|
||||
|
||||
private static String buildId(long messageId) {
|
||||
return NAME + "-" + messageId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user