Use context theme wrapper with specific theme when inflating button

This fixes the theme being incorrect after rotating.

Test: manual - 1) have auto rotate on & change the theme
               2) add some bubbles, expand them, check the manage
                  button theme
               3) rotate the device, observe that the manage button
                  theme remains the same
Bug: 284820786
Change-Id: I030bb26a93645537690ebb348771e325e327332c
This commit is contained in:
Mady Mellor
2023-06-05 14:55:16 -07:00
parent 7b4ea8e2a3
commit 3f30f9fb4e

View File

@@ -55,6 +55,7 @@ import android.util.FloatProperty;
import android.util.IntProperty;
import android.util.Log;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -459,7 +460,9 @@ public class BubbleExpandedView extends LinearLayout {
if (mManageButton != null) {
int visibility = mManageButton.getVisibility();
removeView(mManageButton);
mManageButton = (AlphaOptimizedButton) LayoutInflater.from(getContext()).inflate(
ContextThemeWrapper ctw = new ContextThemeWrapper(getContext(),
com.android.internal.R.style.Theme_DeviceDefault_DayNight);
mManageButton = (AlphaOptimizedButton) LayoutInflater.from(ctw).inflate(
R.layout.bubble_manage_button, this /* parent */, false /* attach */);
addView(mManageButton);
mManageButton.setVisibility(visibility);