Commit Graph

267 Commits

Author SHA1 Message Date
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
Fan Zhang
0896fa3bee Revert "Remove battery saver condition."
This reverts commit 44b28f4a2b.
Bug: 121115306
Test: robotests

Reason for revert: Change of design

Change-Id: Ia2b9131595d582fd8300367f729fde2b3de81b6e
2019-01-09 15:23:02 -08:00
Console Chen
ce16d7ad63 Adding the ability to customize the subtitle on an unavailable slice
When a slice is depending on some setting and the setting is off,
it shows "depends on another setting".
Add an new attribute for Preference to customize the subtitle when
a slice is unavailable.

Bug: 118399193
Test: Robo test on com.android.settings.slices, com.android.settings.core
Change-Id: I84a8400295b36abb357e5baf98e9be3a8d6ea897
2019-01-08 19:23:04 +08:00
Jason Chiu
e19658ac36 Fix ConcurrentModificationException in SliceBackgroundWorker
- Two different threads could call SliceBackgroundWorker.getInstance()
  at the same time and caused ConcurrentModificationException
- Add a new API overloading getInstance for each slice to get a nullable
  worker since there is no result data then
- Only slice provider can create a new worker instance in main thread

Test: robotest
Change-Id: I560529bb6034ec22263418adeb7f3ccebf879196
Fixes: 121043385
2019-01-07 20:10:49 +00:00
jackqdyulei
dc33747492 Add title support for SlicePreference
Bug: 120803703
Test: Manual
Change-Id: Icc529515a82430aa2cab869b9c85c855e47798ce
2019-01-03 10:35:39 -08:00
Stanley Wang
847c0660a5 Implement the Copyable interface to FirmwareVersionPreferenceController
Copy the device version number to clipboard for Copyable.

Change-Id: Ibb687be442dd702c1197c7e8295fac5b914a7047
Fixes: 121463656
Test: manual and robotests
2018-12-25 11:04:16 +00:00
TreeHugger Robot
9f7927f6d5 Merge "Hide wifi card sometimes." 2018-12-19 17:42:58 +00:00
jackqdyulei
cf6374e427 Build infra to inject slice to PreferenceFragment
Reuse the PreferenceController and LayoutPreference however create
specific one for slice:
1. SlicePreference: container to inject slice view
2. SlicePreferenceController: handle updates for slice

Also add styles for it with default layout.

Bug: 120803703
Test: RunSettingsRoboTests

Change-Id: I6ab083ad57117e6198dcba37702a25213da78719
2018-12-18 14:38:25 -08:00
Fan Zhang
0db4ead2b3 Hide wifi card sometimes.
When there is a connected wifi, we now hide the wifi slice card.

However, if we initially shows this card but later wifi is connected
while the card is visible, we keep showing this card to avoid janky
animation. The card will be gone if user nagivates to a different UI and
comes back.

- Create a new slice ContextualWifiSlice for homepage use case, all
  special logic for homepage are added here.
- Change reference for WIFI_SLICE to CONTEXTUAL_WIFI_SLICE where make
  sense.

Change-Id: Ibd87f88058f357aabef0f7d68a5bf48350d75b06
Fixes: 121040746
Test: robotests
2018-12-18 10:18:08 -08:00
Stanley Wang
3f80d1b64b Implement the Copyable interface to PhoneNumberPreferenceController
Change-Id: I70085cffe13047ac808d1bf08a467f693b1d8737
Fixes: 118398321
Test: manual and robotests
2018-12-14 15:09:34 +08:00
Raff Tsai
86a2afe798 Fix ANR in SliceRelayReceiver
The same broadcast are handled in SliceRelayReceiver and WifiScanWorker.
We will only use WifiScanWorker to handle wifi broadcast.

Change-Id: I32c2fcc699ae240f12bd1049ba33e1792ae123b0
Fixes: 120284615
Test: manual
2018-12-13 10:34:45 +08:00
Yanting Yang
09b130529c Rename ConnectedDeviceSlice to BluetoothDevicesSlice
Bug: 120029006
Test: robotests
Change-Id: I7e39f52a87ebd017bf0635cd5a76945b39eee6fc
2018-12-10 18:33:51 +08:00
Fan Zhang
69a56b42a1 Catch error when we fail to get slice icon.
Change-Id: Ia8bdf1ef8a090d2f939abf27b2308eafde7d8928
Fixes: 120588243
Test: robotests
2018-12-06 12:21:44 -08:00
Fan Zhang
d7fa2fa64e Make a few custom slices implement CustomSliceable.
Bug: 80263568
Test: robotests, slice-browser
Change-Id: Id809a347d77448917154c2d1144fd2517e70829a
2018-12-05 15:47:14 -08:00
Fan Zhang
8a4d854603 Add action/ or intent/ to all custom slice uri path.
Test: rebuild, robotests
Change-Id: Ibb4a071cffb458a9f871aa11ff2737cd40328574
2018-12-04 16:07:40 -08:00
Fan Zhang
66d4f77d2e Set slice uri as data in PendingIntent.
Presenter needs to disambigue multiple slice action PendingIntents, just
setting extra is not enough.

