From 3281e2ea3faf1a88129b5eea4bc65ca342645159 Mon Sep 17 00:00:00 2001 From: Jeff Boek Date: Thu, 16 Apr 2020 11:24:37 -0700 Subject: [PATCH] For mozilla-mobile/fenix#9413 - Workaround Android 8 to update layoutDirection on activity recreation --- .../support/locale/LocaleAwareAppCompatActivity.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/components/support/locale/src/main/java/mozilla/components/support/locale/LocaleAwareAppCompatActivity.kt b/components/support/locale/src/main/java/mozilla/components/support/locale/LocaleAwareAppCompatActivity.kt index 2c3ef737705..de57e890dbe 100644 --- a/components/support/locale/src/main/java/mozilla/components/support/locale/LocaleAwareAppCompatActivity.kt +++ b/components/support/locale/src/main/java/mozilla/components/support/locale/LocaleAwareAppCompatActivity.kt @@ -5,6 +5,8 @@ package mozilla.components.support.locale import android.content.Context +import android.os.Build +import android.os.Bundle import androidx.appcompat.app.AppCompatActivity /** @@ -15,4 +17,15 @@ open class LocaleAwareAppCompatActivity : AppCompatActivity() { val context = LocaleManager.updateResources(base) super.attachBaseContext(context) } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + // Android 8 has a bug which doesn't change the layoutDirection on activity recreation. + // https://github.com/mozilla-mobile/fenix/issues/9413 + // https://stackoverflow.com/questions/46296202/rtl-layout-bug-in-android-oreo#comment98890942_46298101 + if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O) { + window.decorView.layoutDirection = resources.configuration.layoutDirection + } + } }