Commit Graph

245 Commits

Author SHA1 Message Date
lindatseng
083243df76 Fix panel slices title not updated when locale changed
When calling getSliceData from SliceDataConverter, we were returning
the old version of List<SliceData> if there's one already existed.
So when the Locale get changed and we are re-indexing data, we
are still inserting the old List<SliceData> in database.  We should
reconstruct the List of SliceData instead of reusing the old
version here, since we only call SliceDataConverter#getSliceData
when we need to reindex.

Test: Manual verification
Fixes: 126732022
Change-Id: I42a3cf93dc313efefe50a34faabac9e1d616ef6c
2019-04-09 05:41:23 +00:00
TreeHugger Robot
973eff2eb2 Merge "Add prompt to sign in at captive portal to Wi-Fi Slice" into qt-dev 2019-04-05 03:19:22 +00:00
Fan Zhang
b05af56a64 Merge "DND should be displayed on search as slice." into qt-dev 2019-04-05 02:53:12 +00:00
Stanley Wang
bae490bc85 DND should be displayed on search as slice.
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
2019-04-05 02:53:04 +00:00
Fan Zhang
459035a263 Add uri to custom slice PendingIntent.
Discovered flashlight slice sometimes does not work, throwing exception
similar as it b/117445451. Adding a data uri fixes it.

Bug: 129981692
Test: manual
Change-Id: I16bc19027dd342f85aaabbf1a2853bb55564f64f
2019-04-04 16:12:38 -07:00
Jason Chiu
8f6c06974c Add prompt to sign in at captive portal to Wi-Fi Slice
- Support signing in captive portal APs in WifiSlice
- Show ContextualWifiSlice when signing in is required
- Generifies SliceBackgroundWorker.getInstance() to return <T extends SliceBackgroundWorker>

Fixes: 128056349
Test: make RunSettingsRoboTests -j
Change-Id: Ib4d3942591a65e81018389e4c0bbddfea6854dbc
(cherry picked from commit dd9f92280b)
2019-04-04 16:51:02 +00:00
Fan Zhang
b1b07e2030 Convert xml based API allowDynamicSummaryInSlice to java
- Add boolean useDynamicSliceSummary() in Sliceable interface. This is
  the switch equivalent to android:allowDynamicSummaryInSlice in xml. It
  moves the setter closer to regular Sliceable APIs, thus less easily to
  miss.
