Merge "Fix the incorrect display of the phone account info for an ecall" am: 5a3d182a62
Original change: https://android-review.googlesource.com/c/platform/packages/services/Telephony/+/2171285
Change-Id: Ibb98278235d4cca2956a93ece775af4b6014d93c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 28bea30..5a3c017 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -23,8 +23,6 @@
>
<original-package android:name="com.android.phone" />
- <protected-broadcast android:name= "com.android.internal.telephony.ACTION_VOWIFI_ENABLED" />
-
<!-- Allows granting runtime permissions to telephony related components. -->
<uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS_TO_TELEPHONY_DEFAULTS" />
@@ -488,17 +486,6 @@
</intent-filter>
</activity>
- <activity android:name="LimitedServiceActivity"
- android:exported="true"
- android:excludeFromRecents="true"
- android:launchMode="singleTask"
- android:taskAffinity=""
- android:theme="@android:style/Theme.Translucent.NoTitleBar">
- <intent-filter android:priority="1000">
- <action android:name = "com.android.internal.telephony.ACTION_VOWIFI_ENABLED" />
- </intent-filter>
- </activity>
-
<activity android:name="MMIDialogActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:excludeFromRecents="true"
diff --git a/res/layout/frag_limited_service_alert_dialog.xml b/res/layout/frag_limited_service_alert_dialog.xml
deleted file mode 100644
index cd44103..0000000
--- a/res/layout/frag_limited_service_alert_dialog.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-/*
-* Copyright (c) 2020, The Linux Foundation.
- 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.
- */
--->
-
-<ScrollView
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:scrollbars="none">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:paddingTop="@dimen/limited_service_top_padding"
- android:paddingStart="@dimen/limited_service_margin_start_end"
- android:paddingEnd="@dimen/limited_service_margin_start_end"
- android:paddingBottom="@dimen/limited_service_bottom_padding"
- android:orientation="vertical">
-
- <TextView
- android:id="@+id/message"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginBottom="@dimen/limited_service_text_bottom_padding"
- android:text="@string/limited_service_alert_dialog_description"
- android:textColor="?android:attr/textColorPrimary"
- android:textSize="16sp"/>
-
- <CheckBox
- android:id="@+id/do_not_show"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:buttonTint="?android:attr/textColorPrimary"
- android:focusable="true"
- android:clickable="true"
- android:text="@string/do_not_show_again"
- android:textColor="?android:attr/textColorPrimary"
- android:textSize="14sp"/>
- </LinearLayout>
-</ScrollView>
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index 3eb1a12..e1742d8 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -225,10 +225,4 @@
<dimen name="dialpad_button_height">43dp</dimen>
<dimen name="dialpad_button_width">43dp</dimen>
<!-- End of Shortcut view vertical dimens. -->
-
- <!-- values for limited service -->
- <dimen name="limited_service_top_padding">24dp</dimen>
- <dimen name="limited_service_bottom_padding">4dp</dimen>
- <dimen name="limited_service_margin_start_end">24dp</dimen>
- <dimen name="limited_service_text_bottom_padding">10dp</dimen>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 494ca51..38a86f9 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2198,16 +2198,4 @@
<!-- Telephony notification channel name for a channel containing SIP accounts removed
notificatios -->
<string name="notification_channel_sip_account">Deprecated SIP accounts</string>
-
- <!-- Instruction text to notify user that emergency calls may not be possible when voice is
- enabled over wifi. [CHAR LIMIT=NONE] -->
- <string name="limited_service_alert_dialog_description"><xliff:g id="spn" example="Operator">%s</xliff:g> doesn\'t support emergency calls over Wi-Fi.
-\n\nEmergency calls will be placed through a mobile network. If there\'s limited mobile coverage,
- your emergency call may not go through.
-</string>
- <!-- Option to hide the popup dialog if it is not necessary for the user. [CHAR LIMIT=40] -->
- <string name="do_not_show_again">Don\'t show again</string>
- <!-- Option to turn off wifi calling -->
- <string name="turn_off_wfc">Turn off Wi-Fi calling</string>
- <string name="unavailable_emergency_calls_notification_name">Emergency calls may be unavailable</string>
</resources>
diff --git a/src/com/android/phone/LimitedServiceActivity.java b/src/com/android/phone/LimitedServiceActivity.java
deleted file mode 100644
index 774780a..0000000
--- a/src/com/android/phone/LimitedServiceActivity.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*
- * Copyright (c) 2020, The Linux Foundation.
- * 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.app.Dialog;
-import android.app.NotificationManager;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.res.Resources;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
-import android.preference.PreferenceManager;
-import android.support.annotation.NonNull;
-import android.telephony.ims.ImsMmTelManager;
-import android.telephony.TelephonyManager;
-import android.telephony.SubscriptionManager;
-import android.util.Log;
-import android.view.View;
-import android.widget.CheckBox;
-import android.widget.TextView;
-import androidx.fragment.app.DialogFragment;
-import androidx.fragment.app.FragmentActivity;
-import com.android.internal.telephony.CarrierServiceStateTracker;
-import com.android.internal.telephony.Phone;
-import com.android.internal.telephony.PhoneConstants;
-import com.android.internal.telephony.PhoneFactory;
-
-public class LimitedServiceActivity extends FragmentActivity {
-
- private static final String LOG_TAG = "LimitedServiceActivity";
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- Log.d(LOG_TAG, "Started LimitedServiceActivity");
- int phoneId = getIntent().getExtras().getInt(PhoneConstants.PHONE_KEY);
- LimitedServiceAlertDialogFragment newFragment = LimitedServiceAlertDialogFragment.
- newInstance(phoneId);
- newFragment.show(getSupportFragmentManager(), null);
- }
-
- public static class LimitedServiceAlertDialogFragment extends DialogFragment {
- private static final String TAG = "LimitedServiceAlertDialog";
- private static final int EVENT_IMS_CAPABILITIES_CHANGED = 1;
- private static final String KEY_PHONE_ID = "key_phone_id";
- private Phone mPhone;
- private int mPhoneId;
- private TelephonyManager mTelephonyManager;
- private Handler mHandler;
-
- public static LimitedServiceAlertDialogFragment newInstance(int phoneId) {
- LimitedServiceAlertDialogFragment frag = new LimitedServiceAlertDialogFragment();
- Log.i(TAG, "LimitedServiceAlertDialog for phoneId:" + phoneId);
- Bundle args = new Bundle();
- args.putInt(KEY_PHONE_ID, phoneId);
- frag.setArguments(args);
- return frag;
- }
-
- @Override
- public Dialog onCreateDialog(Bundle bundle) {
- mPhoneId = getArguments().getInt(KEY_PHONE_ID);
- mPhone = PhoneFactory.getPhone(mPhoneId);
- mTelephonyManager = getContext().getSystemService(TelephonyManager.class).
- createForSubscriptionId(mPhone.getSubId());
- mHandler = new MsgHandler();
- mPhone.getServiceStateTracker().registerForImsCapabilityChanged(mHandler,
- EVENT_IMS_CAPABILITIES_CHANGED, null);
- if (!SubscriptionManager.isValidPhoneId(mPhoneId)) return null;
- super.onCreateDialog(bundle);
- View dialogView = View.inflate(getActivity(),
- R.layout.frag_limited_service_alert_dialog, null);
- TextView textView = (TextView) dialogView.findViewById(R.id.message);
- Resources res = getResources();
- String description = String.format(res.getString(
- R.string.limited_service_alert_dialog_description),
- mPhone.getServiceStateTracker().getServiceProviderNameOrPlmn().trim());
- textView.setText(description);
- CheckBox alertCheckBox = dialogView.findViewById(R.id.do_not_show);
- SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(
- mPhone.getContext());
- Log.i(TAG, "onCreateDialog " + Phone.KEY_DO_NOT_SHOW_LIMITED_SERVICE_ALERT +
- mPhone.getSubId() + ":" + pref.getBoolean
- (Phone.KEY_DO_NOT_SHOW_LIMITED_SERVICE_ALERT + mPhone.getSubId(), false));
-
- AlertDialog alertDialog =
- new AlertDialog.Builder(getActivity(),
- android.R.style.Theme_DeviceDefault_Dialog_Alert)
- .setTitle(R.string.unavailable_emergency_calls_notification_name)
- .setView(dialogView)
- .setNegativeButton(
- R.string.turn_off_wfc,
- (dialog, which) -> onNegativeButtonClicked())
- .setPositiveButton(
- android.R.string.ok,
- (dialog, which) -> onPositiveButtonClicked(pref,
- alertCheckBox.isChecked()))
- .create();
- this.setCancelable(false);
- return alertDialog;
- }
-
- private void onNegativeButtonClicked() {
- Log.d(TAG, "onNegativeButtonClicked");
- SubscriptionManager subscriptionManager = (SubscriptionManager) getContext().
- getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
- int[] subIds = subscriptionManager.getSubscriptionIds(mPhoneId);
- if (subIds != null && subIds.length > 0 && SubscriptionManager.
- isValidSubscriptionId(subIds[0])) {
- ImsMmTelManager imsMmTelMgr = ImsMmTelManager.
- createForSubscriptionId(subIds[0]);
- Log.i(TAG, "Disabling WFC setting");
- imsMmTelMgr.setVoWiFiSettingEnabled(false);
- }
- cleanUp();
- }
-
- private void onPositiveButtonClicked(@NonNull SharedPreferences preferences,
- boolean isChecked) {
- SharedPreferences.Editor editor = preferences.edit();
- editor.putBoolean(Phone.KEY_DO_NOT_SHOW_LIMITED_SERVICE_ALERT + PhoneFactory.
- getPhone(mPhoneId).getSubId(), isChecked);
- editor.apply();
- Log.i(TAG, "onPositiveButtonClicked isChecked:" + isChecked + " phoneId:" + mPhoneId
- + " do not show preference:" + preferences.getBoolean
- (Phone.KEY_DO_NOT_SHOW_LIMITED_SERVICE_ALERT + mPhone.getSubId(), false));
- if (isChecked) {
- NotificationManager sNotificationManager = (NotificationManager) getContext().
- getSystemService(NOTIFICATION_SERVICE);
- sNotificationManager.cancel(CarrierServiceStateTracker.EMERGENCY_NOTIFICATION_TAG,
- mPhone.getSubId());
- }
- cleanUp();
- }
-
- private void cleanUp() {
- mPhone.getServiceStateTracker().unregisterForImsCapabilityChanged(mHandler);
- dismiss();
- getActivity().finish();
- }
-
- private class MsgHandler extends Handler {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case EVENT_IMS_CAPABILITIES_CHANGED:
- if (!mTelephonyManager.isWifiCallingAvailable()) {
- cleanUp();
- }
- break;
- }
- }
- }
- }
-}