From b4ba5659236c19eb8c423165e1119cf36eb4bf35 Mon Sep 17 00:00:00 2001 From: Fumiaki Yoshimatsu Date: Sat, 6 Mar 2021 10:40:00 -0500 Subject: [PATCH] Purge view cache when layout direction is changed. --- .../thoughtcrime/securesms/util/CachedInflater.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/CachedInflater.java b/app/src/main/java/org/thoughtcrime/securesms/util/CachedInflater.java index 0bc52bab56..4a369fc303 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/CachedInflater.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/CachedInflater.java @@ -93,6 +93,7 @@ public class CachedInflater { private long lastClearTime; private int nightModeConfiguration; private float fontScale; + private int layoutDirection; static ViewCache getInstance() { return INSTANCE; @@ -103,11 +104,16 @@ public class CachedInflater { Configuration configuration = context.getResources().getConfiguration(); int currentNightModeConfiguration = ConfigurationUtil.getNightModeConfiguration(configuration); float currentFontScale = ConfigurationUtil.getFontScale(configuration); + int currentLayoutDirection = configuration.getLayoutDirection(); - if (nightModeConfiguration != currentNightModeConfiguration || fontScale != currentFontScale) { + if (nightModeConfiguration != currentNightModeConfiguration || + fontScale != currentFontScale || + layoutDirection != currentLayoutDirection) + { clear(); nightModeConfiguration = currentNightModeConfiguration; fontScale = currentFontScale; + layoutDirection = currentLayoutDirection; } AsyncLayoutInflater inflater = new AsyncLayoutInflater(context); @@ -147,7 +153,10 @@ public class CachedInflater { @MainThread @Nullable View pull(@LayoutRes int layoutRes, @NonNull Configuration configuration) { - if (this.nightModeConfiguration != ConfigurationUtil.getNightModeConfiguration(configuration) || this.fontScale != ConfigurationUtil.getFontScale(configuration)) { + if (this.nightModeConfiguration != ConfigurationUtil.getNightModeConfiguration(configuration) || + this.fontScale != ConfigurationUtil.getFontScale(configuration) || + this.layoutDirection != configuration.getLayoutDirection()) + { clear(); return null; }