- Coverted all android:allowDynamicSummaryInSlice to use the java API.
  - Except 2 prefs in my_device_info. They incorrectly set this to true
  previously (controller is not sliceable, no point setting
  dynamicSliceSummary to true. They just won't do anything)

Fixes: 128446156
Test: robolectric
Change-Id: Ic57acd590dec3e87dcf4592df137321d14b854d9
2019-04-01 12:39:30 -07:00
TreeHugger Robot
0847f14097 Merge "Clean up the hard cache in SettingSliceProvider." 2019-03-21 23:23:45 +00:00
Fan Zhang
a8291be3a9 Clean up the hard cache in SettingSliceProvider.
It doesn't need to be a map.

Bug: 129002750
Test: manual
Change-Id: If784dfe4fb497414a04dc5fa8c8374731539d8ed
2019-03-21 14:12:38 -07:00
Yanting Yang
aed7ad5a43 Improve notification slice string on home page
Add ContextualNotificationChannelSlice to show more clear sub title on
notification slice.

Fixes: 128641319
Test: visual, robotests
Change-Id: I650102f4cde7d8d397c7a501ba9ee76c401ba9db
2019-03-20 22:25:59 +08:00
TreeHugger Robot
6ce76c0035 Merge "Sound + Output Switcher on Volume Slice" 2019-03-19 22:49:04 +00:00
TreeHugger Robot
eaf00ae476 Merge "Handle the SQLiteDatabase already-closed problem" 2019-03-18 18:13:27 +00:00
Sunny Shao
c7e094001d Handle the SQLiteDatabase already-closed problem
Remove the database.close in code for handling the re-open an already-closed object:SQLiteDatabase
problem.

Bug: 124451874
Test: robotest
Change-Id: Iff8c0bc5ea092d42cff0a40dfa4324a4de7c90bc
2019-03-18 19:42:09 +08:00
Jason Chiu
d4ab14969f Merge "Fix the bug of "Connecting" is rarely appearing on Wi-Fi slice" 2019-03-18 10:13:56 +00:00
Jason Chiu
4e42f53896 Fix the bug of "Connecting" is rarely appearing on Wi-Fi slice
- AccessPoint treats connected and connecting as equal so slice doesn't
refresh in this case
- Add a new method to determine if two lists are the same in SliceBackgroundWorker
- WifiScanWorker overrides this method to check the access point states

Fixes: 123941320
Test: robotest
Change-Id: I78d610da4b6b1d40f5785ba6701fb71b987fe31c
2019-03-18 16:01:48 +08:00
hughchen
6feb55546d Sound + Output Switcher on Volume Slice
- Show "play media to" item when Previously Connected device is available
- Click "Play media to" to launch output slice
- Update test case

Bug: 127729340
Test: make -j50 RunSettingsRoboTests
Change-Id: Ic00b309f87bc16f540b22b5a43fecb86f76caeb2
2019-03-16 07:04:43 +08:00
TreeHugger Robot
a63fd33c0b Merge "Tie ContextualWifiSlice to UI instead of garbage collector" 2019-03-15 21:41:29 +00:00
hughchen
9e78737483 Remove parameter from uri when get slice
Slice may added parameter in their uri.
When get slice through uri, removed parameter from uri to get correct slice.

Bug: 128651940
Test: make -j42 RunSettingsRoboTests
Change-Id: Id3cb7b91026384ce4e22c157a2908a5e18bc7993
2019-03-15 15:14:16 +08:00
Fan Zhang
4cb2727989 Tie ContextualWifiSlice to UI instead of garbage collector
- Introduce a static long in SliceFeatureProvider that updates once
  every "session". A session is when user is in an UI (screen rotation,
  going to subpage, etc does not break the continuation of session).

- Use session token in ContextualWifiSlice to determine when to refresh,
  instead of relying on WeakHashMap from CustomSliceManager.
  WeakHashMap can be cleaned up at any time by gc so it doesn't match
  what we want on the UI.

- Also as a side fix, merged CustomSliceManager into
  SliceFeatureProvider.

Fixes: 123937830
Test: robo
Change-Id: I199bceceb208b99a32f3f08e624787b5a03e73a9
2019-03-14 14:45:59 -07:00
Fan Zhang
ad29500d1d Use CustomSliceRegistry directly when possible.
This is one step closer to (un)make CustomSliceManager an singleton.

Bug: 123937830
Test: manual
Change-Id: I844d0fb798c73e2af1945ecb667ba73fac9edf72
2019-03-14 13:15:01 -07:00
Fan Zhang
6120d57cbc Reduce scope for some methods in SliceFeatureProvider
Bug: 123937830
Test: rebuild
Change-Id: I62db60e8313fc94324b476642fe27a215b76b33d
2019-03-13 15:33:52 -07:00
Fan Zhang
2fe7e9fc45 Refactor CustomSliceManager.
- Make everything that can be static, static.
- Also removed a unused slice for battery info.

Next step - going to make CustomSliceManager into a regular class
instead of getting it from FeatureProvider. This way it's no longer an
application level singleton, then we can do things like attaching
lifecycle to it. It will be easier to deal with "session" based use case
after the refactor

Bug: 123937830
Test: manual
Change-Id: I384761a6894fa907f72a3610437835c4dd4d1944
2019-03-12 16:42:12 -07:00
Lei Yu
6ebd2ed731 Merge changes from topic "add_cast_volume"
* changes:
  Add SliceWorker for remote volume controller
  Add remote volume slider to sound settings
2019-03-06 23:59:44 +00:00
jackqdyulei
dd00274967 Add SliceWorker for remote volume controller
Also update some methods to fix issues in panel.

Bug: 126199571
Test: RunSettingsRoboTests
Change-Id: I9b93ae594d41cb71b984b06267161455373bf121
2019-03-06 11:31:40 -08:00
Sunny Shao
d5a04e1912 Merge "Handle the IllegalStateException" 2019-02-27 00:25:46 +00:00
Fan Zhang
7c261409d2 Make Serial number preference a copyable slice.
Fixes: 73769621
Test: robotests
Change-Id: Ic20d8865bc26c1acc7db74e665f92fe388d62f74
2019-02-26 13:14:03 -08:00
Matthew Fritze
9e50419c75 Remove NFC Slice jank
The NFC Slice would jank on enable and disable, because of the
intent filter it registered with SysUI. The intent filter would
broadcast an update for four states:
1) On
2) Off
3) Turning On
4) Turning off

