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) {