Merge "Use dark theme for alerts if device is in dark mode"
diff --git a/sip/src/com/android/services/telephony/sip/SipEditor.java b/sip/src/com/android/services/telephony/sip/SipEditor.java
index dd475e6..9efe5bf 100644
--- a/sip/src/com/android/services/telephony/sip/SipEditor.java
+++ b/sip/src/com/android/services/telephony/sip/SipEditor.java
@@ -16,7 +16,6 @@
package com.android.services.telephony.sip;
-import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.Intent;
@@ -37,6 +36,8 @@
import android.widget.Button;
import android.widget.Toast;
+import com.android.phone.FrameworksUtils;
+
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.Arrays;
@@ -93,7 +94,7 @@
public Dialog onCreateDialog(Bundle savedInstanceState) {
String message = getArguments().getString(KEY_MESSAGE);
- return new AlertDialog.Builder(getActivity())
+ return FrameworksUtils.makeAlertDialogBuilder(getActivity())
.setTitle(android.R.string.dialog_alert_title)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setMessage(message)
diff --git a/sip/src/com/android/services/telephony/sip/SipSettings.java b/sip/src/com/android/services/telephony/sip/SipSettings.java
index 813ba51..5137963 100644
--- a/sip/src/com/android/services/telephony/sip/SipSettings.java
+++ b/sip/src/com/android/services/telephony/sip/SipSettings.java
@@ -17,7 +17,6 @@
package com.android.services.telephony.sip;
import android.app.ActionBar;
-import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
@@ -39,6 +38,7 @@
import android.view.Menu;
import android.view.MenuItem;
+import com.android.phone.FrameworksUtils;
import com.android.phone.R;
import java.io.IOException;
@@ -287,7 +287,7 @@
startSipEditor(profile);
return;
}
- new AlertDialog.Builder(this)
+ FrameworksUtils.makeAlertDialogBuilder(this)
.setTitle(R.string.alert_dialog_close)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setPositiveButton(R.string.close_profile,
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index ec6ea2b..d249fae 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -220,7 +220,7 @@
if (mImsMgr.isEnhanced4gLteModeSettingEnabledByUser()) {
mImsMgr.setVtSetting((boolean) objValue);
} else {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(this);
DialogInterface.OnClickListener networkSettingsClickListener =
new Dialog.OnClickListener() {
@Override
diff --git a/src/com/android/phone/CallForwardEditPreference.java b/src/com/android/phone/CallForwardEditPreference.java
index bf296f9..db1c5b4 100644
--- a/src/com/android/phone/CallForwardEditPreference.java
+++ b/src/com/android/phone/CallForwardEditPreference.java
@@ -427,7 +427,8 @@
default: // not reachable
s = getContext().getText(R.string.disable_cfnrc_forbidden);
}
- AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+ AlertDialog.Builder builder =
+ FrameworksUtils.makeAlertDialogBuilder(getContext());
builder.setNeutralButton(R.string.close_dialog, null);
builder.setTitle(getContext()
.getText(R.string.error_updating_title));
@@ -440,7 +441,8 @@
// Handle the fail-to-enable case.
CharSequence s = getContext()
.getText(R.string.registration_cf_forbidden);
- AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
+ AlertDialog.Builder builder =
+ FrameworksUtils.makeAlertDialogBuilder(getContext());
builder.setNeutralButton(R.string.close_dialog, null);
builder.setTitle(getContext()
.getText(R.string.error_updating_title));
diff --git a/src/com/android/phone/CdmaCallWaitingPreference.java b/src/com/android/phone/CdmaCallWaitingPreference.java
index 3713b19..6ff47d2 100644
--- a/src/com/android/phone/CdmaCallWaitingPreference.java
+++ b/src/com/android/phone/CdmaCallWaitingPreference.java
@@ -78,7 +78,7 @@
public void onClick() {
super.onClick();
- AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
+ AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(mContext);
builder.setTitle(mContext.getText(R.string.cdma_call_waiting));
builder.setMessage(mContext.getText(R.string.enable_cdma_call_waiting_setting));
builder.setPositiveButton(R.string.enable_cdma_cw, new DialogInterface.OnClickListener() {
diff --git a/src/com/android/phone/ChangeIccPinScreen.java b/src/com/android/phone/ChangeIccPinScreen.java
index 70bf431..5369aa3 100644
--- a/src/com/android/phone/ChangeIccPinScreen.java
+++ b/src/com/android/phone/ChangeIccPinScreen.java
@@ -277,7 +277,7 @@
private AlertDialog mPUKAlert;
private void displayPUKAlert () {
if (mPUKAlert == null) {
- mPUKAlert = new AlertDialog.Builder(this)
+ mPUKAlert = FrameworksUtils.makeAlertDialogBuilder(this)
.setMessage (R.string.puk_requested)
.setCancelable(false)
.show();
diff --git a/src/com/android/phone/FrameworksUtils.java b/src/com/android/phone/FrameworksUtils.java
new file mode 100644
index 0000000..dcf10bd
--- /dev/null
+++ b/src/com/android/phone/FrameworksUtils.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.phone;
+
+import android.app.AlertDialog;
+import android.content.Context;
+import android.content.res.Configuration;
+
+/**
+ * This class provides utility functions over framework APIs
+ */
+public class FrameworksUtils {
+ /**
+ * Create a new instance of {@link AlertDialog.Builder}.
+ * @param context reference to a Context
+ * @return an instance of AlertDialog.Builder
+ */
+ public static AlertDialog.Builder makeAlertDialogBuilder(Context context) {
+ boolean isDarkTheme = (context.getResources().getConfiguration().uiMode
+ & Configuration.UI_MODE_NIGHT_MASK) == Configuration.UI_MODE_NIGHT_YES;
+ return new AlertDialog.Builder(context, isDarkTheme
+ ? android.R.style.Theme_DeviceDefault_Dialog_Alert : 0);
+ }
+}
diff --git a/src/com/android/phone/PhoneDisplayMessage.java b/src/com/android/phone/PhoneDisplayMessage.java
index 199fbb8..be7fc7f 100644
--- a/src/com/android/phone/PhoneDisplayMessage.java
+++ b/src/com/android/phone/PhoneDisplayMessage.java
@@ -68,7 +68,7 @@
// displaying system alert dialog on the screen instead of
// using another activity to display the message. This
// places the message at the forefront of the UI.
- sDisplayMessageDialog = new AlertDialog.Builder(context)
+ sDisplayMessageDialog = FrameworksUtils.makeAlertDialogBuilder(context)
.setIcon(android.R.drawable.ic_dialog_info)
.setTitle(title)
.setMessage(msg)
diff --git a/src/com/android/phone/PhoneUtils.java b/src/com/android/phone/PhoneUtils.java
index c520063..35cfdd3 100644
--- a/src/com/android/phone/PhoneUtils.java
+++ b/src/com/android/phone/PhoneUtils.java
@@ -468,7 +468,8 @@
};
// build the dialog
- final AlertDialog newDialog = new AlertDialog.Builder(contextThemeWrapper)
+ final AlertDialog newDialog =
+ FrameworksUtils.makeAlertDialogBuilder(contextThemeWrapper)
.setMessage(text)
.setView(dialogView)
.setPositiveButton(R.string.send_button, mUSSDDialogListener)
diff --git a/src/com/android/phone/SpecialCharSequenceMgr.java b/src/com/android/phone/SpecialCharSequenceMgr.java
index 674449e..3bf0e1a 100644
--- a/src/com/android/phone/SpecialCharSequenceMgr.java
+++ b/src/com/android/phone/SpecialCharSequenceMgr.java
@@ -264,7 +264,7 @@
}
return isMMIHandled;
} else {
- AlertDialog dialog = new AlertDialog.Builder(context)
+ AlertDialog dialog = FrameworksUtils.makeAlertDialogBuilder(context)
.setMessage(R.string.pin_puk_system_user_only)
.setPositiveButton(R.string.ok, null)
.setCancelable(true).create();
@@ -294,7 +294,7 @@
int labelId = TelephonyCapabilities.getDeviceIdLabel(phone);
String deviceId = phone.getDeviceId();
- AlertDialog alert = new AlertDialog.Builder(context)
+ AlertDialog alert = FrameworksUtils.makeAlertDialogBuilder(context)
.setTitle(labelId)
.setMessage(deviceId)
.setPositiveButton(R.string.ok, null)
diff --git a/src/com/android/phone/TimeConsumingPreferenceActivity.java b/src/com/android/phone/TimeConsumingPreferenceActivity.java
index 8c5ae6d..caef176 100644
--- a/src/com/android/phone/TimeConsumingPreferenceActivity.java
+++ b/src/com/android/phone/TimeConsumingPreferenceActivity.java
@@ -84,7 +84,7 @@
|| id == FDN_CHECK_FAILURE || id == STK_CC_SS_TO_DIAL_ERROR
|| id == STK_CC_SS_TO_USSD_ERROR || id == STK_CC_SS_TO_SS_ERROR
|| id == STK_CC_SS_TO_DIAL_VIDEO_ERROR) {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
+ AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(this);
int msgId;
int titleId = R.string.error_updating_title;
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 7a0d8c2..0d2b71b 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -65,6 +65,7 @@
import com.android.internal.telephony.imsphone.ImsExternalCallTracker;
import com.android.internal.telephony.imsphone.ImsPhone;
import com.android.internal.telephony.imsphone.ImsPhoneConnection;
+import com.android.phone.FrameworksUtils;
import com.android.phone.MMIDialogActivity;
import com.android.phone.PhoneUtils;
import com.android.phone.R;
@@ -2459,7 +2460,7 @@
if (showDialog) {
Log.d(this, "Creating UT Data enable dialog");
String message = SuppServicesUiUtil.makeMessage(context, suppKey, phone);
- AlertDialog.Builder builder = new AlertDialog.Builder(context);
+ AlertDialog.Builder builder = FrameworksUtils.makeAlertDialogBuilder(context);
DialogInterface.OnClickListener networkSettingsClickListener =
new Dialog.OnClickListener() {
@Override