Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6b83216 authored by Youhan Wang's avatar Youhan Wang Committed by Android (Google) Code Review
Browse files

Merge changes from topic 'ims-radio-info-mr2' into nyc-mr2-dev

* changes:
  Add Ims Registration Info to RadioInfo
  Enable and Disable IMS Provisioning Based on Platform Capability
parents c04f8b9e 839b9f97
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -81,7 +81,23 @@
    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="radioInfo_menu_viewSDN">View Service Dialing Numbers</string>
    <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="radioInfo_menu_getPDP">Get PDP List</string>
    <string name="radioInfo_menu_getIMS">IMS Service Status</string>
    <!-- Phone Info screen. IMS Registration Title.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="radio_info_ims_reg_status_title">IMS Status</string>
    <!-- Phone Info screen. IMS Status - Registered.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="radio_info_ims_reg_status_registered">Registered</string>
    <!-- Phone Info screen. Ims Status - Unregistered.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="radio_info_ims_reg_status_not_registered">Not Registered</string>
    <!-- Phone Info screen. Ims Feature Status label.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="radio_info_ims_feature_status_available">Available</string>
    <!-- Phone Info screen. Ims Feature status label.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="radio_info_ims_feature_status_unavailable">Unavailable</string>
    <!-- Phone Info screen. IMS Registration.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="radio_info_ims_reg_status">IMS Registration: <xliff:g id="status" example="registered">%1$s</xliff:g>\u000AVoice over LTE: <xliff:g id="availability" example="available">%2$s</xliff:g>\u000AVoice over WiFi: <xliff:g id="availability" example="available">%3$s</xliff:g>\u000AVideo Calling: <xliff:g id="availability" example="available">%4$s</xliff:g>\u000AUT Interface: <xliff:g id="availability" example="available">%5$s</xliff:g></string>
    <!-- Phone Info screen. Status label.  Used for diagnostic info screens, precise translation isn't needed -->
    <string name="radioInfo_service_in">In Service</string>
+53 −19
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
package com.android.settings;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.QueuedWork;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -160,7 +162,7 @@ public class RadioInfo extends Activity {
    private static final int MENU_ITEM_VIEW_ADN     = 1;
    private static final int MENU_ITEM_VIEW_FDN     = 2;
    private static final int MENU_ITEM_VIEW_SDN     = 3;
    private static final int MENU_ITEM_GET_PDP_LIST = 4;
    private static final int MENU_ITEM_GET_IMS_STATUS = 4;
    private static final int MENU_ITEM_TOGGLE_DATA  = 5;

    private TextView mDeviceId; //DeviceId is the IMEI in GSM and the MEID in CDMA
@@ -537,8 +539,8 @@ public class RadioInfo extends Activity {
                R.string.radioInfo_menu_viewFDN).setOnMenuItemClickListener(mViewFDNCallback);
        menu.add(1, MENU_ITEM_VIEW_SDN, 0,
                R.string.radioInfo_menu_viewSDN).setOnMenuItemClickListener(mViewSDNCallback);
        menu.add(1, MENU_ITEM_GET_PDP_LIST,
                0, R.string.radioInfo_menu_getPDP).setOnMenuItemClickListener(mGetPdpList);
        menu.add(1, MENU_ITEM_GET_IMS_STATUS,
                0, R.string.radioInfo_menu_getIMS).setOnMenuItemClickListener(mGetImsStatus);
        menu.add(1, MENU_ITEM_TOGGLE_DATA,
                0, R.string.radio_info_data_connection_disable).setOnMenuItemClickListener(mToggleData);
        return true;
@@ -1069,10 +1071,36 @@ public class RadioInfo extends Activity {
        }
    };

    private MenuItem.OnMenuItemClickListener mGetPdpList = new MenuItem.OnMenuItemClickListener() {
    private MenuItem.OnMenuItemClickListener mGetImsStatus = new MenuItem.OnMenuItemClickListener() {
        public boolean onMenuItemClick(MenuItem item) {
            //FIXME: Replace with a TelephonyManager call
            phone.getDataCallList(null);
            boolean isImsRegistered = phone.isImsRegistered();
            boolean availableVolte = phone.isVolteEnabled();
            boolean availableWfc = phone.isWifiCallingEnabled();
            boolean availableVt = phone.isVideoEnabled();
            boolean availableUt = phone.isUtEnabled();

            final String imsRegString = isImsRegistered ?
                getString(R.string.radio_info_ims_reg_status_registered) :
                getString(R.string.radio_info_ims_reg_status_not_registered);

            final String available = getString(R.string.radio_info_ims_feature_status_available);
            final String unavailable = getString(
                    R.string.radio_info_ims_feature_status_unavailable);

            String imsStatus = getString(R.string.radio_info_ims_reg_status,
                    imsRegString,
                    availableVolte ? available : unavailable,
                    availableWfc ? available : unavailable,
                    availableVt ? available : unavailable,
                    availableUt ? available : unavailable);

            AlertDialog imsDialog = new AlertDialog.Builder(RadioInfo.this)
                .setMessage(imsStatus)
                .setTitle(getString(R.string.radio_info_ims_reg_status_title))
                .create();

            imsDialog.show();

            return true;
        }
    };
@@ -1210,14 +1238,20 @@ public class RadioInfo extends Activity {
        imsVolteProvisionedSwitch.setOnCheckedChangeListener(null);
        imsVolteProvisionedSwitch.setChecked(isImsVolteProvisioned());
        imsVolteProvisionedSwitch.setOnCheckedChangeListener(mImsVolteCheckedChangeListener);
        imsVolteProvisionedSwitch.setEnabled(
                mImsManager.isVolteEnabledByPlatform(phone.getContext()));

        imsVtProvisionedSwitch.setOnCheckedChangeListener(null);
        imsVtProvisionedSwitch.setChecked(isImsVtProvisioned());
        imsVtProvisionedSwitch.setOnCheckedChangeListener(mImsVtCheckedChangeListener);
        imsVtProvisionedSwitch.setEnabled(
            mImsManager.isVtEnabledByPlatform(phone.getContext()));

        imsWfcProvisionedSwitch.setOnCheckedChangeListener(null);
        imsWfcProvisionedSwitch.setChecked(isImsWfcProvisioned());
        imsWfcProvisionedSwitch.setOnCheckedChangeListener(mImsWfcCheckedChangeListener);
        imsWfcProvisionedSwitch.setEnabled(
            mImsManager.isWfcEnabledByPlatform(phone.getContext()));
    }

    OnClickListener mDnsCheckButtonHandler = new OnClickListener() {