The first two caused no problems. The third and fourth caused jank,
since when clicked, the switch in the NFC slice would turn on / off
asynchronously - that is, it turned on or off based on the previous
state of the switch, rather than on the actual value of NFC. It does
this to feel fluid in the app in which it is rendered.

From the off state, the order of events is:
1.  Switch clicked
2.  Switch animates on
2.  Background intent is fired to settings to turn on Nfc (happens at
       the same time as animation)
3.  Settings calls the NFC enable API
4.  A broadcast for Turning On is sent
5.  The receiver in SysUI gets the broadcast and forwards it to settings
6.  Settings tells the Slice to make sure it is up to date
7.  The Slice checks for the current value - IMPORTANTLY - which is
        currently off, it is only in the process of being enabled.
8.  The Slice flips back off
9.  Nfc finishes getting enabled in the background
10. The framework pushes the NFC ON broadcast
11. SysUI gets the broadcast, and forwards it to settings
12. Settings tells the slice to update
13. The slice checks again and finds that NFC is on, flipping on.

This CL creates a new background slice worker for NFC and registers
the intent filter there, rather than in SysUI. When the background
worker gets the broadcast, it checks if it is in state 3/4, and if so,
it drops the update silently.

Fixes: 115737701
Test: robotests
Change-Id: I17043828ad3a67a2a5acdf5c75d9cc51ff7e91d0
2019-02-26 08:20:38 -08:00
Sunny Shao
57a3c8bff7 Handle the IllegalStateException
Handle the attempt to re-open an already-closed object: SQLiteDatabase problem

Bug: 124451874
Test: robotest
Change-Id: I750b2ce98cc2551c80c3bb4f25928e0e5a615cd9
2019-02-26 17:51:17 +08:00
Fan Zhang
e0a722e130 Merge Copyable into Sliceable.
It's only a slice concept. Regular preference copyability is handled in
xml.

Bug: 112427717
Test: rebuild
Change-Id: Iaba7077c320cd03a5963797916a60e0dc80fdbbe
2019-02-25 16:36:04 -08:00
Jason Chiu
dcedd4e2e2 WiFi Slice Polish - Searching for WiFi state
1. Change the font color to be secondary
2. Align the left to the AP list title
3. Update the font for Wi-Fi list to be body font - Roboto regular 14dp

Fixes: 124468947
Test: robotest
Change-Id: I9f41925f7e3938bdf3f444b09eab33d6bf479f57
2019-02-25 17:35:16 +08:00
Fan Zhang
45f961b624 Move some slice related api out of BasePreferenceController
And share with CustomSliceable.

Bug: 121150258
Test: rebuild
Change-Id: Ia5aed9c156fb168c1f001da6e37f7f12f191b385
2019-02-15 14:21:10 -08:00
Fan Zhang
1031901867 Move registered slice set from settings to settingslib.
Bug: 121150258
Test: robotests
Change-Id: I32263de9a755e8902c820fda36096b821a293bcb
2019-02-14 15:16:53 -08:00
TreeHugger Robot
d611df7c48 Merge "Misc ui tweaks." 2019-02-13 02:15:54 +00:00
Fan Zhang
07207c0113 Misc ui tweaks.
- Update conditional card layout
  - move action button from right side to bottom.
  - Get rid of the forking between small/big screens.

- Update a few icons

Fixes: 121189136
Fixes: 124315564
Fixes: 124316920

Test: visual
Change-Id: I205d9995a2d7ed06ad9d32f3cea74f2840a28aed
2019-02-12 16:14:21 -08:00
TreeHugger Robot
2865b1f07b Merge "Handle simplified Slice deep link intent pattern." 2019-02-12 04:21:34 +00:00
TreeHugger Robot
dd1c68b12d Merge "Remove intent-filters from SettingsSliceProvider" 2019-02-12 00:43:03 +00:00
Fan Zhang
f837b899fb Handle simplified Slice deep link intent pattern.
Old intent:
settings://com.android.settings.slices?intent=android-app%3A%2F%2Fcom.android.settings%23Intent%3Baction%3Dcom.android.settings.action.VIEW_SLICE%3BS.slice%3Dcontent%253A%252F%252Fcom.android.settings.slices%252Faction%252Fscreen_magnification_navbar_preference_screen%3B

New intent:
settings://com.android.settings.slices?slice%3Dcontent%253A%252F%252Fcom.android.settings.slices%252Faction%252Fscreen_magnification_navbar_preference_screen%3B

