Fix security dialog bug
This CL fixes a bug introduced by ag/19712818: when inflating the security dialog content, we should use the Quick Settings context (which is always using dark mode) and not the application context. Otherwise, if we are in light mode, then the color of the text is the same as the background and it looks like there is not content in the dialog. In dark mode, everything was looking fine because the text color from the application context would be light. Bug: 247961387 Test: Manual Change-Id: I0088206b8a3f5473f22d6f80e89a5dd07875c167
This commit is contained in:
@@ -444,7 +444,7 @@ public class QSSecurityFooterUtils implements DialogInterface.OnClickListener {
|
||||
mShouldUseSettingsButton.set(false);
|
||||
mBgHandler.post(() -> {
|
||||
String settingsButtonText = getSettingsButton();
|
||||
final View dialogView = createDialogView();
|
||||
final View dialogView = createDialogView(quickSettingsContext);
|
||||
mMainHandler.post(() -> {
|
||||
mDialog = new SystemUIDialog(quickSettingsContext, 0);
|
||||
mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
|
||||
@@ -469,14 +469,14 @@ public class QSSecurityFooterUtils implements DialogInterface.OnClickListener {
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
View createDialogView() {
|
||||
View createDialogView(Context quickSettingsContext) {
|
||||
if (mSecurityController.isParentalControlsEnabled()) {
|
||||
return createParentalControlsDialogView();
|
||||
}
|
||||
return createOrganizationDialogView();
|
||||
return createOrganizationDialogView(quickSettingsContext);
|
||||
}
|
||||
|
||||
private View createOrganizationDialogView() {
|
||||
private View createOrganizationDialogView(Context quickSettingsContext) {
|
||||
final boolean isDeviceManaged = mSecurityController.isDeviceManaged();
|
||||
final boolean hasWorkProfile = mSecurityController.hasWorkProfile();
|
||||
final CharSequence deviceOwnerOrganization =
|
||||
@@ -487,7 +487,7 @@ public class QSSecurityFooterUtils implements DialogInterface.OnClickListener {
|
||||
final String vpnName = mSecurityController.getPrimaryVpnName();
|
||||
final String vpnNameWorkProfile = mSecurityController.getWorkProfileVpnName();
|
||||
|
||||
View dialogView = LayoutInflater.from(mContext)
|
||||
View dialogView = LayoutInflater.from(quickSettingsContext)
|
||||
.inflate(R.layout.quick_settings_footer_dialog, null, false);
|
||||
|
||||
// device management section
|
||||
|
||||
@@ -726,7 +726,7 @@ public class QSSecurityFooterTest extends SysuiTestCase {
|
||||
when(mSecurityController.isParentalControlsEnabled()).thenReturn(true);
|
||||
when(mSecurityController.getLabel(any())).thenReturn(PARENTAL_CONTROLS_LABEL);
|
||||
|
||||
View view = mFooterUtils.createDialogView();
|
||||
View view = mFooterUtils.createDialogView(getContext());
|
||||
TextView textView = (TextView) view.findViewById(R.id.parental_controls_title);
|
||||
assertEquals(PARENTAL_CONTROLS_LABEL, textView.getText());
|
||||
}
|
||||
@@ -749,7 +749,7 @@ public class QSSecurityFooterTest extends SysuiTestCase {
|
||||
when(mSecurityController.getDeviceOwnerType(DEVICE_OWNER_COMPONENT))
|
||||
.thenReturn(DEVICE_OWNER_TYPE_FINANCED);
|
||||
|
||||
View view = mFooterUtils.createDialogView();
|
||||
View view = mFooterUtils.createDialogView(getContext());
|
||||
|
||||
TextView managementSubtitle = view.findViewById(R.id.device_management_subtitle);
|
||||
assertEquals(View.VISIBLE, managementSubtitle.getVisibility());
|
||||
|
||||
Reference in New Issue
Block a user