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
It turns out to be more complicated than I had thought to determine if a
device should be considered to support eSIM. But the good news is that
we already had a helper method for this - this CL switches to using it
in some code for DSDS UI.
Fixes: 129061243
Test: make RunSettingsRoboTests
Change-Id: I41e500eb70b6c6b725c0ddf09fe1ca1a69df4563
- Use view's visibility to control which view we should show.
- Slice view can be built with normal height after removing viewFlipper.
Bug: 129438972
Bug: 128689305
Test: robotests
Change-Id: If7e9bd30d5cb5bcd3b9ff9f09cc2eae36543b9e9
- Only swipe the foreground out to have the background revealed.
- Inflate dismissal_swipe_background.xml while swiping.
- Fix the fly-in transition.
- Fix the overlapping problem.
Bug: 129742618
Test: robotests
Change-Id: I5311e50332d0ea0437d1693d075d5c3a2176a443
Tint 87% dark in day mode and 100% white for night mode
Bug: 129413562
Test: make RunSettingsRoboTests -j32 ROBOTEST_FILTER=com.android.settings.wifi.details.WifiDetailPreferenceControllerTest
Test: manual test
Change-Id: Ia31231ca7871ac4efcea5e1232690ff4374df5b3
(cherry picked from commit 86f65ef488)
If we recycle it in OnStop() and this page isn't destoried,
it will crash when we revisit it.
Fixes: 130185099
Test: RunSettingsRoboTests
Change-Id: I4d3c1c12debcccb1ee7d676a1c5accece0b42e09
In a couple of places we were showing DSDS UI using the list of
*available* subscriptions instead of the list of *active* ones. This
difference is relevant for instance if you have multiple eSIM profiles -
in typical hardware only one of those can be active at one time. This CL
fixes that problem in two places:
1) The header at the top of the Network & internet page
2) The ListPreference's on the mobile network detail page for selecting
the default subscription for Calls / SMS.
Fixes: 129673046
Test: make RunSettingsRoboTests
Change-Id: I891c856bdd4516286fcee1067684d9161ceaca80
The exit flag can be set by a variety of things, such as when package is
removed, or package is invalid (hidden mainline module). Loading such
packages changes the internal state of ApplicationsState class (an app
singleton), which leads to inconsistencies later.
Fixes: 130166465
Test: robotest
Change-Id: Ib09240cb694fa16692914a7aa9ce354869615c2d
- We won't query recent apps in getAvailabilityStatus().
And then we do that in background thread.
So, we can launch app & notificatins screen as soon as possible.
- Create a RecentAppStatsMixin class which is responsible
for maintaining the recent apps data.
- Controllers and fragment update their UI after they got
onReloadDataCompleted callback from RecentAppStatsMixin.
Test: manual, robotest
Fixes: 128849426
Fixes: 126453868
Change-Id: I636d5878cb5d53496978fe613c625382d8d382bc
CBRS subscriptions (also known as "opportunistic" in the code base) are
data-only and it should not be possible to try to set them as the
default for Calls or SMS.
Fixes: 125855327
Test: make RunSettingsRoboTests
Change-Id: Ie20ef21ccc7b27315089f6a61cceb6e1512ec373
Remove the divider above the media device switcher Slice per the request.
Do a little refactor in Panel View, to use DividerItemDecoration instead of adding
divider views in layout file as the recycler view items divider.
Since dividers should be shown in most cases, we are setting DividerCondition to
DIVIDER_CONDITION_BOTH and default true to allow divider. For the slice we don't
need divider (media device switch in this case) we are setting the the target
direction of isDividerAllowed (above in this case) to false. Since we have
DIVIDER_CONDITION_BOTH, if one of the item view set the divider not allow, the
divider won't be shown.
Test: Visual/Manual inspection
Fixes: 126205139
Change-Id: Ic857705c90819ef9375f877a44bb32987b5d4438
Add ZenModeSoundSettingsPreferenceController extends ZenModePreferenceController,
and update availability status to AVAILABLE.
This is cherry-picked from ag/6897872
Change-Id: I8dcb6808cc21c4f5c06548a363c998e369646487
Bug: 129320642
Test: manual & robotests
Location is required for Wifi Direct so if it is not enabled
we disable the preference. Additionally, this fixes some minor
update issues in Wifi Wakeup that was also affecting wifi p2p.
Basically they weren't updating when location settings changed
until you left the screen and came back. Now they do.
Test: robotests, manual
Bug: 120552223
Change-Id: Ibd386fcfbef881cae3d871152675f1cab5e4a041