From 4ea8bac10d5f684a24abd8e9280b97fee4810593 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 30 Jun 2020 11:55:06 -0700 Subject: [PATCH] Re-enable view prefetching. --- .../securesms/conversation/ConversationFragment.java | 2 ++ .../conversationlist/ConversationListFragment.java | 4 ++-- .../org/thoughtcrime/securesms/util/DynamicTheme.java | 10 ++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index 8774e67e0d..39f5f3906a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -168,6 +168,8 @@ public class ConversationFragment extends LoggingFragment { FrameLayout parent = new FrameLayout(context); parent.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT)); + CachedInflater.from(context).cacheUntilLimit(R.layout.conversation_item_received_text_only, parent, 15); + CachedInflater.from(context).cacheUntilLimit(R.layout.conversation_item_sent_text_only, parent, 15); CachedInflater.from(context).cacheUntilLimit(R.layout.conversation_item_received_multimedia, parent, 10); CachedInflater.from(context).cacheUntilLimit(R.layout.conversation_item_sent_multimedia, parent, 10); CachedInflater.from(context).cacheUntilLimit(R.layout.conversation_item_update, parent, 5); diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java index 6550813eee..fac90c5245 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversationlist/ConversationListFragment.java @@ -88,6 +88,7 @@ import org.thoughtcrime.securesms.components.reminder.ServiceOutageReminder; import org.thoughtcrime.securesms.components.reminder.ShareReminder; import org.thoughtcrime.securesms.components.reminder.SystemSmsImportReminder; import org.thoughtcrime.securesms.components.reminder.UnauthorizedReminder; +import org.thoughtcrime.securesms.conversation.ConversationFragment; import org.thoughtcrime.securesms.conversationlist.model.Conversation; import org.thoughtcrime.securesms.conversationlist.model.MessageResult; import org.thoughtcrime.securesms.conversationlist.model.SearchResult; @@ -266,8 +267,7 @@ public class ConversationListFragment extends MainFragment implements ActionMode @Override public void onStart() { super.onStart(); - // TODO [greyson] Re-enable when we figure out how to invalidate the cache after a system theme change -// ConversationFragment.prepare(requireContext()); + ConversationFragment.prepare(requireContext()); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/DynamicTheme.java b/app/src/main/java/org/thoughtcrime/securesms/util/DynamicTheme.java index 00d89695af..59cbbb0c8b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/DynamicTheme.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/DynamicTheme.java @@ -17,11 +17,21 @@ public class DynamicTheme { public static final String LIGHT = "light"; public static final String SYSTEM = "system"; + private static boolean isDarkTheme; + private int currentTheme; public void onCreate(Activity activity) { + boolean wasDarkTheme = isDarkTheme; + currentTheme = getSelectedTheme(activity); + isDarkTheme = isDarkTheme(activity); + activity.setTheme(currentTheme); + + if (isDarkTheme != wasDarkTheme) { + CachedInflater.from(activity).clear(); + } } public void onResume(Activity activity) {