Preferred network list add 5G item, and change "recommended" from 4G to
5G, and add summary for 5G.
Bug: 138544359
Test: 1.fake the device network type bitmask to 5G, UI show 5G list
2.atest EnabledNetworkModePreferenceControllerTest.java :pass
Change-Id: I4a78e2e7fbb067ce841df4aaf1d5161607fdcf90
Replacing TelephonyManager.getNetworkOperatorName() by
Obtaining carrier name from SubscriptionInfo.getCarrierName().
TelephonyManager.getNetworkOperatorName() only be used when there's no
SubscriptionInfo can be found.
Bug: b/140443508
Test: Manual testing
atest MobileNetworkUtilsTest
atest OpenNetworkSelectPagePreferenceControllerTest
Change-Id: I7a86395c86d31fe2ba54c04ac16b1a0ebfc843f3
Hide preferred network mode UI no matter home, roaming or no service
when KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL been enabled.
Bug: 137681413
Test: atest PreferredNetworkModePreferenceControllerTest
atest EnabledNetworkModePreferenceControllerTest
Manual with AT&T SIM card in out of servce and in service
Change-Id: Ia0d1333c6cbae3a3717c8db6b77fbb9ea8cec968
Original behavior will map all APN type if enter empty APN type. But it
sometimes cause problem that MMS or IMS not working when select to this
custom APN. So if the user doesn't enter any APN type, just map to
valure of carrier config 'apn_settings_default_apn_types_string_array'
to avoid all the functions broken.
Bug: 129704611
Test: 1.Enter empty APN type and check if only default is added into
APN. 2.atest ApnEditorTest pass.
Change-Id: Icec274e5b402af06822479bcc60294b347f5254f
If the DISALLOW_CONFIG_MOBILE_NETWORKS admin policy is set, we were
accidentally still allowing access to the flow where you add an eSIM
subscription via the "plus" button on the Network & internet page. While
fixing this, I also noticed that the mobile networks list page (which
only becomes available if you have multiple subscriptions) has a link at
the bottom to start the flow as well, and that wasn't being protected.
The fix for the plus button on the Network & internet page was just to
make sure not to call setEnabled(true) if the preference was already
disabled by admin policy, since that has the effect of overriding the
admin-disabling.
The fix for the mobile networks list page just needed to add the
relevant tags in the layout XML, and then we get it for free.
Fixes: 137627845
Test: make RunSettingsRoboTests
Change-Id: I896ac248f50aaeecc157791938a0a0a98265aa07
The controller for the "Preferred network type" preference on the SIM
details page wasn't listening for changes to the underlying global
setting, so changes to the setting would be reflected in SysUI but not
on this page if it happened to be showing.
Bug: 135667565
Test: make RunSettingsRoboTests
Change-Id: I5dfe4843a681c613f49caf4584e9dbebc54e708a
In general the mobile network details page has several preference
controllers that don't listen to carrier config changes, so instead of
having each one add a listener, we instead just have one listener and
refresh the entire page when we see the broadcast.
Fixes: 135587885
Test: make RunSettingsRoboTests
Change-Id: Iff5b28dbfe12d94c901b442b23cece8e68218983
The launchMode for MobileNetworkActivity specified in the android
manifest is "singleTask", which means that when an intent to it is
launched, if there is an existing instance we will reuse that instead of
creating a new one. But to handle this properly we need to know when it
happens by implementing onNewIntent, which we weren't doing.
Implementing this fixes a bug we noticed that if you have multiple SIMs
and recently visit the details page for SIM 1 but then click on a SIM
selection notification that should bring you to the details for SIM 2,
we'd just bring up the details page for SIM 1 again.
Fixes: 133447239
Test: make RunSettingsRoboTests
Change-Id: Ia9106b15ffde437f6dd6fd2da23336ec5b28f75e
As we don't allow pSIM modem disablment, we should simply use isActiveSubId
to decide whether a subscription's preferences is changable. This will
avoid potential modem bugs that reports wrong modem status that result
in Setting's UX error.
Bug: 135222940
Test: manual and robo
Change-Id: I7cccf2fdab7c89d26dac4daad51cd5d6f3a90eba
In cases where MobileData should not be changed:
- Airplane mode
- No data subscriptions
we will return a null slice, rather than a slice with a no-op intent
attached as a primary action. The problem with the no-op intent is that
Slices assumes all actions are by definition, actionable, and the the
TalkBack description announces that the item is clickable, which it
really isn't.
We will in the future investigate disabled actions on Slices, but this
is the short-term fix.
Fixes: 132924748
Test: Robolectric
Test: Panel tester app
Change-Id: I1d62af32fe2dd985f0b52ea4188651e76f9c90ec
In cases where a SIM is initially disabled, even after you turn it on
the ListPreference's for selecting the default SIM for Calls and SMS
weren't working because the preference change listener wasn't getting
registered. This CL fixes that for these controllers by always
registering a change listener whenever we make the preference visible.
Fixes: 134472294
Bug: 135142209
Test: make RunSettingsRoboTests
Change-Id: Ia9362b7f26309bdbd6c5e8140fb606b28e2b34d8
When intent is null, we will hide wifi calling preference however
its listener might still triggered with null intent.
This CL update controller so it can handle this event inside listener
callback.
Fixes: 135095929
Test: RunSettingsRoboTests
Change-Id: I4c5aba03871f11a2d9f9b4da329c2c2655ff9adb
Our original design for mobile network subscription management included
having an on/off toggle for both eSIMs and physical SIMs. However, it
turns out that our current telephony stack has some problems with
disabling physical SIMs, so for now we're removing the on/off
toggle. Because of this, we've added a footer to the SIM details page
for physical SIMS letting users know that to disable them you need to
remove them from the device.
Even though we're removing the on/off toggle for pSIMs, there are still
a few edge cases where you could end up with a disabled one (eg having
two SIMs in single-SIM mode where the eSIM is active and then you erased
the eSIM). In order to have a way to re-enable the pSIM in these cases,
this CL changes the relevant pref's summary to "Tap to activate <name>"
and makes the tap action begin the re-enabling. This can affect either
the Mobile network pref on the Network & internet main page (if this
disabled pSIM is the only SIM), or an entry in the Mobile networks list
page (if there are still multiple SIMs present).
Finally, this also fixes a problem where we weren't showing the on/off
toggle for eSIMs if you only had one SIM total; we actually always want
to show it for eSIMs.
Bug: 132921553
Test: make RunSettingsRoboTests
Change-Id: Id0750ebd5bed46dc2450b65b53cc81847ef09b82
This adds a switch which appears on the SIM details page for any SIMs
that aren't the default on for data. It lets the user opt-in to turning
on data on this SIM only in the case where there is an active call -
this is needed because in some cases the default data SIM may not be
able to be used when a call is active on another SIM.
Bug: 132114205
Test: make RunSettingsRoboTests
Change-Id: Ie44c56e0f486fd93aff411a0ba0e47d3695a4941
Second user or guest is limited some mobile network access. We need to check current user
is admin or not to decide the preferece page will be found in search or not.
Bug: 133466016
Fixes: 133466016
Test: Manual test & make RunSettingsRoboTests -j56 ROBOTEST_FILTER=com.android.settings.network
Change-Id: I48d3064a8aa28ac1f2ac699b42a999b9682b1b52
We initially landed support for erasing an eSIM subscription in
ag/7208624 for b/124254555 using our own confirmation/progress UI, and
calling the EuiccManager.deleteSubscription method to do the
deletion. It turns out this is a low-level API which doesn't handle some
important cases such as subscription grouping or the eSIM slot not being
active.
This CL changes Settings to just launch an intent to begin an eSIM
Manager flow to delete a subscription that provides its own
confirmation/progress UI, and should properly handle subscription
grouping and making the eSIM slot active as needed.
Bug: 132114333
Test: make RunSettingsRoboTests
Change-Id: Ie59fea37fa73c5e6573e1181e271ffb5d453bd08
When a device is in DSDS mode with multiple SIMs, we show a header on
the Network & internet page with a "connectivity overview", with an
entry for Wi-Fi (if connected) and each active SIM. The icon for Wi-Fi
shows signal strength, but the icons for the active SIMs were just
static; this CL fixes that. It introduces a class for listening to
signal strength changes on a set of subscriptions, and moves some
existing code we had for displaying signal strength (when manually
picking networks for GSM) in NetworkOperatorPreference into a utility
method that can be shared.
Bug: 128855095
Test: make RunSettingsRoboTests
Change-Id: I668cafe1e9f9c3651b1f33783c8538ad9c2732b5
If it is true, then hide:
1. Network Select settings
2. Apn settings
Fixes: 131709441
Test: RunSettingsRoboTests
Change-Id: I203cda570564a41c5bb54a3ad9e60c7f35c0d30c
When you have multiple active SIMs, the Network & internet page has a
header showing entries for each one, with summary text indicating which
one is used for data (and whether it is just set as the default, or
actively using data). We were not properly setting this text when either
data wasn't being used, eg when connected to wifi, or mobile data was
disabled for this SIM. This CL fixes both these problems by adding new
helper classes to listen for relevant events.
Test: make RunSettingsRoboTests
Fixes: 124394250
Fixes: 128857712
Change-Id: I34f2679752fa41a50247dd0b12581cbfd77a34f6
Sometimes we get null sub info which causes a crash. This just
makes it so that if we see that we treat it as inactive since
there isn't really a world where an active null sub info makes
sense.
Test: atest SubscriptionUtilTest
Bug: 131603073
Change-Id: Id5ecbecf011e19ff02d9465e0571b1d17c83de9a
This adds a preference to the mobile network details page that lets a
user delete an eSIM profile.
Bug: 124254555
Test: make RunSettingsRoboTests
Change-Id: I1e266566afc36ff39bf1b1c6d1db674c7c6e8648
During the early phase of work on DSDS, we found that a hacky solution
to seeing duplicate subscriptions that are part of a logical group (eg
Google Fi) was to filter out the entries with empty MNC strings. It
turns out this breaks things for some legitimate eSIM subsctiptions, and
isn't needed anymore because of the fixes that landed for b/127833821.
Fixes: 130706446
Test: make RunSettingsRoboTests
Change-Id: Ic4472c1de3c3e2449139b3e2ffb20d11a0058e8a
- return slice like in airplan mode when mobile data disabled in the getSlice
of the MobileDataSlice
- replace CONDITIONALLY_UNAVAILABLE by DISABLED_DEPENDENT_SETTING in the
getAvailabilityStatus of the MobileDataPreferenceController
- remove the duplicated mobile data item by update data_usage_cellular.xml
Fixes: 130650621
Test: robotest
Change-Id: I42c0983c27d4edb17fcdce7ca386023911254d2d
When a subscription is disabled, we need to hide most things on the
details page. The UX mocks called for leaving in a few things such as
the data usage header and some carrier information, but in tests I've
done it looks like the telephony APIs don't have any of that available
when the subscription is disabled. So for now the only thing left on the
page in the disabled case is the on/off toggle at the very top.
Fixes: 129665956
Test: make RunSettingsRoboTests
Change-Id: I98f4590fca38d03b1e5ff2cf0d2b4876d2adf936