Bug: 117445451
Test: manual
Change-Id: I26e10bc064585e241def72e6b5194c117a9ebc16
2018-12-04 13:21:24 -08:00
TreeHugger Robot
48608219f3 Merge "Add Volume panel" 2018-12-03 21:09:47 +00:00
Matthew Fritze
c999b088d2 Add Volume panel
Volume panel hosts each volume stream, including:
- Media volume
- Call Volume
- Ring volume
- Alarm volume

Change-Id: I1801d10d2304c57615e9499386c638c74ffcd7c3
Screenshot: https://screenshot.googleplex.com/m764j65ECto
Bug: 117804161
Test: Manual app
Test: robolectric
2018-12-03 11:26:58 -08:00
Fan Zhang
4c3251ebab Merge "Replace SliceAction deprecated method" 2018-12-01 18:12:30 +00:00
Raff Tsai
626c6e0b17 Replace SliceAction deprecated method
- Replace new SliceAction with SliceAction.createDeeplink() or
SliceAction.create()

Test: make RunSettingsRoboTests
Change-Id: Ied34469d2220d8220a2dcc6c2fb4d32dd9cd9b8c
Fixes: 119879284
2018-12-01 06:21:01 +08:00
Yanting Yang
b8850fc679 Fix NPE in slice data generation
NPE will be occurred when clients gives invalid slice uri for Settings.
We have defined some rules in getPathData() and it will return null
object when the invalid uri was given. NPE will be happened in next.

Change-Id: I6ebadd4383aee6e69b1c2eb6c84071c961fd72a7
Fixes: 120259627
Test: robotests
2018-11-30 20:25:22 +08:00
Fan Zhang
53f75f0df9 Move all custom slice uris to a registry class.
Change-Id: I192320f95ac81d14c8891ce2531d603912e59f56
Fixes: 119776308
Test: robotests
2018-11-29 16:41:21 -08:00
Matt Fritze
90899e08f0 First commit for settings panels
Establish the Activity which hosts Settings panels through the
PanelFragment. The Activity's purpose is to validate the intent
data coming in, including:
- Called with startActivityForResult (so we can log who is calling)
- Intent has the proper intent extra to link to a Panel

The fragment takes the Panelable data and builds a Settings Panel.
Each panel will have:
- Title
- List of Slices
- Link to underlying content

The Panelable interface is created to provide all of those datums, and
the new FetureProvider provides the Panelables by linking them with
keys. The keys will eventually become public APIs with CTS tests.For
now, we store them locally.

I included an exmaple panel, the InternetConnectivityPanel which
currently shows Wifi and Airplane mode.

Screenshot: https://screenshot.googleplex.com/c6sv7ZzQ5OJ
Bug: 117804089
Test: make -j40 RunSettingsRobotest
Test: Manual app
Change-Id: I1932f7179cc32088acd6413a736901ddf9651892
2018-11-26 15:26:02 -08:00
Raff Tsai
b92e9d4239 Add BatteryFix Slice
Change-Id: I504df1e9caadced71cc37f8be9207ab9fd26f9ab
Fixes: 114807643
Test: manual
2018-11-21 12:25:06 +08:00
Yanting Yang
04eb082bce Add Low Storage slice to Contextual Settings Homepage
Bug: 114808204
Test: robotests, visual
Change-Id: I0c1a02dc40a0a72b7a2ad8f46505325e52bee942
2018-11-15 16:32:12 +08:00
Fan Zhang
a6c7db1888 Update logging: switch a bunch of action() logging calls.
Use generic action(int, int, int, String, int) instead of
action(Context, int, string, Pair...) when possible.

Bug: 117860032
Test: robotests
Change-Id: I5213b52b2b10d80a3c488c37718df81b3b0a428f
2018-11-13 21:50:34 -08:00
Stanley Wang
5d2a3d23e7 Merge "Architecture review of Copyable Slice" 2018-11-06 05:00:05 +00:00
Stanley Wang
51c9404182 Architecture review of Copyable Slice
Design doc: https://drive.google.com/open?id=1NJPd_282H4195HUGJH5cGJO_Jrcz1Vl6AAw_VQOtGq0

Fixes: 	118398321
Test: manual
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.slice

Change-Id: Ic6762e58698a994d16a5de1778b4035ae430a256
2018-11-06 11:01:17 +08:00
Jason Chiu
a68f81540e Enforce all the SliceBackgroundWorkers being singletons at syntax level
- Create workers via reflection in SliceBackgroundWorker
- Store the workers in a static container and release then at shutdown()

Fixes: 118228009
Test: robolectric
Change-Id: I564277d3a12b2d7d3b50cef091bdfedb3397c145
2018-11-05 21:41:30 +00:00