Change-Id: Ia786812c68b5a2b1858203f62494c0d5f5a4a5ba
Fixes: 110156445
Test: manual
2019-02-11 16:25:51 -08:00
Fan Zhang
671a39f905 Remove intent-filters from SettingsSliceProvider
And remove unused methods from SliceDeepLinkSpringBoard.

This is part 1 of b/110156445

Bug: 110156445
Test: atest
Change-Id: Iab36a97332fd847ed911a9e34b505fd4a64522d3
2019-02-11 15:01:10 -08:00
Matthew Fritze
1138218abe Create special case mobile data slice
Build the special case mobile data slice for general use,
and for the Internet Connectivity Panel. The Slice controls
the default data subscription, and links to the subscriptions
page.

Bug: 117804089
Fixse: 119411534
Test: robotests & test app.

Change-Id: I31b524a8fe3182a244d940848090e97250632f39
2019-02-08 13:13:28 -08:00
Fan Zhang
b7f5bcb238 Close slice cursor when done using.
Change-Id: I22f2d5fe990fb43e1694879f27d7c0be26675d2b
Fixes: 123878106
Test: manual
2019-02-05 12:53:41 -08:00
hughchen
2177813531 Add entry point to launch media output slice
Add media output panel type to launch media output slice.

Bug: 121083246
Test: make -j RunSettingsRoboTests
Change-Id: Ibf706146430e309fef6cbf0e1e86c2d5b78b50d5
2019-01-28 12:02:08 +08:00
Matthew Fritze
3f743aecb4 Add NFC Panel
NFC Panel only shows the NFC setting slice, for now.

Title is "NFC", and See More takes you to the Advanced Device Connectivity
page.

Possibly use cases would be for apps that need to enable NFC for their
peripheral, or accessory.

Test: Manual App
Test: robotest
Change-Id: I8538fd0e4501fb83672418591616f28bf2436645
Fixes: 120142616
2019-01-24 12:53:56 -08:00
Jason Chiu
36b37de9d6 Fix the consistency of connection status displayed on Wi-Fi card
- Refresh slice in WifiTracker.onConnectedChanged
- Only expose notifySliceChange to child in SliceBackgroundWorker

Fixes: 123270015
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.wifi.slice
Change-Id: Id5540ebae2746e58e14924665c5e62bf437ebcf0
2019-01-24 14:56:04 +08:00
jackqdyulei
511b5fe9f2 Update SlicePreferenceController
Make sure setSliceUri is invoked even when it is null, where we create
SliceLiveData.

Then in lifecycle, if LiveData is not null, we will register observer.

Bug: 120803703
Test: Manual

Change-Id: I56caf2abf04c4a251ebafa5deb599d44b1c7fe92
2019-01-22 10:43:24 -08:00
Yanting Yang
aa29da44d8 Add Notification Channel slice to Contextual Settings Homepage
Bug: 119831690
Test: visual, robotests
Change-Id: Ia8d020dcdab181497d4ae4bf968ea641b6908622
2019-01-19 17:09:25 +08:00
Fan Zhang
31b210017b Migrate all MetricsProto enums to SettingsEnums
Bug: 122855168
Test: rebuild
Change-Id: I962d9a71179f86b7cae9dc5e9a00e0aa1557dc76
2019-01-17 14:55:42 -08:00
jackqdyulei
35209f6e6c Update height of SliceView
So it can display 6 items at most, not 4 items

Bug: 120803703
Test: Manual
Change-Id: Id34398903d0f81bebee3e02c024d21ad2e68578f
2019-01-11 10:55:59 -08:00
Lei Yu
aa8de12e8d Merge "Add UiBlocker for DashboardFragment" 2019-01-11 18:17:56 +00:00
Console Chen
25dc1f1f0d Merge "Adding the ability to customize the subtitle on an unavailable slice" 2019-01-11 03:07:50 +00:00
jackqdyulei
22904a05b7 Add UiBlocker for DashboardFragment
If DashboardFragment detects blocker controllers, it won't display
until:
1. All blocking controllers finish bg works.
2. Timeout

This CL adds UiBlockerController to control this behavior and
BlockingSlicePreferenceController as an example.

Bug: 120803703
Test: atest SettingsUnitTests
Change-Id: I66fc194776d46ee49b3ec7685f3167834e673ba2
2019-01-10 14:25:43 -08:00