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;
-                }
-            }
-        }
-    }
-}