From d9c316c8a66bb4f3a5ad7eb908990b0864781ad6 Mon Sep 17 00:00:00 2001 From: "B. Petersen" Date: Sat, 22 Sep 2018 00:34:21 +0200 Subject: [PATCH] play around with messags list loading --- .../securesms/ConversationFragment.java | 29 +++++++++++++------ .../securesms/connect/DcMsgListLoader.java | 6 +--- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/org/thoughtcrime/securesms/ConversationFragment.java b/src/org/thoughtcrime/securesms/ConversationFragment.java index d05d550b5..4c0148cf8 100644 --- a/src/org/thoughtcrime/securesms/ConversationFragment.java +++ b/src/org/thoughtcrime/securesms/ConversationFragment.java @@ -184,14 +184,7 @@ public class ConversationFragment extends Fragment initializeListAdapter(); if (threadId == -1) { - getLoaderManager().restartLoader(0, Bundle.EMPTY, this); - } - } - - public void reloadList() { - LoaderManager loaderManager = getLoaderManager(); - if (loaderManager!=null) { - getLoaderManager().restartLoader(0, Bundle.EMPTY, this); + reloadList(); } } @@ -228,7 +221,7 @@ public class ConversationFragment extends Fragment list.addItemDecoration(new StickyHeaderDecoration(adapter, false, false)); setLastSeen(lastSeen); - getLoaderManager().restartLoader(0, Bundle.EMPTY, this); + reloadList(); } } @@ -456,6 +449,24 @@ public class ConversationFragment extends Fragment */ } + public void reloadList() { + // just for testing, here are two variants. + final boolean loadSynchronous = true; + if (loadSynchronous) { + // this typically takes <1 ms ... + loaderStartTime = System.currentTimeMillis(); + int[] msgs = DcHelper.getContext(getContext()).getChatMsgs((int)threadId, 0, 0); + onLoadFinished(null, msgs); + } + else { + // ... while this takes >100 ms + LoaderManager loaderManager = getLoaderManager(); + if (loaderManager != null) { + loaderManager.restartLoader(0, Bundle.EMPTY, this); + } + } + } + @Override public Loader onCreateLoader(int id, Bundle args) { Log.w(TAG, "onCreateLoader"); diff --git a/src/org/thoughtcrime/securesms/connect/DcMsgListLoader.java b/src/org/thoughtcrime/securesms/connect/DcMsgListLoader.java index 675a48928..9c24f4400 100644 --- a/src/org/thoughtcrime/securesms/connect/DcMsgListLoader.java +++ b/src/org/thoughtcrime/securesms/connect/DcMsgListLoader.java @@ -28,11 +28,7 @@ public class DcMsgListLoader extends AsyncLoader { public @NonNull int[] loadInBackground() { try { - long loaderStartTime = System.currentTimeMillis(); - int[] msgs = DcHelper.getContext(getContext()).getChatMsgs(chatId, listflags, marker1before); - long loadTime = System.currentTimeMillis() - loaderStartTime; - Log.i(TAG, "loadInBackground - took " + loadTime + " ms to load a message list of size " + msgs.length); - return msgs; + return DcHelper.getContext(getContext()).getChatMsgs(chatId, listflags, marker1before); } catch (Exception e) { Log.w(TAG, e);