From d7dbec7e4cce88fb428a2400fa468ad3b2a3962f Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Wed, 5 Oct 2016 13:13:21 -0700 Subject: When adding dialog window but not creating update the configuration. When we dismiss the dialog as opposed to hide it, it is removed from the local WindowManagerGlobal's list of ViewRoots. Thus it stops receiving configuration changes. When first adding a ViewRoot it will pull the configuration from the context, but in this case we are reusing one which has already been added and removed and no such action will occur. Bug: 31004614 Change-Id: Ie247bcf1a14caf4a42413c6813e337aa4c88e3e4 --- core/java/android/app/Dialog.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java index 85a0403fe57e..6e2c464e9a37 100644 --- a/core/java/android/app/Dialog.java +++ b/core/java/android/app/Dialog.java @@ -32,6 +32,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.ContextWrapper; import android.content.DialogInterface; +import android.content.res.Configuration; import android.content.pm.ApplicationInfo; import android.graphics.drawable.Drawable; import android.net.Uri; @@ -288,9 +289,14 @@ public class Dialog implements DialogInterface, Window.Callback, } mCanceled = false; - + if (!mCreated) { dispatchOnCreate(null); + } else { + // Fill the DecorView in on any configuration changes that + // may have occured while it was removed from the WindowManager. + final Configuration config = mContext.getResources().getConfiguration(); + mWindow.getDecorView().dispatchConfigurationChanged(config); } onStart(); -- cgit v1.2.3-59-g8ed1b