Move render split to match CFv2 for fairer comparisons.
This commit is contained in:
parent
291a5d57c4
commit
a656d65d1d
1 changed files with 16 additions and 7 deletions
|
@ -190,6 +190,7 @@ import org.thoughtcrime.securesms.util.StorageUtil;
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
import org.thoughtcrime.securesms.util.TopToastPopup;
|
import org.thoughtcrime.securesms.util.TopToastPopup;
|
||||||
import org.thoughtcrime.securesms.util.Util;
|
import org.thoughtcrime.securesms.util.Util;
|
||||||
|
import org.thoughtcrime.securesms.util.ViewExtensionsKt;
|
||||||
import org.thoughtcrime.securesms.util.ViewUtil;
|
import org.thoughtcrime.securesms.util.ViewUtil;
|
||||||
import org.thoughtcrime.securesms.util.WindowUtil;
|
import org.thoughtcrime.securesms.util.WindowUtil;
|
||||||
import org.thoughtcrime.securesms.util.concurrent.ListenableFuture;
|
import org.thoughtcrime.securesms.util.concurrent.ListenableFuture;
|
||||||
|
@ -207,6 +208,7 @@ import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.ExecutionException;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||||
import kotlin.Unit;
|
import kotlin.Unit;
|
||||||
|
@ -386,8 +388,22 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
|
||||||
|
|
||||||
ConversationAdapter adapter = getListAdapter();
|
ConversationAdapter adapter = getListAdapter();
|
||||||
if (adapter != null) {
|
if (adapter != null) {
|
||||||
|
final AtomicBoolean firstRender = new AtomicBoolean(true);
|
||||||
List<ConversationMessage> messages = messageData.getMessages();
|
List<ConversationMessage> messages = messageData.getMessages();
|
||||||
getListAdapter().submitList(messages, () -> {
|
getListAdapter().submitList(messages, () -> {
|
||||||
|
|
||||||
|
if (firstRender.get()) {
|
||||||
|
firstRender.set(false);
|
||||||
|
ViewExtensionsKt.doAfterNextLayout(list, () -> {
|
||||||
|
startupStopwatch.split("first-render");
|
||||||
|
startupStopwatch.stop(TAG);
|
||||||
|
SignalLocalMetrics.ConversationOpen.onRenderFinished();
|
||||||
|
listener.onFirstRender();
|
||||||
|
SignalTrace.endSection();
|
||||||
|
return Unit.INSTANCE;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
list.post(() -> {
|
list.post(() -> {
|
||||||
conversationViewModel.onMessagesCommitted(messages);
|
conversationViewModel.onMessagesCommitted(messages);
|
||||||
});
|
});
|
||||||
|
@ -738,13 +754,6 @@ public class ConversationFragment extends LoggingFragment implements Multiselect
|
||||||
public void onItemRangeInserted(int positionStart, int itemCount) {
|
public void onItemRangeInserted(int positionStart, int itemCount) {
|
||||||
adapter.unregisterAdapterDataObserver(this);
|
adapter.unregisterAdapterDataObserver(this);
|
||||||
startupStopwatch.split("data-set");
|
startupStopwatch.split("data-set");
|
||||||
list.post(() -> {
|
|
||||||
startupStopwatch.split("first-render");
|
|
||||||
startupStopwatch.stop(TAG);
|
|
||||||
SignalLocalMetrics.ConversationOpen.onRenderFinished();
|
|
||||||
listener.onFirstRender();
|
|
||||||
SignalTrace.endSection();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue