Merge "[Mainline] Expose the premium SMS consent in SmsManager"
diff --git a/Android.bp b/Android.bp
index c287b8d..7267595 100644
--- a/Android.bp
+++ b/Android.bp
@@ -35,11 +35,32 @@
],
path: "src/java",
}
+
filegroup {
name: "jarjar-rules-shared",
srcs: ["jarjar-rules-shared.txt"],
}
+android_app {
+ name: "telephony-resources",
+ installable: true,
+
+ resource_dirs: [
+ "res",
+ ],
+
+ platform_apis: true,
+ manifest: "AndroidManifest_Resources.xml",
+ export_package_resources: true,
+
+ product_variables: {
+ pdk: {
+ // enable this build only when platform library is available
+ enabled: false,
+ },
+ },
+}
+
java_library {
name: "telephony-common",
installable: true,
@@ -67,7 +88,9 @@
"ims-common",
"services",
"unsupportedappusage",
+ "telephony-resources",
],
+ required: ["telephony-resources"],
static_libs: [
"android.hardware.radio.config-V1.0-java-shallow",
"android.hardware.radio.config-V1.1-java-shallow",
@@ -75,6 +98,7 @@
"android.hardware.radio.deprecated-V1.0-java-shallow",
"ecc-protos-lite",
"libphonenumber-nogeocoder",
+ "PlatformProperties",
"telephony-protos",
],
@@ -85,4 +109,3 @@
},
},
}
-
diff --git a/AndroidManifest_Resources.xml b/AndroidManifest_Resources.xml
new file mode 100644
index 0000000..7afba27
--- /dev/null
+++ b/AndroidManifest_Resources.xml
@@ -0,0 +1,8 @@
+<!-- Manifest for telephony resources APK -->
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.telephony.resources">
+ <application
+ android:directBootAware="true"
+ android:hasCode="false">
+ </application>
+</manifest>
\ No newline at end of file
diff --git a/jarjar-rules-shared.txt b/jarjar-rules-shared.txt
index 4c0d857..a6e5412 100644
--- a/jarjar-rules-shared.txt
+++ b/jarjar-rules-shared.txt
@@ -2,6 +2,7 @@
rule android.os.RegistrantList* com.android.internal.telephony.RegistrantList@1
rule android.os.Registrant* com.android.internal.telephony.Registrant@1
rule android.hidl.** android.internal.hidl.@1
+rule android.sysprop.** android.internal.telephony.sysprop.@1
rule android.util.LocalLog* com.android.internal.telephony.LocalLog@1
rule android.util.TimeUtils* com.android.internal.telephony.TimeUtils@1
rule com.android.internal.os.SomeArgs* com.android.internal.telephony.SomeArgs@1
diff --git a/proto/src/telephony.proto b/proto/src/telephony.proto
index dac6668..fef1df5 100644
--- a/proto/src/telephony.proto
+++ b/proto/src/telephony.proto
@@ -2242,6 +2242,18 @@
// the codec type of an ongoing call
optional AudioCodec codec_type = 11;
+
+ // true if no incoming RTP is received for a continuous duration of 4 seconds
+ optional bool rtp_inactivity_detected = 12;
+
+ // true if only silence RTP packets are received for 20 seconds immediately
+ // after call is connected
+ optional bool rx_silence_detected = 13;
+
+ // true if only silence RTP packets are sent for 20 seconds immediately
+ // after call is connected
+ optional bool tx_silence_detected = 14;
+
}
message CallQualitySummary {
diff --git a/res/values/config.xml b/res/values/config.xml
new file mode 100644
index 0000000..5ea773e
--- /dev/null
+++ b/res/values/config.xml
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+** Copyright 2020, 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.
+*/
+-->
+
+<!-- These resources are around just to allow their values to be customized
+ for different hardware and product builds. Do not translate.
+
+ NOTE: The naming convention is "config_camelCaseValue". Some legacy
+ entries do not follow the convention, but all new entries should. -->
+
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- The RadioAccessFamilies supported by the device.
+ Empty is viewed as "all". Only used on devices which
+ don't support RIL_REQUEST_GET_RADIO_CAPABILITY
+ format is UMTS|LTE|... -->
+ <string translatable="false" name="config_radio_access_family"></string>
+
+ <!-- MMS user agent string -->
+ <string name="config_mms_user_agent" translatable="false"></string>
+
+ <!-- MMS user agent prolfile url -->
+ <string name="config_mms_user_agent_profile_url" translatable="false"></string>
+
+ <!-- Config determines whether to update phone object when voice registration
+ state changes. Voice radio tech change will always trigger an update of
+ phone object irrespective of this config -->
+ <bool name="config_switch_phone_on_voice_reg_state_change">true</bool>
+
+ <!-- Boolean indicating if restoring network selection should be skipped -->
+ <!-- The restoring is handled by modem if it is true-->
+ <bool translatable="false" name="skip_restoring_network_selection">false</bool>
+
+ <!-- An array of CDMA roaming indicators which means international roaming -->
+ <integer-array translatable="false" name="config_cdma_international_roaming_indicators" />
+
+ <!-- Configure mobile network MTU. The standard default is set here but each carrier
+ may have a specific value set in an overlay config.xml file. -->
+ <integer name="config_mobile_mtu">1500</integer>
+
+ <!-- Configure mobile tcp buffer sizes in the form:
+ rat-name:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
+ If no value is found for the rat-name in use, the system default will be applied.
+ -->
+ <string-array name="config_mobile_tcp_buffers">
+ </string-array>
+
+ <!-- flag to indicate if EF LI/EF PL should be used for system language -->
+ <bool name="config_use_sim_language_file">false</bool>
+
+ <!-- List of countries in which we display 'No service' on status bar
+ instead of 'Emergency calls only' when SIM is unready. -->
+ <string-array translatable="false" name="config_display_no_service_when_sim_unready">
+ <item>"DE"</item>
+ <item>"GB"</item>
+ <item>"JP"</item>
+ </string-array>
+
+ <!-- Flag indicating whether the surface flinger is inefficient
+ at performing a blur. Used by parts of the UI to turn off
+ the blur effect where it isn't worth the performance hit.
+ As of Honeycomb, blurring is not supported anymore. -->
+ <bool name="config_sf_slowBlur">true</bool>
+
+ <!-- set to false if we need to show user confirmation
+ when alpha identifier is not provided by the UICC -->
+ <bool name="config_stkNoAlphaUsrCnf">true</bool>
+
+ <!-- Number of physical SIM slots on the device. This includes both eSIM and pSIM slots, and
+ is not necessarily the same as the number of phones/logical modems supported by the device.
+ For example, a multi-sim device can have 2 phones/logical modems, but 3 physical slots,
+ or a single SIM device can have 1 phones/logical modems, but 2 physical slots (one eSIM
+ and one pSIM) -->
+ <integer name="config_num_physical_slots">1</integer>
+
+ <!-- Is the device capable of hot swapping an UICC Card -->
+ <bool name="config_hotswapCapable">false</bool>
+
+ <!-- An array of device capabilities defined by GSMA SGP.22 v2.0.
+ The first item is the capability name that the device supports. The second item is the
+ major version. The minor and revision versions are default to 0s.
+ The device capabilities and their definition in the spec are:
+ gsm : gsmSupportedRelease
+ utran : utranSupportedRelease
+ cdma1x : cdma2000onexSupportedRelease
+ hrpd : cdma2000hrpdSupportedRelease
+ ehrpd : cdma2000ehrpdSupportedRelease
+ eutran : eutranSupportedRelease
+ nfc : contactlessSupportedRelease
+ crl : rspCrlSupportedVersion
+ -->
+ <string-array translatable="false" name="config_telephonyEuiccDeviceCapabilities">
+ <!-- Example:
+ <item>"gsm,11"</item>
+ <item>"utran,11"</item>
+ <item>"cdma1x,1"</item>
+ <item>"hrpd,3"</item>
+ <item>"ehrpd,12"</item>
+ <item>"eutran,11"</item>
+ <item>"nfc,1"</item>
+ <item>"crl,1"</item>
+ -->
+ </string-array>
+
+ <!-- If this value is true, duplicate Source/Destination port fields
+ in WDP header of some carriers OMADM wap push are supported.
+ ex: MSGTYPE-TotalSegments-CurrentSegment
+ -SourcePortDestPort-SourcePortDestPort-OMADM PDU
+ If false, not supported. -->
+ <bool name="config_duplicate_port_omadm_wappush">false</bool>
+
+ <!-- Cellular network service package name to bind to by default. -->
+ <string name="config_wwan_network_service_package" translatable="false">com.android.phone</string>
+
+ <!-- Cellular network service class name to bind to by default.-->
+ <string name="config_wwan_network_service_class" translatable="false"></string>
+
+ <!-- IWLAN network service package name to bind to by default. If none is specified in an overlay, an
+ empty string is passed in -->
+ <string name="config_wlan_network_service_package" translatable="false"></string>
+
+ <!-- IWLAN network service class name to bind to by default. If none is specified in an overlay, an
+ empty string is passed in -->
+ <string name="config_wlan_network_service_class" translatable="false"></string>
+
+ <!-- Telephony qualified networks service package name to bind to by default. -->
+ <string name="config_qualified_networks_service_package" translatable="false"></string>
+
+ <!-- Telephony qualified networks service class name to bind to by default. -->
+ <string name="config_qualified_networks_service_class" translatable="false"></string>
+
+ <!-- Cellular data service package name to bind to by default. If none is specified in an overlay, an
+ empty string is passed in -->
+ <string name="config_wwan_data_service_package" translatable="false">com.android.phone</string>
+
+ <!-- IWLAN data service package name to bind to by default. If none is specified in an overlay, an
+ empty string is passed in -->
+ <string name="config_wlan_data_service_package" translatable="false"></string>
+
+ <!-- Cellular data service class name to bind to by default. If none is specified in an overlay, an
+ empty string is passed in -->
+ <string name="config_wwan_data_service_class" translatable="false"></string>
+
+ <!-- IWLAN data service class name to bind to by default. If none is specified in an overlay, an
+ empty string is passed in -->
+ <string name="config_wlan_data_service_class" translatable="false"></string>
+
+ <!-- Boolean indicating if RADIO POWER OFF is required on receiving SIM REFRESH with RESET.
+ This will be handled by modem if it is false. -->
+ <bool name="config_requireRadioPowerOffOnSimRefreshReset">false</bool>
+
+ <!-- Flag specifying whether the device will use the "allow_hold_in_ims_call" carrier config
+ option. When false, the device will support holding of IMS calls, regardless of the
+ carrier config setting. -->
+ <bool name="config_device_respects_hold_carrier_config">true</bool>
+
+ <!-- Whether to use voip audio mode for ims call -->
+ <bool name="config_use_voip_mode_for_ims">false</bool>
+
+ <!-- Enables built-in SIP phone capability -->
+ <bool name="config_built_in_sip_phone">true</bool>
+
+ <!-- Flag indicating apps will skip sending hold request before merge. In this case
+ IMS service implementation will do both.i.e.hold followed by merge. -->
+ <bool name="skipHoldBeforeMerge">true</bool>
+
+ <!-- Flag specifying whether VoLTE is available on device -->
+ <bool name="config_device_volte_available">false</bool>
+
+ <!-- Flag specifying whether VT is available on device -->
+ <bool name="config_device_vt_available">false</bool>
+
+ <!-- Flag specifying whether WFC over IMS is available on device -->
+ <bool name="config_device_wfc_ims_available">false</bool>
+
+ <!-- Flag specifying whether or not IMS will use the dynamic ImsResolver -->
+ <bool name="config_dynamic_bind_ims">false</bool>
+
+ <!-- ImsService package name to bind to by default. If none is specified in an overlay, an
+ empty string is passed in -->
+ <string name="config_ims_package"/>
+
+ <!-- Whether cbrs is supported on the device or not -->
+ <bool name="config_cbrs_supported" translatable="false">false</bool>
+
+ <!-- Enables SIP on WIFI only -->
+ <bool name="config_sip_wifi_only">false</bool>
+
+ <!-- Name of the dialog that is used to install the carrier app when the SIM is inserted -->
+ <string name="config_carrierAppInstallDialogComponent" translatable="false"
+ >com.android.simappdialog/com.android.simappdialog.InstallCarrierAppActivity</string>
+
+ <!-- The default mobile provisioning apn. Empty by default, maybe overridden by
+ an mcc/mnc specific config.xml -->
+ <string name="mobile_provisioning_apn" translatable="false"></string>
+
+ <!-- Number of retries Cell Data should attempt for a given error code before
+ restarting the modem.
+ Error codes not listed will not lead to modem restarts.
+ Array of "code#,retry#" -->
+ <string-array name="config_cell_retries_per_error_code">
+ </string-array>
+
+ <bool name="config_auto_attach_data_on_creation">true</bool>
+
+ <!-- Set to true if after a provisioning apn the radio should be restarted -->
+ <bool name="config_restartRadioAfterProvisioning">false</bool>
+
+ <!-- When true, indicates that the vendor's IMS implementation requires a workaround when
+ sending a request to enable or disable the camera while the video session is also
+ paused. -->
+ <bool name="config_useVideoPauseWorkaround">false</bool>
+
+ <!-- Use ERI text for network name on CDMA LTE -->
+ <bool name="config_LTE_eri_for_network_name">true</bool>
+
+ <!-- Flag indicating if the user is notified when the mobile network access is restricted -->
+ <bool name="config_user_notification_of_restrictied_mobile_access">true</bool>
+
+ <!-- Component name of the ICC hotswap prompt for restart dialog -->
+ <string name="config_iccHotswapPromptForRestartDialogComponent" translatable="false">@null</string>
+
+ <!-- call barring MMI code from TS 22.030 Annex B -->
+ <string-array translatable="false" name="config_callBarringMMI">
+ <item>33</item>
+ <item>331</item>
+ <item>332</item>
+ <item>35</item>
+ <item>351</item>
+ <item>330</item>
+ <item>333</item>
+ <item>353</item>
+ </string-array>
+
+ <!-- Do not translate. Defines the slots is Two Digit Number for dialing normally not USSD -->
+ <string-array name="config_twoDigitNumberPattern" translatable="false">
+ </string-array>
+
+ <!-- A array of regex to treat a SMS as VVM SMS if the message body matches.
+ Each item represents an entry, which consists of two parts:
+ a comma (,) separated list of MCCMNC the regex applies to, followed by a semicolon (;), and
+ then the regex itself. -->
+ <string-array name="config_vvmSmsFilterRegexes" translatable="false">
+ <!-- Verizon requires any SMS that starts with //VZWVVM to be treated as a VVM SMS-->
+ <item>310004,310010,310012,310013,310590,310890,310910,311110,311270,311271,311272,311273,311274,311275,311276,311277,311278,311279,311280,311281,311282,311283,311284,311285,311286,311287,311288,311289,311390,311480,311481,311482,311483,311484,311485,311486,311487,311488,311489;^//VZWVVM.*</item>
+ </string-array>
+
+ <!-- default telephony hardware configuration for this platform.
+ -->
+ <!-- this string array should be overridden by the device to present a list
+ telephony hardware resource. this is used by the telephony device controller
+ (TDC) to offer the basic capabilities of the hardware to the telephony
+ framework
+ -->
+ <!-- an array of "[hardware type],[hardware-uuid],[state],[[hardware-type specific]]"
+ with, [[hardware-type specific]] in:
+ - "[[ril-model],[rat],[max-active-voice],[max-active-data],[max-active-standby]]"
+ for 'modem' hardware
+ - "[[associated-modem-uuid]]"
+ for 'sim' hardware.
+ refer to HardwareConfig in com.android.internal.telephony for specific details/values
+ those elements can carry.
+ -->
+ <string-array translatable="false" name="config_telephonyHardware">
+ <!-- modem -->
+ <item>0,modem,0,0,0,1,1,1</item>
+ <!-- sim -->
+ <item>1,sim,0,modem</item>
+ </string-array>
+
+ <!-- Package name for the default CellBroadcastService module [DO NOT TRANSLATE] -->
+ <string name="cellbroadcast_default_package" translatable="false">com.android.cellbroadcastservice
+ </string>
+
+ <!-- For some operators, PDU has garbages. To fix it, need to use valid index -->
+ <integer name="config_valid_wappush_index">-1</integer>
+
+ <!-- Set to true if we need to not prefer an APN.
+ This is being added to enable a simple scenario of pre-paid
+ provisioning on some carriers, working around a bug (7305641)
+ where if the preferred is used we don't try the others. -->
+ <bool name="config_dontPreferApn">false</bool>
+
+</resources>
diff --git a/res/values/overlayable.xml b/res/values/overlayable.xml
new file mode 100644
index 0000000..1bbad36
--- /dev/null
+++ b/res/values/overlayable.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 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.
+-->
+
+<!-- The collection of resources for theming the appearance of a device -->
+<resources xmlns:android="http://schemas.android.com/apk/res/android">
+ <overlayable name="TelephonyCustomization">
+
+ <!-- START VENDOR CUSTOMIZATION -->
+ <policy type="product|system|vendor">
+ <item type="string" name="config_mms_user_agent"/>
+ <item type="string" name="config_mms_user_agent_profile_url"/>
+ <item type="bool" name="config_switch_phone_on_voice_reg_state_change"/>
+ <item type="bool" name="skip_restoring_network_selection"/>
+ <item type="bool" name="config_hotswapCapable"/>
+ <item type="array" name="config_cdma_international_roaming_indicators"/>
+ <item type="integer" name="config_mobile_mtu"/>
+ <item type="array" name="config_mobile_tcp_buffers"/>
+ <item type="bool" name="config_use_sim_language_file"/>
+ <item type="bool" name="config_requireRadioPowerOffOnSimRefreshReset"/>
+ <item type="bool" name="config_device_respects_hold_carrier_config"/>
+ <item type="array" name="config_display_no_service_when_sim_unready"/>
+ <item type="array" name="config_telephonyEuiccDeviceCapabilities"/>
+ <item type="integer" name="config_num_physical_slots"/>
+ <item type="bool" name="config_duplicate_port_omadm_wappush"/>
+ <item type="string" name="config_wwan_network_service_package"/>
+ <item type="string" name="config_wwan_network_service_class"/>
+ <item type="string" name="config_wlan_network_service_package"/>
+ <item type="string" name="config_wlan_network_service_class"/>
+ <item type="string" name="config_qualified_networks_service_package"/>
+ <item type="string" name="config_qualified_networks_service_class"/>
+ <item type="string" name="config_wwan_data_service_package"/>
+ <item type="string" name="config_wwan_data_service_class"/>
+ <item type="string" name="config_wlan_data_service_package"/>
+ <item type="string" name="config_wlan_data_service_class"/>
+ <item type="bool" name="config_use_voip_mode_for_ims"/>
+ <item type="bool" name="config_built_in_sip_phone"/>
+ <item type="bool" name="skipHoldBeforeMerge"/>
+ <item type="bool" name="config_device_volte_available"/>
+ <item type="bool" name="config_device_vt_available"/>
+ <item type="bool" name="config_device_wfc_ims_available"/>
+ <item type="bool" name="config_dynamic_bind_ims"/>
+ <item type="string" name="config_ims_package"/>
+ <item type="string" name="config_carrierAppInstallDialogComponent"/>
+ <item type="bool" name="config_cbrs_supported"/>
+ <item type="bool" name="config_sip_wifi_only"/>
+ <item type="string" name="mobile_provisioning_apn"/>
+ <item type="array" name="config_cell_retries_per_error_code"/>
+ <item type="bool" name="config_auto_attach_data_on_creation"/>
+ <item type="bool" name="config_restartRadioAfterProvisioning"/>
+ <item type="bool" name="config_useVideoPauseWorkaround"/>
+ <item type="bool" name="config_LTE_eri_for_network_name"/>
+ <item type="bool" name="config_user_notification_of_restrictied_mobile_access"/>
+ <item type="string" name="config_iccHotswapPromptForRestartDialogComponent"/>
+ <item type="array" name="config_callBarringMMI"/>
+ <item type="array" name="config_twoDigitNumberPattern"/>
+ <item type="array" name="config_vvmSmsFilterRegexes"/>
+ <item type="array" name="config_telephonyHardware"/>
+ <item type="string" name="cellbroadcast_default_package"/>
+ <item type="integer" name="config_valid_wappush_index"/>
+ <item type="bool" name="config_dontPreferApn"/>
+ </policy>
+ <!-- END VENDOR CUSTOMIZATION -->
+
+ </overlayable>
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
new file mode 100644
index 0000000..5cf34ec
--- /dev/null
+++ b/res/values/strings.xml
@@ -0,0 +1,412 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/* //device/apps/common/assets/res/any/strings.xml
+**
+** Copyright 2020, 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.
+*/
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+
+ <!-- Do Not Translate: Alternate eri.xml -->
+ <string name="alternate_eri_file">/data/eri.xml</string>
+
+ <!-- This string array should be overridden by the manufacture to present a list of carrier-id,locale. The wifi regulatory domain is extracted from the locale information. This is used at startup to set system defaults by checking the system property ro.carrier for the carrier-id and searching through this array -->
+ <!-- An Array of [[Carrier-ID] -->
+ <!-- [default-locale]] -->
+ <string-array name="carrier_properties" translatable="false">
+ </string-array>
+
+ <!-- For GsmMmiCode.java --> <skip />
+ <!-- Displayed when the user dialed an MMI code whose function
+ could not be performed. This will be displayed in a toast. -->
+ <string name="mmiError">Connection problem or invalid MMI code.</string>
+ <!-- Displayed when the user dialed an MMI code whose function
+ could not be performed because FDN is enabled. This will be displayed in a toast. -->
+ <string name="mmiFdnError">Operation is restricted to fixed dialing numbers only.</string>
+ <!-- Displayed when a carrier does not support call forwarding queries when roaming. -->
+ <string name="mmiErrorWhileRoaming">Can not change call forwarding settings from your phone while you are roaming.</string>
+
+ <!-- What the UI should display for "voice mail" unless overridden by the SIM-->
+ <string name="defaultVoiceMailAlphaTag">Voicemail</string>
+
+ <!-- Displayed when a phone feature such as call barring was activated. -->
+ <string name="serviceEnabled">Service was enabled.</string>
+ <!-- Displayed in front of the list of a set of service classes
+ (voice, data, fax, etc.) that were enabled. -->
+ <string name="serviceEnabledFor">Service was enabled for:</string>
+ <!-- Displayed when a phone feature such as call forwarding was deactivated. -->
+ <string name="serviceDisabled">Service has been disabled.</string>
+ <!-- Displayed when a phone property such as a SIM password was registered. -->
+ <string name="serviceRegistered">Registration was successful.</string>
+ <!-- Displayed when a phone property such as a SIM password was erased. -->
+ <string name="serviceErased">Erasure was successful.</string>
+ <!-- Displayed when a SIM password was entered incorrectly. -->
+ <string name="passwordIncorrect">Incorrect password.</string>
+ <!-- Displayed when a phone feature triggered by an MMI code is complete. -->
+ <string name="mmiComplete">MMI complete.</string>
+ <!-- Displayed when a SIM PIN password is entered incorrectly. -->
+ <string name="badPin">The old PIN you typed isn\'t correct.</string>
+ <!-- Displayed when a SIM PUK password is entered incorrectly. -->
+ <string name="badPuk">The PUK you typed isn\'t correct.</string>
+ <!-- Displayed when SIM PIN passwords are entered inconsistently. -->
+ <string name="mismatchPin">The PINs you typed don\'t match.</string>
+ <!-- Displayed when a SIM PIN password is too long or too short. -->
+ <string name="invalidPin">Type a PIN that is 4 to 8 numbers.</string>
+ <!-- Displayed when a SIM PUK password is too short. -->
+ <string name="invalidPuk">Type a PUK that is 8 numbers or longer.</string>
+ <!-- Displayed to prompt the user to type the PUK password to unlock
+ the SIM card. -->
+ <string name="needPuk">Your SIM card is PUK-locked. Type the PUK code to unlock it.</string>
+ <string name="needPuk2">Type PUK2 to unblock SIM card.</string>
+ <!-- Displayed when user attempts to change SIM PIN1 without enabling PIN1. -->
+ <string name="enablePin">Unsuccessful, enable SIM/RUIM Lock.</string>
+ <!-- Displayed when a SIM PIN/PUK is entered incorrectly. -->
+ <plurals name="pinpuk_attempts">
+ <item quantity="one">You have <xliff:g id="number">%d</xliff:g> remaining attempt before SIM is locked.</item>
+ <item quantity="other">You have <xliff:g id="number">%d</xliff:g> remaining attempts before SIM is locked.</item>
+ </plurals>
+ <!-- Title for the dialog used to display the user's IMEI number [CHAR LIMIT=10] -->
+ <string name="imei">IMEI</string>
+
+ <!-- Title for the dialog used to display the user's MEID number on CDMA network
+ [CHAR LIMIT=10] -->
+ <string name="meid">MEID</string>
+
+ <!-- Displayed as the title for a success/failure report enabling/disabling caller ID. -->
+ <string name="ClipMmi">Incoming Caller ID</string>
+ <!-- Displayed as the title for a success/failure report enabling/disabling caller ID. -->
+ <string name="ClirMmi">Outgoing Caller ID</string>
+ <!-- Displayed as the title for a success/failure report enabling/disabling connected line ID. -->
+ <string name="ColpMmi">Connected Line ID</string>
+ <!-- Displayed as the title for a success/failure report enabling/disabling connected line ID restriction. -->
+ <string name="ColrMmi">Connected Line ID Restriction</string>
+ <!-- Displayed as the title for a success/failure report enabling/disabling call forwarding. -->
+ <string name="CfMmi">Call forwarding</string>
+ <!-- Displayed as the title for a success/failure report enabling/disabling call waiting. -->
+ <string name="CwMmi">Call waiting</string>
+ <!-- Displayed as the title for a success/failure report enabling/disabling call barring. -->
+ <string name="BaMmi">Call barring</string>
+ <!-- Displayed as the title for a success/failure report changing the SIM password. -->
+ <string name="PwdMmi">Password change</string>
+ <!-- Displayed as the title for a success/failure report changing the SIM PIN. -->
+ <string name="PinMmi">PIN change</string>
+ <string name="CnipMmi">Calling number present</string>
+ <string name="CnirMmi">Calling number restricted</string>
+ <string name="ThreeWCMmi">Three way calling</string>
+ <string name="RuacMmi">Rejection of undesired annoying calls</string>
+ <string name="CndMmi">Calling number delivery</string>
+ <string name="DndMmi">Do not disturb</string>
+
+ <!-- Displayed to confirm to the user that caller ID will be restricted on the next call as usual. -->
+ <string name="CLIRDefaultOnNextCallOn">Caller ID defaults to restricted. Next call: Restricted</string>
+ <!-- Displayed to confirm to the user that caller ID will be not restricted on the next call even though it usually is. -->
+ <string name="CLIRDefaultOnNextCallOff">Caller ID defaults to restricted. Next call: Not restricted</string>
+ <!-- Displayed to confirm to the user that caller ID will not be restricted on the next call but usually is. -->
+ <string name="CLIRDefaultOffNextCallOn">Caller ID defaults to not restricted. Next call: Restricted</string>
+ <!-- Displayed to confirm to the user that caller ID will not be restricted on the next call or in general. -->
+ <string name="CLIRDefaultOffNextCallOff">Caller ID defaults to not restricted. Next call: Not restricted</string>
+
+
+ <!-- Displayed to tell the user that caller ID is not provisioned for their SIM. -->
+ <string name="serviceNotProvisioned">Service not provisioned.</string>
+ <!-- Displayed to tell the user that they cannot change the caller ID setting. -->
+ <string name="CLIRPermanent">You can\'t change the caller ID setting.</string>
+
+ <!-- Notification title to tell the user that data service is blocked by access control. [CHAR LIMIT=NOTIF_TITLE] -->
+ <string name="RestrictedOnDataTitle">No mobile data service</string>
+ <!-- Notification title to tell the user that emergency calling is blocked by access control. [CHAR LIMIT=NOTIF_TITLE] -->
+ <string name="RestrictedOnEmergencyTitle">Emergency calling unavailable</string>
+ <!-- Notification title to tell the user that normal service is blocked by access control. [CHAR LIMIT=NOTIF_TITLE] -->
+ <string name="RestrictedOnNormalTitle">No voice service</string>
+ <!-- Notification title to tell the user that all emergency and normal voice services are blocked by access control. [CHAR LIMIT=NOTIF_TITLE] -->
+ <string name="RestrictedOnAllVoiceTitle">No voice service or emergency calling</string>
+
+ <!-- Notification content to tell the user that voice/data/emergency service is blocked by access control. [CHAR LIMIT=NOTIF_BODY] -->
+ <string name="RestrictedStateContent">Temporarily turned off by your carrier</string>
+
+ <!-- Notification content to tell the user that voice/data/emergency service is blocked by access control when multiple SIMs are active. [CHAR LIMIT=NOTIF_BODY] -->
+ <string name="RestrictedStateContentMsimTemplate">Temporarily turned off by your carrier for SIM <xliff:g id="simNumber" example="1">%d</xliff:g></string>
+
+ <!-- Displayed to tell the user that they should switch their network preference. -->
+ <string name="NetworkPreferenceSwitchTitle">Can\u2019t reach mobile network</string>
+ <!-- Displayed to tell the user that they should switch their network preference. -->
+ <string name="NetworkPreferenceSwitchSummary">Try changing preferred network. Tap to change.</string>
+ <!-- Displayed to tell the user that emergency calls might not be available. -->
+ <string name="EmergencyCallWarningTitle">Emergency calling unavailable</string>
+ <!-- Displayed to tell the user that emergency calls might not be available. -->
+ <string name="EmergencyCallWarningSummary">Can\u2019t make emergency calls over Wi\u2011Fi</string>
+
+ <!-- Telephony notification channel name for a channel containing network alert notifications. -->
+ <string name="notification_channel_network_alert">Alerts</string>
+ <!-- Telephony notification channel name for a channel containing call forwarding notifications. -->
+ <string name="notification_channel_call_forward">Call forwarding</string>
+ <!-- Telephony notification channel name for a channel containing emergency callback mode notifications. -->
+ <string name="notification_channel_emergency_callback">Emergency callback mode</string>
+ <!-- Telephony notification channel name for a channel containing mobile data status notifications. -->
+ <string name="notification_channel_mobile_data_status">Mobile data status</string>
+ <!-- Telephony notification channel name for a channel containing sms notifications. -->
+ <string name="notification_channel_sms">SMS messages</string>
+ <!-- Telephony notification channel name for a channel containing voice mail notifications. -->
+ <string name="notification_channel_voice_mail">Voicemail messages</string>
+ <!-- Telephony notification channel name for a channel containing wifi calling status notifications. -->
+ <string name="notification_channel_wfc">Wi-Fi calling</string>
+ <!-- Telephony notification channel name for a channel containing SIM notifications -->
+ <string name="notification_channel_sim">SIM status</string>
+ <!-- Telephony notification channel name for a channel containing high priority SIM notifications -->
+ <string name="notification_channel_sim_high_prio">High priority SIM status</string>
+
+ <!-- Displayed to tell the user that peer changed TTY mode -->
+ <string name="peerTtyModeFull">Peer requested TTY Mode FULL</string>
+ <string name="peerTtyModeHco">Peer requested TTY Mode HCO</string>
+ <string name="peerTtyModeVco">Peer requested TTY Mode VCO</string>
+ <string name="peerTtyModeOff">Peer requested TTY Mode OFF</string>
+
+ <!-- Mappings between TS 27.007 +CFCC/+CLCK "service classes" and human-readable strings--> <skip />
+ <!-- Example: Service was enabled for: Voice, Data -->
+ <string name="serviceClassVoice">Voice</string>
+ <!-- Example: Service was enabled for: Voice, Data -->
+ <string name="serviceClassData">Data</string>
+ <!-- Example: Service was enabled for: Voice, FAX -->
+ <string name="serviceClassFAX">FAX</string>
+ <!-- Example: Service was enabled for: Voice, SMS -->
+ <string name="serviceClassSMS">SMS</string>
+ <!-- Meaning: asynchronous data. Example: Service was enabled for: Voice, Async -->
+ <string name="serviceClassDataAsync">Async</string>
+ <!-- Meaning: synchronous data. Example: Service was enabled for: Voice, Async -->
+ <string name="serviceClassDataSync">Sync</string>
+ <!-- Meaning: packet data. Example: Service was enabled for: Voice, Packet -->
+ <string name="serviceClassPacket">Packet</string>
+ <!-- Meaning: unknown. Example: Service was enabled for: Voice, PAD -->
+ <string name="serviceClassPAD">PAD</string>
+
+ <!-- CDMA Roaming Indicator Strings (non ERI)--> <skip />
+ <!-- Default roaming indicator text -->
+ <string name="roamingText0">Roaming Indicator On</string>
+ <string name="roamingText1">Roaming Indicator Off</string>
+ <string name="roamingText2">Roaming Indicator Flashing</string>
+ <string name="roamingText3">Out of Neighborhood</string>
+ <string name="roamingText4">Out of Building</string>
+ <string name="roamingText5">Roaming - Preferred System</string>
+ <string name="roamingText6">Roaming - Available System</string>
+ <string name="roamingText7">Roaming - Alliance Partner</string>
+ <string name="roamingText8">Roaming - Premium Partner</string>
+ <string name="roamingText9">Roaming - Full Service Functionality</string>
+ <string name="roamingText10">Roaming - Partial Service Functionality</string>
+ <string name="roamingText11">Roaming Banner On</string>
+ <string name="roamingText12">Roaming Banner Off</string>
+ <string name="roamingTextSearching">Searching for Service</string>
+
+ <!-- Displayed when WFC registration fails -->
+ <string name="wfcRegErrorTitle">Couldn\u2019t set up Wi\u2011Fi calling</string>
+ <!-- WFC Operator Error Messages showed as alerts -->
+ <string-array name="wfcOperatorErrorAlertMessages">
+ <item>To make calls and send messages over Wi-Fi, first ask your carrier to set up this service. Then turn on Wi-Fi calling again from Settings. (Error code: <xliff:g id="code" example="REG09 - No 911 Address">%1$s</xliff:g>)</item>
+ </string-array>
+ <!-- WFC Operator Error Messages showed as notifications -->
+ <string-array name="wfcOperatorErrorNotificationMessages">
+ <item>Issue registering Wi\u2011Fi calling with your carrier: <xliff:g id="code" example="REG09 - No 911 Address">%1$s</xliff:g></item>
+ </string-array>
+ <!-- Template for showing mobile network operator name while WFC is active -->
+ <string-array name="wfcSpnFormats" translatable="false">
+ <item>@string/wfcSpnFormat_spn</item>
+ <item>@string/wfcSpnFormat_spn_wifi_calling</item>
+ <item>@string/wfcSpnFormat_wlan_call</item>
+ <item>@string/wfcSpnFormat_spn_wlan_call</item>
+ <item>@string/wfcSpnFormat_spn_wifi</item>
+ <item>@string/wfcSpnFormat_wifi_calling_bar_spn</item>
+ <item>@string/wfcSpnFormat_spn_vowifi</item>
+ <item>@string/wfcSpnFormat_wifi_calling</item>
+ <item>@string/wfcSpnFormat_wifi</item>
+ <item>@string/wfcSpnFormat_wifi_calling_wo_hyphen</item>
+ <item>@string/wfcSpnFormat_vowifi</item>
+ <item>@string/wfcSpnFormat_spn_wifi_calling_vo_hyphen</item>
+ </string-array>
+
+ <!-- Ims supported call barring MMI code -->
+ <string-array translatable="false" name="config_callBarringMMI_for_ims">
+ <item>33</item>
+ <item>331</item>
+ <item>332</item>
+ <item>35</item>
+ <item>351</item>
+ <item>330</item>
+ <item>333</item>
+ <item>353</item>
+ </string-array>
+
+ <!-- Spn during Wi-Fi Calling: "<operator>" -->
+ <string name="wfcSpnFormat_spn"><xliff:g id="spn" example="Operator">%s</xliff:g></string>
+ <!-- Spn during Wi-Fi Calling: "<operator> Wi-Fi Calling" -->
+ <string name="wfcSpnFormat_spn_wifi_calling"><xliff:g id="spn" example="Operator">%s</xliff:g> Wi-Fi Calling</string>
+ <!-- Spn during Wi-Fi Calling: "<operator> WiFi Calling" -->
+ <string name="wfcSpnFormat_spn_wifi_calling_vo_hyphen"><xliff:g id="spn" example="Operator">%s</xliff:g> WiFi Calling</string>
+ <!-- Spn during Wi-Fi Calling: "WLAN Call" -->
+ <string name="wfcSpnFormat_wlan_call">WLAN Call</string>
+ <!-- Spn during Wi-Fi Calling: "<operator> WLAN Call" -->
+ <string name="wfcSpnFormat_spn_wlan_call"><xliff:g id="spn" example="Operator">%s</xliff:g> WLAN Call</string>
+ <!-- Spn during Wi-Fi Calling: "<operator> Wi-Fi" -->
+ <string name="wfcSpnFormat_spn_wifi"><xliff:g id="spn" example="Operator">%s</xliff:g> Wi-Fi</string>
+ <!-- Spn during Wi-Fi Calling: "WiFi Calling | <operator>" -->
+ <string name="wfcSpnFormat_wifi_calling_bar_spn">WiFi Calling | <xliff:g id="spn" example="Operator">%s</xliff:g></string>
+ <!-- Spn during Wi-Fi Calling: "<operator> VoWifi" -->
+ <string name="wfcSpnFormat_spn_vowifi"><xliff:g id="spn" example="Operator">%s</xliff:g> VoWifi</string>
+ <!-- Spn during Wi-Fi Calling: "Wi-Fi Calling" -->
+ <string name="wfcSpnFormat_wifi_calling">Wi-Fi Calling</string>
+ <!-- Spn during Wi-Fi Calling: "Wi-Fi" -->
+ <string name="wfcSpnFormat_wifi">Wi-Fi</string>
+ <!-- Spn during Wi-Fi Calling: "WiFi Calling" (without hyphen) -->
+ <string name="wfcSpnFormat_wifi_calling_wo_hyphen">WiFi Calling</string>
+ <!-- Spn during Wi-Fi Calling: "VoWifi" -->
+ <string name="wfcSpnFormat_vowifi">VoWifi</string>
+
+ <!--
+ {0} is one of "bearerServiceCode*"
+ {1} is dialing number
+ {2} is time in seconds
+
+ cfTemplateRegistered and cfTemplateRegisteredTime mean that a phone number
+ has been set but forwarding is not on.
+ --> <skip />
+ <!-- Displayed when the call forwarding query was not able to be forwarded. -->
+ <string name="cfTemplateNotForwarded"><xliff:g id="bearer_service_code">{0}</xliff:g>: Not forwarded</string>
+ <!-- Displayed when the call forwarding query was forwarded. -->
+ <string name="cfTemplateForwarded"><xliff:g id="bearer_service_code">{0}</xliff:g>: <xliff:g id="dialing_number">{1}</xliff:g></string>
+ <!-- Displayed when the call forwarding query will be forwarded after some time. -->
+ <string name="cfTemplateForwardedTime"><xliff:g id="bearer_service_code">{0}</xliff:g>: <xliff:g id="dialing_number">{1}</xliff:g> after <xliff:g id="time_delay">{2}</xliff:g> seconds</string>
+ <!-- Displayed when the call forwarding query was set but forwarding is not enabled. -->
+ <string name="cfTemplateRegistered"><xliff:g id="bearer_service_code">{0}</xliff:g>: Not forwarded</string>
+ <!-- Displayed when the call forwarding query was set but forwarding is not enabled. -->
+ <string name="cfTemplateRegisteredTime"><xliff:g id="bearer_service_code">{0}</xliff:g>: Not forwarded</string>
+
+ <!-- SMS per-application rate control Dialog --> <skip />
+ <!-- SMS_DIALOG: An SMS dialog is shown if an application tries to send too many SMSes. This is the title of that dialog. -->
+ <string name="sms_control_title">Sending SMS messages</string>
+ <!-- See SMS_DIALOG. This is the message shown in that dialog. [CHAR LIMIT=NONE] -->
+ <string name="sms_control_message"><b><xliff:g id="app_name">%1$s</xliff:g></b> is sending a large number of SMS messages. Do you want to allow this app to continue sending messages?</string>
+ <!-- See SMS_DIALOG. This is a button choice to allow sending the SMSes. [CHAR LIMIT=30] -->
+ <string name="sms_control_yes">Allow</string>
+ <!-- See SMS_DIALOG. This is a button choice to disallow sending the SMSes. [CHAR LIMIT=30] -->
+ <string name="sms_control_no">Deny</string>
+
+ <!-- SMS short code verification dialog. --> <skip />
+ <!-- The message text for the SMS short code confirmation dialog. [CHAR LIMIT=NONE] -->
+ <string name="sms_short_code_confirm_message"><b><xliff:g id="app_name">%1$s</xliff:g></b> would like to send a message to <b><xliff:g id="dest_address">%2$s</xliff:g></b>.</string>
+ <!-- Message details for the SMS short code confirmation dialog (possible premium short code). [CHAR LIMIT=NONE] -->
+ <string name="sms_short_code_details">This <b>may cause charges</b> on your mobile account.</string>
+ <!-- Message details for the SMS short code confirmation dialog (premium short code). [CHAR LIMIT=NONE] -->
+ <string name="sms_premium_short_code_details"><b>This will cause charges on your mobile account.</b></string>
+ <!-- Text of the approval button for the SMS short code confirmation dialog. [CHAR LIMIT=30] -->
+ <string name="sms_short_code_confirm_allow">Send</string>
+ <!-- Text of the cancel button for the SMS short code confirmation dialog. [CHAR LIMIT=30] -->
+ <string name="sms_short_code_confirm_deny">Cancel</string>
+ <!-- Text of the checkbox for the SMS short code confirmation dialog to remember the user's choice. [CHAR LIMIT=40] -->
+ <string name="sms_short_code_remember_choice">Remember my choice</string>
+ <!-- Text shown when remember checkbox is checked to inform the user how they may undo the setting. [CHAR LIMIT=40] -->
+ <string name="sms_short_code_remember_undo_instruction">You can change this later in Settings\u00A0>\u00A0Apps"</string>
+
+ <!-- Text of the approval button for the SMS short code confirmation dialog when checkbox is checked. [CHAR LIMIT=30] -->
+ <string name="sms_short_code_confirm_always_allow">Always Allow</string>
+ <!-- Text of the cancel button for the SMS short code confirmation dialog when checkbox is checked. [CHAR LIMIT=30] -->
+ <string name="sms_short_code_confirm_never_allow">Never Allow</string>
+
+ <!-- SIM swap and device reboot Dialog --> <skip />
+ <!-- See SIM_REMOVED_DIALOG. This is the title of that dialog. -->
+ <string name="sim_removed_title">SIM card removed</string>
+ <!-- See SIM_REMOVED_DIALOG. This is the message of that dialog. -->
+ <string name="sim_removed_message">The mobile network will be unavailable until you restart with a valid SIM card inserted.</string>
+ <!-- See SIM_REMOVED_DIALOG. This is the button of that dialog. -->
+ <string name="sim_done_button">Done</string>
+ <!-- See SIM_ADDED_DIALOG. This is the title of that dialog. -->
+ <string name="sim_added_title">SIM card added</string>
+ <!-- See SIM_ADDED_DIALOG. This is the message of that dialog. -->
+ <string name="sim_added_message">Restart your device to access the mobile network.</string>
+ <!-- See SIM_ADDED_DIALOG. This is the button of that dialog. -->
+ <string name="sim_restart_button">Restart</string>
+ <!-- See Carrier_App_Dialog. This is the message of that dialog. -->
+ <string name="install_carrier_app_notification_title">Activate mobile service</string>
+ <!-- Notification message that shows when the user inserts a SIM card that requires a carrier app download, but the app name is unknown -->
+ <string name="install_carrier_app_notification_text">Download the carrier app to activate your new SIM</string>
+ <!-- Notification message that shows when the user inserts a SIM card that requires a carrier app download. App name is known -->
+ <string name="install_carrier_app_notification_text_app_name">Download the <xliff:g id="app_name">%1$s</xliff:g> app to activate your new SIM</string>
+
+ <!-- See Carrier_App_Notification. This is the button of that dialog. -->
+ <string name="install_carrier_app_notification_button">Download app</string>
+ <!-- See carrier_app_notification. This is the headline. -->
+ <string name="carrier_app_notification_title">New SIM inserted</string>
+ <string name="carrier_app_notification_text">Tap to set it up</string>
+
+ <!-- STK sending DTMF, SMS, USSD, SS -->
+ <string name="sending">Sending\u2026</string>
+
+ <!-- STK launch Browser -->
+ <string name="launchBrowserDefault">Launch Browser?</string>
+
+ <!-- STK setup Call -->
+ <string name="SetupCallDefault">Accept call?</string>
+
+ <!-- Displayed when the USSD/SS request is modified by STK CC to a
+ different request. This will be displayed in a toast. -->
+ <string name="stk_cc_ussd_to_dial">USSD request changed to regular call</string>
+ <string name="stk_cc_ussd_to_ss">USSD request changed to SS request</string>
+ <string name="stk_cc_ussd_to_ussd">Changed to new USSD request</string>
+ <string name="stk_cc_ussd_to_dial_video">USSD request changed to video call</string>
+ <string name="stk_cc_ss_to_dial">SS request changed to regular call</string>
+ <string name="stk_cc_ss_to_dial_video">SS request changed to video call</string>
+ <string name="stk_cc_ss_to_ussd">SS request changed to USSD request</string>
+ <string name="stk_cc_ss_to_ss">Changed to new SS request</string>
+
+ <!-- Notification title shown when new SMS/MMS is received while the device is locked [CHAR LIMIT=NONE] -->
+ <string name="new_sms_notification_title">You have new messages</string>
+ <!-- Notification content shown when new SMS/MMS is received while the device is locked [CHAR LIMIT=NONE] -->
+ <string name="new_sms_notification_content">Open SMS app to view</string>
+
+ <!-- Label used by Telephony code, assigned as the display name for conference calls [CHAR LIMIT=60] -->
+ <string name="conference_call">Conference Call</string>
+
+ <!-- Title of notification when UE fails CS registration with MM reject cause code from network. -->
+ <string name="mmcc_authentication_reject">SIM not allowed for voice</string>
+ <string name="mmcc_imsi_unknown_in_hlr">SIM not provisioned for voice</string>
+ <string name="mmcc_illegal_ms">SIM not allowed for voice</string>
+ <string name="mmcc_illegal_me">Phone not allowed for voice</string>
+
+ <!-- Title of notification when UE fails to register network with MM reject cause code when multiple SIMs are active. -->
+ <string name="mmcc_authentication_reject_msim_template">SIM <xliff:g id="simNumber" example="1">%d</xliff:g> not allowed</string>
+ <string name="mmcc_imsi_unknown_in_hlr_msim_template">SIM <xliff:g id="simNumber" example="1">%d</xliff:g> not provisioned</string>
+ <string name="mmcc_illegal_ms_msim_template">SIM <xliff:g id="simNumber" example="1">%d</xliff:g> not allowed</string>
+ <string name="mmcc_illegal_me_msim_template">SIM <xliff:g id="simNumber" example="1">%d</xliff:g> not allowed</string>
+
+ <!-- Shown in the lock screen when there is emergency calls only mode. -->
+ <string name="emergency_calls_only" msgid="2485604591272668370">Emergency calls only</string>
+
+ <!-- On the keyguard screen, it shows the carrier the phone is connected to. This is displayed if the phone is not connected to a carrier.-->
+ <string name="lockscreen_carrier_default">No service</string>
+
+ <!-- Status message for a remote route attempting to connect -->
+ <string name="media_route_status_connecting">Connecting...</string>
+
+ <!-- WFC, summary for Disabled -->
+ <string name="wifi_calling_off_summary">Off</string>
+ <!-- WFC, summary for Wi-Fi Preferred -->
+ <string name="wfc_mode_wifi_preferred_summary">Call over Wi-Fi</string>
+ <!-- WFC, summary for Mobile data Preferred -->
+ <string name="wfc_mode_cellular_preferred_summary">Call over mobile network</string>
+ <!-- WFC, summary for Wi-Fi Only -->
+ <string name="wfc_mode_wifi_only_summary">Wi-Fi only</string>
+
+ <!-- Sequence of characters used to separate message strings in keyguard. Typically just em-dash
+ with spaces on either side. [CHAR LIMIT=3] -->
+ <string name="kg_text_message_separator" product="default">" \u2014 "</string>
+
+</resources>
diff --git a/src/java/com/android/internal/telephony/AsyncEmergencyContactNotifier.java b/src/java/com/android/internal/telephony/AsyncEmergencyContactNotifier.java
index fd6ccd4..de7d54c 100644
--- a/src/java/com/android/internal/telephony/AsyncEmergencyContactNotifier.java
+++ b/src/java/com/android/internal/telephony/AsyncEmergencyContactNotifier.java
@@ -19,7 +19,7 @@
import android.content.Context;
import android.os.AsyncTask;
import android.provider.BlockedNumberContract;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* An {@link AsyncTask} that notifies the Blocked number provider that emergency services were
diff --git a/src/java/com/android/internal/telephony/BlockChecker.java b/src/java/com/android/internal/telephony/BlockChecker.java
index 19981eb..f5c033c 100644
--- a/src/java/com/android/internal/telephony/BlockChecker.java
+++ b/src/java/com/android/internal/telephony/BlockChecker.java
@@ -3,7 +3,7 @@
import android.content.Context;
import android.os.Bundle;
import android.provider.BlockedNumberContract;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* {@hide} Checks for blocked phone numbers against {@link BlockedNumberContract}
diff --git a/src/java/com/android/internal/telephony/Call.java b/src/java/com/android/internal/telephony/Call.java
index bc5f1c5..c8ed98e 100644
--- a/src/java/com/android/internal/telephony/Call.java
+++ b/src/java/com/android/internal/telephony/Call.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony;
import android.compat.annotation.UnsupportedAppUsage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.ims.internal.ConferenceParticipant;
diff --git a/src/java/com/android/internal/telephony/CallForwardInfo.java b/src/java/com/android/internal/telephony/CallForwardInfo.java
index 1f8b536..3f26974 100644
--- a/src/java/com/android/internal/telephony/CallForwardInfo.java
+++ b/src/java/com/android/internal/telephony/CallForwardInfo.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony;
import android.compat.annotation.UnsupportedAppUsage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* See also RIL_CallForwardInfo in include/telephony/ril.h
diff --git a/src/java/com/android/internal/telephony/CallManager.java b/src/java/com/android/internal/telephony/CallManager.java
index 35abbd1..2589731 100644
--- a/src/java/com/android/internal/telephony/CallManager.java
+++ b/src/java/com/android/internal/telephony/CallManager.java
@@ -25,7 +25,7 @@
import android.os.RegistrantList;
import android.telephony.PhoneNumberUtils;
import android.telephony.PhoneStateListener;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import com.android.internal.telephony.sip.SipPhone;
diff --git a/src/java/com/android/internal/telephony/CarrierActionAgent.java b/src/java/com/android/internal/telephony/CarrierActionAgent.java
index c01c9d4..157c09f 100644
--- a/src/java/com/android/internal/telephony/CarrierActionAgent.java
+++ b/src/java/com/android/internal/telephony/CarrierActionAgent.java
@@ -27,7 +27,7 @@
import android.os.RegistrantList;
import android.provider.Settings;
import android.provider.Telephony;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.TelephonyManager;
import android.util.LocalLog;
import android.util.Log;
@@ -227,7 +227,7 @@
carrierActionSetRadioEnabled(true);
// notify configured carrier apps for reset
mPhone.getCarrierSignalAgent().notifyCarrierSignalReceivers(
- new Intent(TelephonyIntents.ACTION_CARRIER_SIGNAL_RESET));
+ new Intent(TelephonyManager.ACTION_CARRIER_SIGNAL_RESET));
}
private RegistrantList getRegistrantsFromAction(int action) {
diff --git a/src/java/com/android/internal/telephony/CarrierResolver.java b/src/java/com/android/internal/telephony/CarrierResolver.java
index 959522f..b7a4ca2 100644
--- a/src/java/com/android/internal/telephony/CarrierResolver.java
+++ b/src/java/com/android/internal/telephony/CarrierResolver.java
@@ -29,7 +29,7 @@
import android.provider.Telephony;
import android.service.carrier.CarrierIdentifier;
import android.telephony.PhoneStateListener;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
diff --git a/src/java/com/android/internal/telephony/CarrierServiceStateTracker.java b/src/java/com/android/internal/telephony/CarrierServiceStateTracker.java
index de3cdcb..151e4c8 100644
--- a/src/java/com/android/internal/telephony/CarrierServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/CarrierServiceStateTracker.java
@@ -30,7 +30,7 @@
import android.os.PersistableBundle;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
diff --git a/src/java/com/android/internal/telephony/CarrierServicesSmsFilter.java b/src/java/com/android/internal/telephony/CarrierServicesSmsFilter.java
index 24e5059..e2ae96a 100644
--- a/src/java/com/android/internal/telephony/CarrierServicesSmsFilter.java
+++ b/src/java/com/android/internal/telephony/CarrierServicesSmsFilter.java
@@ -27,7 +27,7 @@
import android.service.carrier.CarrierMessagingServiceWrapper;
import android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper;
import android.service.carrier.MessagePdu;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.util.LocalLog;
import com.android.internal.annotations.VisibleForTesting;
diff --git a/src/java/com/android/internal/telephony/CarrierSignalAgent.java b/src/java/com/android/internal/telephony/CarrierSignalAgent.java
index e9c3a73..ba0e4c1 100644
--- a/src/java/com/android/internal/telephony/CarrierSignalAgent.java
+++ b/src/java/com/android/internal/telephony/CarrierSignalAgent.java
@@ -15,6 +15,9 @@
*/
package com.android.internal.telephony;
+import static android.telephony.CarrierConfigManager.KEY_CARRIER_APP_NO_WAKE_SIGNAL_CONFIG_STRING_ARRAY;
+import static android.telephony.CarrierConfigManager.KEY_CARRIER_APP_WAKE_SIGNAL_CONFIG_STRING_ARRAY;
+
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
@@ -30,8 +33,9 @@
import android.os.PersistableBundle;
import android.os.UserHandle;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.LocalLog;
import android.util.Log;
@@ -47,9 +51,6 @@
import java.util.Map;
import java.util.Set;
-import static android.telephony.CarrierConfigManager.KEY_CARRIER_APP_WAKE_SIGNAL_CONFIG_STRING_ARRAY;
-import static android.telephony.CarrierConfigManager.KEY_CARRIER_APP_NO_WAKE_SIGNAL_CONFIG_STRING_ARRAY;
-
/**
* This class act as an CarrierSignalling Agent.
* it load registered carrier signalling receivers from carrier config, cache the result to avoid
@@ -98,11 +99,11 @@
* This is a list of supported signals from CarrierSignalAgent
*/
private final Set<String> mCarrierSignalList = new HashSet<>(Arrays.asList(
- TelephonyIntents.ACTION_CARRIER_SIGNAL_PCO_VALUE,
- TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED,
- TelephonyIntents.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED,
- TelephonyIntents.ACTION_CARRIER_SIGNAL_RESET,
- TelephonyIntents.ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE));
+ TelephonyManager.ACTION_CARRIER_SIGNAL_PCO_VALUE,
+ TelephonyManager.ACTION_CARRIER_SIGNAL_REDIRECTED,
+ TelephonyManager.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED,
+ TelephonyManager.ACTION_CARRIER_SIGNAL_RESET,
+ TelephonyManager.ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE));
private final LocalLog mErrorLocalLog = new LocalLog(20);
@@ -148,10 +149,10 @@
// an optimization to avoid signaling on every default network switch.
if (!mDefaultNetworkAvail) {
if (DBG) log("Default network available: " + network);
- Intent intent = new Intent(TelephonyIntents
+ Intent intent = new Intent(TelephonyManager
.ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE);
intent.putExtra(
- TelephonyIntents.EXTRA_DEFAULT_NETWORK_AVAILABLE_KEY, true);
+ TelephonyManager.EXTRA_DEFAULT_NETWORK_AVAILABLE, true);
notifyCarrierSignalReceivers(intent);
mDefaultNetworkAvail = true;
}
@@ -159,10 +160,10 @@
@Override
public void onLost(Network network) {
if (DBG) log("Default network lost: " + network);
- Intent intent = new Intent(TelephonyIntents
+ Intent intent = new Intent(TelephonyManager
.ACTION_CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE);
intent.putExtra(
- TelephonyIntents.EXTRA_DEFAULT_NETWORK_AVAILABLE_KEY, false);
+ TelephonyManager.EXTRA_DEFAULT_NETWORK_AVAILABLE, false);
notifyCarrierSignalReceivers(intent);
mDefaultNetworkAvail = false;
}
diff --git a/src/java/com/android/internal/telephony/CarrierSmsUtils.java b/src/java/com/android/internal/telephony/CarrierSmsUtils.java
index a64aea7..befbf6c 100644
--- a/src/java/com/android/internal/telephony/CarrierSmsUtils.java
+++ b/src/java/com/android/internal/telephony/CarrierSmsUtils.java
@@ -24,7 +24,7 @@
import android.os.Binder;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.util.List;
diff --git a/src/java/com/android/internal/telephony/CellularNetworkService.java b/src/java/com/android/internal/telephony/CellularNetworkService.java
index b45d63d..2ab5c7c 100644
--- a/src/java/com/android/internal/telephony/CellularNetworkService.java
+++ b/src/java/com/android/internal/telephony/CellularNetworkService.java
@@ -16,7 +16,6 @@
package com.android.internal.telephony;
-import android.hardware.radio.V1_0.CellInfoType;
import android.hardware.radio.V1_0.RegState;
import android.hardware.radio.V1_4.DataRegStateResult.VopsInfo.hidl_discriminator;
import android.os.AsyncResult;
@@ -27,16 +26,11 @@
import android.telephony.AccessNetworkConstants;
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.CellIdentity;
-import android.telephony.CellIdentityCdma;
-import android.telephony.CellIdentityGsm;
-import android.telephony.CellIdentityLte;
-import android.telephony.CellIdentityTdscdma;
-import android.telephony.CellIdentityWcdma;
import android.telephony.LteVopsSupportInfo;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.NetworkService;
import android.telephony.NetworkServiceCallback;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -228,8 +222,7 @@
int defaultRoamingIndicator = voiceRegState.defaultRoamingIndicator;
List<Integer> availableServices = getAvailableServices(
regState, domain, emergencyOnly);
- CellIdentity cellIdentity =
- convertHalCellIdentityToCellIdentity(voiceRegState.cellIdentity);
+ CellIdentity cellIdentity = CellIdentity.create(voiceRegState.cellIdentity);
return new NetworkRegistrationInfo(domain, transportType, regState,
networkType, reasonForDenial, emergencyOnly, availableServices,
@@ -251,8 +244,7 @@
int defaultRoamingIndicator = voiceRegState.defaultRoamingIndicator;
List<Integer> availableServices = getAvailableServices(
regState, domain, emergencyOnly);
- CellIdentity cellIdentity =
- convertHalCellIdentityToCellIdentity(voiceRegState.cellIdentity);
+ CellIdentity cellIdentity = CellIdentity.create(voiceRegState.cellIdentity);
return new NetworkRegistrationInfo(domain, transportType, regState,
networkType, reasonForDenial, emergencyOnly, availableServices,
@@ -289,8 +281,7 @@
reasonForDenial = dataRegState.reasonDataDenied;
emergencyOnly = isEmergencyOnly(dataRegState.regState);
maxDataCalls = dataRegState.maxDataCalls;
-
- cellIdentity = convertHalCellIdentityToCellIdentity(dataRegState.cellIdentity);
+ cellIdentity = CellIdentity.create(dataRegState.cellIdentity);
} else if (result instanceof android.hardware.radio.V1_2.DataRegStateResult) {
android.hardware.radio.V1_2.DataRegStateResult dataRegState =
(android.hardware.radio.V1_2.DataRegStateResult) result;
@@ -299,7 +290,7 @@
reasonForDenial = dataRegState.reasonDataDenied;
emergencyOnly = isEmergencyOnly(dataRegState.regState);
maxDataCalls = dataRegState.maxDataCalls;
- cellIdentity = convertHalCellIdentityToCellIdentity(dataRegState.cellIdentity);
+ cellIdentity = CellIdentity.create(dataRegState.cellIdentity);
} else if (result instanceof android.hardware.radio.V1_4.DataRegStateResult) {
android.hardware.radio.V1_4.DataRegStateResult dataRegState =
(android.hardware.radio.V1_4.DataRegStateResult) result;
@@ -309,7 +300,7 @@
reasonForDenial = dataRegState.base.reasonDataDenied;
emergencyOnly = isEmergencyOnly(dataRegState.base.regState);
maxDataCalls = dataRegState.base.maxDataCalls;
- cellIdentity = convertHalCellIdentityToCellIdentity(dataRegState.base.cellIdentity);
+ cellIdentity = CellIdentity.create(dataRegState.base.cellIdentity);
android.hardware.radio.V1_4.NrIndicators nrIndicators = dataRegState.nrIndicators;
// Check for lteVopsInfo only if its initialized and RAT is EUTRAN
@@ -362,118 +353,6 @@
return new LteVopsSupportInfo(vops, emergency);
}
- private CellIdentity convertHalCellIdentityToCellIdentity(
- android.hardware.radio.V1_0.CellIdentity cellIdentity) {
- if (cellIdentity == null) {
- return null;
- }
-
- CellIdentity result = null;
- switch(cellIdentity.cellInfoType) {
- case CellInfoType.GSM: {
- if (cellIdentity.cellIdentityGsm.size() == 1) {
- android.hardware.radio.V1_0.CellIdentityGsm cellIdentityGsm =
- cellIdentity.cellIdentityGsm.get(0);
- result = new CellIdentityGsm(cellIdentityGsm);
- }
- break;
- }
- case CellInfoType.WCDMA: {
- if (cellIdentity.cellIdentityWcdma.size() == 1) {
- android.hardware.radio.V1_0.CellIdentityWcdma cellIdentityWcdma =
- cellIdentity.cellIdentityWcdma.get(0);
- result = new CellIdentityWcdma(cellIdentityWcdma);
- }
- break;
- }
- case CellInfoType.TD_SCDMA: {
- if (cellIdentity.cellIdentityTdscdma.size() == 1) {
- android.hardware.radio.V1_0.CellIdentityTdscdma cellIdentityTdscdma =
- cellIdentity.cellIdentityTdscdma.get(0);
- result = new CellIdentityTdscdma(cellIdentityTdscdma);
- }
- break;
- }
- case CellInfoType.LTE: {
- if (cellIdentity.cellIdentityLte.size() == 1) {
- android.hardware.radio.V1_0.CellIdentityLte cellIdentityLte =
- cellIdentity.cellIdentityLte.get(0);
- result = new CellIdentityLte(cellIdentityLte);
- }
- break;
- }
- case CellInfoType.CDMA: {
- if (cellIdentity.cellIdentityCdma.size() == 1) {
- android.hardware.radio.V1_0.CellIdentityCdma cellIdentityCdma =
- cellIdentity.cellIdentityCdma.get(0);
- result = new CellIdentityCdma(cellIdentityCdma);
- }
- break;
- }
- case CellInfoType.NONE:
- default:
- break;
- }
-
- return result;
- }
-
- private CellIdentity convertHalCellIdentityToCellIdentity(
- android.hardware.radio.V1_2.CellIdentity cellIdentity) {
- if (cellIdentity == null) {
- return null;
- }
-
- CellIdentity result = null;
- switch(cellIdentity.cellInfoType) {
- case CellInfoType.GSM: {
- if (cellIdentity.cellIdentityGsm.size() == 1) {
- android.hardware.radio.V1_2.CellIdentityGsm cellIdentityGsm =
- cellIdentity.cellIdentityGsm.get(0);
- result = new CellIdentityGsm(cellIdentityGsm);
- }
- break;
- }
- case CellInfoType.WCDMA: {
- if (cellIdentity.cellIdentityWcdma.size() == 1) {
- android.hardware.radio.V1_2.CellIdentityWcdma cellIdentityWcdma =
- cellIdentity.cellIdentityWcdma.get(0);
- result = new CellIdentityWcdma(cellIdentityWcdma);
- }
- break;
- }
- case CellInfoType.TD_SCDMA: {
- if (cellIdentity.cellIdentityTdscdma.size() == 1) {
- android.hardware.radio.V1_2.CellIdentityTdscdma cellIdentityTdscdma =
- cellIdentity.cellIdentityTdscdma.get(0);
- result = new CellIdentityTdscdma(cellIdentityTdscdma);
- }
- break;
- }
- case CellInfoType.LTE: {
- if (cellIdentity.cellIdentityLte.size() == 1) {
- android.hardware.radio.V1_2.CellIdentityLte cellIdentityLte =
- cellIdentity.cellIdentityLte.get(0);
- result = new CellIdentityLte(cellIdentityLte);
- }
- break;
- }
- case CellInfoType.CDMA: {
- if (cellIdentity.cellIdentityCdma.size() == 1) {
- android.hardware.radio.V1_2.CellIdentityCdma cellIdentityCdma =
- cellIdentity.cellIdentityCdma.get(0);
- result = new CellIdentityCdma(cellIdentityCdma);
- }
- break;
- }
- case CellInfoType.NONE:
- default:
- break;
- }
-
- return result;
- }
-
@Override
public void requestNetworkRegistrationInfo(int domain, NetworkServiceCallback callback) {
if (DBG) log("requestNetworkRegistrationInfo for domain " + domain);
diff --git a/src/java/com/android/internal/telephony/ClientWakelockAccountant.java b/src/java/com/android/internal/telephony/ClientWakelockAccountant.java
index c47faab..da483c2 100644
--- a/src/java/com/android/internal/telephony/ClientWakelockAccountant.java
+++ b/src/java/com/android/internal/telephony/ClientWakelockAccountant.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony;
import android.telephony.ClientRequestStats;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.annotations.VisibleForTesting;
import java.util.ArrayList;
diff --git a/src/java/com/android/internal/telephony/CommandException.java b/src/java/com/android/internal/telephony/CommandException.java
index 5f8789d..e512013 100644
--- a/src/java/com/android/internal/telephony/CommandException.java
+++ b/src/java/com/android/internal/telephony/CommandException.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony;
import android.compat.annotation.UnsupportedAppUsage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* {@hide}
diff --git a/src/java/com/android/internal/telephony/Connection.java b/src/java/com/android/internal/telephony/Connection.java
index 6e9021a..5d4fad9 100755
--- a/src/java/com/android/internal/telephony/Connection.java
+++ b/src/java/com/android/internal/telephony/Connection.java
@@ -21,7 +21,7 @@
import android.os.Bundle;
import android.os.SystemClock;
import android.telephony.DisconnectCause;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.ServiceState.RilRadioTechnology;
import android.telephony.emergency.EmergencyNumber;
diff --git a/src/java/com/android/internal/telephony/DebugService.java b/src/java/com/android/internal/telephony/DebugService.java
index 0002f14..5a36480 100644
--- a/src/java/com/android/internal/telephony/DebugService.java
+++ b/src/java/com/android/internal/telephony/DebugService.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.text.TextUtils;
import com.android.internal.telephony.metrics.TelephonyMetrics;
diff --git a/src/java/com/android/internal/telephony/DefaultPhoneNotifier.java b/src/java/com/android/internal/telephony/DefaultPhoneNotifier.java
index f01e051..a9bc73c 100644
--- a/src/java/com/android/internal/telephony/DefaultPhoneNotifier.java
+++ b/src/java/com/android/internal/telephony/DefaultPhoneNotifier.java
@@ -29,7 +29,7 @@
import android.telephony.PhoneCapability;
import android.telephony.PreciseCallState;
import android.telephony.PreciseDataConnectionState;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.TelephonyManager;
diff --git a/src/java/com/android/internal/telephony/DeviceStateMonitor.java b/src/java/com/android/internal/telephony/DeviceStateMonitor.java
index f0005dd..f9177a5 100644
--- a/src/java/com/android/internal/telephony/DeviceStateMonitor.java
+++ b/src/java/com/android/internal/telephony/DeviceStateMonitor.java
@@ -36,7 +36,7 @@
import android.os.PowerManager;
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SignalThresholdInfo;
import android.telephony.TelephonyManager;
import android.util.LocalLog;
diff --git a/src/java/com/android/internal/telephony/DriverCall.java b/src/java/com/android/internal/telephony/DriverCall.java
index a47503f..fb21bd8 100644
--- a/src/java/com/android/internal/telephony/DriverCall.java
+++ b/src/java/com/android/internal/telephony/DriverCall.java
@@ -18,7 +18,7 @@
import android.compat.annotation.UnsupportedAppUsage;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* {@hide}
diff --git a/src/java/com/android/internal/telephony/GsmCdmaCallTracker.java b/src/java/com/android/internal/telephony/GsmCdmaCallTracker.java
index 45511eb..2b2ff7a 100755
--- a/src/java/com/android/internal/telephony/GsmCdmaCallTracker.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaCallTracker.java
@@ -34,7 +34,7 @@
import android.telephony.CellLocation;
import android.telephony.DisconnectCause;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState.RilRadioTechnology;
import android.telephony.TelephonyManager;
import android.telephony.cdma.CdmaCellLocation;
diff --git a/src/java/com/android/internal/telephony/GsmCdmaConnection.java b/src/java/com/android/internal/telephony/GsmCdmaConnection.java
index 7300893..2296554 100644
--- a/src/java/com/android/internal/telephony/GsmCdmaConnection.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaConnection.java
@@ -27,7 +27,7 @@
import android.telephony.CarrierConfigManager;
import android.telephony.DisconnectCause;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.text.TextUtils;
diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
index b2d05b5..db2c426 100644
--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
@@ -65,7 +65,7 @@
import android.telephony.NetworkScanRequest;
import android.telephony.PhoneNumberUtils;
import android.telephony.PreciseDataConnectionState;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.ServiceState.RilRadioTechnology;
import android.telephony.SignalThresholdInfo;
diff --git a/src/java/com/android/internal/telephony/HardwareConfig.java b/src/java/com/android/internal/telephony/HardwareConfig.java
index 8623354..855dad2 100644
--- a/src/java/com/android/internal/telephony/HardwareConfig.java
+++ b/src/java/com/android/internal/telephony/HardwareConfig.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.util.BitSet;
import android.telephony.ServiceState;
diff --git a/src/java/com/android/internal/telephony/IccPhoneBookInterfaceManager.java b/src/java/com/android/internal/telephony/IccPhoneBookInterfaceManager.java
index 66ed9ed..f0b1beb 100644
--- a/src/java/com/android/internal/telephony/IccPhoneBookInterfaceManager.java
+++ b/src/java/com/android/internal/telephony/IccPhoneBookInterfaceManager.java
@@ -22,7 +22,7 @@
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.uicc.AdnRecord;
import com.android.internal.telephony.uicc.AdnRecordCache;
diff --git a/src/java/com/android/internal/telephony/IccProvider.java b/src/java/com/android/internal/telephony/IccProvider.java
index 9e9a5bc..40aa063 100644
--- a/src/java/com/android/internal/telephony/IccProvider.java
+++ b/src/java/com/android/internal/telephony/IccProvider.java
@@ -25,7 +25,7 @@
import android.database.MergeCursor;
import android.net.Uri;
import android.os.RemoteException;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyFrameworkInitializer;
diff --git a/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java b/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
index 1bd9ba9..017ac8b 100644
--- a/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
+++ b/src/java/com/android/internal/telephony/IccSmsInterfaceManager.java
@@ -40,7 +40,7 @@
import android.os.UserManager;
import android.provider.Telephony;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SmsCbMessage;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
diff --git a/src/java/com/android/internal/telephony/ImsSmsDispatcher.java b/src/java/com/android/internal/telephony/ImsSmsDispatcher.java
index 58aac01..34c4e5c 100644
--- a/src/java/com/android/internal/telephony/ImsSmsDispatcher.java
+++ b/src/java/com/android/internal/telephony/ImsSmsDispatcher.java
@@ -23,7 +23,7 @@
import android.provider.Telephony.Sms.Intents;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.RegistrationManager;
diff --git a/src/java/com/android/internal/telephony/InboundSmsHandler.java b/src/java/com/android/internal/telephony/InboundSmsHandler.java
index 5f10cf5..a21ea93 100644
--- a/src/java/com/android/internal/telephony/InboundSmsHandler.java
+++ b/src/java/com/android/internal/telephony/InboundSmsHandler.java
@@ -25,7 +25,6 @@
import static android.telephony.TelephonyManager.PHONE_TYPE_CDMA;
import android.app.Activity;
-import android.app.ActivityManager;
import android.app.AppOpsManager;
import android.app.BroadcastOptions;
import android.app.Notification;
@@ -50,13 +49,11 @@
import android.os.Message;
import android.os.PowerManager;
import android.os.PowerWhitelistManager;
-import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Telephony;
import android.provider.Telephony.Sms.Intents;
import android.service.carrier.CarrierMessagingService;
-import android.telephony.Rlog;
import android.telephony.SmsMessage;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -73,6 +70,7 @@
import com.android.internal.util.HexDump;
import com.android.internal.util.State;
import com.android.internal.util.StateMachine;
+import com.android.telephony.Rlog;
import java.io.ByteArrayOutputStream;
import java.io.FileDescriptor;
@@ -1164,12 +1162,14 @@
if (user.equals(UserHandle.ALL)) {
// Get a list of currently started users.
int[] users = null;
- try {
- users = ActivityManager.getService().getRunningUserIds();
- } catch (RemoteException re) {
- }
- if (users == null) {
+ final List<UserHandle> userHandles = mUserManager.getUserHandles(false);
+ if (userHandles.isEmpty()) {
users = new int[] {user.getIdentifier()};
+ } else {
+ users = new int[userHandles.size()];
+ for (int i = 0; i < userHandles.size(); i++) {
+ users[i] = userHandles.get(i).getIdentifier();
+ }
}
// Deliver the broadcast only to those running users that are permitted
// by user policy.
diff --git a/src/java/com/android/internal/telephony/LocaleTracker.java b/src/java/com/android/internal/telephony/LocaleTracker.java
index 21ca878..f08f9ad 100755
--- a/src/java/com/android/internal/telephony/LocaleTracker.java
+++ b/src/java/com/android/internal/telephony/LocaleTracker.java
@@ -34,7 +34,7 @@
import android.telephony.CellInfoGsm;
import android.telephony.CellInfoLte;
import android.telephony.CellInfoWcdma;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
diff --git a/src/java/com/android/internal/telephony/MccTable.java b/src/java/com/android/internal/telephony/MccTable.java
index 8597235..2735207 100644
--- a/src/java/com/android/internal/telephony/MccTable.java
+++ b/src/java/com/android/internal/telephony/MccTable.java
@@ -25,7 +25,7 @@
import android.os.Build;
import android.os.RemoteException;
import android.os.SystemProperties;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.text.TextUtils;
import com.android.internal.annotations.GuardedBy;
diff --git a/src/java/com/android/internal/telephony/NetworkRegistrationManager.java b/src/java/com/android/internal/telephony/NetworkRegistrationManager.java
index 9f2d6e1..ce9b0a2 100644
--- a/src/java/com/android/internal/telephony/NetworkRegistrationManager.java
+++ b/src/java/com/android/internal/telephony/NetworkRegistrationManager.java
@@ -38,7 +38,7 @@
import android.telephony.INetworkServiceCallback;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.NetworkService;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.text.TextUtils;
diff --git a/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java b/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java
index a76b2a7..f207415 100644
--- a/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java
+++ b/src/java/com/android/internal/telephony/NetworkScanRequestTracker.java
@@ -18,6 +18,7 @@
import static android.telephony.AccessNetworkConstants.AccessNetworkType.EUTRAN;
import static android.telephony.AccessNetworkConstants.AccessNetworkType.GERAN;
+import static android.telephony.AccessNetworkConstants.AccessNetworkType.NGRAN;
import static android.telephony.AccessNetworkConstants.AccessNetworkType.UTRAN;
import android.content.Context;
@@ -133,7 +134,8 @@
}
for (RadioAccessSpecifier ras : nsri.mRequest.getSpecifiers()) {
if (ras.getRadioAccessNetwork() != GERAN && ras.getRadioAccessNetwork() != UTRAN
- && ras.getRadioAccessNetwork() != EUTRAN) {
+ && ras.getRadioAccessNetwork() != EUTRAN
+ && ras.getRadioAccessNetwork() != NGRAN) {
return false;
}
if (ras.getBands() != null && ras.getBands().length > NetworkScanRequest.MAX_BANDS) {
diff --git a/src/java/com/android/internal/telephony/NitzData.java b/src/java/com/android/internal/telephony/NitzData.java
index 8ecf742..eb0c75e 100644
--- a/src/java/com/android/internal/telephony/NitzData.java
+++ b/src/java/com/android/internal/telephony/NitzData.java
@@ -18,7 +18,7 @@
import static com.android.internal.annotations.VisibleForTesting.Visibility.PACKAGE;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.annotations.VisibleForTesting;
diff --git a/src/java/com/android/internal/telephony/NitzStateMachineImpl.java b/src/java/com/android/internal/telephony/NitzStateMachineImpl.java
index 98e4753..04c6c71 100644
--- a/src/java/com/android/internal/telephony/NitzStateMachineImpl.java
+++ b/src/java/com/android/internal/telephony/NitzStateMachineImpl.java
@@ -20,7 +20,7 @@
import android.content.Context;
import android.os.PowerManager;
import android.os.TimestampedValue;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.text.TextUtils;
import android.util.LocalLog;
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index 741d729..448197f 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -53,7 +53,7 @@
import android.telephony.PhysicalChannelConfig;
import android.telephony.PreciseDataConnectionState;
import android.telephony.RadioAccessFamily;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SubscriptionManager;
diff --git a/src/java/com/android/internal/telephony/PhoneConfigurationManager.java b/src/java/com/android/internal/telephony/PhoneConfigurationManager.java
index 4a95ada..86ab72b 100644
--- a/src/java/com/android/internal/telephony/PhoneConfigurationManager.java
+++ b/src/java/com/android/internal/telephony/PhoneConfigurationManager.java
@@ -28,7 +28,7 @@
import android.os.RegistrantList;
import android.sysprop.TelephonyProperties;
import android.telephony.PhoneCapability;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.Log;
diff --git a/src/java/com/android/internal/telephony/PhoneFactory.java b/src/java/com/android/internal/telephony/PhoneFactory.java
index c75cf94..a2c8bc2 100644
--- a/src/java/com/android/internal/telephony/PhoneFactory.java
+++ b/src/java/com/android/internal/telephony/PhoneFactory.java
@@ -34,7 +34,7 @@
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.telephony.AnomalyReporter;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.LocalLog;
diff --git a/src/java/com/android/internal/telephony/PhoneStateIntentReceiver.java b/src/java/com/android/internal/telephony/PhoneStateIntentReceiver.java
deleted file mode 100644
index 94b05ed..0000000
--- a/src/java/com/android/internal/telephony/PhoneStateIntentReceiver.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
- * Copyright (C) 2006 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.internal.telephony;
-
-import android.compat.annotation.UnsupportedAppUsage;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.os.Handler;
-import android.os.Message;
-import android.telephony.Rlog;
-import android.telephony.ServiceState;
-import android.telephony.SignalStrength;
-import android.telephony.TelephonyManager;
-
-/**
- *
- * DO NOT USE THIS CLASS:
- *
- * Use android.telephony.TelephonyManager and PhoneStateListener instead.
- *
- *
- */
-@Deprecated
-public final class PhoneStateIntentReceiver extends BroadcastReceiver {
- private static final String LOG_TAG = "PhoneStatIntentReceiver";
- private static final boolean DBG = false;
-
- private static final int NOTIF_PHONE = 1 << 0;
- private static final int NOTIF_SERVICE = 1 << 1;
- private static final int NOTIF_SIGNAL = 1 << 2;
-
- PhoneConstants.State mPhoneState = PhoneConstants.State.IDLE;
- ServiceState mServiceState = new ServiceState();
- @UnsupportedAppUsage
- SignalStrength mSignalStrength = new SignalStrength();
-
- private Context mContext;
- private Handler mTarget;
- private IntentFilter mFilter;
- @UnsupportedAppUsage
- private int mWants;
- private int mPhoneStateEventWhat;
- private int mServiceStateEventWhat;
- private int mAsuEventWhat;
-
- public PhoneStateIntentReceiver() {
- super();
- mFilter = new IntentFilter();
- }
-
- @UnsupportedAppUsage
- public PhoneStateIntentReceiver(Context context, Handler target) {
- this();
- setContext(context);
- setTarget(target);
- }
-
- public void setContext(Context c) {
- mContext = c;
- }
-
- public void setTarget(Handler h) {
- mTarget = h;
- }
-
- public PhoneConstants.State getPhoneState() {
- if ((mWants & NOTIF_PHONE) == 0) {
- throw new RuntimeException
- ("client must call notifyPhoneCallState(int)");
- }
- return mPhoneState;
- }
-
- public ServiceState getServiceState() {
- if ((mWants & NOTIF_SERVICE) == 0) {
- throw new RuntimeException
- ("client must call notifyServiceState(int)");
- }
- return mServiceState;
- }
-
- /**
- * Returns current signal strength in as an asu 0..31
- *
- * Throws RuntimeException if client has not called notifySignalStrength()
- */
- public int getSignalStrengthLevelAsu() {
- // TODO: use new SignalStrength instead of asu
- if ((mWants & NOTIF_SIGNAL) == 0) {
- throw new RuntimeException
- ("client must call notifySignalStrength(int)");
- }
- return mSignalStrength.getAsuLevel();
- }
-
- /**
- * Return current signal strength in "dBm", ranging from -113 - -51dBm
- * or -1 if unknown
- *
- * @return signal strength in dBm, -1 if not yet updated
- * Throws RuntimeException if client has not called notifySignalStrength()
- */
- @UnsupportedAppUsage
- public int getSignalStrengthDbm() {
- if ((mWants & NOTIF_SIGNAL) == 0) {
- throw new RuntimeException
- ("client must call notifySignalStrength(int)");
- }
- return mSignalStrength.getDbm();
- }
-
- public void notifyPhoneCallState(int eventWhat) {
- mWants |= NOTIF_PHONE;
- mPhoneStateEventWhat = eventWhat;
- mFilter.addAction(TelephonyManager.ACTION_PHONE_STATE_CHANGED);
- }
-
- public boolean getNotifyPhoneCallState() {
- return ((mWants & NOTIF_PHONE) != 0);
- }
-
- @UnsupportedAppUsage
- public void notifyServiceState(int eventWhat) {
- mWants |= NOTIF_SERVICE;
- mServiceStateEventWhat = eventWhat;
- mFilter.addAction(TelephonyIntents.ACTION_SERVICE_STATE_CHANGED);
- }
-
- public boolean getNotifyServiceState() {
- return ((mWants & NOTIF_SERVICE) != 0);
- }
-
- @UnsupportedAppUsage
- public void notifySignalStrength (int eventWhat) {
- mWants |= NOTIF_SIGNAL;
- mAsuEventWhat = eventWhat;
- mFilter.addAction(TelephonyIntents.ACTION_SIGNAL_STRENGTH_CHANGED);
- }
-
- public boolean getNotifySignalStrength() {
- return ((mWants & NOTIF_SIGNAL) != 0);
- }
-
- @UnsupportedAppUsage
- public void registerIntent() {
- mContext.registerReceiver(this, mFilter);
- }
-
- @UnsupportedAppUsage
- public void unregisterIntent() {
- mContext.unregisterReceiver(this);
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
-
- try {
- if (TelephonyIntents.ACTION_SIGNAL_STRENGTH_CHANGED.equals(action)) {
- mSignalStrength = SignalStrength.newFromBundle(intent.getExtras());
-
- if (mTarget != null && getNotifySignalStrength()) {
- Message message = Message.obtain(mTarget, mAsuEventWhat);
- mTarget.sendMessage(message);
- }
- } else if (TelephonyManager.ACTION_PHONE_STATE_CHANGED.equals(action)) {
- if (DBG) Rlog.d(LOG_TAG, "onReceiveIntent: ACTION_PHONE_STATE_CHANGED, state="
- + intent.getStringExtra(PhoneConstants.STATE_KEY));
- String phoneState = intent.getStringExtra(PhoneConstants.STATE_KEY);
- mPhoneState = Enum.valueOf(
- PhoneConstants.State.class, phoneState);
-
- if (mTarget != null && getNotifyPhoneCallState()) {
- Message message = Message.obtain(mTarget,
- mPhoneStateEventWhat);
- mTarget.sendMessage(message);
- }
- } else if (TelephonyIntents.ACTION_SERVICE_STATE_CHANGED.equals(action)) {
- mServiceState = ServiceState.newFromBundle(intent.getExtras());
-
- if (mTarget != null && getNotifyServiceState()) {
- Message message = Message.obtain(mTarget,
- mServiceStateEventWhat);
- mTarget.sendMessage(message);
- }
- }
- } catch (Exception ex) {
- Rlog.e(LOG_TAG, "[PhoneStateIntentRecv] caught " + ex);
- ex.printStackTrace();
- }
- }
-
-}
diff --git a/src/java/com/android/internal/telephony/PhoneSubInfoController.java b/src/java/com/android/internal/telephony/PhoneSubInfoController.java
index 6b6e6f5..1eb5fb2 100644
--- a/src/java/com/android/internal/telephony/PhoneSubInfoController.java
+++ b/src/java/com/android/internal/telephony/PhoneSubInfoController.java
@@ -32,7 +32,7 @@
import android.os.TelephonyServiceManager.ServiceRegisterer;
import android.telephony.ImsiEncryptionInfo;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyFrameworkInitializer;
diff --git a/src/java/com/android/internal/telephony/PhoneSwitcher.java b/src/java/com/android/internal/telephony/PhoneSwitcher.java
index e9fc933..9fba4df 100644
--- a/src/java/com/android/internal/telephony/PhoneSwitcher.java
+++ b/src/java/com/android/internal/telephony/PhoneSwitcher.java
@@ -51,7 +51,7 @@
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneCapability;
import android.telephony.PhoneStateListener;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.telephony.TelephonyRegistryManager;
diff --git a/src/java/com/android/internal/telephony/ProxyController.java b/src/java/com/android/internal/telephony/ProxyController.java
index a617154..fd31ae3 100644
--- a/src/java/com/android/internal/telephony/ProxyController.java
+++ b/src/java/com/android/internal/telephony/ProxyController.java
@@ -27,7 +27,7 @@
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.telephony.RadioAccessFamily;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import android.util.Log;
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java
index 65a3e7e..faf3d97 100644
--- a/src/java/com/android/internal/telephony/RIL.java
+++ b/src/java/com/android/internal/telephony/RIL.java
@@ -52,7 +52,6 @@
import android.hardware.radio.V1_4.SimLockMultiSimPolicy;
import android.hardware.radio.V1_5.AccessNetwork;
import android.hardware.radio.deprecated.V1_0.IOemHook;
-import android.net.ConnectivityManager;
import android.net.KeepalivePacketData;
import android.net.LinkAddress;
import android.net.LinkProperties;
@@ -85,7 +84,7 @@
import android.telephony.PhoneNumberUtils;
import android.telephony.RadioAccessFamily;
import android.telephony.RadioAccessSpecifier;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SignalThresholdInfo;
@@ -609,9 +608,9 @@
mRadioBugDetector = new RadioBugDetector(context, mPhoneId);
}
- ConnectivityManager cm = (ConnectivityManager)context.getSystemService(
- Context.CONNECTIVITY_SERVICE);
- mIsMobileNetworkSupported = cm.isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
+ TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(
+ Context.TELEPHONY_SERVICE);
+ mIsMobileNetworkSupported = telephonyManager.isDataCapable();
mRadioResponse = new RadioResponse(this);
mRadioIndication = new RadioIndication(this);
diff --git a/src/java/com/android/internal/telephony/RILRequest.java b/src/java/com/android/internal/telephony/RILRequest.java
index 57e631d..bc7e2b5 100644
--- a/src/java/com/android/internal/telephony/RILRequest.java
+++ b/src/java/com/android/internal/telephony/RILRequest.java
@@ -22,7 +22,7 @@
import android.os.SystemClock;
import android.os.WorkSource;
import android.os.WorkSource.WorkChain;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.util.List;
import java.util.Random;
@@ -148,7 +148,7 @@
final List<WorkChain> workChains = mWorkSource.getWorkChains();
if (workChains != null && !workChains.isEmpty()) {
final WorkChain workChain = workChains.get(0);
- return workChain.getAttributionUid() + ":" + workChain.getTags()[0];
+ return workChain.toString();
}
return null;
diff --git a/src/java/com/android/internal/telephony/RadioConfig.java b/src/java/com/android/internal/telephony/RadioConfig.java
index a2d4e5b..922aba7 100644
--- a/src/java/com/android/internal/telephony/RadioConfig.java
+++ b/src/java/com/android/internal/telephony/RadioConfig.java
@@ -38,7 +38,7 @@
import android.os.Registrant;
import android.os.RemoteException;
import android.os.WorkSource;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.util.SparseArray;
import com.android.internal.telephony.uicc.IccSlotStatus;
diff --git a/src/java/com/android/internal/telephony/RadioConfigIndication.java b/src/java/com/android/internal/telephony/RadioConfigIndication.java
index 39af57b..ac6e77d 100644
--- a/src/java/com/android/internal/telephony/RadioConfigIndication.java
+++ b/src/java/com/android/internal/telephony/RadioConfigIndication.java
@@ -18,7 +18,7 @@
import android.hardware.radio.config.V1_2.IRadioConfigIndication;
import android.os.AsyncResult;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.uicc.IccSlotStatus;
diff --git a/src/java/com/android/internal/telephony/RadioConfigResponse.java b/src/java/com/android/internal/telephony/RadioConfigResponse.java
index 475f866..8e509de 100644
--- a/src/java/com/android/internal/telephony/RadioConfigResponse.java
+++ b/src/java/com/android/internal/telephony/RadioConfigResponse.java
@@ -22,7 +22,7 @@
import android.hardware.radio.config.V1_2.IRadioConfigResponse;
import android.telephony.ModemInfo;
import android.telephony.PhoneCapability;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.uicc.IccSlotStatus;
diff --git a/src/java/com/android/internal/telephony/RatRatcheter.java b/src/java/com/android/internal/telephony/RatRatcheter.java
index 6216200..beae998 100644
--- a/src/java/com/android/internal/telephony/RatRatcheter.java
+++ b/src/java/com/android/internal/telephony/RatRatcheter.java
@@ -27,7 +27,7 @@
import android.telephony.Annotation.NetworkType;
import android.telephony.CarrierConfigManager;
import android.telephony.NetworkRegistrationInfo;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.util.SparseArray;
import android.util.SparseIntArray;
diff --git a/src/java/com/android/internal/telephony/RetryManager.java b/src/java/com/android/internal/telephony/RetryManager.java
index 67bc3c0..b1b197a 100644
--- a/src/java/com/android/internal/telephony/RetryManager.java
+++ b/src/java/com/android/internal/telephony/RetryManager.java
@@ -21,7 +21,7 @@
import android.os.PersistableBundle;
import android.os.SystemProperties;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.data.ApnSetting;
import android.text.TextUtils;
import android.util.Pair;
diff --git a/src/java/com/android/internal/telephony/RilWakelockInfo.java b/src/java/com/android/internal/telephony/RilWakelockInfo.java
index 28ccbc8..9a6b402 100644
--- a/src/java/com/android/internal/telephony/RilWakelockInfo.java
+++ b/src/java/com/android/internal/telephony/RilWakelockInfo.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony;
import android.annotation.TargetApi;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.util.TelephonyUtils;
diff --git a/src/java/com/android/internal/telephony/SMSDispatcher.java b/src/java/com/android/internal/telephony/SMSDispatcher.java
index ee398f9..50f3457 100644
--- a/src/java/com/android/internal/telephony/SMSDispatcher.java
+++ b/src/java/com/android/internal/telephony/SMSDispatcher.java
@@ -63,7 +63,7 @@
import android.service.carrier.CarrierMessagingServiceWrapper.CarrierMessagingCallbackWrapper;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SmsManager;
import android.telephony.TelephonyManager;
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index e004053..64208eb 100755
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -71,7 +71,7 @@
import android.telephony.DataSpecificRegistrationInfo;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.PhysicalChannelConfig;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.ServiceState.RilRadioTechnology;
import android.telephony.SignalStrength;
diff --git a/src/java/com/android/internal/telephony/SettingsObserver.java b/src/java/com/android/internal/telephony/SettingsObserver.java
index 2253c36..1e695ae 100644
--- a/src/java/com/android/internal/telephony/SettingsObserver.java
+++ b/src/java/com/android/internal/telephony/SettingsObserver.java
@@ -21,7 +21,7 @@
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/java/com/android/internal/telephony/SimActivationTracker.java b/src/java/com/android/internal/telephony/SimActivationTracker.java
index 8fd6eed..a9b3a77 100644
--- a/src/java/com/android/internal/telephony/SimActivationTracker.java
+++ b/src/java/com/android/internal/telephony/SimActivationTracker.java
@@ -19,7 +19,7 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.util.LocalLog;
import android.util.Log;
diff --git a/src/java/com/android/internal/telephony/SmsBroadcastUndelivered.java b/src/java/com/android/internal/telephony/SmsBroadcastUndelivered.java
index 6afc865..a242c66 100644
--- a/src/java/com/android/internal/telephony/SmsBroadcastUndelivered.java
+++ b/src/java/com/android/internal/telephony/SmsBroadcastUndelivered.java
@@ -27,7 +27,7 @@
import android.os.PersistableBundle;
import android.os.UserManager;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import com.android.internal.telephony.cdma.CdmaInboundSmsHandler;
diff --git a/src/java/com/android/internal/telephony/SmsController.java b/src/java/com/android/internal/telephony/SmsController.java
index a90c827..fd38dc0 100644
--- a/src/java/com/android/internal/telephony/SmsController.java
+++ b/src/java/com/android/internal/telephony/SmsController.java
@@ -33,7 +33,7 @@
import android.os.TelephonyServiceManager.ServiceRegisterer;
import android.provider.Telephony.Sms.Intents;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SmsManager;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
diff --git a/src/java/com/android/internal/telephony/SmsDispatchersController.java b/src/java/com/android/internal/telephony/SmsDispatchersController.java
index 66b8709..b70db7a 100644
--- a/src/java/com/android/internal/telephony/SmsDispatchersController.java
+++ b/src/java/com/android/internal/telephony/SmsDispatchersController.java
@@ -36,7 +36,7 @@
import android.os.UserManager;
import android.provider.Telephony.Sms;
import android.provider.Telephony.Sms.Intents;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
diff --git a/src/java/com/android/internal/telephony/SmsPermissions.java b/src/java/com/android/internal/telephony/SmsPermissions.java
index 5590ce6..9f26a6c 100644
--- a/src/java/com/android/internal/telephony/SmsPermissions.java
+++ b/src/java/com/android/internal/telephony/SmsPermissions.java
@@ -24,7 +24,7 @@
import android.content.pm.PackageManager;
import android.os.Binder;
import android.service.carrier.CarrierMessagingService;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.util.Log;
/**
diff --git a/src/java/com/android/internal/telephony/SmsStorageMonitor.java b/src/java/com/android/internal/telephony/SmsStorageMonitor.java
index fe06f63..21ab595 100755
--- a/src/java/com/android/internal/telephony/SmsStorageMonitor.java
+++ b/src/java/com/android/internal/telephony/SmsStorageMonitor.java
@@ -26,7 +26,7 @@
import android.os.Message;
import android.os.PowerManager;
import android.provider.Telephony.Sms.Intents;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
/**
diff --git a/src/java/com/android/internal/telephony/SmsUsageMonitor.java b/src/java/com/android/internal/telephony/SmsUsageMonitor.java
index af4a199..96da54d 100644
--- a/src/java/com/android/internal/telephony/SmsUsageMonitor.java
+++ b/src/java/com/android/internal/telephony/SmsUsageMonitor.java
@@ -29,7 +29,7 @@
import android.os.UserHandle;
import android.provider.Settings;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SmsManager;
import android.util.AtomicFile;
import android.util.Xml;
diff --git a/src/java/com/android/internal/telephony/SubscriptionController.java b/src/java/com/android/internal/telephony/SubscriptionController.java
index 8b76a3d..c276423 100644
--- a/src/java/com/android/internal/telephony/SubscriptionController.java
+++ b/src/java/com/android/internal/telephony/SubscriptionController.java
@@ -43,7 +43,7 @@
import android.telecom.TelecomManager;
import android.telephony.CarrierConfigManager;
import android.telephony.RadioAccessFamily;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager.SimDisplayNameSource;
diff --git a/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java b/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java
index b190d7d..a222dd9 100644
--- a/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java
+++ b/src/java/com/android/internal/telephony/SubscriptionInfoUpdater.java
@@ -46,7 +46,7 @@
import android.service.euicc.EuiccService;
import android.service.euicc.GetEuiccProfileInfoListResult;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyFrameworkInitializer;
@@ -180,7 +180,7 @@
mCurrentlyActiveUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(sContext.getOpPackageName(),
mPackageManager, mPermissionManager, TelephonyManager.getDefault(),
- sContext.getContentResolver(), mCurrentlyActiveUserId);
+ mCurrentlyActiveUserId, sContext);
}
}
}, new IntentFilter(Intent.ACTION_USER_FOREGROUND), null, null);
@@ -188,7 +188,7 @@
mCurrentlyActiveUserId = am.getCurrentUser();
CarrierAppUtils.disableCarrierAppsUntilPrivileged(sContext.getOpPackageName(),
mPackageManager, mPermissionManager, TelephonyManager.getDefault(),
- sContext.getContentResolver(), mCurrentlyActiveUserId);
+ mCurrentlyActiveUserId, sContext);
}
/**
@@ -571,7 +571,7 @@
// Update set of enabled carrier apps now that the privilege rules may have changed.
CarrierAppUtils.disableCarrierAppsUntilPrivileged(sContext.getOpPackageName(),
mPackageManager, mPermissionManager, TelephonyManager.getDefault(),
- sContext.getContentResolver(), mCurrentlyActiveUserId);
+ mCurrentlyActiveUserId, sContext);
/**
* The sim loading sequence will be
diff --git a/src/java/com/android/internal/telephony/TelephonyCapabilities.java b/src/java/com/android/internal/telephony/TelephonyCapabilities.java
index 66f805b..66a56d5 100644
--- a/src/java/com/android/internal/telephony/TelephonyCapabilities.java
+++ b/src/java/com/android/internal/telephony/TelephonyCapabilities.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony;
import android.compat.annotation.UnsupportedAppUsage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* Utilities that check if the phone supports specified capabilities.
diff --git a/src/java/com/android/internal/telephony/TelephonyComponentFactory.java b/src/java/com/android/internal/telephony/TelephonyComponentFactory.java
index 6a2f3cc..e7ad886 100644
--- a/src/java/com/android/internal/telephony/TelephonyComponentFactory.java
+++ b/src/java/com/android/internal/telephony/TelephonyComponentFactory.java
@@ -28,7 +28,7 @@
import android.system.OsConstants;
import android.system.StructStatVfs;
import android.telephony.AccessNetworkConstants.TransportType;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.text.TextUtils;
import com.android.internal.telephony.cdma.CdmaSubscriptionSourceManager;
diff --git a/src/java/com/android/internal/telephony/TelephonyDevController.java b/src/java/com/android/internal/telephony/TelephonyDevController.java
index 3cda417..4c8cad3 100644
--- a/src/java/com/android/internal/telephony/TelephonyDevController.java
+++ b/src/java/com/android/internal/telephony/TelephonyDevController.java
@@ -21,7 +21,7 @@
import android.telephony.TelephonyManager;
import android.os.AsyncResult;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.util.BitSet;
import java.util.List;
import java.util.ArrayList;
diff --git a/src/java/com/android/internal/telephony/TelephonyResourceUtils.java b/src/java/com/android/internal/telephony/TelephonyResourceUtils.java
new file mode 100644
index 0000000..2253103
--- /dev/null
+++ b/src/java/com/android/internal/telephony/TelephonyResourceUtils.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2020 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.internal.telephony.util;
+
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.content.res.Resources;
+
+import com.android.telephony.Rlog;
+
+/**
+ * This class provides utility functions for Telephony Resources
+ */
+public final class TelephonyResourceUtils {
+ public static String TELEPHONY_RESOURCE_PACKAGE = "com.android.telephony.resources";
+ private static final String TAG = "TelephonyResourceUtils";
+
+ /**
+ * Retrieve resource for the telephony resource package.
+ */
+ public static Resources getTelephonyResources(Context context) {
+ try {
+ return context.getPackageManager()
+ .getResourcesForApplication(TELEPHONY_RESOURCE_PACKAGE);
+ } catch (PackageManager.NameNotFoundException ex) {
+ Rlog.e(TAG, "No resource package found");
+ }
+ return null;
+ }
+}
diff --git a/src/java/com/android/internal/telephony/TelephonyTester.java b/src/java/com/android/internal/telephony/TelephonyTester.java
index 72ee0d2..e95a949 100644
--- a/src/java/com/android/internal/telephony/TelephonyTester.java
+++ b/src/java/com/android/internal/telephony/TelephonyTester.java
@@ -24,7 +24,7 @@
import android.os.BadParcelableException;
import android.os.Bundle;
import android.telephony.AccessNetworkConstants;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.ims.ImsCallProfile;
import android.telephony.ims.ImsConferenceState;
diff --git a/src/java/com/android/internal/telephony/UiccPhoneBookController.java b/src/java/com/android/internal/telephony/UiccPhoneBookController.java
index 97e1e55..32e34d7 100644
--- a/src/java/com/android/internal/telephony/UiccPhoneBookController.java
+++ b/src/java/com/android/internal/telephony/UiccPhoneBookController.java
@@ -20,7 +20,7 @@
import android.compat.annotation.UnsupportedAppUsage;
import android.os.TelephonyServiceManager.ServiceRegisterer;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.TelephonyFrameworkInitializer;
import com.android.internal.telephony.IIccPhoneBook;
diff --git a/src/java/com/android/internal/telephony/WakeLockStateMachine.java b/src/java/com/android/internal/telephony/WakeLockStateMachine.java
index 5cad743..8931174 100644
--- a/src/java/com/android/internal/telephony/WakeLockStateMachine.java
+++ b/src/java/com/android/internal/telephony/WakeLockStateMachine.java
@@ -22,7 +22,7 @@
import android.content.Intent;
import android.os.Message;
import android.os.PowerManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.internal.util.State;
diff --git a/src/java/com/android/internal/telephony/WapPushOverSms.java b/src/java/com/android/internal/telephony/WapPushOverSms.java
index cda33f3..462460f 100755
--- a/src/java/com/android/internal/telephony/WapPushOverSms.java
+++ b/src/java/com/android/internal/telephony/WapPushOverSms.java
@@ -40,7 +40,7 @@
import android.os.UserManager;
import android.provider.Telephony;
import android.provider.Telephony.Sms.Intents;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SmsManager;
import android.telephony.SubscriptionManager;
import android.telephony.WapPushManagerConnector;
diff --git a/src/java/com/android/internal/telephony/cat/CatLog.java b/src/java/com/android/internal/telephony/cat/CatLog.java
index f41dc60..d922f50 100644
--- a/src/java/com/android/internal/telephony/cat/CatLog.java
+++ b/src/java/com/android/internal/telephony/cat/CatLog.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony.cat;
import android.compat.annotation.UnsupportedAppUsage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
public abstract class CatLog {
static final boolean DEBUG = true;
diff --git a/src/java/com/android/internal/telephony/cat/ComprehensionTlv.java b/src/java/com/android/internal/telephony/cat/ComprehensionTlv.java
index 568c7c0..e8cfd18 100644
--- a/src/java/com/android/internal/telephony/cat/ComprehensionTlv.java
+++ b/src/java/com/android/internal/telephony/cat/ComprehensionTlv.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony.cat;
import android.compat.annotation.UnsupportedAppUsage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaCallWaitingNotification.java b/src/java/com/android/internal/telephony/cdma/CdmaCallWaitingNotification.java
index b6ca02d..739fdff 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaCallWaitingNotification.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaCallWaitingNotification.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony.cdma;
import android.compat.annotation.UnsupportedAppUsage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.PhoneConstants;
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaInboundSmsHandler.java b/src/java/com/android/internal/telephony/cdma/CdmaInboundSmsHandler.java
index 6925a5d..7a6d6f9 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaInboundSmsHandler.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaInboundSmsHandler.java
@@ -20,7 +20,6 @@
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.content.res.Resources;
import android.os.Message;
import android.os.RemoteCallback;
import android.os.SystemProperties;
@@ -40,6 +39,7 @@
import com.android.internal.telephony.cdma.sms.BearerData;
import com.android.internal.telephony.cdma.sms.CdmaSmsAddress;
import com.android.internal.telephony.cdma.sms.SmsEnvelope;
+import com.android.internal.telephony.util.TelephonyResourceUtils;
import com.android.internal.util.HexDump;
import java.io.ByteArrayOutputStream;
@@ -63,8 +63,7 @@
// Callback used to process the result of an SCP message
private RemoteCallback mScpCallback;
- private final boolean mCheckForDuplicatePortsInOmadmWapPush = Resources.getSystem().getBoolean(
- com.android.internal.R.bool.config_duplicate_port_omadm_wappush);
+ private boolean mCheckForDuplicatePortsInOmadmWapPush = false;
// When TEST_MODE is on we allow the test intent to trigger an SMS CB alert
private static final boolean TEST_MODE = SystemProperties.getInt("ro.debuggable", 0) == 1;
@@ -80,8 +79,11 @@
Phone phone, CdmaSMSDispatcher smsDispatcher) {
super("CdmaInboundSmsHandler", context, storageMonitor, phone);
mSmsDispatcher = smsDispatcher;
- phone.mCi.setOnNewCdmaSms(getHandler(), EVENT_NEW_SMS, null);
+ mCheckForDuplicatePortsInOmadmWapPush = TelephonyResourceUtils
+ .getTelephonyResources(context).getBoolean(
+ com.android.telephony.resources.R.bool.config_duplicate_port_omadm_wappush);
+ phone.mCi.setOnNewCdmaSms(getHandler(), EVENT_NEW_SMS, null);
mCellBroadcastServiceManager.enable();
mScpCallback = new RemoteCallback(result -> {
if (result == null) {
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaMmiCode.java b/src/java/com/android/internal/telephony/cdma/CdmaMmiCode.java
index e593115..1956650 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaMmiCode.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaMmiCode.java
@@ -22,7 +22,7 @@
import android.os.Handler;
import android.os.Message;
import android.os.ResultReceiver;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.GsmCdmaPhone;
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java b/src/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java
index eda5f52..b9acbfa 100755
--- a/src/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaSMSDispatcher.java
@@ -20,7 +20,7 @@
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.TelephonyManager;
import android.util.Pair;
diff --git a/src/java/com/android/internal/telephony/cdma/CdmaSubscriptionSourceManager.java b/src/java/com/android/internal/telephony/cdma/CdmaSubscriptionSourceManager.java
index 1380c58..0f64b6f 100644
--- a/src/java/com/android/internal/telephony/cdma/CdmaSubscriptionSourceManager.java
+++ b/src/java/com/android/internal/telephony/cdma/CdmaSubscriptionSourceManager.java
@@ -24,7 +24,7 @@
import android.os.Registrant;
import android.os.RegistrantList;
import android.provider.Settings;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.Phone;
diff --git a/src/java/com/android/internal/telephony/cdma/EriManager.java b/src/java/com/android/internal/telephony/cdma/EriManager.java
index 782c6b5..aba5685 100644
--- a/src/java/com/android/internal/telephony/cdma/EriManager.java
+++ b/src/java/com/android/internal/telephony/cdma/EriManager.java
@@ -22,7 +22,7 @@
import android.content.res.XmlResourceParser;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.util.Xml;
import com.android.internal.telephony.Phone;
diff --git a/src/java/com/android/internal/telephony/cdnr/CarrierConfigEfData.java b/src/java/com/android/internal/telephony/cdnr/CarrierConfigEfData.java
index b17b492..f368946 100644
--- a/src/java/com/android/internal/telephony/cdnr/CarrierConfigEfData.java
+++ b/src/java/com/android/internal/telephony/cdnr/CarrierConfigEfData.java
@@ -19,7 +19,7 @@
import android.annotation.NonNull;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.text.TextUtils;
import com.android.internal.telephony.uicc.IccRecords;
diff --git a/src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java b/src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java
index b475767..253435a 100644
--- a/src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java
+++ b/src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java
@@ -32,7 +32,7 @@
import android.content.res.Resources;
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.text.TextUtils;
import android.util.LocalLog;
diff --git a/src/java/com/android/internal/telephony/dataconnection/AccessNetworksManager.java b/src/java/com/android/internal/telephony/dataconnection/AccessNetworksManager.java
index bdbf395..0e343e0 100644
--- a/src/java/com/android/internal/telephony/dataconnection/AccessNetworksManager.java
+++ b/src/java/com/android/internal/telephony/dataconnection/AccessNetworksManager.java
@@ -35,7 +35,7 @@
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.Annotation.ApnType;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.data.ApnSetting;
import android.telephony.data.IQualifiedNetworksService;
import android.telephony.data.IQualifiedNetworksServiceCallback;
diff --git a/src/java/com/android/internal/telephony/dataconnection/ApnContext.java b/src/java/com/android/internal/telephony/dataconnection/ApnContext.java
index f345429..9e4dbd7 100644
--- a/src/java/com/android/internal/telephony/dataconnection/ApnContext.java
+++ b/src/java/com/android/internal/telephony/dataconnection/ApnContext.java
@@ -22,7 +22,7 @@
import android.net.NetworkRequest;
import android.os.Message;
import android.telephony.Annotation.ApnType;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.data.ApnSetting;
import android.text.TextUtils;
import android.util.LocalLog;
diff --git a/src/java/com/android/internal/telephony/dataconnection/ApnSettingUtils.java b/src/java/com/android/internal/telephony/dataconnection/ApnSettingUtils.java
index 8403efa..51865e0 100644
--- a/src/java/com/android/internal/telephony/dataconnection/ApnSettingUtils.java
+++ b/src/java/com/android/internal/telephony/dataconnection/ApnSettingUtils.java
@@ -20,7 +20,7 @@
import android.os.PersistableBundle;
import android.telephony.Annotation.ApnType;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.data.ApnSetting;
import android.util.Log;
diff --git a/src/java/com/android/internal/telephony/dataconnection/CellularDataService.java b/src/java/com/android/internal/telephony/dataconnection/CellularDataService.java
index b7676b7..b44ceeb 100644
--- a/src/java/com/android/internal/telephony/dataconnection/CellularDataService.java
+++ b/src/java/com/android/internal/telephony/dataconnection/CellularDataService.java
@@ -22,7 +22,7 @@
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.data.DataCallResponse;
import android.telephony.data.DataProfile;
diff --git a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
index 509bbc4..1d3aeeb 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
@@ -28,10 +28,11 @@
import android.net.KeepalivePacketData;
import android.net.LinkAddress;
import android.net.LinkProperties;
+import android.net.NetworkAgentConfig;
import android.net.NetworkCapabilities;
import android.net.NetworkFactory;
import android.net.NetworkInfo;
-import android.net.NetworkMisc;
+import android.net.NetworkProvider;
import android.net.NetworkRequest;
import android.net.ProxyInfo;
import android.net.RouteInfo;
@@ -50,7 +51,6 @@
import android.telephony.CarrierConfigManager;
import android.telephony.DataFailCause;
import android.telephony.NetworkRegistrationInfo;
-import android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -76,7 +76,6 @@
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.RetryManager;
import com.android.internal.telephony.ServiceStateTracker;
-import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.dataconnection.DcTracker.ReleaseNetworkType;
import com.android.internal.telephony.dataconnection.DcTracker.RequestNetworkType;
import com.android.internal.telephony.metrics.TelephonyMetrics;
@@ -86,6 +85,7 @@
import com.android.internal.util.Protocol;
import com.android.internal.util.State;
import com.android.internal.util.StateMachine;
+import com.android.telephony.Rlog;
import libcore.net.InetAddressUtils;
@@ -2044,17 +2044,17 @@
mNetworkInfo.setExtraInfo(mApnSetting.getApnName());
updateTcpBufferSizes(mRilRat);
- final NetworkMisc misc = new NetworkMisc();
+ final NetworkAgentConfig config = new NetworkAgentConfig();
final CarrierSignalAgent carrierSignalAgent = mPhone.getCarrierSignalAgent();
- if (carrierSignalAgent.hasRegisteredReceivers(TelephonyIntents
+ if (carrierSignalAgent.hasRegisteredReceivers(TelephonyManager
.ACTION_CARRIER_SIGNAL_REDIRECTED)) {
// carrierSignal Receivers will place the carrier-specific provisioning notification
- misc.provisioningNotificationDisabled = true;
+ config.provisioningNotificationDisabled = true;
}
- misc.subscriberId = mPhone.getSubscriberId();
+ config.subscriberId = mPhone.getSubscriberId();
// set skip464xlat if it is not default otherwise
- misc.skip464xlat = shouldSkip464Xlat();
+ config.skip464xlat = shouldSkip464Xlat();
mUnmeteredUseOnly = isUnmeteredUseOnly();
@@ -2106,13 +2106,13 @@
mScore = calculateScore();
final NetworkFactory factory = PhoneFactory.getNetworkFactory(
mPhone.getPhoneId());
- final int factorySerialNumber = (null == factory)
- ? NetworkFactory.SerialNumber.NONE : factory.getSerialNumber();
+ final int providerId = (null == factory)
+ ? NetworkProvider.ID_NONE : factory.getProviderId();
mDisabledApnTypeBitMask |= getDisallowedApnTypes();
mNetworkAgent = new DcNetworkAgent(DataConnection.this,
- mPhone, mNetworkInfo, mScore, misc, factorySerialNumber, mTransportType);
+ mPhone, mNetworkInfo, mScore, config, providerId, mTransportType);
}
if (mTransportType == AccessNetworkConstants.TRANSPORT_TYPE_WWAN) {
diff --git a/src/java/com/android/internal/telephony/dataconnection/DataEnabledSettings.java b/src/java/com/android/internal/telephony/dataconnection/DataEnabledSettings.java
index ff6d2de..98efdde 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DataEnabledSettings.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DataEnabledSettings.java
@@ -31,7 +31,7 @@
import android.telephony.Annotation.CallState;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneStateListener;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
diff --git a/src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java b/src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java
index 04cf821..bc8482e 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java
@@ -42,7 +42,7 @@
import android.telephony.AccessNetworkConstants.TransportType;
import android.telephony.AnomalyReporter;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.data.DataCallResponse;
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcController.java b/src/java/com/android/internal/telephony/dataconnection/DcController.java
index f422b69..62dbdca 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcController.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcController.java
@@ -27,7 +27,7 @@
import android.telephony.AccessNetworkConstants;
import android.telephony.DataFailCause;
import android.telephony.PhoneStateListener;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.TelephonyManager;
import android.telephony.data.DataCallResponse;
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcFailBringUp.java b/src/java/com/android/internal/telephony/dataconnection/DcFailBringUp.java
index a68c7b4..b4f755d 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcFailBringUp.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcFailBringUp.java
@@ -19,7 +19,7 @@
import android.content.Intent;
import android.telephony.Annotation.DataFailureCause;
import android.telephony.DataFailCause;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* A package visible class for supporting testing failing bringUp commands. This
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java b/src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java
index 0a3a84c..c2f01a9 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcNetworkAgent.java
@@ -20,14 +20,13 @@
import android.net.LinkProperties;
import android.net.NattKeepalivePacketData;
import android.net.NetworkAgent;
+import android.net.NetworkAgentConfig;
import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
-import android.net.NetworkMisc;
import android.net.SocketKeepalive;
import android.os.Message;
import android.telephony.AccessNetworkConstants;
import android.telephony.AccessNetworkConstants.TransportType;
-import android.telephony.Rlog;
import android.util.LocalLog;
import android.util.SparseArray;
@@ -36,6 +35,7 @@
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.metrics.TelephonyMetrics;
import com.android.internal.util.IndentingPrintWriter;
+import com.android.telephony.Rlog;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -67,10 +67,10 @@
private NetworkInfo mNetworkInfo;
- DcNetworkAgent(DataConnection dc, Phone phone, NetworkInfo ni, int score, NetworkMisc misc,
- int factorySerialNumber, int transportType) {
+ DcNetworkAgent(DataConnection dc, Phone phone, NetworkInfo ni, int score,
+ NetworkAgentConfig config, int factorySerialNumber, int transportType) {
super(dc.getHandler().getLooper(), phone.getContext(), "DcNetworkAgent", ni,
- dc.getNetworkCapabilities(), dc.getLinkProperties(), score, misc,
+ dc.getNetworkCapabilities(), dc.getLinkProperties(), score, config,
factorySerialNumber);
mTag = "DcNetworkAgent" + "-" + netId;
mPhone = phone;
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTesterDeactivateAll.java b/src/java/com/android/internal/telephony/dataconnection/DcTesterDeactivateAll.java
index 361934a..e44e07e 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTesterDeactivateAll.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTesterDeactivateAll.java
@@ -21,7 +21,7 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Handler;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.util.TelephonyUtils;
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTesterFailBringUpAll.java b/src/java/com/android/internal/telephony/dataconnection/DcTesterFailBringUpAll.java
index 74f0e2b..e5d0934 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTesterFailBringUpAll.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTesterFailBringUpAll.java
@@ -22,7 +22,7 @@
import android.content.IntentFilter;
import android.os.Handler;
import android.telephony.DataFailCause;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.util.TelephonyUtils;
diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
index 0039faf..ee2b284 100644
--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
@@ -19,6 +19,8 @@
import static android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE;
import static android.telephony.TelephonyManager.NETWORK_TYPE_LTE;
import static android.telephony.TelephonyManager.NETWORK_TYPE_NR;
+import static android.telephony.data.ApnSetting.PROTOCOL_IPV4V6;
+import static android.telephony.data.ApnSetting.TYPE_DEFAULT;
import static com.android.internal.telephony.RILConstants.DATA_PROFILE_DEFAULT;
import static com.android.internal.telephony.RILConstants.DATA_PROFILE_INVALID;
@@ -58,7 +60,6 @@
import android.os.Message;
import android.os.PersistableBundle;
import android.os.RegistrantList;
-import android.os.ServiceManager;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.preference.PreferenceManager;
@@ -76,12 +77,13 @@
import android.telephony.NetworkRegistrationInfo;
import android.telephony.PcoData;
import android.telephony.PreciseDataConnectionState;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.ServiceState.RilRadioTechnology;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionManager.OnSubscriptionsChangedListener;
import android.telephony.SubscriptionPlan;
+import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.TelephonyManager;
import android.telephony.cdma.CdmaCellLocation;
import android.telephony.data.ApnSetting;
@@ -105,7 +107,6 @@
import com.android.internal.telephony.PhoneSwitcher;
import com.android.internal.telephony.RILConstants;
import com.android.internal.telephony.SettingsObserver;
-import com.android.internal.telephony.TelephonyIntents;
import com.android.internal.telephony.dataconnection.DataConnectionReasons.DataAllowedReasonType;
import com.android.internal.telephony.dataconnection.DataConnectionReasons.DataDisallowedReasonType;
import com.android.internal.telephony.dataconnection.DataEnabledSettings.DataEnabledChangedReason;
@@ -950,7 +951,11 @@
// Turn telephony radio on or off.
private void setRadio(boolean on) {
- final ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
+ final ITelephony phone = ITelephony.Stub.asInterface(
+ TelephonyFrameworkInitializer
+ .getTelephonyServiceManager()
+ .getTelephonyServiceRegisterer()
+ .get());
try {
phone.setRadio(on);
} catch (Exception e) {
@@ -2859,11 +2864,13 @@
final byte[] value = new byte[1];
value[0] = (byte) pcoVal;
final Intent intent =
- new Intent(TelephonyIntents.ACTION_CARRIER_SIGNAL_PCO_VALUE);
- intent.putExtra(TelephonyIntents.EXTRA_APN_TYPE_KEY, "default");
- intent.putExtra(TelephonyIntents.EXTRA_APN_PROTO_KEY, "IPV4V6");
- intent.putExtra(TelephonyIntents.EXTRA_PCO_ID_KEY, 0xFF00);
- intent.putExtra(TelephonyIntents.EXTRA_PCO_VALUE_KEY, value);
+ new Intent(TelephonyManager.ACTION_CARRIER_SIGNAL_PCO_VALUE);
+ intent.putExtra(TelephonyManager.EXTRA_APN_TYPE, "default");
+ intent.putExtra(TelephonyManager.EXTRA_APN_TYPE_INT, TYPE_DEFAULT);
+ intent.putExtra(TelephonyManager.EXTRA_APN_PROTOCOL, "IPV4V6");
+ intent.putExtra(TelephonyManager.EXTRA_APN_PROTOCOL_INT, PROTOCOL_IPV4V6);
+ intent.putExtra(TelephonyManager.EXTRA_PCO_ID, 0xFF00);
+ intent.putExtra(TelephonyManager.EXTRA_PCO_VALUE, value);
mPhone.getCarrierSignalAgent().notifyCarrierSignalReceivers(intent);
}
}
@@ -2885,10 +2892,12 @@
apn != null ? apn.getApnName() : null, cause);
// Compose broadcast intent send to the specific carrier signaling receivers
- Intent intent = new Intent(TelephonyIntents
+ Intent intent = new Intent(TelephonyManager
.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED);
- intent.putExtra(TelephonyIntents.EXTRA_ERROR_CODE_KEY, cause);
- intent.putExtra(TelephonyIntents.EXTRA_APN_TYPE_KEY, apnContext.getApnType());
+ intent.putExtra(TelephonyManager.EXTRA_ERROR_CODE, cause);
+ intent.putExtra(TelephonyManager.EXTRA_APN_TYPE, apnContext.getApnType());
+ intent.putExtra(TelephonyManager.EXTRA_APN_TYPE_INT,
+ ApnSetting.getApnTypesBitmaskFromString(apnContext.getApnType()));
mPhone.getCarrierSignalAgent().notifyCarrierSignalReceivers(intent);
if (DataFailCause.isRadioRestartFailure(mPhone.getContext(), cause, mPhone.getSubId())
@@ -2948,8 +2957,8 @@
*/
private void onNetworkStatusChanged(int status, int cid, String redirectUrl) {
if (!TextUtils.isEmpty(redirectUrl)) {
- Intent intent = new Intent(TelephonyIntents.ACTION_CARRIER_SIGNAL_REDIRECTED);
- intent.putExtra(TelephonyIntents.EXTRA_REDIRECTION_URL_KEY, redirectUrl);
+ Intent intent = new Intent(TelephonyManager.ACTION_CARRIER_SIGNAL_REDIRECTED);
+ intent.putExtra(TelephonyManager.EXTRA_REDIRECTION_URL, redirectUrl);
mPhone.getCarrierSignalAgent().notifyCarrierSignalReceivers(intent);
log("Notify carrier signal receivers with redirectUrl: " + redirectUrl);
} else {
@@ -4514,11 +4523,15 @@
for (ApnContext apnContext : apnContextList) {
String apnType = apnContext.getApnType();
- final Intent intent = new Intent(TelephonyIntents.ACTION_CARRIER_SIGNAL_PCO_VALUE);
- intent.putExtra(TelephonyIntents.EXTRA_APN_TYPE_KEY, apnType);
- intent.putExtra(TelephonyIntents.EXTRA_APN_PROTO_KEY, pcoData.bearerProto);
- intent.putExtra(TelephonyIntents.EXTRA_PCO_ID_KEY, pcoData.pcoId);
- intent.putExtra(TelephonyIntents.EXTRA_PCO_VALUE_KEY, pcoData.contents);
+ final Intent intent = new Intent(TelephonyManager.ACTION_CARRIER_SIGNAL_PCO_VALUE);
+ intent.putExtra(TelephonyManager.EXTRA_APN_TYPE, apnType);
+ intent.putExtra(TelephonyManager.EXTRA_APN_TYPE_INT,
+ ApnSetting.getApnTypesBitmaskFromString(apnType));
+ intent.putExtra(TelephonyManager.EXTRA_APN_PROTOCOL, pcoData.bearerProto);
+ intent.putExtra(TelephonyManager.EXTRA_APN_PROTOCOL_INT,
+ ApnSetting.getProtocolIntFromString(pcoData.bearerProto));
+ intent.putExtra(TelephonyManager.EXTRA_PCO_ID, pcoData.pcoId);
+ intent.putExtra(TelephonyManager.EXTRA_PCO_VALUE, pcoData.contents);
mPhone.getCarrierSignalAgent().notifyCarrierSignalReceivers(intent);
}
}
diff --git a/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java b/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
index 7f0c730..274205f 100644
--- a/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
+++ b/src/java/com/android/internal/telephony/dataconnection/TelephonyNetworkFactory.java
@@ -29,7 +29,7 @@
import android.os.Message;
import android.telephony.AccessNetworkConstants;
import android.telephony.Annotation.ApnType;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.telephony.data.ApnSetting;
import android.util.LocalLog;
diff --git a/src/java/com/android/internal/telephony/dataconnection/TransportManager.java b/src/java/com/android/internal/telephony/dataconnection/TransportManager.java
index 6a2af7c..287bf49 100644
--- a/src/java/com/android/internal/telephony/dataconnection/TransportManager.java
+++ b/src/java/com/android/internal/telephony/dataconnection/TransportManager.java
@@ -28,7 +28,7 @@
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.Annotation.ApnType;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.data.ApnSetting;
import android.util.LocalLog;
import android.util.SparseArray;
diff --git a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
index 7440e1d..5126a1d 100644
--- a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
+++ b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
@@ -28,7 +28,7 @@
import android.os.SystemProperties;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.TelephonyManager;
import android.telephony.emergency.EmergencyNumber;
import android.telephony.emergency.EmergencyNumber.EmergencyCallRouting;
diff --git a/src/java/com/android/internal/telephony/euicc/EuiccCardController.java b/src/java/com/android/internal/telephony/euicc/EuiccCardController.java
index 86826c3..3016ca1 100644
--- a/src/java/com/android/internal/telephony/euicc/EuiccCardController.java
+++ b/src/java/com/android/internal/telephony/euicc/EuiccCardController.java
@@ -27,10 +27,10 @@
import android.os.Binder;
import android.os.Handler;
import android.os.RemoteException;
-import android.os.ServiceManager;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.service.euicc.EuiccProfileInfo;
+import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.TelephonyManager;
import android.telephony.euicc.EuiccCardManager;
import android.telephony.euicc.EuiccNotification;
@@ -108,7 +108,10 @@
private EuiccCardController(Context context) {
this(context, new Handler(), EuiccController.get(), UiccController.getInstance());
- ServiceManager.addService("euicc_card_controller", this);
+ TelephonyFrameworkInitializer
+ .getTelephonyServiceManager()
+ .getEuiccCardControllerServiceRegisterer()
+ .register(this);
}
@VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
diff --git a/src/java/com/android/internal/telephony/euicc/EuiccController.java b/src/java/com/android/internal/telephony/euicc/EuiccController.java
index 694db12..3c829a7 100644
--- a/src/java/com/android/internal/telephony/euicc/EuiccController.java
+++ b/src/java/com/android/internal/telephony/euicc/EuiccController.java
@@ -27,7 +27,6 @@
import android.content.pm.PackageManager;
import android.os.Binder;
import android.os.Bundle;
-import android.os.ServiceManager;
import android.provider.Settings;
import android.service.euicc.DownloadSubscriptionResult;
import android.service.euicc.EuiccService;
@@ -36,6 +35,7 @@
import android.service.euicc.GetEuiccProfileInfoListResult;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
+import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.TelephonyManager;
import android.telephony.UiccAccessRule;
import android.telephony.UiccCardInfo;
@@ -109,7 +109,8 @@
private EuiccController(Context context) {
this(context, new EuiccConnector(context));
- ServiceManager.addService("econtroller", this);
+ TelephonyFrameworkInitializer
+ .getTelephonyServiceManager().getEuiccControllerService().register(this);
}
@VisibleForTesting
diff --git a/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java b/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java
index 6cc2bc3..0e4aa18 100644
--- a/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java
+++ b/src/java/com/android/internal/telephony/gsm/GsmMmiCode.java
@@ -37,7 +37,7 @@
import android.os.ResultReceiver;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.text.BidiFormatter;
import android.text.SpannableStringBuilder;
import android.text.TextDirectionHeuristics;
diff --git a/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java b/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
index de7977b..6850d31 100644
--- a/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
+++ b/src/java/com/android/internal/telephony/gsm/GsmSMSDispatcher.java
@@ -22,7 +22,7 @@
import android.os.AsyncResult;
import android.os.Message;
import android.provider.Telephony.Sms.Intents;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.util.Pair;
diff --git a/src/java/com/android/internal/telephony/gsm/SsData.java b/src/java/com/android/internal/telephony/gsm/SsData.java
index a5f67d8..8fa801d 100644
--- a/src/java/com/android/internal/telephony/gsm/SsData.java
+++ b/src/java/com/android/internal/telephony/gsm/SsData.java
@@ -19,7 +19,7 @@
package com.android.internal.telephony.gsm;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CallForwardInfo;
import com.android.internal.telephony.GsmCdmaPhone;
diff --git a/src/java/com/android/internal/telephony/gsm/UsimDataDownloadHandler.java b/src/java/com/android/internal/telephony/gsm/UsimDataDownloadHandler.java
index 91cbbf0..c782333 100644
--- a/src/java/com/android/internal/telephony/gsm/UsimDataDownloadHandler.java
+++ b/src/java/com/android/internal/telephony/gsm/UsimDataDownloadHandler.java
@@ -22,7 +22,7 @@
import android.os.Message;
import android.provider.Telephony.Sms.Intents;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SmsManager;
import com.android.internal.telephony.CommandsInterface;
diff --git a/src/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java b/src/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java
index 7594d3b..e0dde0b 100755
--- a/src/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java
+++ b/src/java/com/android/internal/telephony/gsm/UsimPhoneBookManager.java
@@ -20,7 +20,7 @@
import android.os.AsyncResult;
import android.os.Handler;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.util.SparseArray;
import android.util.SparseIntArray;
diff --git a/src/java/com/android/internal/telephony/ims/RcsEventQueryHelper.java b/src/java/com/android/internal/telephony/ims/RcsEventQueryHelper.java
index 062638c..d0c3142 100644
--- a/src/java/com/android/internal/telephony/ims/RcsEventQueryHelper.java
+++ b/src/java/com/android/internal/telephony/ims/RcsEventQueryHelper.java
@@ -44,7 +44,7 @@
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ims.RcsEventDescriptor;
import android.telephony.ims.RcsEventQueryResultDescriptor;
import android.telephony.ims.RcsGroupThreadIconChangedEventDescriptor;
diff --git a/src/java/com/android/internal/telephony/ims/RcsMessageController.java b/src/java/com/android/internal/telephony/ims/RcsMessageController.java
index d892439..c5504b9 100644
--- a/src/java/com/android/internal/telephony/ims/RcsMessageController.java
+++ b/src/java/com/android/internal/telephony/ims/RcsMessageController.java
@@ -88,7 +88,7 @@
import android.os.RemoteException;
import android.os.TelephonyServiceManager.ServiceRegisterer;
import android.provider.Telephony;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.TelephonyFrameworkInitializer;
import android.telephony.ims.RcsEventQueryParams;
import android.telephony.ims.RcsEventQueryResultDescriptor;
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
index 7c04f12..6798145 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
@@ -65,7 +65,7 @@
import android.telephony.CarrierConfigManager;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
@@ -76,7 +76,9 @@
import android.telephony.ims.ImsSsData;
import android.telephony.ims.ImsSsInfo;
import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.feature.ImsFeature;
import android.text.TextUtils;
+import android.util.LocalLog;
import com.android.ims.FeatureConnector;
import com.android.ims.ImsEcbm;
@@ -105,8 +107,11 @@
import com.android.internal.telephony.emergency.EmergencyNumberTracker;
import com.android.internal.telephony.gsm.GsmMmiCode;
import com.android.internal.telephony.gsm.SuppServiceNotification;
+import com.android.internal.telephony.metrics.TelephonyMetrics;
+import com.android.internal.telephony.nano.TelephonyProto.ImsConnectionState;
import com.android.internal.telephony.uicc.IccRecords;
import com.android.internal.telephony.util.NotificationChannelController;
+import com.android.internal.util.IndentingPrintWriter;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -219,7 +224,12 @@
private final RegistrantList mSilentRedialRegistrants = new RegistrantList();
- private int mImsRegistrationState = RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED;
+ private final LocalLog mRegLocalLog = new LocalLog(100);
+ private TelephonyMetrics mMetrics;
+
+ // The helper class to receive and store the MmTel and RCS registration status updated.
+ private ImsRegistrationCallbackHelper mImsMmTelRegistrationHelper;
+ private ImsRegistrationCallbackHelper mImsRcsRegistrationHelper;
private boolean mRoaming = false;
@@ -305,6 +315,10 @@
mPhoneId = mDefaultPhone.getPhoneId();
+ mMetrics = TelephonyMetrics.getInstance();
+
+ initImsRegistration();
+
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG);
mWakeLock.setReferenceCounted(false);
@@ -415,11 +429,19 @@
public void connectionReady(RcsFeatureManager manager) throws ImsException {
logi("RcsFeatureManager is ready");
mRcsManager = manager;
+
+ // Listen to the IMS RCS registration status changed
+ mRcsManager.registerImsRegistrationCallback(
+ mImsRcsRegistrationHelper.getCallbackBinder());
}
@Override
public void connectionUnavailable() {
logi("RcsFeatureManager is unavailable");
+ resetImsRegistrationState(ImsFeature.FEATURE_RCS);
+ if (mRcsManager != null) {
+ mRcsManager.release();
+ }
mRcsManager = null;
}
};
@@ -1832,9 +1854,23 @@
mCT.getImsRegistrationTech(callback);
}
+ /**
+ * Get the IMS RCS registration technology for this Phone.
+ */
+ public void getImsRcsRegistrationTech(Consumer<Integer> callback) {
+ mRcsManager.getImsRegistrationTech(callback);
+ }
+
@Override
public void getImsRegistrationState(Consumer<Integer> callback) {
- callback.accept(mImsRegistrationState);
+ callback.accept(mImsMmTelRegistrationHelper.getImsRegistrationState());
+ }
+
+ /**
+ * Retrieve the current RCS registration state.
+ */
+ public void getImsRcsRegistrationState(Consumer<Integer> callback) {
+ callback.accept(mImsRcsRegistrationHelper.getImsRegistrationState());
}
@Override
@@ -1844,18 +1880,20 @@
@Override
public boolean isImsRegistered() {
- return mImsRegistrationState == RegistrationManager.REGISTRATION_STATE_REGISTERED;
+ return mImsMmTelRegistrationHelper.isImsRegistered();
}
// Not used, but not removed due to UnsupportedAppUsage tag.
@UnsupportedAppUsage
public void setImsRegistered(boolean isRegistered) {
- mImsRegistrationState = isRegistered ? RegistrationManager.REGISTRATION_STATE_REGISTERED :
- RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED;
+ mImsMmTelRegistrationHelper.updateRegistrationState(
+ isRegistered ? RegistrationManager.REGISTRATION_STATE_REGISTERED :
+ RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED);
}
public void setImsRegistrationState(@RegistrationManager.ImsRegistrationState int value) {
- mImsRegistrationState = value;
+ if (DBG) logd("setImsRegistrationState: " + value);
+ mImsMmTelRegistrationHelper.updateRegistrationState(value);
}
@Override
@@ -2112,8 +2150,97 @@
&& psInfo.getAccessNetworkTechnology() == TelephonyManager.NETWORK_TYPE_IWLAN;
}
+ public RegistrationManager.RegistrationCallback getImsMmTelRegistrationCallback() {
+ return mImsMmTelRegistrationHelper.getCallback();
+ }
+
+ /**
+ * Reset the IMS registration state.
+ */
+ public void resetImsRegistrationState(int featureType) {
+ if (DBG) logd("resetImsRegistrationState: feature=" + featureType);
+ if (featureType == ImsFeature.FEATURE_MMTEL) {
+ mImsMmTelRegistrationHelper.reset();
+ } else if (featureType == ImsFeature.FEATURE_RCS) {
+ mImsRcsRegistrationHelper.reset();
+ }
+ }
+
+ private void initImsRegistration() {
+ mImsMmTelRegistrationHelper = new ImsRegistrationCallbackHelper(mMmTelRegistrationUpdate);
+ mImsRcsRegistrationHelper = new ImsRegistrationCallbackHelper(mRcsRegistrationUpdate);
+ }
+
+ private ImsRegistrationCallbackHelper.ImsRegistrationUpdate mMmTelRegistrationUpdate = new
+ ImsRegistrationCallbackHelper.ImsRegistrationUpdate() {
+ @Override
+ public void handleImsRegistered(int imsRadioTech) {
+ if (DBG) {
+ logd("onImsMmTelConnected imsRadioTech="
+ + AccessNetworkConstants.transportTypeToString(imsRadioTech));
+ }
+ mRegLocalLog.log("onImsMmTelConnected imsRadioTech="
+ + AccessNetworkConstants.transportTypeToString(imsRadioTech));
+ setServiceState(ServiceState.STATE_IN_SERVICE);
+ mMetrics.writeOnImsConnectionState(mPhoneId, ImsConnectionState.State.CONNECTED, null);
+ }
+
+ @Override
+ public void handleImsRegistering(int imsRadioTech) {
+ if (DBG) {
+ logd("onImsMmTelProgressing imsRadioTech="
+ + AccessNetworkConstants.transportTypeToString(imsRadioTech));
+ }
+ mRegLocalLog.log("onImsMmTelProgressing imsRadioTech="
+ + AccessNetworkConstants.transportTypeToString(imsRadioTech));
+ setServiceState(ServiceState.STATE_OUT_OF_SERVICE);
+ mMetrics.writeOnImsConnectionState(mPhoneId, ImsConnectionState.State.PROGRESSING,
+ null);
+ }
+
+ @Override
+ public void handleImsUnregistered(ImsReasonInfo imsReasonInfo) {
+ if (DBG) logd("onImsMmTelDisconnected imsReasonInfo=" + imsReasonInfo);
+ mRegLocalLog.log("onImsMmTelDisconnected imsRadioTech=" + imsReasonInfo);
+ setServiceState(ServiceState.STATE_OUT_OF_SERVICE);
+ processDisconnectReason(imsReasonInfo);
+ mMetrics.writeOnImsConnectionState(mPhoneId, ImsConnectionState.State.DISCONNECTED,
+ imsReasonInfo);
+ }
+
+ @Override
+ public void handleImsSubscriberAssociatedUriChanged(Uri[] uris) {
+ if (DBG) logd("handleImsSubscriberAssociatedUriChanged");
+ setCurrentSubscriberUris(uris);
+ }
+ };
+
+ private ImsRegistrationCallbackHelper.ImsRegistrationUpdate mRcsRegistrationUpdate = new
+ ImsRegistrationCallbackHelper.ImsRegistrationUpdate() {
+ @Override
+ public void handleImsRegistered(int imsRadioTech) {
+ if (DBG) logd("handle RCS registered");
+ }
+
+ @Override
+ public void handleImsRegistering(int imsRadioTech) {
+ if (DBG) logd("handle RCS registering");
+ }
+
+ @Override
+ public void handleImsUnregistered(ImsReasonInfo imsReasonInfo) {
+ if (DBG) logd("handle RCS unregistered");
+ }
+
+ @Override
+ public void handleImsSubscriberAssociatedUriChanged(Uri[] uris) {
+ if (DBG) logd("handle RCS SubscriberAssociatedUriChanged");
+ }
+ };
+
@Override
- public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ public void dump(FileDescriptor fd, PrintWriter printWriter, String[] args) {
+ IndentingPrintWriter pw = new IndentingPrintWriter(printWriter, " ");
pw.println("ImsPhone extends:");
super.dump(fd, pw, args);
pw.flush();
@@ -2127,9 +2254,16 @@
pw.println(" mIsPhoneInEcmState = " + isInEcm());
pw.println(" mEcmExitRespRegistrant = " + mEcmExitRespRegistrant);
pw.println(" mSilentRedialRegistrants = " + mSilentRedialRegistrants);
- pw.println(" mImsRegistrationState = " + mImsRegistrationState);
+ pw.println(" mImsMmTelRegistrationState = "
+ + mImsMmTelRegistrationHelper.getImsRegistrationState());
+ pw.println(" mImsRcsRegistrationState = "
+ + mImsRcsRegistrationHelper.getImsRegistrationState());
pw.println(" mRoaming = " + mRoaming);
pw.println(" mSsnRegistrants = " + mSsnRegistrants);
+ pw.println(" Registration Log:");
+ pw.increaseIndent();
+ mRegLocalLog.dump(pw);
+ pw.decreaseIndent();
pw.flush();
}
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneBase.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneBase.java
index d2da8d0..705ef85 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneBase.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneBase.java
@@ -25,7 +25,7 @@
import android.sysprop.TelephonyProperties;
import android.telephony.CallQuality;
import android.telephony.NetworkScanRequest;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.ims.ImsReasonInfo;
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCall.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCall.java
index c952090..e59ab0e 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCall.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCall.java
@@ -18,7 +18,7 @@
import android.compat.annotation.UnsupportedAppUsage;
import android.telephony.DisconnectCause;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ims.ImsStreamMediaProfile;
import android.util.Log;
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
index 957111b..964cfda 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
@@ -32,7 +32,6 @@
import android.net.NetworkInfo;
import android.net.NetworkRequest;
import android.net.NetworkStats;
-import android.net.Uri;
import android.os.AsyncResult;
import android.os.Bundle;
import android.os.Handler;
@@ -47,12 +46,11 @@
import android.sysprop.TelephonyProperties;
import android.telecom.TelecomManager;
import android.telecom.VideoProfile;
-import android.telephony.AccessNetworkConstants;
import android.telephony.CallQuality;
import android.telephony.CarrierConfigManager;
import android.telephony.DisconnectCause;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
@@ -64,7 +62,6 @@
import android.telephony.ims.ImsStreamMediaProfile;
import android.telephony.ims.ImsSuppServiceNotification;
import android.telephony.ims.ProvisioningManager;
-import android.telephony.ims.RegistrationManager;
import android.telephony.ims.feature.ImsFeature;
import android.telephony.ims.feature.MmTelFeature;
import android.telephony.ims.stub.ImsRegistrationImplBase;
@@ -108,7 +105,6 @@
import com.android.internal.telephony.imsphone.ImsPhone.ImsDialArgs;
import com.android.internal.telephony.metrics.CallQualityMetrics;
import com.android.internal.telephony.metrics.TelephonyMetrics;
-import com.android.internal.telephony.nano.TelephonyProto.ImsConnectionState;
import com.android.internal.telephony.nano.TelephonyProto.TelephonyCallSession;
import com.android.internal.telephony.nano.TelephonyProto.TelephonyCallSession.Event.ImsCommand;
import com.android.internal.util.IndentingPrintWriter;
@@ -692,7 +688,7 @@
log("startListeningForCalls");
mOperationLocalLog.log("startListeningForCalls - Connecting to ImsService");
mImsManager.open(mMmTelFeatureListener);
- mImsManager.addRegistrationCallback(mImsRegistrationCallback);
+ mImsManager.addRegistrationCallback(mPhone.getImsMmTelRegistrationCallback());
mImsManager.addCapabilitiesCallback(mImsCapabilityCallback);
mImsManager.setConfigListener(mImsConfigListener);
@@ -3239,58 +3235,6 @@
}
};
- private final RegistrationManager.RegistrationCallback mImsRegistrationCallback =
- new RegistrationManager.RegistrationCallback() {
-
- @Override
- public void onRegistered(int imsRadioTech) {
- if (DBG) {
- log("onImsConnected imsRadioTech="
- + AccessNetworkConstants.transportTypeToString(imsRadioTech));
- }
- mRegLocalLog.log("onImsConnected imsRadioTech="
- + AccessNetworkConstants.transportTypeToString(imsRadioTech));
- mPhone.setServiceState(ServiceState.STATE_IN_SERVICE);
- mPhone.setImsRegistrationState(
- RegistrationManager.REGISTRATION_STATE_REGISTERED);
- mMetrics.writeOnImsConnectionState(mPhone.getPhoneId(),
- ImsConnectionState.State.CONNECTED, null);
- }
-
- @Override
- public void onRegistering(int imsRadioTech) {
- if (DBG) {
- log("onImsProgressing imsRadioTech="
- + AccessNetworkConstants.transportTypeToString(imsRadioTech));
- }
- mRegLocalLog.log("onImsProgressing imsRadioTech="
- + AccessNetworkConstants.transportTypeToString(imsRadioTech));
- mPhone.setServiceState(ServiceState.STATE_OUT_OF_SERVICE);
- mPhone.setImsRegistrationState(
- RegistrationManager.REGISTRATION_STATE_REGISTERING);
- mMetrics.writeOnImsConnectionState(mPhone.getPhoneId(),
- ImsConnectionState.State.PROGRESSING, null);
- }
-
- @Override
- public void onUnregistered(ImsReasonInfo imsReasonInfo) {
- if (DBG) log("onImsDisconnected imsReasonInfo=" + imsReasonInfo);
- mRegLocalLog.log("onImsDisconnected imsRadioTech=" + imsReasonInfo);
- mPhone.setServiceState(ServiceState.STATE_OUT_OF_SERVICE);
- mPhone.setImsRegistrationState(
- RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED);
- mPhone.processDisconnectReason(imsReasonInfo);
- mMetrics.writeOnImsConnectionState(mPhone.getPhoneId(),
- ImsConnectionState.State.DISCONNECTED, imsReasonInfo);
- }
-
- @Override
- public void onSubscriberAssociatedUriChanged(Uri[] uris) {
- if (DBG) log("registrationAssociatedUriChanged");
- mPhone.setCurrentSubscriberUris(uris);
- }
- };
-
private final ImsMmTelManager.CapabilityCallback mImsCapabilityCallback =
new ImsMmTelManager.CapabilityCallback() {
@Override
@@ -3787,10 +3731,6 @@
pw.println(" mCallQualityMetrics=" + mCallQualityMetrics);
pw.println(" mCallQualityMetricsHistory=" + mCallQualityMetricsHistory);
pw.println(" mIsConferenceEventPackageHandlingEnabled=" + mIsConferenceEventPackageEnabled);
- pw.println(" Registration Log:");
- pw.increaseIndent();
- mRegLocalLog.dump(pw);
- pw.decreaseIndent();
pw.println(" Event Log:");
pw.increaseIndent();
mOperationLocalLog.dump(pw);
@@ -4291,8 +4231,7 @@
boolean tmpIsVideoCallEnabled = isVideoCallEnabled();
mMmTelCapabilities = new MmTelFeature.MmTelCapabilities();
mPhone.setServiceState(ServiceState.STATE_OUT_OF_SERVICE);
- mPhone.setImsRegistrationState(
- RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED);
+ mPhone.resetImsRegistrationState(ImsFeature.FEATURE_MMTEL);
mPhone.processDisconnectReason(new ImsReasonInfo(ImsReasonInfo.CODE_LOCAL_IMS_SERVICE_DOWN,
ImsReasonInfo.CODE_UNSPECIFIED));
boolean isVideoEnabled = isVideoCallEnabled();
@@ -4328,10 +4267,8 @@
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm != null) {
Rlog.i(LOG_TAG, "registerForConnectivityChanges");
- NetworkCapabilities capabilities = new NetworkCapabilities();
- capabilities.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
NetworkRequest.Builder builder = new NetworkRequest.Builder();
- builder.setCapabilities(capabilities);
+ builder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI);
cm.registerNetworkCallback(builder.build(), mNetworkCallback);
mIsMonitoringConnectivity = true;
}
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java
index 54adcf9..7e6db99 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java
@@ -33,7 +33,7 @@
import android.telephony.CarrierConfigManager;
import android.telephony.DisconnectCause;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.ims.ImsCallProfile;
import android.telephony.ims.ImsStreamMediaProfile;
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneFactory.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneFactory.java
index 9f81a69..1b0a652 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneFactory.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneFactory.java
@@ -20,7 +20,7 @@
import com.android.internal.telephony.PhoneNotifier;
import android.content.Context;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* {@hide}
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java
index faefa51..b9d5606 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java
@@ -35,7 +35,7 @@
import android.os.Message;
import android.os.ResultReceiver;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ims.ImsCallForwardInfo;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.ImsSsData;
@@ -1678,9 +1678,8 @@
StringBuilder sb = new StringBuilder(getScString());
sb.append("\n");
+ mState = State.FAILED;
if (ar.exception != null) {
- mState = State.FAILED;
-
if (ar.exception instanceof ImsException) {
sb.append(getImsErrorMessage(ar));
} else {
@@ -1693,19 +1692,21 @@
if (ints.length != 0) {
if (ints[0] == 0) {
sb.append(mContext.getText(com.android.internal.R.string.serviceDisabled));
+ mState = State.COMPLETE;
} else if (mSc.equals(SC_WAIT)) {
// Call Waiting includes additional data in the response.
sb.append(createQueryCallWaitingResultMessage(ints[1]));
+ mState = State.COMPLETE;
} else if (ints[0] == 1) {
// for all other services, treat it as a boolean
sb.append(mContext.getText(com.android.internal.R.string.serviceEnabled));
+ mState = State.COMPLETE;
} else {
sb.append(mContext.getText(com.android.internal.R.string.mmiError));
}
} else {
sb.append(mContext.getText(com.android.internal.R.string.mmiError));
}
- mState = State.COMPLETE;
}
mMessage = sb;
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelper.java b/src/java/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelper.java
new file mode 100644
index 0000000..a1bee96
--- /dev/null
+++ b/src/java/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelper.java
@@ -0,0 +1,138 @@
+/*
+ * Copyright (C) 2020 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.internal.telephony.imsphone;
+
+import android.annotation.NonNull;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IImsRegistrationCallback;
+import android.util.Log;
+
+import com.android.internal.telephony.util.HandlerExecutor;
+
+import java.util.concurrent.Executor;
+
+/**
+ * A helper class to manager the ImsRegistrationCallback can notify the state changed to listener.
+ */
+public class ImsRegistrationCallbackHelper {
+ private static final String TAG = "ImsRegCallbackHelper";
+
+ /**
+ * The interface to receive IMS registration updated.
+ */
+ public interface ImsRegistrationUpdate {
+ /**
+ * Handle the callback when IMS is registered.
+ */
+ void handleImsRegistered(int imsRadioTech);
+
+ /**
+ * Handle the callback when IMS is registering.
+ */
+ void handleImsRegistering(int imsRadioTech);
+
+ /**
+ * Handle the callback when IMS is unregistered.
+ */
+ void handleImsUnregistered(ImsReasonInfo imsReasonInfo);
+
+ /**
+ * Handle the callback when the list of subscriber {@link Uri}s associated with this IMS
+ * subscription changed.
+ */
+ void handleImsSubscriberAssociatedUriChanged(Uri[] uris);
+ }
+
+ private ImsRegistrationUpdate mImsRegistrationUpdate;
+ private int mRegistrationState = RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED;
+
+ private final RegistrationManager.RegistrationCallback mImsRegistrationCallback =
+ new RegistrationManager.RegistrationCallback() {
+ @Override
+ public void onRegistered(int imsRadioTech) {
+ updateRegistrationState(RegistrationManager.REGISTRATION_STATE_REGISTERED);
+ mImsRegistrationUpdate.handleImsRegistered(imsRadioTech);
+ }
+
+ @Override
+ public void onRegistering(int imsRadioTech) {
+ updateRegistrationState(RegistrationManager.REGISTRATION_STATE_REGISTERING);
+ mImsRegistrationUpdate.handleImsRegistering(imsRadioTech);
+ }
+
+ @Override
+ public void onUnregistered(ImsReasonInfo imsReasonInfo) {
+ updateRegistrationState(RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED);
+ mImsRegistrationUpdate.handleImsUnregistered(imsReasonInfo);
+ }
+
+ @Override
+ public void onSubscriberAssociatedUriChanged(Uri[] uris) {
+ mImsRegistrationUpdate.handleImsSubscriberAssociatedUriChanged(uris);
+ }
+ };
+
+ public ImsRegistrationCallbackHelper(@NonNull ImsRegistrationUpdate registrationUpdate) {
+ mImsRegistrationCallback.setExecutor(getThreadExecutor());
+ mImsRegistrationUpdate = registrationUpdate;
+ }
+
+ /**
+ * Reset the IMS registration state.
+ */
+ public void reset() {
+ Log.d(TAG, "reset");
+ updateRegistrationState(RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED);
+ }
+
+ /**
+ * Update the latest IMS registration state.
+ */
+ public synchronized void updateRegistrationState(
+ @RegistrationManager.ImsRegistrationState int newState) {
+ Log.d(TAG, "updateRegistrationState: registration state from " + mRegistrationState
+ + " to " + newState);
+ mRegistrationState = newState;
+ }
+
+ public int getImsRegistrationState() {
+ return mRegistrationState;
+ }
+
+ public boolean isImsRegistered() {
+ return mRegistrationState == RegistrationManager.REGISTRATION_STATE_REGISTERED;
+ }
+
+ public RegistrationManager.RegistrationCallback getCallback() {
+ return mImsRegistrationCallback;
+ }
+
+ public IImsRegistrationCallback getCallbackBinder() {
+ return mImsRegistrationCallback.getBinder();
+ }
+
+ private Executor getThreadExecutor() {
+ if (Looper.myLooper() == null) {
+ Looper.prepare();
+ }
+ return new HandlerExecutor(new Handler(Looper.myLooper()));
+ }
+}
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsRttTextHandler.java b/src/java/com/android/internal/telephony/imsphone/ImsRttTextHandler.java
index eff2499..4f35376 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsRttTextHandler.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsRttTextHandler.java
@@ -20,7 +20,7 @@
import android.os.Looper;
import android.os.Message;
import android.telecom.Connection;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.annotations.VisibleForTesting;
diff --git a/src/java/com/android/internal/telephony/metrics/CallQualityMetrics.java b/src/java/com/android/internal/telephony/metrics/CallQualityMetrics.java
index 55ac225..d639e15 100644
--- a/src/java/com/android/internal/telephony/metrics/CallQualityMetrics.java
+++ b/src/java/com/android/internal/telephony/metrics/CallQualityMetrics.java
@@ -21,7 +21,7 @@
import android.telephony.CallQuality;
import android.telephony.CellInfo;
import android.telephony.CellSignalStrengthLte;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SignalStrength;
import android.util.Pair;
diff --git a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
index 17a9b87..844568c 100644
--- a/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
+++ b/src/java/com/android/internal/telephony/metrics/TelephonyMetrics.java
@@ -48,7 +48,7 @@
import android.telephony.CallQuality;
import android.telephony.DisconnectCause;
import android.telephony.NetworkRegistrationInfo;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SmsManager;
import android.telephony.SmsMessage;
@@ -2126,6 +2126,9 @@
cq.averageRelativeJitterMillis = callQuality.getAverageRelativeJitter();
cq.maxRelativeJitterMillis = callQuality.getMaxRelativeJitter();
cq.codecType = convertImsCodec(callQuality.getCodecType());
+ cq.rtpInactivityDetected = callQuality.isRtpInactivityDetected();
+ cq.rxSilenceDetected = callQuality.isIncomingSilenceDetected();
+ cq.txSilenceDetected = callQuality.isOutgoingSilenceDetected();
}
return cq;
}
diff --git a/src/java/com/android/internal/telephony/nitz/NewNitzStateMachineImpl.java b/src/java/com/android/internal/telephony/nitz/NewNitzStateMachineImpl.java
index d2e5f55..02eee96 100644
--- a/src/java/com/android/internal/telephony/nitz/NewNitzStateMachineImpl.java
+++ b/src/java/com/android/internal/telephony/nitz/NewNitzStateMachineImpl.java
@@ -22,7 +22,7 @@
import android.app.timezonedetector.PhoneTimeZoneSuggestion;
import android.content.Context;
import android.os.TimestampedValue;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.NitzData;
diff --git a/src/java/com/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory.java b/src/java/com/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory.java
index 4f4e256..64dd630 100644
--- a/src/java/com/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory.java
+++ b/src/java/com/android/internal/telephony/nitz/NitzSignalInputFilterPredicateFactory.java
@@ -22,7 +22,7 @@
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
import android.os.TimestampedValue;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.telephony.NitzData;
diff --git a/src/java/com/android/internal/telephony/nitz/TimeZoneSuggesterImpl.java b/src/java/com/android/internal/telephony/nitz/TimeZoneSuggesterImpl.java
index 3975b71..adefcd3 100644
--- a/src/java/com/android/internal/telephony/nitz/TimeZoneSuggesterImpl.java
+++ b/src/java/com/android/internal/telephony/nitz/TimeZoneSuggesterImpl.java
@@ -22,7 +22,7 @@
import android.annotation.Nullable;
import android.app.timezonedetector.PhoneTimeZoneSuggestion;
import android.os.TimestampedValue;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.text.TextUtils;
import com.android.internal.annotations.VisibleForTesting;
diff --git a/src/java/com/android/internal/telephony/sip/SipConnectionBase.java b/src/java/com/android/internal/telephony/sip/SipConnectionBase.java
index acf6d36..796a4c5 100644
--- a/src/java/com/android/internal/telephony/sip/SipConnectionBase.java
+++ b/src/java/com/android/internal/telephony/sip/SipConnectionBase.java
@@ -24,7 +24,7 @@
import android.os.SystemClock;
import android.telephony.DisconnectCause;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.PhoneNumberUtils;
abstract class SipConnectionBase extends Connection {
diff --git a/src/java/com/android/internal/telephony/sip/SipPhone.java b/src/java/com/android/internal/telephony/sip/SipPhone.java
index 080a057..72fd9da 100644
--- a/src/java/com/android/internal/telephony/sip/SipPhone.java
+++ b/src/java/com/android/internal/telephony/sip/SipPhone.java
@@ -30,7 +30,7 @@
import android.os.Message;
import android.telephony.DisconnectCause;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.text.TextUtils;
diff --git a/src/java/com/android/internal/telephony/sip/SipPhoneBase.java b/src/java/com/android/internal/telephony/sip/SipPhoneBase.java
index 85c97ea..54655ac 100755
--- a/src/java/com/android/internal/telephony/sip/SipPhoneBase.java
+++ b/src/java/com/android/internal/telephony/sip/SipPhoneBase.java
@@ -25,7 +25,7 @@
import android.os.ResultReceiver;
import android.sysprop.TelephonyProperties;
import android.telephony.NetworkScanRequest;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
diff --git a/src/java/com/android/internal/telephony/sip/SipPhoneFactory.java b/src/java/com/android/internal/telephony/sip/SipPhoneFactory.java
index 3383bed..0df7296 100644
--- a/src/java/com/android/internal/telephony/sip/SipPhoneFactory.java
+++ b/src/java/com/android/internal/telephony/sip/SipPhoneFactory.java
@@ -20,7 +20,7 @@
import android.content.Context;
import android.net.sip.SipProfile;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.text.ParseException;
diff --git a/src/java/com/android/internal/telephony/uicc/AdnRecord.java b/src/java/com/android/internal/telephony/uicc/AdnRecord.java
index bd99932..f0b9a2a 100644
--- a/src/java/com/android/internal/telephony/uicc/AdnRecord.java
+++ b/src/java/com/android/internal/telephony/uicc/AdnRecord.java
@@ -20,7 +20,7 @@
import android.os.Parcel;
import android.os.Parcelable;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.text.TextUtils;
import com.android.internal.telephony.GsmAlphabet;
diff --git a/src/java/com/android/internal/telephony/uicc/AdnRecordLoader.java b/src/java/com/android/internal/telephony/uicc/AdnRecordLoader.java
index 64b47b5..9ce44f4 100644
--- a/src/java/com/android/internal/telephony/uicc/AdnRecordLoader.java
+++ b/src/java/com/android/internal/telephony/uicc/AdnRecordLoader.java
@@ -21,7 +21,7 @@
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.util.ArrayList;
diff --git a/src/java/com/android/internal/telephony/uicc/AnswerToReset.java b/src/java/com/android/internal/telephony/uicc/AnswerToReset.java
index 6fd7c68..3f18c26 100644
--- a/src/java/com/android/internal/telephony/uicc/AnswerToReset.java
+++ b/src/java/com/android/internal/telephony/uicc/AnswerToReset.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony.uicc;
import android.annotation.Nullable;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.util.ArrayMap;
import com.android.internal.annotations.VisibleForTesting;
diff --git a/src/java/com/android/internal/telephony/uicc/CarrierTestOverride.java b/src/java/com/android/internal/telephony/uicc/CarrierTestOverride.java
index d098cff..07df826 100644
--- a/src/java/com/android/internal/telephony/uicc/CarrierTestOverride.java
+++ b/src/java/com/android/internal/telephony/uicc/CarrierTestOverride.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony.uicc;
import android.os.Environment;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.util.Xml;
import com.android.internal.telephony.util.XmlUtils;
diff --git a/src/java/com/android/internal/telephony/uicc/CsimFileHandler.java b/src/java/com/android/internal/telephony/uicc/CsimFileHandler.java
index e45afa9..73e8ce8 100644
--- a/src/java/com/android/internal/telephony/uicc/CsimFileHandler.java
+++ b/src/java/com/android/internal/telephony/uicc/CsimFileHandler.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony.uicc;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandsInterface;
diff --git a/src/java/com/android/internal/telephony/uicc/IccCardApplicationStatus.java b/src/java/com/android/internal/telephony/uicc/IccCardApplicationStatus.java
index c476efb..7f7818c 100644
--- a/src/java/com/android/internal/telephony/uicc/IccCardApplicationStatus.java
+++ b/src/java/com/android/internal/telephony/uicc/IccCardApplicationStatus.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony.uicc;
import android.compat.annotation.UnsupportedAppUsage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.uicc.IccCardStatus.PinState;
diff --git a/src/java/com/android/internal/telephony/uicc/IccRecords.java b/src/java/com/android/internal/telephony/uicc/IccRecords.java
index 47f2d5e..d6a44aa 100644
--- a/src/java/com/android/internal/telephony/uicc/IccRecords.java
+++ b/src/java/com/android/internal/telephony/uicc/IccRecords.java
@@ -25,7 +25,7 @@
import android.os.Message;
import android.os.Registrant;
import android.os.RegistrantList;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
diff --git a/src/java/com/android/internal/telephony/uicc/IccServiceTable.java b/src/java/com/android/internal/telephony/uicc/IccServiceTable.java
index b811d5c..5b28e4e 100644
--- a/src/java/com/android/internal/telephony/uicc/IccServiceTable.java
+++ b/src/java/com/android/internal/telephony/uicc/IccServiceTable.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony.uicc;
import android.compat.annotation.UnsupportedAppUsage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* Wrapper class for an ICC EF containing a bit field of enabled services.
diff --git a/src/java/com/android/internal/telephony/uicc/IsimFileHandler.java b/src/java/com/android/internal/telephony/uicc/IsimFileHandler.java
index 6fe16c9..1d2f590 100644
--- a/src/java/com/android/internal/telephony/uicc/IsimFileHandler.java
+++ b/src/java/com/android/internal/telephony/uicc/IsimFileHandler.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony.uicc;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandsInterface;
diff --git a/src/java/com/android/internal/telephony/uicc/IsimUiccRecords.java b/src/java/com/android/internal/telephony/uicc/IsimUiccRecords.java
index 766668c..072dbc9 100644
--- a/src/java/com/android/internal/telephony/uicc/IsimUiccRecords.java
+++ b/src/java/com/android/internal/telephony/uicc/IsimUiccRecords.java
@@ -21,7 +21,7 @@
import android.content.Intent;
import android.os.AsyncResult;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.PhoneConstants;
diff --git a/src/java/com/android/internal/telephony/uicc/PlmnActRecord.java b/src/java/com/android/internal/telephony/uicc/PlmnActRecord.java
index 4d0b484..671d65b 100755
--- a/src/java/com/android/internal/telephony/uicc/PlmnActRecord.java
+++ b/src/java/com/android/internal/telephony/uicc/PlmnActRecord.java
@@ -19,7 +19,7 @@
import android.annotation.IntDef;
import android.os.Parcel;
import android.os.Parcelable;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/java/com/android/internal/telephony/uicc/RuimFileHandler.java b/src/java/com/android/internal/telephony/uicc/RuimFileHandler.java
index 58e939f..8c40881 100644
--- a/src/java/com/android/internal/telephony/uicc/RuimFileHandler.java
+++ b/src/java/com/android/internal/telephony/uicc/RuimFileHandler.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony.uicc;
import android.os.*;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandsInterface;
diff --git a/src/java/com/android/internal/telephony/uicc/RuimRecords.java b/src/java/com/android/internal/telephony/uicc/RuimRecords.java
index 0951678..9a89691 100644
--- a/src/java/com/android/internal/telephony/uicc/RuimRecords.java
+++ b/src/java/com/android/internal/telephony/uicc/RuimRecords.java
@@ -22,7 +22,7 @@
import android.os.AsyncResult;
import android.os.Message;
import android.sysprop.TelephonyProperties;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.text.TextUtils;
diff --git a/src/java/com/android/internal/telephony/uicc/SIMFileHandler.java b/src/java/com/android/internal/telephony/uicc/SIMFileHandler.java
index 3be0c99..1e3c4f6 100644
--- a/src/java/com/android/internal/telephony/uicc/SIMFileHandler.java
+++ b/src/java/com/android/internal/telephony/uicc/SIMFileHandler.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony.uicc;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandsInterface;
diff --git a/src/java/com/android/internal/telephony/uicc/SIMRecords.java b/src/java/com/android/internal/telephony/uicc/SIMRecords.java
index baa5683..94155bd 100644
--- a/src/java/com/android/internal/telephony/uicc/SIMRecords.java
+++ b/src/java/com/android/internal/telephony/uicc/SIMRecords.java
@@ -24,7 +24,7 @@
import android.os.PersistableBundle;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SmsMessage;
import android.telephony.SubscriptionInfo;
import android.text.TextUtils;
diff --git a/src/java/com/android/internal/telephony/uicc/UiccCard.java b/src/java/com/android/internal/telephony/uicc/UiccCard.java
index d06cdb0..24a2856 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccCard.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccCard.java
@@ -24,7 +24,7 @@
import android.content.pm.Signature;
import android.os.Handler;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
diff --git a/src/java/com/android/internal/telephony/uicc/UiccCardApplication.java b/src/java/com/android/internal/telephony/uicc/UiccCardApplication.java
index 5921046..b08cddf 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccCardApplication.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccCardApplication.java
@@ -23,7 +23,7 @@
import android.os.Message;
import android.os.Registrant;
import android.os.RegistrantList;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.PhoneConstants;
diff --git a/src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java b/src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java
index 49715e9..7299605 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccCarrierPrivilegeRules.java
@@ -27,7 +27,7 @@
import android.os.Binder;
import android.os.Handler;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.TelephonyManager;
import android.telephony.UiccAccessRule;
import android.text.TextUtils;
@@ -438,7 +438,7 @@
CommandException.Error error = ((CommandException) (ar.exception)).getCommandError();
int[] results = (int[]) ar.result;
int statusCode = 0;
- if (results.length == 3) {
+ if (ar.result != null && results.length == 3) {
byte[] bytes = new byte[]{(byte) results[1], (byte) results[2]};
statusCode = Integer.parseInt(IccUtils.bytesToHexString(bytes), 16);
log("status code: " + String.valueOf(statusCode));
@@ -768,4 +768,4 @@
return "UNKNOWN";
}
}
-}
\ No newline at end of file
+}
diff --git a/src/java/com/android/internal/telephony/uicc/UiccController.java b/src/java/com/android/internal/telephony/uicc/UiccController.java
index bdaa4ba..4d359cc 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccController.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccController.java
@@ -34,7 +34,7 @@
import android.os.RegistrantList;
import android.preference.PreferenceManager;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.TelephonyManager;
import android.telephony.UiccCardInfo;
import android.text.TextUtils;
diff --git a/src/java/com/android/internal/telephony/uicc/UiccPkcs15.java b/src/java/com/android/internal/telephony/uicc/UiccPkcs15.java
index cc99ae9..be731a9 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccPkcs15.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccPkcs15.java
@@ -19,7 +19,7 @@
import android.os.AsyncResult;
import android.os.Handler;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.uicc.UiccCarrierPrivilegeRules.TLV;
diff --git a/src/java/com/android/internal/telephony/uicc/UiccProfile.java b/src/java/com/android/internal/telephony/uicc/UiccProfile.java
index c52c14b..6f0b99b 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccProfile.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccProfile.java
@@ -38,7 +38,7 @@
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.telephony.CarrierConfigManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
diff --git a/src/java/com/android/internal/telephony/uicc/UiccSlot.java b/src/java/com/android/internal/telephony/uicc/UiccSlot.java
index 0c2c60b..491a2ff 100644
--- a/src/java/com/android/internal/telephony/uicc/UiccSlot.java
+++ b/src/java/com/android/internal/telephony/uicc/UiccSlot.java
@@ -27,7 +27,7 @@
import android.os.Message;
import android.os.PowerManager;
import android.os.UserHandle;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.view.WindowManager;
diff --git a/src/java/com/android/internal/telephony/uicc/UsimFileHandler.java b/src/java/com/android/internal/telephony/uicc/UsimFileHandler.java
index b120eb6..39bc1b1 100755
--- a/src/java/com/android/internal/telephony/uicc/UsimFileHandler.java
+++ b/src/java/com/android/internal/telephony/uicc/UsimFileHandler.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony.uicc;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.uicc.UiccCardApplication;
diff --git a/src/java/com/android/internal/telephony/uicc/VoiceMailConstants.java b/src/java/com/android/internal/telephony/uicc/VoiceMailConstants.java
index 792c7dc..8b8b2e3 100644
--- a/src/java/com/android/internal/telephony/uicc/VoiceMailConstants.java
+++ b/src/java/com/android/internal/telephony/uicc/VoiceMailConstants.java
@@ -18,7 +18,7 @@
import android.compat.annotation.UnsupportedAppUsage;
import android.os.Environment;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.util.Xml;
import com.android.internal.telephony.util.XmlUtils;
diff --git a/src/java/com/android/internal/telephony/uicc/euicc/EuiccCard.java b/src/java/com/android/internal/telephony/uicc/euicc/EuiccCard.java
index 12f2ead..5a82bfc 100644
--- a/src/java/com/android/internal/telephony/uicc/euicc/EuiccCard.java
+++ b/src/java/com/android/internal/telephony/uicc/euicc/EuiccCard.java
@@ -25,7 +25,7 @@
import android.os.RegistrantList;
import android.service.carrier.CarrierIdentifier;
import android.service.euicc.EuiccProfileInfo;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SubscriptionInfo;
import android.telephony.UiccAccessRule;
import android.telephony.euicc.EuiccCardManager;
diff --git a/src/java/com/android/internal/telephony/uicc/euicc/EuiccSpecVersion.java b/src/java/com/android/internal/telephony/uicc/euicc/EuiccSpecVersion.java
index b038716..ec784df 100644
--- a/src/java/com/android/internal/telephony/uicc/euicc/EuiccSpecVersion.java
+++ b/src/java/com/android/internal/telephony/uicc/euicc/EuiccSpecVersion.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony.uicc.euicc;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.uicc.asn1.Asn1Decoder;
import com.android.internal.telephony.uicc.asn1.Asn1Node;
diff --git a/src/java/com/android/internal/telephony/uicc/euicc/apdu/ApduSender.java b/src/java/com/android/internal/telephony/uicc/euicc/apdu/ApduSender.java
index 00b4945..7c07b41 100644
--- a/src/java/com/android/internal/telephony/uicc/euicc/apdu/ApduSender.java
+++ b/src/java/com/android/internal/telephony/uicc/euicc/apdu/ApduSender.java
@@ -20,7 +20,7 @@
import android.os.Handler;
import android.os.Looper;
import android.telephony.IccOpenLogicalChannelResponse;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandsInterface;
import com.android.internal.telephony.uicc.IccIoResult;
diff --git a/src/java/com/android/internal/telephony/uicc/euicc/apdu/CloseLogicalChannelInvocation.java b/src/java/com/android/internal/telephony/uicc/euicc/apdu/CloseLogicalChannelInvocation.java
index edd89d6..b7b1554 100644
--- a/src/java/com/android/internal/telephony/uicc/euicc/apdu/CloseLogicalChannelInvocation.java
+++ b/src/java/com/android/internal/telephony/uicc/euicc/apdu/CloseLogicalChannelInvocation.java
@@ -18,7 +18,7 @@
import android.os.AsyncResult;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.CommandsInterface;
diff --git a/src/java/com/android/internal/telephony/uicc/euicc/apdu/OpenLogicalChannelInvocation.java b/src/java/com/android/internal/telephony/uicc/euicc/apdu/OpenLogicalChannelInvocation.java
index 15b0c43..44b06ff 100644
--- a/src/java/com/android/internal/telephony/uicc/euicc/apdu/OpenLogicalChannelInvocation.java
+++ b/src/java/com/android/internal/telephony/uicc/euicc/apdu/OpenLogicalChannelInvocation.java
@@ -19,7 +19,7 @@
import android.os.AsyncResult;
import android.os.Message;
import android.telephony.IccOpenLogicalChannelResponse;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.CommandsInterface;
diff --git a/src/java/com/android/internal/telephony/uicc/euicc/apdu/TransmitApduLogicalChannelInvocation.java b/src/java/com/android/internal/telephony/uicc/euicc/apdu/TransmitApduLogicalChannelInvocation.java
index 296fe47..daf1877 100644
--- a/src/java/com/android/internal/telephony/uicc/euicc/apdu/TransmitApduLogicalChannelInvocation.java
+++ b/src/java/com/android/internal/telephony/uicc/euicc/apdu/TransmitApduLogicalChannelInvocation.java
@@ -18,7 +18,7 @@
import android.os.AsyncResult;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.CommandException;
import com.android.internal.telephony.CommandsInterface;
diff --git a/src/java/com/android/internal/telephony/uicc/euicc/async/AsyncResultCallback.java b/src/java/com/android/internal/telephony/uicc/euicc/async/AsyncResultCallback.java
index b28e7e7..58ab6bf 100644
--- a/src/java/com/android/internal/telephony/uicc/euicc/async/AsyncResultCallback.java
+++ b/src/java/com/android/internal/telephony/uicc/euicc/async/AsyncResultCallback.java
@@ -16,7 +16,7 @@
package com.android.internal.telephony.uicc.euicc.async;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
/**
* Class to deliver the returned value from an asynchronous call. Either {@link #onResult(Result)}
diff --git a/src/java/com/android/internal/telephony/util/LocaleUtils.java b/src/java/com/android/internal/telephony/util/LocaleUtils.java
index 755585b..81eae80 100644
--- a/src/java/com/android/internal/telephony/util/LocaleUtils.java
+++ b/src/java/com/android/internal/telephony/util/LocaleUtils.java
@@ -18,7 +18,7 @@
import android.content.Context;
import android.icu.util.ULocale;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.text.TextUtils;
import com.android.internal.telephony.MccTable;
diff --git a/telephony-resources/TelephonyResource.java b/telephony-resources/TelephonyResource.java
new file mode 100644
index 0000000..d048bb0
--- /dev/null
+++ b/telephony-resources/TelephonyResource.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2020 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.telephony.resources;
+
+/**
+ * A dummy class to force pick the R.class to apk
+ */
+final class TelephonyResource {
+ TelephonyResource() {
+ }
+}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CarrierAppUtilsTest.java b/tests/telephonytests/src/com/android/internal/telephony/CarrierAppUtilsTest.java
index e92298d..0bfc672 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/CarrierAppUtilsTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/CarrierAppUtilsTest.java
@@ -90,7 +90,9 @@
public void testDisableCarrierAppsUntilPrivileged_MissingApp() throws Exception {
Mockito.when(mPackageManager.getApplicationInfo("com.example.missing.app",
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(null);
ArraySet<String> systemCarrierAppsDisabledUntilUsed = new ArraySet<>();
systemCarrierAppsDisabledUntilUsed.add("com.example.missing.app");
@@ -113,7 +115,8 @@
ApplicationInfo appInfo = new ApplicationInfo();
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
mPermissionManager, mTelephonyManager, mContentResolver, USER_ID, CARRIER_APPS,
@@ -138,10 +141,15 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER);
+
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS);
@@ -162,10 +170,15 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
+
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS);
@@ -186,10 +199,14 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS);
@@ -211,11 +228,16 @@
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_UPDATED_SYSTEM_APP
| ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
+
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
@@ -239,11 +261,15 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, USER_ID))
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY, USER_ID))
.thenReturn(appInfo);
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
@@ -272,18 +298,23 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, USER_ID))
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY, USER_ID))
.thenReturn(appInfo);
ApplicationInfo associatedAppInfo = new ApplicationInfo();
associatedAppInfo.packageName = ASSOCIATED_APP;
associatedAppInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
- associatedAppInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
Mockito.when(mPackageManager.getApplicationInfo(ASSOCIATED_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, USER_ID))
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY, USER_ID))
.thenReturn(associatedAppInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS);
@@ -312,21 +343,26 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED;
+ Mockito.when(mPackageManager.getApplicationEnabledSetting(CARRIER_APP, USER_ID))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
ApplicationInfo associatedAppInfo = new ApplicationInfo();
associatedAppInfo.packageName = ASSOCIATED_APP;
associatedAppInfo.flags |=
ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_UPDATED_SYSTEM_APP;
- associatedAppInfo.enabledSetting =
- PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED;
+ Mockito.when(mPackageManager.getApplicationEnabledSetting(ASSOCIATED_APP, USER_ID))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED);
Mockito.when(mPackageManager.getApplicationInfo(ASSOCIATED_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, USER_ID))
- .thenReturn(associatedAppInfo);
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY, USER_ID))
+ .thenReturn(null);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
@@ -354,19 +390,24 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED;
+ Mockito.when(mPackageManager.getApplicationEnabledSetting(CARRIER_APP, USER_ID))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
ApplicationInfo associatedAppInfo = new ApplicationInfo();
associatedAppInfo.packageName = ASSOCIATED_APP;
associatedAppInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
- associatedAppInfo.enabledSetting =
- PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED;
+ Mockito.when(mPackageManager.getApplicationEnabledSetting(ASSOCIATED_APP, USER_ID))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED);
Mockito.when(mPackageManager.getApplicationInfo(ASSOCIATED_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, USER_ID))
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY, USER_ID))
.thenReturn(associatedAppInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS);
@@ -391,10 +432,14 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS);
@@ -417,10 +462,14 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
mPermissionManager, null /* telephonyManager */, mContentResolver, USER_ID,
@@ -440,10 +489,14 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS);
@@ -465,10 +518,14 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
mPermissionManager, null /* telephonyManager */, mContentResolver, USER_ID,
@@ -488,10 +545,14 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS);
@@ -513,10 +574,14 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
mPermissionManager, null /* telephonyManager */, mContentResolver, USER_ID,
@@ -537,10 +602,14 @@
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_UPDATED_SYSTEM_APP
| ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS);
@@ -563,14 +632,18 @@
appInfo.packageName = CARRIER_APP;
appInfo.flags |= (ApplicationInfo.FLAG_SYSTEM
| ApplicationInfo.FLAG_UPDATED_SYSTEM_APP | ApplicationInfo.FLAG_INSTALLED);
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
- mPermissionManager, null /* telephonyManager */, mContentResolver, USER_ID,
- CARRIER_APPS, ASSOCIATED_APPS);
+ mPermissionManager, null /* telephonyManager */, mContentResolver,
+ USER_ID, CARRIER_APPS, ASSOCIATED_APPS);
Mockito.verify(mPackageManager).setSystemAppHiddenUntilInstalled(
CARRIER_APP, true);
Mockito.verify(mPackageManager, Mockito.never()).setSystemAppInstallState(
@@ -590,18 +663,24 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+ Mockito.when(mPackageManager.getApplicationEnabledSetting(CARRIER_APP, USER_ID))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
ApplicationInfo associatedAppInfo = new ApplicationInfo();
associatedAppInfo.packageName = ASSOCIATED_APP;
associatedAppInfo.flags |= ApplicationInfo.FLAG_SYSTEM;
- associatedAppInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
+ Mockito.when(mPackageManager.getApplicationEnabledSetting(ASSOCIATED_APP, USER_ID))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_ENABLED);
Mockito.when(mPackageManager.getApplicationInfo(ASSOCIATED_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, USER_ID))
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY, USER_ID))
.thenReturn(associatedAppInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS);
@@ -631,18 +710,24 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+ Mockito.when(mPackageManager.getApplicationEnabledSetting(CARRIER_APP, USER_ID))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
ApplicationInfo associatedAppInfo = new ApplicationInfo();
associatedAppInfo.packageName = ASSOCIATED_APP;
associatedAppInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- associatedAppInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+ Mockito.when(mPackageManager.getApplicationEnabledSetting(ASSOCIATED_APP, USER_ID))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
Mockito.when(mPackageManager.getApplicationInfo(ASSOCIATED_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, USER_ID))
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY, USER_ID))
.thenReturn(associatedAppInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS);
@@ -674,10 +759,14 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
ApplicationInfo associatedAppInfo = new ApplicationInfo();
associatedAppInfo.packageName = ASSOCIATED_APP;
@@ -685,7 +774,9 @@
associatedAppInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
Mockito.when(mPackageManager.getApplicationInfo(ASSOCIATED_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS, USER_ID))
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY, USER_ID))
.thenReturn(associatedAppInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS);
@@ -711,14 +802,18 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DEFAULT);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
- mPermissionManager, null /* telephonyManager */, mContentResolver, USER_ID,
- CARRIER_APPS, ASSOCIATED_APPS);
+ mPermissionManager, null /* telephonyManager */, mContentResolver,
+ USER_ID, CARRIER_APPS, ASSOCIATED_APPS);
Mockito.verify(mPackageManager).setSystemAppHiddenUntilInstalled(
CARRIER_APP, true);
Mockito.verify(mPackageManager).setSystemAppInstallState(
@@ -737,10 +832,14 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
Mockito.when(mTelephonyManager.checkCarrierPrivilegesForPackageAnyPhone(CARRIER_APP))
.thenReturn(TelephonyManager.CARRIER_PRIVILEGE_STATUS_NO_ACCESS);
@@ -765,14 +864,18 @@
ApplicationInfo appInfo = new ApplicationInfo();
appInfo.packageName = CARRIER_APP;
appInfo.flags |= ApplicationInfo.FLAG_SYSTEM | ApplicationInfo.FLAG_INSTALLED;
- appInfo.enabledSetting = PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED;
+ Mockito.when(mPackageManager
+ .getApplicationEnabledSetting(Mockito.anyString(), Mockito.anyInt()))
+ .thenReturn(PackageManager.COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED);
Mockito.when(mPackageManager.getApplicationInfo(CARRIER_APP,
PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
- | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS,
+ | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS
+ | PackageManager.MATCH_SYSTEM_ONLY
+ | PackageManager.MATCH_FACTORY_ONLY,
USER_ID)).thenReturn(appInfo);
CarrierAppUtils.disableCarrierAppsUntilPrivileged(CALLING_PACKAGE, mPackageManager,
- mPermissionManager, null /* telephonyManager */, mContentResolver, USER_ID,
- CARRIER_APPS, ASSOCIATED_APPS);
+ mPermissionManager, null /* telephonyManager */, mContentResolver,
+ USER_ID, CARRIER_APPS, ASSOCIATED_APPS);
Mockito.verify(mPackageManager).setSystemAppHiddenUntilInstalled(
CARRIER_APP, true);
Mockito.verify(mPackageManager, Mockito.never()).setSystemAppInstallState(
diff --git a/tests/telephonytests/src/com/android/internal/telephony/CarrierSignalAgentTest.java b/tests/telephonytests/src/com/android/internal/telephony/CarrierSignalAgentTest.java
index 8246094..9030124 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/CarrierSignalAgentTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/CarrierSignalAgentTest.java
@@ -15,9 +15,8 @@
*/
package com.android.internal.telephony;
-import static com.android.internal.telephony.TelephonyIntents.ACTION_CARRIER_SIGNAL_PCO_VALUE;
-import static com.android.internal.telephony.TelephonyIntents
- .ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED;
+import static android.telephony.TelephonyManager.ACTION_CARRIER_SIGNAL_PCO_VALUE;
+import static android.telephony.TelephonyManager.ACTION_CARRIER_SIGNAL_REQUEST_NETWORK_FAILED;
import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.anyLong;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java b/tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java
index 7aa2851..4b19c72 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ContextFixture.java
@@ -16,6 +16,7 @@
package com.android.internal.telephony;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.nullable;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
@@ -652,6 +653,12 @@
invocation -> mSystemFeatures.contains((String) invocation.getArgument(0)))
.when(mPackageManager).hasSystemFeature(any());
+ try {
+ doReturn(mResources).when(mPackageManager).getResourcesForApplication(anyString());
+ } catch (NameNotFoundException ex) {
+ Log.d(TAG, "NameNotFoundException: " + ex);
+ }
+
doReturn(mBundle).when(mCarrierConfigManager).getConfigForSubId(anyInt());
//doReturn(mBundle).when(mCarrierConfigManager).getConfig(anyInt());
doReturn(mBundle).when(mCarrierConfigManager).getConfig();
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ModelInterpreter.java b/tests/telephonytests/src/com/android/internal/telephony/ModelInterpreter.java
index 7499a7a..1cbfd17 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ModelInterpreter.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ModelInterpreter.java
@@ -19,7 +19,7 @@
import android.compat.annotation.UnsupportedAppUsage;
import android.os.HandlerThread;
import android.os.Looper;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.io.IOException;
import java.io.InputStream;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/PhoneSwitcherTest.java b/tests/telephonytests/src/com/android/internal/telephony/PhoneSwitcherTest.java
index 8068ca9..50fe0b6 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/PhoneSwitcherTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/PhoneSwitcherTest.java
@@ -47,6 +47,7 @@
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkCapabilities;
+import android.net.NetworkProvider;
import android.net.NetworkRequest;
import android.net.StringNetworkSpecifier;
import android.os.AsyncResult;
@@ -111,7 +112,7 @@
private SubscriptionManager.OnSubscriptionsChangedListener mSubChangedListener;
private ConnectivityManager mConnectivityManager;
// The messenger of PhoneSwitcher used to receive network requests.
- private Messenger mNetworkFactoryMessenger = null;
+ private Messenger mNetworkProviderMessenger = null;
private int mDefaultDataSub = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
private int[][] mSlotIndexToSubId;
private boolean[] mDataAllowed;
@@ -342,7 +343,7 @@
}
/**
- * Verify we don't send spurious DATA_ALLOWED calls when another NetworkFactory
+ * Verify we don't send spurious DATA_ALLOWED calls when another NetworkProvider
* wins (ie, switch to wifi).
*/
@Test
@@ -1094,7 +1095,7 @@
}
/**
- * Capture mNetworkFactoryMessenger so that testing can request or release
+ * Capture mNetworkProviderMessenger so that testing can request or release
* network requests on PhoneSwitcher.
*/
private void initializeConnManagerMock() {
@@ -1102,13 +1103,14 @@
mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
doAnswer(invocation -> {
- mNetworkFactoryMessenger = invocation.getArgument(0);
+ mNetworkProviderMessenger =
+ ((NetworkProvider) invocation.getArgument(0)).getMessenger();
return null;
- }).when(mConnectivityManager).registerNetworkFactory(any(), any());
+ }).when(mConnectivityManager).registerNetworkProvider(any());
}
/**
- * Capture mNetworkFactoryMessenger so that testing can request or release
+ * Capture mNetworkProviderMessenger so that testing can request or release
* network requests on PhoneSwitcher.
*/
private void initializeSubControllerMock() {
@@ -1169,10 +1171,10 @@
0, NetworkRequest.Type.REQUEST);
Message message = Message.obtain();
- message.what = android.net.NetworkFactory.CMD_REQUEST_NETWORK;
+ message.what = android.net.NetworkProvider.CMD_REQUEST_NETWORK;
message.arg1 = score;
message.obj = networkRequest;
- mNetworkFactoryMessenger.send(message);
+ mNetworkProviderMessenger.send(message);
processAllMessages();
return networkRequest;
@@ -1194,10 +1196,10 @@
1, NetworkRequest.Type.REQUEST);
Message message = Message.obtain();
- message.what = android.net.NetworkFactory.CMD_REQUEST_NETWORK;
+ message.what = android.net.NetworkProvider.CMD_REQUEST_NETWORK;
message.arg1 = 50; // Score
message.obj = networkRequest;
- mNetworkFactoryMessenger.send(message);
+ mNetworkProviderMessenger.send(message);
processAllMessages();
return networkRequest;
@@ -1208,9 +1210,9 @@
*/
private void releaseNetworkRequest(NetworkRequest networkRequest) throws Exception {
Message message = Message.obtain();
- message.what = android.net.NetworkFactory.CMD_CANCEL_REQUEST;
+ message.what = android.net.NetworkProvider.CMD_CANCEL_REQUEST;
message.obj = networkRequest;
- mNetworkFactoryMessenger.send(message);
+ mNetworkProviderMessenger.send(message);
processAllMessages();
}
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/RILTest.java b/tests/telephonytests/src/com/android/internal/telephony/RILTest.java
index 4fac311..d9cef03 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/RILTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/RILTest.java
@@ -178,6 +178,8 @@
@Mock
private ConnectivityManager mConnectionManager;
@Mock
+ private TelephonyManager mTelephonyManager;
+ @Mock
private IRadio mRadioProxy;
@Mock
private IOemHook mOemHookProxy;
@@ -271,6 +273,9 @@
.isNetworkSupported(ConnectivityManager.TYPE_MOBILE);
doReturn(mConnectionManager).when(context)
.getSystemService(Context.CONNECTIVITY_SERVICE);
+ doReturn(mTelephonyManager).when(context)
+ .getSystemService(Context.TELEPHONY_SERVICE);
+ doReturn(true).when(mTelephonyManager).isDataCapable();
PowerManager powerManager = new PowerManager(context, mock(IPowerManager.class),
new Handler(Looper.myLooper()));
doReturn(powerManager).when(context).getSystemService(Context.POWER_SERVICE);
@@ -1688,7 +1693,7 @@
ws = new WorkSource();
ws.createWorkChain().addNode(100, "foo").addNode(200, "bar");
request = RILRequest.obtain(0, null, ws);
- assertEquals("100:foo", request.getWorkSourceClientId());
+ assertEquals("WorkChain{(100, foo), (200, bar)}", request.getWorkSourceClientId());
}
@Test
diff --git a/tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java b/tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java
index e6f5f63..9269a2f 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java
@@ -43,7 +43,7 @@
import android.telephony.ImsiEncryptionInfo;
import android.telephony.NetworkRegistrationInfo;
import android.telephony.NetworkScanRequest;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.ServiceState;
import android.telephony.SignalStrength;
import android.telephony.SignalThresholdInfo;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/SimulatedGsmCallState.java b/tests/telephonytests/src/com/android/internal/telephony/SimulatedGsmCallState.java
index 6d4f385..b74d5af 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/SimulatedGsmCallState.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/SimulatedGsmCallState.java
@@ -21,7 +21,7 @@
import android.os.Looper;
import android.os.Message;
import android.telephony.PhoneNumberUtils;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.ATParseEx;
import com.android.internal.telephony.DriverCall;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/SmsMessageBodyTest.java b/tests/telephonytests/src/com/android/internal/telephony/SmsMessageBodyTest.java
index 32dfef8..9a9c6d5 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/SmsMessageBodyTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/SmsMessageBodyTest.java
@@ -18,7 +18,7 @@
import android.telephony.SmsMessage;
import android.telephony.TelephonyManager;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.test.AndroidTestCase;
import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.MediumTest;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
index 8fab119..b861a26 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java
@@ -383,6 +383,7 @@
protected void setUp(String tag) throws Exception {
TAG = tag;
MockitoAnnotations.initMocks(this);
+ TelephonyManager.disableServiceHandleCaching();
mPhones = new Phone[] {mPhone};
mImsCallProfile = new ImsCallProfile();
@@ -645,6 +646,7 @@
sharedPreferences.edit().clear().commit();
restoreInstances();
+ TelephonyManager.enableServiceHandleCaching();
}
protected static void logd(String s) {
diff --git a/tests/telephonytests/src/com/android/internal/telephony/cdma/CdmaSmsCbTest.java b/tests/telephonytests/src/com/android/internal/telephony/cdma/CdmaSmsCbTest.java
index 3cbc501..9ac29e5 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/cdma/CdmaSmsCbTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/cdma/CdmaSmsCbTest.java
@@ -17,7 +17,7 @@
package com.android.internal.telephony.cdma;
import android.hardware.radio.V1_0.CdmaSmsMessage;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.SmsCbCmasInfo;
import android.telephony.SmsCbMessage;
import android.telephony.cdma.CdmaSmsCbProgramData;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/TelephonyNetworkFactoryTest.java b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/TelephonyNetworkFactoryTest.java
index ad6e7ec..e9d360c 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/dataconnection/TelephonyNetworkFactoryTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/dataconnection/TelephonyNetworkFactoryTest.java
@@ -39,7 +39,7 @@
import android.os.Handler;
import android.os.Looper;
import android.telephony.AccessNetworkConstants;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import android.telephony.data.ApnSetting;
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner;
@@ -174,7 +174,7 @@
replaceInstance(PhoneSwitcher.class, "sPhoneSwitcher", null, mPhoneSwitcher);
mTelephonyNetworkFactoryUT = new TelephonyNetworkFactory(Looper.myLooper(), mPhone);
- verify(mConnectivityManager).registerNetworkFactory(any(), anyString());
+ verify(mConnectivityManager).registerNetworkProvider(any());
verify(mPhoneSwitcher).registerForActivePhoneSwitch(any(), anyInt(), any());
}
diff --git a/tests/telephonytests/src/com/android/internal/telephony/gsm/GSMTestHandler.java.broken b/tests/telephonytests/src/com/android/internal/telephony/gsm/GSMTestHandler.java.broken
index aa94e0e..16861fa 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/gsm/GSMTestHandler.java.broken
+++ b/tests/telephonytests/src/com/android/internal/telephony/gsm/GSMTestHandler.java.broken
@@ -22,7 +22,7 @@
import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.gsm.GSMPhone;
import com.android.internal.telephony.test.SimulatedCommands;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java b/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java
index b99749c..90610c7 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/gsm/GsmInboundSmsHandlerTest.java
@@ -42,7 +42,6 @@
import android.net.Uri;
import android.os.AsyncResult;
import android.os.Bundle;
-import android.os.RemoteException;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Telephony;
@@ -76,6 +75,8 @@
import org.mockito.Mock;
import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
@@ -198,11 +199,9 @@
UserManager userManager = (UserManager)mContext.getSystemService(Context.USER_SERVICE);
doReturn(true).when(userManager).isUserUnlocked();
- try {
- doReturn(new int[]{UserHandle.USER_SYSTEM}).when(mIActivityManager).getRunningUserIds();
- } catch (RemoteException re) {
- fail("Unexpected RemoteException: " + re.getStackTrace());
- }
+ List<UserHandle> userHandles = new ArrayList();
+ userHandles.add(UserHandle.SYSTEM);
+ doReturn(userHandles).when(userManager).getUserHandles(anyBoolean());
mSmsMessage.mWrappedSmsMessage = mGsmSmsMessage;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/gsm/UsimDataDownloadCommands.java.broken b/tests/telephonytests/src/com/android/internal/telephony/gsm/UsimDataDownloadCommands.java.broken
index c599ad0..a9d869c 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/gsm/UsimDataDownloadCommands.java.broken
+++ b/tests/telephonytests/src/com/android/internal/telephony/gsm/UsimDataDownloadCommands.java.broken
@@ -20,7 +20,7 @@
import android.os.AsyncResult;
import android.os.Message;
import android.os.SystemClock;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import com.android.internal.telephony.BaseCommands;
import com.android.internal.telephony.UUSInfo;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/gsm/UsimDataDownloadTest.java.broken b/tests/telephonytests/src/com/android/internal/telephony/gsm/UsimDataDownloadTest.java.broken
index f32e4bd..9fbb86c 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/gsm/UsimDataDownloadTest.java.broken
+++ b/tests/telephonytests/src/com/android/internal/telephony/gsm/UsimDataDownloadTest.java.broken
@@ -18,7 +18,7 @@
import android.os.HandlerThread;
import android.test.AndroidTestCase;
-import android.telephony.Rlog;
+import com.android.telephony.Rlog;
import java.nio.charset.Charset;
diff --git a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsManagerTest.java b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsManagerTest.java
index 84c9cb3..f09140e 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/ims/ImsManagerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/ims/ImsManagerTest.java
@@ -134,6 +134,8 @@
mBundle.putBoolean(
CarrierConfigManager.KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL,
WFC_NOT_USE_HOME_MODE_FOR_ROAMING_VAL);
+ mBundle.putBoolean(CarrierConfigManager.KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, true);
+
}
@Test @SmallTest
@@ -250,6 +252,10 @@
assertEquals(true, imsManager.isVolteProvisionedOnDevice());
verify(mImsConfigImplBaseMock, times(1)).getConfigInt(
eq(ImsConfig.ConfigConstants.VLT_SETTING_ENABLED));
+
+ assertEquals(true, imsManager.isEabProvisionedOnDevice());
+ verify(mImsConfigImplBaseMock, times(1)).getConfigInt(
+ eq(ImsConfig.ConfigConstants.EAB_SETTING_ENABLED));
}
@Test
@@ -274,7 +280,30 @@
eq(0));
verify(mImsConfigImplBaseMock, times(1)).getConfigInt(
eq(ImsConfig.ConfigConstants.VOICE_OVER_WIFI_SETTING_ENABLED));
+ }
+ @Test
+ public void testEabSetProvisionedValues() throws Exception {
+ ImsManager imsManager = getImsManagerAndInitProvisionedValues();
+
+ assertEquals(true, imsManager.isEabProvisionedOnDevice());
+ verify(mImsConfigImplBaseMock, times(1)).getConfigInt(
+ eq(ImsConfig.ConfigConstants.EAB_SETTING_ENABLED));
+
+ imsManager.getConfigInterface().setProvisionedValue(
+ ImsConfig.ConfigConstants.EAB_SETTING_ENABLED,
+ ImsConfig.FeatureValueConstants.OFF);
+
+ assertEquals(0, (int) mProvisionedIntVals.get(
+ ImsConfig.ConfigConstants.EAB_SETTING_ENABLED));
+
+ assertEquals(false, imsManager.isEabProvisionedOnDevice());
+
+ verify(mImsConfigImplBaseMock, times(1)).setConfig(
+ eq(ImsConfig.ConfigConstants.EAB_SETTING_ENABLED),
+ eq(0));
+ verify(mImsConfigImplBaseMock, times(1)).getConfigInt(
+ eq(ImsConfig.ConfigConstants.EAB_SETTING_ENABLED));
}
/**
diff --git a/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneCallTrackerTest.java b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneCallTrackerTest.java
index 5acba72..d257e45 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneCallTrackerTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneCallTrackerTest.java
@@ -51,7 +51,6 @@
import android.telephony.ims.ImsMmTelManager;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.ImsStreamMediaProfile;
-import android.telephony.ims.RegistrationManager;
import android.telephony.ims.feature.ImsFeature;
import android.telephony.ims.feature.MmTelFeature;
import android.telephony.ims.stub.ImsRegistrationImplBase;
@@ -88,7 +87,6 @@
public class ImsPhoneCallTrackerTest extends TelephonyTest {
private ImsPhoneCallTracker mCTUT;
private MmTelFeature.Listener mMmTelListener;
- private RegistrationManager.RegistrationCallback mRegistrationCallback;
private ImsMmTelManager.CapabilityCallback mCapabilityCallback;
private ImsCall.Listener mImsCallListener;
private ImsCall mImsCall;
@@ -197,12 +195,6 @@
(ImsCall.Listener) any());
doAnswer(invocation -> {
- mRegistrationCallback = invocation.getArgument(0);
- return mRegistrationCallback;
- }).when(mImsManager).addRegistrationCallback(
- any(RegistrationManager.RegistrationCallback.class));
-
- doAnswer(invocation -> {
mCapabilityCallback = (ImsMmTelManager.CapabilityCallback) invocation.getArguments()[0];
return mCapabilityCallback;
@@ -240,39 +232,6 @@
@Test
@SmallTest
- public void testImsRegistered() {
- // when IMS is registered
- mRegistrationCallback.onRegistered(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN);
- // then service state should be IN_SERVICE and ImsPhone state set to registered
- verify(mImsPhone).setServiceState(eq(ServiceState.STATE_IN_SERVICE));
- verify(mImsPhone).setImsRegistrationState(eq(
- RegistrationManager.REGISTRATION_STATE_REGISTERED));
- }
-
- @Test
- @SmallTest
- public void testImsRegistering() {
- // when IMS is registering
- mRegistrationCallback.onRegistering(ImsRegistrationImplBase.REGISTRATION_TECH_LTE);
- // then service state should be OUT_OF_SERVICE and ImsPhone state set to not registered
- verify(mImsPhone).setServiceState(eq(ServiceState.STATE_OUT_OF_SERVICE));
- verify(mImsPhone).setImsRegistrationState(eq(
- RegistrationManager.REGISTRATION_STATE_REGISTERING));
- }
-
- @Test
- @SmallTest
- public void testImsDeregistered() {
- // when IMS is deregistered
- mRegistrationCallback.onUnregistered(new ImsReasonInfo());
- // then service state should be OUT_OF_SERVICE and ImsPhone state set to not registered
- verify(mImsPhone).setServiceState(eq(ServiceState.STATE_OUT_OF_SERVICE));
- verify(mImsPhone).setImsRegistrationState(eq(
- RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED));
- }
-
- @Test
- @SmallTest
public void testVowifiDisabledOnLte() {
// LTE is registered.
doReturn(ImsRegistrationImplBase.REGISTRATION_TECH_LTE).when(
diff --git a/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java
index a4412c3..60961e7 100644
--- a/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java
+++ b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsPhoneTest.java
@@ -57,6 +57,7 @@
import android.telephony.ims.ImsCallProfile;
import android.telephony.ims.ImsReasonInfo;
import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.aidl.IImsRegistrationCallback;
import android.telephony.ims.stub.ImsRegistrationImplBase;
import android.test.suitebuilder.annotation.SmallTest;
import android.testing.AndroidTestingRunner;
@@ -667,6 +668,27 @@
@Test
@SmallTest
+ public void testRegisteringImsRcsRegistrationCallback() throws Exception {
+ RcsFeatureManager rcsFeatureManager = mock(RcsFeatureManager.class);
+
+ // When initialized RcsFeatureManager and
+ mImsPhoneUT.initRcsFeatureManager();
+ assertNotNull(mImsPhoneUT.mRcsManagerConnector);
+
+ // When connection is ready, the register IMS registration callback should be called.
+ mImsPhoneUT.mRcsFeatureConnectorListener.connectionReady(rcsFeatureManager);
+ verify(rcsFeatureManager).registerImsRegistrationCallback(
+ any(IImsRegistrationCallback.class));
+
+ // When connection is unavailable, the IMS registration state should be not registered.
+ mImsPhoneUT.mRcsFeatureConnectorListener.connectionUnavailable();
+ Consumer<Integer> registrationState = mock(Consumer.class);
+ mImsPhoneUT.getImsRcsRegistrationState(registrationState);
+ verify(registrationState).accept(RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED);
+ }
+
+ @Test
+ @SmallTest
public void testImsRegistered() throws Exception {
mImsPhoneUT.setServiceState(ServiceState.STATE_IN_SERVICE);
mImsPhoneUT.setImsRegistrationState(RegistrationManager.REGISTRATION_STATE_REGISTERED);
diff --git a/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelperTest.java b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelperTest.java
new file mode 100644
index 0000000..4881d54
--- /dev/null
+++ b/tests/telephonytests/src/com/android/internal/telephony/imsphone/ImsRegistrationCallbackHelperTest.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2020 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.internal.telephony.imsphone;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.anyInt;
+import static org.mockito.Mockito.verify;
+
+import android.net.Uri;
+import android.telephony.AccessNetworkConstants.AccessNetworkType;
+import android.telephony.ims.ImsReasonInfo;
+import android.telephony.ims.RegistrationManager;
+import android.telephony.ims.RegistrationManager.RegistrationCallback;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.android.internal.telephony.TelephonyTest;
+import com.android.internal.telephony.imsphone.ImsRegistrationCallbackHelper.ImsRegistrationUpdate;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+
+public class ImsRegistrationCallbackHelperTest extends TelephonyTest {
+
+ @Mock
+ private ImsRegistrationUpdate mMockRegistrationUpdate;
+ private ImsRegistrationCallbackHelper mRegistrationCallbackHelper;
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp(getClass().getSimpleName());
+
+ mRegistrationCallbackHelper = new ImsRegistrationCallbackHelper(mMockRegistrationUpdate);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ super.tearDown();
+ mRegistrationCallbackHelper = null;
+ }
+
+ @Test
+ @SmallTest
+ public void testRegistrationStateReset() {
+ // When reset is called
+ mRegistrationCallbackHelper.reset();
+
+ // The registration state should be equal to REGISTRATION_STATE_NOT_REGISTERED
+ assertEquals(RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED,
+ mRegistrationCallbackHelper.getImsRegistrationState());
+ }
+
+ @Test
+ @SmallTest
+ public void testRegistrationStateUpdate() {
+ // Verify Registration state can be update to NOT registered correctly.
+ int state = RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED;
+ mRegistrationCallbackHelper.updateRegistrationState(state);
+
+ assertEquals(RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED,
+ mRegistrationCallbackHelper.getImsRegistrationState());
+
+ // Verify Registration state can be update to registering correctly.
+ state = RegistrationManager.REGISTRATION_STATE_REGISTERING;
+ mRegistrationCallbackHelper.updateRegistrationState(state);
+
+ assertEquals(RegistrationManager.REGISTRATION_STATE_REGISTERING,
+ mRegistrationCallbackHelper.getImsRegistrationState());
+
+ // Verify Registration state can be update to registered correctly.
+ state = RegistrationManager.REGISTRATION_STATE_REGISTERED;
+ mRegistrationCallbackHelper.updateRegistrationState(state);
+
+ assertEquals(RegistrationManager.REGISTRATION_STATE_REGISTERED,
+ mRegistrationCallbackHelper.getImsRegistrationState());
+ }
+
+ @Test
+ @SmallTest
+ public void testIsImsRegistered() {
+ // When the registration state is not registered
+ mRegistrationCallbackHelper.updateRegistrationState(
+ RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED);
+
+ // The result of isImsRegistered should be false
+ assertFalse(mRegistrationCallbackHelper.isImsRegistered());
+
+ // When the registration state is not registered
+ mRegistrationCallbackHelper.updateRegistrationState(
+ RegistrationManager.REGISTRATION_STATE_REGISTERED);
+
+ // The result of isImsRegistered should be true
+ assertTrue(mRegistrationCallbackHelper.isImsRegistered());
+ }
+
+ @Test
+ @SmallTest
+ public void testImsOnRegistered() {
+ // Verify the RegistrationCallback should not be null
+ RegistrationCallback callback = mRegistrationCallbackHelper.getCallback();
+ assertNotNull(callback);
+
+ // When onRegistered is called, the registration state should be
+ // REGISTRATION_STATE_REGISTERED
+ callback.onRegistered(AccessNetworkType.IWLAN);
+
+ assertEquals(RegistrationManager.REGISTRATION_STATE_REGISTERED,
+ mRegistrationCallbackHelper.getImsRegistrationState());
+ verify(mMockRegistrationUpdate).handleImsRegistered(anyInt());
+ }
+
+ @Test
+ @SmallTest
+ public void testImsOnRegistering() {
+ // Verify the RegistrationCallback should not be null
+ RegistrationCallback callback = mRegistrationCallbackHelper.getCallback();
+ assertNotNull(callback);
+
+ // When onRegistering is called, the registration state should be
+ // REGISTRATION_STATE_REGISTERING
+ callback.onRegistering(AccessNetworkType.IWLAN);
+ // The registration state should be REGISTRATION_STATE_REGISTERING
+ assertEquals(RegistrationManager.REGISTRATION_STATE_REGISTERING,
+ mRegistrationCallbackHelper.getImsRegistrationState());
+ verify(mMockRegistrationUpdate).handleImsRegistering(anyInt());
+ }
+
+ @Test
+ @SmallTest
+ public void testImsUnRegistered() {
+ // Verify the RegistrationCallback should not be null
+ RegistrationCallback callback = mRegistrationCallbackHelper.getCallback();
+ assertNotNull(callback);
+
+ // When onUnregistered is called, the registration state should be
+ // REGISTRATION_STATE_NOT_REGISTERED
+ ImsReasonInfo reasonInfo = new ImsReasonInfo(ImsReasonInfo.CODE_REGISTRATION_ERROR, 0);
+ callback.onUnregistered(reasonInfo);
+ // The registration state should be REGISTRATION_STATE_NOT_REGISTERED
+ assertEquals(RegistrationManager.REGISTRATION_STATE_NOT_REGISTERED,
+ mRegistrationCallbackHelper.getImsRegistrationState());
+ verify(mMockRegistrationUpdate).handleImsUnregistered(reasonInfo);
+ }
+
+ @Test
+ @SmallTest
+ public void testSubscriberAssociatedUriChanged() {
+ // Verify the RegistrationCallback should not be null
+ RegistrationCallback callback = mRegistrationCallbackHelper.getCallback();
+ assertNotNull(callback);
+
+ // When onSubscriberAssociatedUriChanged is called
+ Uri[] uris = new Uri[0];
+ callback.onSubscriberAssociatedUriChanged(uris);
+ // The handleImsSubscriberAssociatedUriChanged should be called
+ verify(mMockRegistrationUpdate).handleImsSubscriberAssociatedUriChanged(uris);
+ }
+}