The SimDialogActivity is used to ask the user questions about which SIM
card to use for various services like calls, SMS, and data. In some
cases of SIM changes (eg when a SIM is added or removed), the telephony
stack sends a broadcast that SimSelectNotification listens for so it can
pop up a general "SIM cards changed" notification, and we additionally
want to bring up an interruptive dialog to ask the user a specific
question. This might happen for instance when we want to ask the user's
permission to turn on data on a SIM.
Recent DSDS changes in the telephony stack have meant that we
accidentally create several stacked copies of this dialog, because they
send several broadcast updates as information about SIMs asynchronously
changes. For instance, we might initially detect a SIM with a generic
name of "CARD 1", and shortly after discover the actual carrier name. So
what we really want is to put up the dialog, and update it as
information changes.
This CL makes SimDialogActivity use launchMode="singleTop" so that
additional copies of the activity won't be launched. Then it internally
enforces only showing one dialog per type of request (calls, SMS, data,
or preferred sim). If we get a request for a dialog that already exists,
we just update it instead of creating a new one for that type. So there
can still be a stack of more than one dialog, but each one will be
asking a different question.
This also refactors the monolithic, somewhat confusing code for showing
the various types of dialogs into a more clearly separated class
hierarchy, and switches to using DialogFragment for the dialog.
Fixes: 126596081
Test: manual (start with device in DSDS mode with 2 subs, remove SIM
card and re-insert it)
Change-Id: I0dbc41dc3b15015389823a24df10bbff08ec6615
ConfirmDeviceCredentialActivity doesn't set a taskAffinity, so the
default taskAffinity is the package name. That's why Settings
unexpectedly open after users turn work profile on. We specified an
unique name to taskAffinity to avoid launching Settings activity.
Fixes: 129330530
Test: turn work profile off then turn it on, repeat
Change-Id: I1f71c3d1bb37a09a6393fae4c01bc9b18cab49a8
.Use the Indexable interface for WallpaperSuggestionActivity and implement the getRawDataToIndex
.Remove the search index in the WallpaperTypeSettings
.Add full class name of the WallpaperTypeSettings into grandfather_not_implementing_index_provider
Bug: 63117104
Test: robotest & Manual View
Change-Id: I73f43e4996efbe857d74df297ea0d08eb1b640ac
Correct name of PRIMARY_SUBSCRIPTION_LIST_CHANGED in manifest.
Also, make sure SimSelectNotification only listens to that intent.
Bug: 128645056
Test: manual
Change-Id: I008e5346ff1e015d1aa57ca31844426e33bd99b8
In various cases when a user has rebooted their device to enable DSDS
mode, the eSIM manager app needs to be able to post a notification that
on tapping will lead the user to the list of configured SIMs (mobile
networks) so that they can they manage things like which one is the
default for calls, SMS, and data.
Bug: 129281152
Test: 'adb shell am start -a android.settings.MOBILE_NETWORK_LIST'
should launch the list of mobile networks available on the device
Change-Id: Ie94d937c803fb5ade09084f2c994cfff888d8aa7
Removed the android:parentActivityName attribute in .Settings$MyDeviceInfoActivity.
Fixes: 128941539
Test: manual test & view
Change-Id: Id5929bd8bcd8b136610fff76e406f62b2ffef8c2
Slices in panels stopped changing the underlying settings.
It is not always reproducible, but the error happend when PendingIntents
started failing to fire, and thus not connecting with the Broadcast
Receiver in Settings dedicated to handling Slice changes.
This fix always highlighted that we shouldn't be using TaskAffinity,
because there is no guarantee 3p apps don't spoof it.
In order to fix both the PendingIntent issue, and to de-dupe activities
from Settings vs Settings Panels: we use 'documentLaunchMode=always' instead.
Fixes: 129006165
Test: manual
Test: atest SettingsPanelTest
Change-Id: If94dd719a2e33c85c04a416868f565f719941234
Use affinity to keep a clear back stack to prevent caller activity from
stopped stage. If there is only NetworkRequestDialog activity in back stack,
caller will not be covered and then only become paused stage.
Bug: 128995251
Test: manual
Change-Id: I552b942810c919a41a690beff523a01aba1e4d0b
We need this for some battery features but don't really think it
needs to be a public API.
Test: can call intent, robotests pass
Bug: 129006417
Change-Id: I1362cea392126c72b20a84e1945d7076c5225b33
In some networks, network validation may only get success
result for http probe but fail result for https probe.
For this kind of network, it may still work at some websites
or apps, but user didn't know about that. In order to fix this
issue, we will check if network has partial connectivity and
notify user to make a choice if they want to use this partial
connectivity or not.
Bug: 113450764
Bug: 128489091
Test: 1. Build pass.
2. make -j44 RunSettingsRoboTests
ROBOTEST_FILTER=WifiDetailPreferenceControllerTest
3. Change captive_portal_https_url to https://invalid.com
to simulate partial connectivity.
Change-Id: I0e87f6f2ede173f45a7b6fcf842b4f9a83d8efa1
This CL will replace the SensorPrivacyTile with a new tile that can be
enabled from the developer settings. When this new tile is enabled only
the camera, mic, and sensors controlled by the SensorManager will be
disabled; the location and airplane mode tiles will not be modified.
The user will be notified when this tile is enabled with the sensors
off icon in the status bar.
Fixes: 126618519
Test: Manually verified the Sensors Off tile was available in the QS page
after being enabled from the developer settings.
Change-Id: I028aa1c836b00e6a8d129e46a925d2d2c2d61759