Added a module licenses option that lives in Legal information settings.
Clicking that option opens module licenses page, which displays every
module by name, filtered to exclude modules without license files.
Clicking a module in the list opens HTMLViewer.
Created ModuleLicensesProvider, a new ContentProvider that serves as a
redirect for the Uris sent to HTMLViewer so that they open asset files.
In order to provide the redirect, the provider will write the license file
to a file in Settings' cache directory when the license does not exist
in the cache or is outdated. The provider then opens that cached file.
Fixes: 135183006
Test: robotests
Change-Id: I7d69da34780c8c4efb150d0c0411078c12bc80d8
On the SIM details page, the preference leading to a page for
configuring wifi calling will appear based on the results of the
MobileNetworkUtils#isWifiCallingEnabled helper function. That helper
uses the ImsManager to check several conditions, among them both
isWfcEnabledByPlatform and isWfcProvisionedOnDevice.
The page for configuring wifi calling has a tabbed UX, with one tab for
each active subscription that supports it. The WifiCallingSettings class
gets a list of the active subscriptions to determine which tabs to show,
and removes any that don't support wifi calling, but was only using the
isWfcEnabledByPlatform test to do so. This is a problem because the code
for showing the contents inside the tab, in WifiCallingSettingsForSub,
includes a sanity check of isWfcProvisionedOnDevice and calls finish()
if that returns false.
What this meant in practice is that if you happened to have 2
subscriptions where one returns true for both isWfcEnabledByPlatform and
isWfcProvisionedOnDevice, but the other only returned true for
isWfcEnabledByPlatform, then you'd never be able to succesfully use the
wifi calling page at all because the tab for the subscription you
*aren't* trying to configure would always call finish() early.
The right long term solution to this problem is probably to remove the
tabbed UX entirely from this page, since we probably don't need it given
the overall new multi-SIM UX. But there may still be legacy uses and
that is likely a bigger change than we want to make right now.
As a stopgap, this CL just adds a check of isWfcProvisionedOnDevice to
the code for filtering out ineligible subscriptions from the tabbed
interface, which we should have always had anyway.
Fixes: 135591718
Test: make RunSettingsRoboTests
Change-Id: I656c3d3fb30cb6fabcb86685eae38c5f0cd0c6f2
This reverts commit 43374eabb8.
Reason for revert: No longer needed because we are using whitelist for
SMS permission
Fixes: 135213238
Test: presubmit
Change-Id: I182be4a1136521f325866e70e875439c17816ef2
For some kinds of telephony changes that might happen while we're
already showing one of these dialogs, we already get sent a new intent
for the dialog which we internally convert into a refresh of the dialog
contents instead of stacking a new copy on top of the old one.
But it turns out there are some other cases where the telephony stack
doesn't send a new intent for the dialog but *does* send a change event
through the SubscriptionManager, and we want to respond to those as
well. This CL adds a listener for those events.
Fixes: 135276696
Test: make RunSettingsRoboTests
Change-Id: Ifb93ae95f45fda5831e112306dd9361ccaa5119c
(cherry picked from commit 6a1d7e60ac)
That is caused by layout xml changes. The radio button was clickable
in old xml resource. But it is not clickable in new xml resource.
Therefore we can't receive click callback. Fixed by changing
Radio button state when preference is clicked.
Fixes: 135285101
Test: manual, make RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.tts"
Change-Id: Idd7bf37d9ccbc1b56d41978d19dc05c8a81cc49a
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
When the phone is in DSDS mode and the user tries to send an MMS message
from the SIM that isn't the default for data, we need to pop up a
notification letting them know that the action can't succeed unless they
turn on the advanced option to allow data use for MMS messages. This
notification was using the operator name instead of the subscription
display name, so it didn't reflect any renaming the user might have done
to keep track of their SIMs, which is obviously confusing especially if
they have two different SIMs for the same carrier. This CL switches to
using the subscription display name in this notification.
Fixes: 134771858
Test: make RunSettingsRoboTests
Change-Id: I6995bf9dd6d5e9544e26f0d8e30e97c4e73ab783
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
Bug: 131447780
Test: Manual test on device
Test: make RunSettingsRoboTests ROBOTEST_FILTER=RadioButtonPreferenceWithExtraWidgetTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=SystemNavigationGestureSettingsTest
Change-Id: I9fcd1a50c77689118857326de0cf8082e835b491
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
Currently the global opt-in is only available to Game Driver. This change has
added an option to let developers to opt-in all apps to use prerelease driver.
GameDriverEnableForAllAppsPreferenceController is then refactored from
SwitchPreference to ListPreference to support this change.
Bug: 134881329
Test: make RunSettingsRoboTests ROBOTEST_FILTER=GameDriver
Change-Id: I6dcb3a22a4033a576605d42aa80b09db088d4aa2
If we didn't set view and lifecycle for EntityHeaderController,
it only sets "z-order" as 0 for action bar.
So, user sees overlapped problem while user is scrolling view.
For now, we set view and lifecycle as parameter for EntityHeaderController,
then EntityHeaderController can change "z-order" while scrolling view.
Test: visual, robotest
Fixes: 132819126
Change-Id: Ieb01b26e4d6ca4d82f72371620938665de8149a0
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
NfcAirplaneModeObserver added a scenario that
switched NFC off every time a user entered connection
preferences page if airplane mode was on.
Even when a user manually switched on NFC, the observer would still
turn NFC off when re-entering connection preferences page.
GSAM TS.27 certification requires NFC state to be consistent
under AirplaneMode before and after reboot the device.
NfcAirplaneModeObserver breaks the requirement
because it would always switch NFC off under airplane mode
when a user checked the NFC state in settings page.
Fix it by removing NfcAirplaneModeObserver.
Keep the NFC state consistent.
Bug:128384879
Test: make RunSettingsRoboTests / Check Nfc on/off Status
Merged-In: If4c8e47c2509b09e8bc1a464e1ab329b945e3d20
Change-Id: If4c8e47c2509b09e8bc1a464e1ab329b945e3d20
Process privileges like open fds need to be revoked, when this
permission is denied by the user.
Test: Manually verified by checking logs.
Robotest:
atest SettingsRoboTests:ExternalSourcesDetailsTest
Bug: 133504844
Change-Id: I81da0b3a5d6c54e392828829d1a2c43488439504
In Settings, catch the intent from Telephony about SIM combination
warning and show a notification about it.
Bug: 132631355
Test: manual - have two cdma capable subscriptions active, make sure
the notification is sent, and tapping on it leads to the helper page.
Change-Id: Ifd0e13781e4afc3bfd82415b3e51fd10176d9f9d
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
Disables the Gesture navigation radio button if 3P launcher is set as
default for current user. Also shows an info icon on the right side that
opens a dialog explaining why it is disables.
Bug: 129532605
Test: Manual test with 3P launcher
Test: make RunSettingsRoboTests ROBOTEST_FILTER=RadioButtonPreferenceWithExtraWidgetTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=SystemNavigationGestureSettingsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=SystemNavigationPreferenceControllerTest
Change-Id: I90000c74246699fa9391ac042c87d7f0ece03637
This CL is built to make CBRS show correct data usage, by merging
all subscriberId under same groupuuid.
Bug: 133865338
Test: RunSettingsRoboTests
Change-Id: I3c717d0f1a1b95aa21c2ccefe4d1cefb4d854cb5
Audio streams for phone calls in BT device (STREAM_VOICE_CALL) is not
supported in AudioManager.getStreamMinVolume(), fallback to use
STREAM_VOICE_CALL
Fixes: 133812547
Test: make RunSettingsRoboTests
Change-Id: I8e330f60bae2a7cf9cd0cf7288076b8320ccc504