Snap for 7486544 from 22f6857a6a
to sc-release
Change-Id: I398fbad29a0dc99a5f9264a7c3350e191289f6f4
This commit is contained in:
@@ -21,5 +21,5 @@
|
|||||||
android:viewportHeight="24">
|
android:viewportHeight="24">
|
||||||
<path
|
<path
|
||||||
android:pathData="M6,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,20c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM6,20c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM6,14c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,14c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM16,6c0,1.1 0.9,2 2,2s2,-0.9 2,-2 -0.9,-2 -2,-2 -2,0.9 -2,2zM12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM18,14c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM18,20c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2z"
|
android:pathData="M6,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,20c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM6,20c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM6,14c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,14c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM16,6c0,1.1 0.9,2 2,2s2,-0.9 2,-2 -0.9,-2 -2,-2 -2,0.9 -2,2zM12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM18,14c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM18,20c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2z"
|
||||||
android:fillColor="?attr/sudListItemIconColor"/>
|
android:fillColor="?android:attr/colorAccent"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
@@ -8204,7 +8204,7 @@
|
|||||||
<string name="keywords_wifi_calling">wifi, wi-fi, call, calling</string>
|
<string name="keywords_wifi_calling">wifi, wi-fi, call, calling</string>
|
||||||
<string name="keywords_display">screen, touchscreen</string>
|
<string name="keywords_display">screen, touchscreen</string>
|
||||||
<string name="keywords_display_brightness_level">dim screen, touchscreen, battery, bright</string>
|
<string name="keywords_display_brightness_level">dim screen, touchscreen, battery, bright</string>
|
||||||
<string name="keywords_display_night_display">dim screen, night, tint, night shift, brightness, screen color, colour, color, light sensitivity, photophobia, make darker, darken, dark mode, migraine</string>
|
<string name="keywords_display_night_display">dim screen, night, tint, night shift, brightness, screen color, colour, color</string>
|
||||||
<string name="keywords_display_wallpaper">background, personalize, customize display</string>
|
<string name="keywords_display_wallpaper">background, personalize, customize display</string>
|
||||||
<string name="keywords_display_font_size">text size</string>
|
<string name="keywords_display_font_size">text size</string>
|
||||||
<!-- Search keyword for "Cast" settings [CHAR_LIMIT=NONE]-->
|
<!-- Search keyword for "Cast" settings [CHAR_LIMIT=NONE]-->
|
||||||
@@ -8252,7 +8252,7 @@
|
|||||||
<string name="keywords_model_and_hardware">serial number, hardware version</string>
|
<string name="keywords_model_and_hardware">serial number, hardware version</string>
|
||||||
<string name="keywords_android_version">android security patch level, baseband version, kernel version</string>
|
<string name="keywords_android_version">android security patch level, baseband version, kernel version</string>
|
||||||
<!-- Search keywords for dark mode settings [CHAR LIMIT=NONE] -->
|
<!-- Search keywords for dark mode settings [CHAR LIMIT=NONE] -->
|
||||||
<string name="keywords_dark_ui_mode">theme, light, dark, mode</string>
|
<string name="keywords_dark_ui_mode">theme, light, dark, mode, light sensitivity, photophobia, make darker, darken, dark mode, migraine</string>
|
||||||
|
|
||||||
<!-- Search keyword for Device Theme Settings [CHAR LIMIT=NONE] -->
|
<!-- Search keyword for Device Theme Settings [CHAR LIMIT=NONE] -->
|
||||||
<string name="keywords_systemui_theme">dark theme</string>
|
<string name="keywords_systemui_theme">dark theme</string>
|
||||||
@@ -12353,6 +12353,15 @@
|
|||||||
<!-- Title for preference showing the name of the device. [CHAR LIMIT=60]-->
|
<!-- Title for preference showing the name of the device. [CHAR LIMIT=60]-->
|
||||||
<string name="my_device_info_device_name_preference_title">Device name</string>
|
<string name="my_device_info_device_name_preference_title">Device name</string>
|
||||||
|
|
||||||
|
<!-- Title for preference category showing the name of basic info. [CHAR LIMIT=60]-->
|
||||||
|
<string name="my_device_info_basic_info_category_title">Basic info</string>
|
||||||
|
<!-- Title for preference category showing the name of legal & regulatory. [CHAR LIMIT=60]-->
|
||||||
|
<string name="my_device_info_legal_category_title">Legal & regulatory</string>
|
||||||
|
<!-- Title for preference category showing the name of device details. [CHAR LIMIT=60]-->
|
||||||
|
<string name="my_device_info_device_details_category_title">Device details</string>
|
||||||
|
<!-- Title for preference category showing the name of device identifiers. [CHAR LIMIT=60]-->
|
||||||
|
<string name="my_device_info_device_identifiers_category_title">Device identifiers</string>
|
||||||
|
|
||||||
<!-- Title for Wifi Access settings [CHAR LIMIT=35] -->
|
<!-- Title for Wifi Access settings [CHAR LIMIT=35] -->
|
||||||
<string name="change_wifi_state_title">Wi-Fi control</string>
|
<string name="change_wifi_state_title">Wi-Fi control</string>
|
||||||
|
|
||||||
|
@@ -28,173 +28,185 @@
|
|||||||
android:selectable="false"
|
android:selectable="false"
|
||||||
settings:isPreferenceVisible="false"/>
|
settings:isPreferenceVisible="false"/>
|
||||||
|
|
||||||
<!-- Device name -->
|
<PreferenceCategory
|
||||||
<com.android.settings.widget.ValidatedEditTextPreference
|
android:title="@string/my_device_info_basic_info_category_title">
|
||||||
android:key="device_name"
|
|
||||||
android:order="1"
|
|
||||||
android:title="@string/my_device_info_device_name_preference_title"
|
|
||||||
android:summary="@string/summary_placeholder"
|
|
||||||
settings:controller="com.android.settings.deviceinfo.DeviceNamePreferenceController"
|
|
||||||
settings:enableCopying="true"/>
|
|
||||||
|
|
||||||
<!-- Account name -->
|
<!-- Device name -->
|
||||||
<Preference
|
<com.android.settings.widget.ValidatedEditTextPreference
|
||||||
android:key="branded_account"
|
android:key="device_name"
|
||||||
android:order="2"
|
android:order="1"
|
||||||
android:title="@string/my_device_info_account_preference_title"
|
android:title="@string/my_device_info_device_name_preference_title"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
settings:enableCopying="true"
|
settings:controller="com.android.settings.deviceinfo.DeviceNamePreferenceController"
|
||||||
settings:controller="com.android.settings.deviceinfo.BrandedAccountPreferenceController"/>
|
settings:enableCopying="true"/>
|
||||||
|
|
||||||
<!-- Phone number -->
|
<!-- Account name -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="phone_number"
|
android:key="branded_account"
|
||||||
android:order="3"
|
android:order="2"
|
||||||
android:title="@string/status_number"
|
android:title="@string/my_device_info_account_preference_title"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
android:selectable="false"
|
settings:enableCopying="true"
|
||||||
settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
|
settings:controller="com.android.settings.deviceinfo.BrandedAccountPreferenceController"/>
|
||||||
settings:enableCopying="true"/>
|
|
||||||
|
|
||||||
<!-- Legal information -->
|
<!-- Phone number -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="legal_container"
|
android:key="phone_number"
|
||||||
android:order="15"
|
android:order="3"
|
||||||
android:title="@string/legal_information"
|
android:title="@string/status_number"
|
||||||
android:fragment="com.android.settings.LegalSettings"
|
android:summary="@string/summary_placeholder"
|
||||||
settings:allowDividerAbove="true"/>
|
android:selectable="false"
|
||||||
|
settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
|
||||||
|
settings:enableCopying="true"/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
<!-- Regulatory labels -->
|
<PreferenceCategory
|
||||||
<Preference
|
android:title="@string/my_device_info_legal_category_title">
|
||||||
android:key="regulatory_info"
|
|
||||||
android:order="16"
|
|
||||||
android:title="@string/regulatory_labels">
|
|
||||||
<intent android:action="android.settings.SHOW_REGULATORY_INFO"/>
|
|
||||||
</Preference>
|
|
||||||
|
|
||||||
<!-- Safety & regulatory manual -->
|
<!-- Legal information -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="safety_info"
|
android:key="legal_container"
|
||||||
android:order="17"
|
android:order="15"
|
||||||
android:title="@string/safety_and_regulatory_info">
|
android:title="@string/legal_information"
|
||||||
<intent android:action="android.settings.SHOW_SAFETY_AND_REGULATORY_INFO"/>
|
android:fragment="com.android.settings.LegalSettings"/>
|
||||||
</Preference>
|
|
||||||
|
|
||||||
<!-- SIM status -->
|
<!-- Regulatory labels -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="sim_status"
|
android:key="regulatory_info"
|
||||||
android:order="18"
|
android:order="16"
|
||||||
android:title="@string/sim_status_title"
|
android:title="@string/regulatory_labels">
|
||||||
settings:keywords="@string/keywords_sim_status"
|
<intent android:action="android.settings.SHOW_REGULATORY_INFO"/>
|
||||||
android:summary="@string/summary_placeholder"
|
</Preference>
|
||||||
settings:enableCopying="true"
|
|
||||||
settings:allowDividerAbove="true"/>
|
|
||||||
|
|
||||||
<!-- Model & hardware -->
|
<!-- Safety & regulatory manual -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="device_model"
|
android:key="safety_info"
|
||||||
android:order="31"
|
android:order="17"
|
||||||
android:title="@string/model_info"
|
android:title="@string/safety_and_regulatory_info">
|
||||||
android:summary="@string/summary_placeholder"
|
<intent android:action="android.settings.SHOW_SAFETY_AND_REGULATORY_INFO"/>
|
||||||
android:fragment="com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFragment"
|
</Preference>
|
||||||
settings:enableCopying="true"
|
</PreferenceCategory>
|
||||||
settings:keywords="@string/keywords_model_and_hardware"
|
|
||||||
settings:controller="com.android.settings.deviceinfo.HardwareInfoPreferenceController"/>
|
|
||||||
|
|
||||||
<!-- IMEI -->
|
<PreferenceCategory
|
||||||
<Preference
|
android:title="@string/my_device_info_device_details_category_title">
|
||||||
android:key="imei_info"
|
|
||||||
android:order="32"
|
|
||||||
android:title="@string/status_imei"
|
|
||||||
android:summary="@string/summary_placeholder"
|
|
||||||
settings:keywords="@string/keywords_imei_info"
|
|
||||||
settings:enableCopying="true"
|
|
||||||
settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
|
|
||||||
|
|
||||||
<!-- Android version -->
|
<!-- SIM status -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="firmware_version"
|
android:key="sim_status"
|
||||||
android:order="42"
|
android:order="18"
|
||||||
android:title="@string/firmware_version"
|
android:title="@string/sim_status_title"
|
||||||
android:summary="@string/summary_placeholder"
|
settings:keywords="@string/keywords_sim_status"
|
||||||
android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings"
|
android:summary="@string/summary_placeholder"
|
||||||
settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/>
|
settings:enableCopying="true"/>
|
||||||
|
|
||||||
<!--IP address -->
|
<!-- Model & hardware -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="wifi_ip_address"
|
android:key="device_model"
|
||||||
android:order="44"
|
android:order="31"
|
||||||
android:title="@string/wifi_ip_address"
|
android:title="@string/model_info"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
android:selectable="false"
|
android:fragment="com.android.settings.deviceinfo.hardwareinfo.HardwareInfoFragment"
|
||||||
settings:allowDividerAbove="true"
|
settings:enableCopying="true"
|
||||||
settings:enableCopying="true"/>
|
settings:keywords="@string/keywords_model_and_hardware"
|
||||||
|
settings:controller="com.android.settings.deviceinfo.HardwareInfoPreferenceController"/>
|
||||||
|
|
||||||
<!-- Wi-Fi MAC address -->
|
<!-- IMEI -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="saved_accesspoints_wifi_mac_address"
|
android:key="imei_info"
|
||||||
android:order="45"
|
android:order="32"
|
||||||
android:title="@string/status_wifi_mac_address"
|
android:title="@string/status_imei"
|
||||||
android:summary="@string/view_saved_network"
|
android:summary="@string/summary_placeholder"
|
||||||
android:fragment="com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2"
|
settings:keywords="@string/keywords_imei_info"
|
||||||
settings:enableCopying="false"/>
|
settings:enableCopying="true"
|
||||||
|
settings:controller="com.android.settings.deviceinfo.imei.ImeiInfoPreferenceController"/>
|
||||||
|
|
||||||
<!-- Factory Wi-Fi MAC address -->
|
<!-- Android version -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="wifi_mac_address"
|
android:key="firmware_version"
|
||||||
android:order="46"
|
android:order="42"
|
||||||
android:title="@string/status_device_wifi_mac_address"
|
android:title="@string/firmware_version"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
android:selectable="false"
|
android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings"
|
||||||
settings:enableCopying="true"/>
|
settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
<!-- Bluetooth address -->
|
<PreferenceCategory
|
||||||
<Preference
|
android:title="@string/my_device_info_device_identifiers_category_title">
|
||||||
android:key="bt_address"
|
|
||||||
android:order="47"
|
|
||||||
android:title="@string/status_bt_address"
|
|
||||||
android:summary="@string/summary_placeholder"
|
|
||||||
android:selectable="false"
|
|
||||||
settings:enableCopying="true"/>
|
|
||||||
|
|
||||||
<!-- Device up time -->
|
<!--IP address -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="up_time"
|
android:key="wifi_ip_address"
|
||||||
android:order="48"
|
android:order="44"
|
||||||
android:title="@string/status_up_time"
|
android:title="@string/wifi_ip_address"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
android:selectable="false"/>
|
android:selectable="false"
|
||||||
|
settings:enableCopying="true"/>
|
||||||
|
|
||||||
<!-- Manual -->
|
<!-- Wi-Fi MAC address -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="manual"
|
android:key="saved_accesspoints_wifi_mac_address"
|
||||||
android:order="50"
|
android:order="45"
|
||||||
android:title="@string/manual">
|
android:title="@string/status_wifi_mac_address"
|
||||||
<intent android:action="android.settings.SHOW_MANUAL"/>
|
android:summary="@string/view_saved_network"
|
||||||
</Preference>
|
android:fragment="com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2"
|
||||||
|
settings:enableCopying="false"/>
|
||||||
|
|
||||||
<!-- Feedback on the device -->
|
<!-- Factory Wi-Fi MAC address -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="device_feedback"
|
android:key="wifi_mac_address"
|
||||||
android:order="51"
|
android:order="46"
|
||||||
android:title="@string/device_feedback"
|
android:title="@string/status_device_wifi_mac_address"
|
||||||
settings:keywords="@string/keywords_device_feedback"/>
|
android:summary="@string/summary_placeholder"
|
||||||
|
android:selectable="false"
|
||||||
|
settings:enableCopying="true"/>
|
||||||
|
|
||||||
<!-- Device FCC equipment id -->
|
<!-- Bluetooth address -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="fcc_equipment_id"
|
android:key="bt_address"
|
||||||
android:order="52"
|
android:order="47"
|
||||||
android:title="@string/fcc_equipment_id"
|
android:title="@string/status_bt_address"
|
||||||
android:summary="@string/summary_placeholder"/>
|
android:summary="@string/summary_placeholder"
|
||||||
|
android:selectable="false"
|
||||||
|
settings:enableCopying="true"/>
|
||||||
|
|
||||||
<!-- Build number -->
|
<!-- Device up time -->
|
||||||
<Preference
|
<Preference
|
||||||
android:key="build_number"
|
android:key="up_time"
|
||||||
android:order="53"
|
android:order="48"
|
||||||
android:title="@string/build_number"
|
android:title="@string/status_up_time"
|
||||||
android:summary="@string/summary_placeholder"
|
android:summary="@string/summary_placeholder"
|
||||||
settings:allowDividerAbove="true"
|
android:selectable="false"/>
|
||||||
settings:enableCopying="true"
|
|
||||||
settings:controller="com.android.settings.deviceinfo.BuildNumberPreferenceController"/>
|
<!-- Manual -->
|
||||||
|
<Preference
|
||||||
|
android:key="manual"
|
||||||
|
android:order="50"
|
||||||
|
android:title="@string/manual">
|
||||||
|
<intent android:action="android.settings.SHOW_MANUAL"/>
|
||||||
|
</Preference>
|
||||||
|
|
||||||
|
<!-- Feedback on the device -->
|
||||||
|
<Preference
|
||||||
|
android:key="device_feedback"
|
||||||
|
android:order="51"
|
||||||
|
android:title="@string/device_feedback"
|
||||||
|
settings:keywords="@string/keywords_device_feedback"/>
|
||||||
|
|
||||||
|
<!-- Device FCC equipment id -->
|
||||||
|
<Preference
|
||||||
|
android:key="fcc_equipment_id"
|
||||||
|
android:order="52"
|
||||||
|
android:title="@string/fcc_equipment_id"
|
||||||
|
android:summary="@string/summary_placeholder"/>
|
||||||
|
|
||||||
|
<!-- Build number -->
|
||||||
|
<Preference
|
||||||
|
android:key="build_number"
|
||||||
|
android:order="53"
|
||||||
|
android:title="@string/build_number"
|
||||||
|
android:summary="@string/summary_placeholder"
|
||||||
|
settings:enableCopying="true"
|
||||||
|
settings:controller="com.android.settings.deviceinfo.BuildNumberPreferenceController"/>
|
||||||
|
</PreferenceCategory>
|
||||||
|
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -38,7 +38,6 @@ import android.telephony.CellBroadcastIntents;
|
|||||||
import android.telephony.CellBroadcastService;
|
import android.telephony.CellBroadcastService;
|
||||||
import android.telephony.CellSignalStrength;
|
import android.telephony.CellSignalStrength;
|
||||||
import android.telephony.ICellBroadcastService;
|
import android.telephony.ICellBroadcastService;
|
||||||
import android.telephony.PhoneStateListener;
|
|
||||||
import android.telephony.ServiceState;
|
import android.telephony.ServiceState;
|
||||||
import android.telephony.SignalStrength;
|
import android.telephony.SignalStrength;
|
||||||
import android.telephony.SubscriptionInfo;
|
import android.telephony.SubscriptionInfo;
|
||||||
@@ -245,6 +244,8 @@ public class SimStatusDialogController implements LifecycleObserver {
|
|||||||
private void updateSubscriptionStatus() {
|
private void updateSubscriptionStatus() {
|
||||||
updateNetworkProvider();
|
updateNetworkProvider();
|
||||||
|
|
||||||
|
// getServiceState() may return null when the subscription is inactive
|
||||||
|
// or when there was an error communicating with the phone process.
|
||||||
final ServiceState serviceState = mTelephonyManager.getServiceState();
|
final ServiceState serviceState = mTelephonyManager.getServiceState();
|
||||||
final SignalStrength signalStrength = mTelephonyManager.getSignalStrength();
|
final SignalStrength signalStrength = mTelephonyManager.getSignalStrength();
|
||||||
|
|
||||||
@@ -577,7 +578,10 @@ public class SimStatusDialogController implements LifecycleObserver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updateRoamingStatus(ServiceState serviceState) {
|
private void updateRoamingStatus(ServiceState serviceState) {
|
||||||
if (serviceState.getRoaming()) {
|
// If the serviceState is null, we assume that roaming is disabled.
|
||||||
|
if (serviceState == null) {
|
||||||
|
mDialog.setText(ROAMING_INFO_VALUE_ID, mRes.getString(R.string.radioInfo_unknown));
|
||||||
|
} else if (serviceState.getRoaming()) {
|
||||||
mDialog.setText(ROAMING_INFO_VALUE_ID, mRes.getString(R.string.radioInfo_roaming_in));
|
mDialog.setText(ROAMING_INFO_VALUE_ID, mRes.getString(R.string.radioInfo_roaming_in));
|
||||||
} else {
|
} else {
|
||||||
mDialog.setText(ROAMING_INFO_VALUE_ID, mRes.getString(R.string.radioInfo_roaming_not));
|
mDialog.setText(ROAMING_INFO_VALUE_ID, mRes.getString(R.string.radioInfo_roaming_not));
|
||||||
|
@@ -33,6 +33,7 @@ import android.net.ConnectivityManager;
|
|||||||
import android.net.ConnectivityManager.NetworkCallback;
|
import android.net.ConnectivityManager.NetworkCallback;
|
||||||
import android.net.Network;
|
import android.net.Network;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
|
import android.net.wifi.WifiInfo;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
@@ -249,6 +250,9 @@ public class InternetUpdater implements AirplaneModeEnabler.OnAirplaneModeChange
|
|||||||
@InternetType int internetType = INTERNET_NETWORKS_AVAILABLE;
|
@InternetType int internetType = INTERNET_NETWORKS_AVAILABLE;
|
||||||
if (mInternetAvailable) {
|
if (mInternetAvailable) {
|
||||||
internetType = sTransportMap.get(mTransport);
|
internetType = sTransportMap.get(mTransport);
|
||||||
|
if (internetType == INTERNET_WIFI && isCarrierWifiActive()) {
|
||||||
|
internetType = INTERNET_CELLULAR;
|
||||||
|
}
|
||||||
} else if (mAirplaneModeEnabler.isAirplaneModeOn()
|
} else if (mAirplaneModeEnabler.isAirplaneModeOn()
|
||||||
&& mWifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
|
&& mWifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
|
||||||
internetType = INTERNET_OFF;
|
internetType = INTERNET_OFF;
|
||||||
@@ -260,6 +264,15 @@ public class InternetUpdater implements AirplaneModeEnabler.OnAirplaneModeChange
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected boolean isCarrierWifiActive() {
|
||||||
|
final WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
|
||||||
|
if (wifiInfo == null || !wifiInfo.isCarrierMerged()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Log.i(TAG, "Detect a merged carrier Wi-Fi connected.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the internet type.
|
* Get the internet type.
|
||||||
*/
|
*/
|
||||||
|
@@ -116,6 +116,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
static final int MENU_ID_FORGET = Menu.FIRST + 3;
|
static final int MENU_ID_FORGET = Menu.FIRST + 3;
|
||||||
static final int MENU_ID_MODIFY = Menu.FIRST + 4;
|
static final int MENU_ID_MODIFY = Menu.FIRST + 4;
|
||||||
static final int MENU_FIX_CONNECTIVITY = Menu.FIRST + 5;
|
static final int MENU_FIX_CONNECTIVITY = Menu.FIRST + 5;
|
||||||
|
static final int MENU_ID_SHARE = Menu.FIRST + 6;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final int ADD_NETWORK_REQUEST = 2;
|
static final int ADD_NETWORK_REQUEST = 2;
|
||||||
@@ -200,7 +201,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
* ensure that behavior is consistent if {@link #isUiRestricted()} changes. It could be changed
|
* ensure that behavior is consistent if {@link #isUiRestricted()} changes. It could be changed
|
||||||
* by the Test DPC tool in AFW mode.
|
* by the Test DPC tool in AFW mode.
|
||||||
*/
|
*/
|
||||||
private boolean mIsRestricted;
|
protected boolean mIsRestricted;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
AirplaneModeEnabler mAirplaneModeEnabler;
|
AirplaneModeEnabler mAirplaneModeEnabler;
|
||||||
@@ -218,7 +219,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
PreferenceCategory mConnectedWifiEntryPreferenceCategory;
|
PreferenceCategory mConnectedWifiEntryPreferenceCategory;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
PreferenceCategory mFirstWifiEntryPreferenceCategory;
|
PreferenceCategory mFirstWifiEntryPreferenceCategory;
|
||||||
private PreferenceCategory mWifiEntryPreferenceCategory;
|
@VisibleForTesting
|
||||||
|
PreferenceCategory mWifiEntryPreferenceCategory;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
AddWifiNetworkPreference mAddWifiNetworkPreference;
|
AddWifiNetworkPreference mAddWifiNetworkPreference;
|
||||||
private WifiSwitchPreferenceController mWifiSwitchPreferenceController;
|
private WifiSwitchPreferenceController mWifiSwitchPreferenceController;
|
||||||
@@ -535,7 +537,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mSelectedWifiEntry.canDisconnect()) {
|
if (mSelectedWifiEntry.canDisconnect()) {
|
||||||
menu.add(Menu.NONE, MENU_ID_DISCONNECT, 0 /* order */,
|
menu.add(Menu.NONE, MENU_ID_SHARE, 0 /* order */, R.string.share);
|
||||||
|
menu.add(Menu.NONE, MENU_ID_DISCONNECT, 1 /* order */,
|
||||||
R.string.wifi_disconnect_button_text);
|
R.string.wifi_disconnect_button_text);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -574,6 +577,10 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
case MENU_ID_FORGET:
|
case MENU_ID_FORGET:
|
||||||
forget(mSelectedWifiEntry);
|
forget(mSelectedWifiEntry);
|
||||||
return true;
|
return true;
|
||||||
|
case MENU_ID_SHARE:
|
||||||
|
WifiDppUtils.showLockScreen(getContext(),
|
||||||
|
() -> launchWifiDppConfiguratorActivity(mSelectedWifiEntry));
|
||||||
|
return true;
|
||||||
case MENU_ID_MODIFY:
|
case MENU_ID_MODIFY:
|
||||||
showDialog(mSelectedWifiEntry, WifiConfigUiBase2.MODE_MODIFY);
|
showDialog(mSelectedWifiEntry, WifiConfigUiBase2.MODE_MODIFY);
|
||||||
return true;
|
return true;
|
||||||
@@ -608,6 +615,23 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void launchWifiDppConfiguratorActivity(WifiEntry wifiEntry) {
|
||||||
|
final Intent intent = WifiDppUtils.getConfiguratorQrCodeGeneratorIntentOrNull(getContext(),
|
||||||
|
mWifiManager, wifiEntry);
|
||||||
|
|
||||||
|
if (intent == null) {
|
||||||
|
Log.e(TAG, "Launch Wi-Fi DPP QR code generator with a wrong Wi-Fi network!");
|
||||||
|
} else {
|
||||||
|
mMetricsFeatureProvider.action(SettingsEnums.PAGE_UNKNOWN,
|
||||||
|
SettingsEnums.ACTION_SETTINGS_SHARE_WIFI_QR_CODE,
|
||||||
|
SettingsEnums.SETTINGS_WIFI_DPP_CONFIGURATOR,
|
||||||
|
/* key */ null,
|
||||||
|
/* value */ Integer.MIN_VALUE);
|
||||||
|
|
||||||
|
startActivity(intent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void showDialog(WifiEntry wifiEntry, int dialogMode) {
|
private void showDialog(WifiEntry wifiEntry, int dialogMode) {
|
||||||
if (WifiUtils.isNetworkLockedDown(getActivity(), wifiEntry.getWifiConfiguration())
|
if (WifiUtils.isNetworkLockedDown(getActivity(), wifiEntry.getWifiConfiguration())
|
||||||
&& wifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
|
&& wifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED) {
|
||||||
@@ -771,7 +795,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateWifiEntryPreferences() {
|
protected void updateWifiEntryPreferences() {
|
||||||
|
// bypass the update if the activity and the view are not ready, or it's restricted UI.
|
||||||
|
if (getActivity() == null || getView() == null || mIsRestricted) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// in case state has changed
|
// in case state has changed
|
||||||
if (mWifiPickerTracker.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
|
if (mWifiPickerTracker.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
|
||||||
return;
|
return;
|
||||||
|
@@ -16,10 +16,10 @@
|
|||||||
|
|
||||||
package com.android.settings.network;
|
package com.android.settings.network;
|
||||||
|
|
||||||
|
|
||||||
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
|
import static android.app.slice.Slice.EXTRA_TOGGLE_STATE;
|
||||||
|
|
||||||
import static com.android.settings.slices.CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI;
|
import static com.android.settings.slices.CustomSliceRegistry.PROVIDER_MODEL_SLICE_URI;
|
||||||
|
import static com.android.settings.slices.CustomSliceRegistry.WIFI_SLICE_URI;
|
||||||
|
|
||||||
import android.annotation.ColorInt;
|
import android.annotation.ColorInt;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
@@ -96,78 +96,77 @@ public class ProviderModelSlice extends WifiSlice {
|
|||||||
@Override
|
@Override
|
||||||
public Slice getSlice() {
|
public Slice getSlice() {
|
||||||
// The provider model slice step:
|
// The provider model slice step:
|
||||||
// First section: Add a Wi-Fi item which state is connected.
|
// First section: Add the Ethernet item.
|
||||||
// Second section: Add a carrier item.
|
// Second section: Add the carrier item.
|
||||||
// Third section: Add the Wi-Fi items which are not connected.
|
// Third section: Add the Wi-Fi toggle item.
|
||||||
// Fourth section: If device has connection problem, this row show the message for user.
|
// Fourth section: Add the connected Wi-Fi item.
|
||||||
@InternetUpdater.InternetType int internetType = getInternetType();
|
// Fifth section: Add the Wi-Fi items which are not connected.
|
||||||
|
// Sixth section: Add the See All item.
|
||||||
final ListBuilder listBuilder = mHelper.createListBuilder(getUri());
|
final ListBuilder listBuilder = mHelper.createListBuilder(getUri());
|
||||||
if (mHelper.isAirplaneModeEnabled() && !mWifiManager.isWifiEnabled()
|
|
||||||
&& internetType != InternetUpdater.INTERNET_ETHERNET) {
|
|
||||||
log("Airplane mode is enabled.");
|
|
||||||
return listBuilder.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
int maxListSize = 0;
|
int maxListSize = 0;
|
||||||
List<WifiSliceItem> wifiList = null;
|
|
||||||
final NetworkProviderWorker worker = getWorker();
|
final NetworkProviderWorker worker = getWorker();
|
||||||
if (worker != null) {
|
if (worker != null) {
|
||||||
// get Wi-Fi list.
|
|
||||||
wifiList = worker.getResults();
|
|
||||||
maxListSize = worker.getApRowCount();
|
maxListSize = worker.getApRowCount();
|
||||||
} else {
|
} else {
|
||||||
log("network provider worker is null.");
|
log("network provider worker is null.");
|
||||||
}
|
}
|
||||||
|
|
||||||
final boolean hasCarrier = mHelper.hasCarrier();
|
// First section: Add the Ethernet item.
|
||||||
log("hasCarrier: " + hasCarrier);
|
if (getInternetType() == InternetUpdater.INTERNET_ETHERNET) {
|
||||||
|
|
||||||
// First section: Add a Ethernet or Wi-Fi item which state is connected.
|
|
||||||
boolean isConnectedWifiAddedTop = false;
|
|
||||||
final WifiSliceItem connectedWifiItem = mHelper.getConnectedWifiItem(wifiList);
|
|
||||||
if (internetType == InternetUpdater.INTERNET_ETHERNET) {
|
|
||||||
log("get Ethernet item which is connected");
|
log("get Ethernet item which is connected");
|
||||||
listBuilder.addRow(createEthernetRow());
|
listBuilder.addRow(createEthernetRow());
|
||||||
maxListSize--;
|
maxListSize--;
|
||||||
} else {
|
}
|
||||||
if (connectedWifiItem != null && internetType == InternetUpdater.INTERNET_WIFI) {
|
|
||||||
log("get Wi-Fi item which is connected to internet");
|
// Second section: Add the carrier item.
|
||||||
listBuilder.addRow(getWifiSliceItemRow(connectedWifiItem));
|
if (!mHelper.isAirplaneModeEnabled()) {
|
||||||
isConnectedWifiAddedTop = true;
|
final boolean hasCarrier = mHelper.hasCarrier();
|
||||||
|
log("hasCarrier: " + hasCarrier);
|
||||||
|
if (hasCarrier) {
|
||||||
|
mHelper.updateTelephony();
|
||||||
|
listBuilder.addRow(
|
||||||
|
mHelper.createCarrierRow(
|
||||||
|
worker != null ? worker.getNetworkTypeDescription() : ""));
|
||||||
maxListSize--;
|
maxListSize--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Second section: Add a carrier item.
|
// Third section: Add the Wi-Fi toggle item.
|
||||||
if (hasCarrier) {
|
final boolean isWifiEnabled = mWifiManager.isWifiEnabled();
|
||||||
mHelper.updateTelephony();
|
listBuilder.addRow(createWifiToggleRow(mContext, isWifiEnabled));
|
||||||
listBuilder.addRow(
|
maxListSize--;
|
||||||
mHelper.createCarrierRow(
|
if (!isWifiEnabled) {
|
||||||
worker != null ? worker.getNetworkTypeDescription() : ""));
|
log("Wi-Fi is disabled");
|
||||||
maxListSize--;
|
return listBuilder.build();
|
||||||
|
}
|
||||||
|
List<WifiSliceItem> wifiList = (worker != null) ? worker.getResults() : null;
|
||||||
|
if (wifiList == null || wifiList.size() <= 0) {
|
||||||
|
log("Wi-Fi list is empty");
|
||||||
|
return listBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Third section: Add the connected Wi-Fi item to Wi-Fi list if the Ethernet is connected.
|
// Fourth section: Add the connected Wi-Fi item.
|
||||||
if (connectedWifiItem != null && !isConnectedWifiAddedTop) {
|
final WifiSliceItem connectedWifiItem = mHelper.getConnectedWifiItem(wifiList);
|
||||||
|
if (connectedWifiItem != null) {
|
||||||
log("get Wi-Fi item which is connected");
|
log("get Wi-Fi item which is connected");
|
||||||
listBuilder.addRow(getWifiSliceItemRow(connectedWifiItem));
|
listBuilder.addRow(getWifiSliceItemRow(connectedWifiItem));
|
||||||
maxListSize--;
|
maxListSize--;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fourth section: Add the Wi-Fi items which are not connected.
|
// Fifth section: Add the Wi-Fi items which are not connected.
|
||||||
if (wifiList != null && wifiList.size() > 0) {
|
log("get Wi-Fi items which are not connected. Wi-Fi items : " + wifiList.size());
|
||||||
log("get Wi-Fi items which are not connected. Wi-Fi items : " + wifiList.size());
|
final List<WifiSliceItem> disconnectedWifiList = wifiList.stream()
|
||||||
|
.filter(item -> item.getConnectedState() != WifiEntry.CONNECTED_STATE_CONNECTED)
|
||||||
final List<WifiSliceItem> disconnectedWifiList = wifiList.stream()
|
.limit(maxListSize - 1)
|
||||||
.filter(wifiSliceItem -> wifiSliceItem.getConnectedState()
|
.collect(Collectors.toList());
|
||||||
!= WifiEntry.CONNECTED_STATE_CONNECTED)
|
for (WifiSliceItem item : disconnectedWifiList) {
|
||||||
.limit(maxListSize - 1)
|
listBuilder.addRow(getWifiSliceItemRow(item));
|
||||||
.collect(Collectors.toList());
|
|
||||||
for (WifiSliceItem item : disconnectedWifiList) {
|
|
||||||
listBuilder.addRow(getWifiSliceItemRow(item));
|
|
||||||
}
|
|
||||||
listBuilder.addRow(getSeeAllRow());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Sixth section: Add the See All item.
|
||||||
|
log("add See-All");
|
||||||
|
listBuilder.addRow(getSeeAllRow());
|
||||||
|
|
||||||
return listBuilder.build();
|
return listBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -324,6 +323,26 @@ public class ProviderModelSlice extends WifiSlice {
|
|||||||
.setSubtitle(mContext.getText(R.string.to_switch_networks_disconnect_ethernet));
|
.setSubtitle(mContext.getText(R.string.to_switch_networks_disconnect_ethernet));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return a {@link ListBuilder.RowBuilder} of the Wi-Fi toggle.
|
||||||
|
*/
|
||||||
|
protected ListBuilder.RowBuilder createWifiToggleRow(Context context, boolean isWifiEnabled) {
|
||||||
|
final Intent intent = new Intent(WIFI_SLICE_URI.toString())
|
||||||
|
.setData(WIFI_SLICE_URI)
|
||||||
|
.setClass(context, SliceBroadcastReceiver.class)
|
||||||
|
.putExtra(EXTRA_TOGGLE_STATE, !isWifiEnabled)
|
||||||
|
// The FLAG_RECEIVER_FOREGROUND flag is necessary to avoid the intent delay of
|
||||||
|
// the first sending after the device restarts
|
||||||
|
.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
|
||||||
|
final PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent,
|
||||||
|
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
|
||||||
|
final SliceAction toggleSliceAction = SliceAction.createToggle(pendingIntent,
|
||||||
|
null /* actionTitle */, isWifiEnabled);
|
||||||
|
return new ListBuilder.RowBuilder()
|
||||||
|
.setTitle(context.getString(R.string.wifi_settings))
|
||||||
|
.setPrimaryAction(toggleSliceAction);
|
||||||
|
}
|
||||||
|
|
||||||
protected ListBuilder.RowBuilder getSeeAllRow() {
|
protected ListBuilder.RowBuilder getSeeAllRow() {
|
||||||
final CharSequence title = mContext.getText(R.string.previous_connected_see_all);
|
final CharSequence title = mContext.getText(R.string.previous_connected_see_all);
|
||||||
final IconCompat icon = getSeeAllIcon();
|
final IconCompat icon = getSeeAllIcon();
|
||||||
|
@@ -54,7 +54,7 @@ public class NetworkProviderWorker extends WifiScanWorker implements
|
|||||||
DataConnectivityListener.Client, InternetUpdater.InternetChangeListener,
|
DataConnectivityListener.Client, InternetUpdater.InternetChangeListener,
|
||||||
SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
|
SubscriptionsChangeListener.SubscriptionsChangeListenerClient {
|
||||||
private static final String TAG = "NetworkProviderWorker";
|
private static final String TAG = "NetworkProviderWorker";
|
||||||
private static final int PROVIDER_MODEL_DEFAULT_EXPANDED_ROW_COUNT = 5;
|
private static final int PROVIDER_MODEL_DEFAULT_EXPANDED_ROW_COUNT = 6;
|
||||||
private DataContentObserver mMobileDataObserver;
|
private DataContentObserver mMobileDataObserver;
|
||||||
private SignalStrengthListener mSignalStrengthListener;
|
private SignalStrengthListener mSignalStrengthListener;
|
||||||
private SubscriptionsChangeListener mSubscriptionsListener;
|
private SubscriptionsChangeListener mSubscriptionsListener;
|
||||||
|
@@ -39,7 +39,6 @@ import android.text.TextUtils;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.fragment.app.FragmentActivity;
|
|
||||||
import androidx.lifecycle.LifecycleObserver;
|
import androidx.lifecycle.LifecycleObserver;
|
||||||
import androidx.lifecycle.OnLifecycleEvent;
|
import androidx.lifecycle.OnLifecycleEvent;
|
||||||
|
|
||||||
@@ -236,29 +235,17 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Intent getSeeMoreIntent() {
|
public Intent getSeeMoreIntent() {
|
||||||
|
// Disable the see more button for provider model design.
|
||||||
|
if (mIsProviderModelEnabled) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
// Don't remove the see more intent for non-provider model design. This intent will be
|
// Don't remove the see more intent for non-provider model design. This intent will be
|
||||||
// used when isCustomizedButtonUsed() returns false.
|
// used when isCustomizedButtonUsed() returns false.
|
||||||
return new Intent(Settings.ACTION_WIRELESS_SETTINGS)
|
return new Intent(Settings.ACTION_WIRELESS_SETTINGS)
|
||||||
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isCustomizedButtonUsed() {
|
|
||||||
return mIsProviderModelEnabled;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public CharSequence getCustomizedButtonTitle() {
|
|
||||||
return mContext.getText(
|
|
||||||
mInternetUpdater.isWifiEnabled() ? R.string.turn_off_wifi : R.string.turn_on_wifi);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onClickCustomizedButton(FragmentActivity panelActivity) {
|
|
||||||
// Don't finish the panel activity
|
|
||||||
mWifiManager.setWifiEnabled(!mInternetUpdater.isWifiEnabled());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isProgressBarVisible() {
|
public boolean isProgressBarVisible() {
|
||||||
return mIsProgressBarVisible;
|
return mIsProgressBarVisible;
|
||||||
@@ -320,7 +307,6 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
|
|||||||
}
|
}
|
||||||
updateSubtitleText();
|
updateSubtitleText();
|
||||||
mCallback.onHeaderChanged();
|
mCallback.onHeaderChanged();
|
||||||
mCallback.onCustomizedButtonStateChanged();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
|
@@ -23,7 +23,6 @@ import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_R
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.Resources;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.IBinder;
|
import android.os.IBinder;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
@@ -43,6 +42,7 @@ import com.android.settings.SetupWizardUtils;
|
|||||||
import com.android.settings.utils.SettingsDividerItemDecoration;
|
import com.android.settings.utils.SettingsDividerItemDecoration;
|
||||||
|
|
||||||
import com.google.android.setupdesign.GlifPreferenceLayout;
|
import com.google.android.setupdesign.GlifPreferenceLayout;
|
||||||
|
import com.google.android.setupdesign.util.ThemeHelper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setup Wizard's version of ChooseLockGeneric screen. It inherits the logic and basic structure
|
* Setup Wizard's version of ChooseLockGeneric screen. It inherits the logic and basic structure
|
||||||
@@ -66,14 +66,10 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
|
|||||||
return SetupChooseLockGenericFragment.class;
|
return SetupChooseLockGenericFragment.class;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
|
|
||||||
final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
|
|
||||||
super.onApplyThemeResource(theme, new_resid, first);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstance) {
|
protected void onCreate(Bundle savedInstance) {
|
||||||
|
setTheme(SetupWizardUtils.getTheme(this, getIntent()));
|
||||||
|
ThemeHelper.trySetDynamicColor(this);
|
||||||
super.onCreate(savedInstance);
|
super.onCreate(savedInstance);
|
||||||
|
|
||||||
if(getIntent().hasExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY)) {
|
if(getIntent().hasExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY)) {
|
||||||
@@ -92,6 +88,12 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
|
|||||||
findViewById(R.id.content_parent).setFitsSystemWindows(false);
|
findViewById(R.id.content_parent).setFitsSystemWindows(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected boolean isToolbarEnabled() {
|
||||||
|
// Hide the action bar from this page.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public static class SetupChooseLockGenericFragment extends ChooseLockGenericFragment {
|
public static class SetupChooseLockGenericFragment extends ChooseLockGenericFragment {
|
||||||
|
|
||||||
public static final String EXTRA_PASSWORD_QUALITY = ":settings:password_quality";
|
public static final String EXTRA_PASSWORD_QUALITY = ":settings:password_quality";
|
||||||
|
@@ -32,8 +32,7 @@ import android.graphics.drawable.AnimatedImageDrawable;
|
|||||||
import android.graphics.drawable.AnimatedVectorDrawable;
|
import android.graphics.drawable.AnimatedVectorDrawable;
|
||||||
import android.graphics.drawable.AnimationDrawable;
|
import android.graphics.drawable.AnimationDrawable;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.view.LayoutInflater;
|
import android.view.ViewGroup;
|
||||||
import android.view.View;
|
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
import androidx.preference.PreferenceViewHolder;
|
import androidx.preference.PreferenceViewHolder;
|
||||||
@@ -45,6 +44,7 @@ import com.airbnb.lottie.LottieAnimationView;
|
|||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.mockito.Spy;
|
import org.mockito.Spy;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
@@ -57,10 +57,12 @@ import java.io.InputStream;
|
|||||||
public class AnimatedImagePreferenceTest {
|
public class AnimatedImagePreferenceTest {
|
||||||
private final Context mContext = RuntimeEnvironment.application;
|
private final Context mContext = RuntimeEnvironment.application;
|
||||||
private Uri mImageUri;
|
private Uri mImageUri;
|
||||||
private View mRootView;
|
|
||||||
private PreferenceViewHolder mViewHolder;
|
private PreferenceViewHolder mViewHolder;
|
||||||
private AnimatedImagePreference mAnimatedImagePreference;
|
private AnimatedImagePreference mAnimatedImagePreference;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private ViewGroup mRootView;
|
||||||
|
|
||||||
@Spy
|
@Spy
|
||||||
private ImageView mImageView;
|
private ImageView mImageView;
|
||||||
|
|
||||||
@@ -68,9 +70,8 @@ public class AnimatedImagePreferenceTest {
|
|||||||
public void init() {
|
public void init() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
|
|
||||||
final LayoutInflater inflater = LayoutInflater.from(mContext);
|
|
||||||
mRootView = spy(inflater.inflate(R.layout.preference_animated_image, /* root= */ null));
|
|
||||||
mViewHolder = spy(PreferenceViewHolder.createInstanceForTests(mRootView));
|
mViewHolder = spy(PreferenceViewHolder.createInstanceForTests(mRootView));
|
||||||
|
doReturn(new LottieAnimationView(mContext)).when(mRootView).findViewById(R.id.lottie_view);
|
||||||
mImageView = spy(new ImageView(mContext));
|
mImageView = spy(new ImageView(mContext));
|
||||||
|
|
||||||
mAnimatedImagePreference = new AnimatedImagePreference(mContext);
|
mAnimatedImagePreference = new AnimatedImagePreference(mContext);
|
||||||
|
@@ -535,4 +535,32 @@ public class NetworkProviderSettingsTest {
|
|||||||
|
|
||||||
assertThat(p instanceof NetworkProviderSettings.FirstWifiEntryPreference).isTrue();
|
assertThat(p instanceof NetworkProviderSettings.FirstWifiEntryPreference).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateWifiEntryPreferences_activityIsNull_ShouldNotCrash() {
|
||||||
|
when(mNetworkProviderSettings.getActivity()).thenReturn(null);
|
||||||
|
|
||||||
|
// should not crash
|
||||||
|
mNetworkProviderSettings.updateWifiEntryPreferences();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateWifiEntryPreferences_viewIsNull_ShouldNotCrash() {
|
||||||
|
final FragmentActivity activity = mock(FragmentActivity.class);
|
||||||
|
when(mNetworkProviderSettings.getActivity()).thenReturn(activity);
|
||||||
|
when(mNetworkProviderSettings.getView()).thenReturn(null);
|
||||||
|
|
||||||
|
// should not crash
|
||||||
|
mNetworkProviderSettings.updateWifiEntryPreferences();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateWifiEntryPreferences_isRestricted_bypassUpdate() {
|
||||||
|
mNetworkProviderSettings.mIsRestricted = true;
|
||||||
|
mNetworkProviderSettings.mWifiEntryPreferenceCategory = mock(PreferenceCategory.class);
|
||||||
|
|
||||||
|
mNetworkProviderSettings.updateWifiEntryPreferences();
|
||||||
|
|
||||||
|
verify(mNetworkProviderSettings.mWifiEntryPreferenceCategory, never()).setVisible(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -39,6 +39,7 @@ import android.content.Context;
|
|||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.NetworkCapabilities;
|
import android.net.NetworkCapabilities;
|
||||||
|
import android.net.wifi.WifiInfo;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
|
|
||||||
import androidx.lifecycle.Lifecycle;
|
import androidx.lifecycle.Lifecycle;
|
||||||
@@ -194,4 +195,17 @@ public class InternetUpdaterTest {
|
|||||||
|
|
||||||
assertThat(mInternetUpdater.getInternetType()).isEqualTo(INTERNET_ETHERNET);
|
assertThat(mInternetUpdater.getInternetType()).isEqualTo(INTERNET_ETHERNET);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateInternetType_carrierWifiConnected_getInternetCellular() {
|
||||||
|
final WifiInfo wifiInfo = mock(WifiInfo.class);
|
||||||
|
doReturn(wifiInfo).when(mWifiManager).getConnectionInfo();
|
||||||
|
doReturn(true).when(wifiInfo).isCarrierMerged();
|
||||||
|
mInternetUpdater.mInternetAvailable = true;
|
||||||
|
mInternetUpdater.mTransport = TRANSPORT_WIFI;
|
||||||
|
|
||||||
|
mInternetUpdater.updateInternetType();
|
||||||
|
|
||||||
|
assertThat(mInternetUpdater.getInternetType()).isEqualTo(INTERNET_CELLULAR);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -46,6 +46,8 @@ import android.telephony.SubscriptionManager;
|
|||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
|
||||||
import androidx.slice.Slice;
|
import androidx.slice.Slice;
|
||||||
|
import androidx.slice.SliceItem;
|
||||||
|
import androidx.slice.SliceMetadata;
|
||||||
import androidx.slice.SliceProvider;
|
import androidx.slice.SliceProvider;
|
||||||
import androidx.slice.builders.ListBuilder;
|
import androidx.slice.builders.ListBuilder;
|
||||||
import androidx.slice.builders.SliceAction;
|
import androidx.slice.builders.SliceAction;
|
||||||
@@ -104,8 +106,6 @@ public class ProviderModelSliceTest {
|
|||||||
ListBuilder.RowBuilder mMockCarrierRowBuild;
|
ListBuilder.RowBuilder mMockCarrierRowBuild;
|
||||||
@Mock
|
@Mock
|
||||||
WifiPickerTracker mWifiPickerTracker;
|
WifiPickerTracker mWifiPickerTracker;
|
||||||
@Mock
|
|
||||||
WifiSliceItem mWifiSliceItem;
|
|
||||||
AlertDialog mMockAlertDialog;
|
AlertDialog mMockAlertDialog;
|
||||||
|
|
||||||
private FakeFeatureFactory mFeatureFactory;
|
private FakeFeatureFactory mFeatureFactory;
|
||||||
@@ -127,7 +127,7 @@ public class ProviderModelSliceTest {
|
|||||||
when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
|
when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
|
||||||
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
|
when(mTelephonyManager.createForSubscriptionId(anyInt())).thenReturn(mTelephonyManager);
|
||||||
when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
|
when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
|
||||||
|
when(mWifiManager.isWifiEnabled()).thenReturn(true);
|
||||||
|
|
||||||
// Set-up specs for SliceMetadata.
|
// Set-up specs for SliceMetadata.
|
||||||
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
|
SliceProvider.setSpecs(SliceLiveData.SUPPORTED_SPECS);
|
||||||
@@ -192,7 +192,24 @@ public class ProviderModelSliceTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@UiThreadTest
|
@UiThreadTest
|
||||||
public void getSlice_haveTwoWifiAndOneCarrier_getCarrierAndTwoWiFiAndSeeAll() {
|
public void getSlice_airplaneModeIsOn_oneWifiToggle() {
|
||||||
|
mWifiList.clear();
|
||||||
|
mMockNetworkProviderWorker.updateSelfResults(null);
|
||||||
|
mockHelperCondition(true, false, false, null);
|
||||||
|
|
||||||
|
final Slice slice = mMockProviderModelSlice.getSlice();
|
||||||
|
|
||||||
|
assertThat(slice).isNotNull();
|
||||||
|
verify(mListBuilder, times(1)).addRow(any(ListBuilder.RowBuilder.class));
|
||||||
|
final SliceItem sliceTitle =
|
||||||
|
SliceMetadata.from(mContext, slice).getListContent().getHeader().getTitleItem();
|
||||||
|
assertThat(sliceTitle.getText()).isEqualTo(
|
||||||
|
ResourcesUtils.getResourcesString(mContext, "wifi_settings"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@UiThreadTest
|
||||||
|
public void getSlice_haveTwoWifiAndOneCarrier_getFiveRow() {
|
||||||
mWifiList.clear();
|
mWifiList.clear();
|
||||||
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
||||||
WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
|
WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
|
||||||
@@ -207,13 +224,13 @@ public class ProviderModelSliceTest {
|
|||||||
|
|
||||||
assertThat(slice).isNotNull();
|
assertThat(slice).isNotNull();
|
||||||
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
|
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
|
||||||
verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
|
verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
|
||||||
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@UiThreadTest
|
@UiThreadTest
|
||||||
public void getSlice_haveOneConnectedWifiAndTwoDisconnectedWifiAndNoCarrier_getFourRow() {
|
public void getSlice_haveOneConnectedWifiAndTwoDisconnectedWifiAndNoCarrier_getFiveRow() {
|
||||||
mWifiList.clear();
|
mWifiList.clear();
|
||||||
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
||||||
WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
|
WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
|
||||||
@@ -230,13 +247,13 @@ public class ProviderModelSliceTest {
|
|||||||
final Slice slice = mMockProviderModelSlice.getSlice();
|
final Slice slice = mMockProviderModelSlice.getSlice();
|
||||||
|
|
||||||
assertThat(slice).isNotNull();
|
assertThat(slice).isNotNull();
|
||||||
verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
|
verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
|
||||||
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@UiThreadTest
|
@UiThreadTest
|
||||||
public void getSlice_haveTwoDisconnectedWifiAndNoCarrier_getThreeRow() {
|
public void getSlice_haveTwoDisconnectedWifiAndNoCarrier_getFourRow() {
|
||||||
mWifiList.clear();
|
mWifiList.clear();
|
||||||
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
||||||
WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
|
WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
|
||||||
@@ -250,13 +267,13 @@ public class ProviderModelSliceTest {
|
|||||||
final Slice slice = mMockProviderModelSlice.getSlice();
|
final Slice slice = mMockProviderModelSlice.getSlice();
|
||||||
|
|
||||||
assertThat(slice).isNotNull();
|
assertThat(slice).isNotNull();
|
||||||
verify(mListBuilder, times(3)).addRow(any(ListBuilder.RowBuilder.class));
|
verify(mListBuilder, times(4)).addRow(any(ListBuilder.RowBuilder.class));
|
||||||
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@UiThreadTest
|
@UiThreadTest
|
||||||
public void getSlice_haveEthernetAndCarrierAndTwoDisconnectedWifi_getFiveRow() {
|
public void getSlice_haveEthernetAndCarrierAndTwoDisconnectedWifi_getSixRow() {
|
||||||
mWifiList.clear();
|
mWifiList.clear();
|
||||||
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
||||||
WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
|
WifiEntry.CONNECTED_STATE_DISCONNECTED, "wifi1_key", true);
|
||||||
@@ -274,13 +291,13 @@ public class ProviderModelSliceTest {
|
|||||||
assertThat(slice).isNotNull();
|
assertThat(slice).isNotNull();
|
||||||
assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
|
assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
|
||||||
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
|
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
|
||||||
verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
|
verify(mListBuilder, times(6)).addRow(any(ListBuilder.RowBuilder.class));
|
||||||
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@UiThreadTest
|
@UiThreadTest
|
||||||
public void getSlice_haveEthernetAndCarrierAndConnectedWifiAndDisconnectedWifi_getFiveRow() {
|
public void getSlice_haveEthernetAndCarrierAndConnectedWifiAndDisconnectedWifi_getSixRow() {
|
||||||
mWifiList.clear();
|
mWifiList.clear();
|
||||||
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
mockWifiItemCondition(mMockWifiSliceItem1, "wifi1", "wifi1",
|
||||||
WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
|
WifiEntry.CONNECTED_STATE_CONNECTED, "wifi1_key", true);
|
||||||
@@ -298,7 +315,7 @@ public class ProviderModelSliceTest {
|
|||||||
assertThat(slice).isNotNull();
|
assertThat(slice).isNotNull();
|
||||||
assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
|
assertThat(mMockProviderModelSlice.hasCreateEthernetRow()).isTrue();
|
||||||
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
|
verify(mListBuilder, times(1)).addRow(mMockCarrierRowBuild);
|
||||||
verify(mListBuilder, times(5)).addRow(any(ListBuilder.RowBuilder.class));
|
verify(mListBuilder, times(6)).addRow(any(ListBuilder.RowBuilder.class));
|
||||||
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
assertThat(mMockProviderModelSlice.hasSeeAllRow()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -396,6 +413,11 @@ public class ProviderModelSliceTest {
|
|||||||
return super.getSeeAllRow();
|
return super.getSeeAllRow();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ListBuilder.RowBuilder getWifiSliceItemRow(WifiSliceItem wifiSliceItem) {
|
||||||
|
return super.getWifiSliceItemRow(wifiSliceItem);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean hasCreateEthernetRow() {
|
public boolean hasCreateEthernetRow() {
|
||||||
return mHasCreateEthernetRow;
|
return mHasCreateEthernetRow;
|
||||||
}
|
}
|
||||||
|
@@ -21,7 +21,6 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static org.mockito.Mockito.clearInvocations;
|
import static org.mockito.Mockito.clearInvocations;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -32,7 +31,6 @@ import android.net.wifi.ScanResult;
|
|||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
|
||||||
import androidx.test.core.app.ApplicationProvider;
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
@@ -89,8 +87,6 @@ public class InternetConnectivityPanelTest {
|
|||||||
private WifiManager mWifiManager;
|
private WifiManager mWifiManager;
|
||||||
@Mock
|
@Mock
|
||||||
private ProviderModelSliceHelper mProviderModelSliceHelper;
|
private ProviderModelSliceHelper mProviderModelSliceHelper;
|
||||||
@Mock
|
|
||||||
private FragmentActivity mPanelActivity;
|
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private FakeHandlerInjector mFakeHandlerInjector;
|
private FakeHandlerInjector mFakeHandlerInjector;
|
||||||
@@ -222,20 +218,6 @@ public class InternetConnectivityPanelTest {
|
|||||||
assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT);
|
assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_TEXT_TAP_A_NETWORK_TO_CONNECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getCustomizedButtonTitle_wifiOff_turnOnWifi() {
|
|
||||||
doReturn(false).when(mInternetUpdater).isWifiEnabled();
|
|
||||||
|
|
||||||
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_TURN_ON_WIFI);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void getCustomizedButtonTitle_wifiOn_turnOffWifi() {
|
|
||||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
|
||||||
|
|
||||||
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_TURN_OFF_WIFI);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSlices_providerModelDisabled_containsNecessarySlices() {
|
public void getSlices_providerModelDisabled_containsNecessarySlices() {
|
||||||
mPanel.mIsProviderModelEnabled = false;
|
mPanel.mIsProviderModelEnabled = false;
|
||||||
@@ -255,33 +237,17 @@ public class InternetConnectivityPanelTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSeeMoreIntent_shouldNotNull() {
|
public void getSeeMoreIntent_providerModelDisabled_shouldNotNull() {
|
||||||
|
mPanel.mIsProviderModelEnabled = false;
|
||||||
|
|
||||||
assertThat(mPanel.getSeeMoreIntent()).isNotNull();
|
assertThat(mPanel.getSeeMoreIntent()).isNotNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onClickCustomizedButton_wifiOn_setWifiOff() {
|
public void getSeeMoreIntent_providerModelEnabled_shouldBeNull() {
|
||||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
mPanel.mIsProviderModelEnabled = true;
|
||||||
|
|
||||||
mPanel.onClickCustomizedButton(mPanelActivity);
|
assertThat(mPanel.getSeeMoreIntent()).isNull();
|
||||||
|
|
||||||
verify(mWifiManager).setWifiEnabled(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void onClickCustomizedButton_wifiOff_setWifiOn() {
|
|
||||||
doReturn(false).when(mInternetUpdater).isWifiEnabled();
|
|
||||||
|
|
||||||
mPanel.onClickCustomizedButton(mPanelActivity);
|
|
||||||
|
|
||||||
verify(mWifiManager).setWifiEnabled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void onClickCustomizedButton_shouldNotFinishActivity() {
|
|
||||||
mPanel.onClickCustomizedButton(mPanelActivity);
|
|
||||||
|
|
||||||
verify(mPanelActivity, never()).finish();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -293,26 +259,6 @@ public class InternetConnectivityPanelTest {
|
|||||||
verify(mPanelContentCallback).onHeaderChanged();
|
verify(mPanelContentCallback).onHeaderChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
public void onWifiEnabledChanged_wifiOff_onCustomizedButtonStateChanged() {
|
|
||||||
doReturn(false).when(mInternetUpdater).isWifiEnabled();
|
|
||||||
clearInvocations(mPanelContentCallback);
|
|
||||||
|
|
||||||
mPanel.onWifiEnabledChanged(false);
|
|
||||||
|
|
||||||
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void onWifiEnabledChanged_wifiOn_onCustomizedButtonStateChanged() {
|
|
||||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
|
||||||
clearInvocations(mPanelContentCallback);
|
|
||||||
|
|
||||||
mPanel.onWifiEnabledChanged(true);
|
|
||||||
|
|
||||||
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updateProgressBar_wifiDisabled_hideProgress() {
|
public void updateProgressBar_wifiDisabled_hideProgress() {
|
||||||
mPanel.mIsProgressBarVisible = true;
|
mPanel.mIsProgressBarVisible = true;
|
||||||
|
Reference in New Issue
Block a user