Commit Graph

32 Commits

Author SHA1 Message Date
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
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
Fan Zhang
31b210017b Migrate all MetricsProto enums to SettingsEnums
Bug: 122855168
Test: rebuild
Change-Id: I962d9a71179f86b7cae9dc5e9a00e0aa1557dc76
2019-01-17 14:55:42 -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
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
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
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
jackqdyulei
8eec6ff917 Change packagename to telephony
Also move it under package network, so all of them belong to
com.android.settings.network.telephony.

Bug: 114749736
Test: RunSettingsRoboTests
Change-Id: I35dbdcd5cc9dab939b0a3efccc8897b9a92338d1
2018-10-11 11:46:38 -07:00
Matthew Fritze
7f0a30226a Refactor WifiSlice to CustomSliceManager
Modify the WifiSliceCode to follow the pattern for
Slices that do not match existing UI components.

Test: robotests
Bug: 80263568
Change-Id: Id69e019608777282f4b64ff945e8c30c97aaf577
2018-08-20 08:03:34 -07:00
Matthew Fritze
e8d66bb783 Hide SettingsSlice provider
Explicitly set the Settings SliceBroadcastReceiver to
be non-exported and remove the intent-filter.

Add a second provider: SliceRelayReceiver to receive
broadcasts from SysUI to alert Settings to potential
changes to bound Settings Slices. The new receiver is
exported, but only notifies changes to Settings, and
doesn't make any changes itself.

Change-Id: I80d070f7636614135ebe4f57a16f12a3eb6dee81
Fixes: 111330641
Test: boot, robolectric, Slicebrowser
2018-08-15 15:17:02 -07:00
Matthew Fritze
56b2bad05e Handle special case slices
Create a handler for any slice that doesn't include anything
from a PreferenceController.

Test: robotests
Change-Id: If23947152d61877537d0cac6240e96b9ab977bce
Bug: 80263568
2018-07-09 11:21:25 -07:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
Steven Wu
97915b15d9 Add a flashlight slice in settings.
- It retrieves the flashlight status from Settings.Secure.
- It uses the broadcast relay to update flashlight status
without action on the slice.

Test: robotests
Change-Id: Ib4d636541f5166b8634326cce76aed5665989b76
Fixes: 74913192
2018-06-06 02:59:37 +00:00
Naina Nalluri
6b1869351a Add Wifi calling Preference slice and other cleanup
WifiCallingPreference Slice Provider:
  1. If Wifi calling is not enabled - display message to user
     to enable Wifi calling
  2. Else if Wifi preference is not editable - return a null
     Slice
  3. Else provide a slice with rows - first row giving current pref
     information, followed by preference items (in each row).
     wifi_only is displayed only when it is allowed to display it.
     Each row with preference item has specific intent action.
WifiCallingPreference Slice BroadcastReceiver:
   1. If only Wifi calling is enabled & Wifi preference is editable &
      there is a change in current value modify wifi pref setting
   2. And Ask to re-query the slice in one second to display
      updated settings if 1 is valid or display appropriate message.
Clean-up:
   1. Return null instead of non-actionable slices.
   2. Use getText to get string resources.
   3. Remove unnecessary extra variables.

Bug: 79548264
Test: Use support-slices-demos-debug.apk to test on device
Change-Id: I186f19be2007c2331eaf6195e70b4a9c635adf9e
2018-06-01 11:02:59 -07:00
Josh Hou
606222da7f Add Slices for Enhanced 4G LTE
Add Slices for Enhanced 4G LTE
Enhanced 4G LTE Slice Provider:
Create slice to display appropriate message with further instructions
Enhanced 4G LTE Slice Broadcast Reciver:
1. Change the setting via ImsManager
2. Ask to requery the slice in one second to display updated settings if 1 is valid or display appropriate message

Bug: 79270171
Test: Robotests
Test: Use support-slices-demos-debug.apk to test on device
Change-Id: I48d412de94d5d9f1ad42a299691ec5cf8001c6a1
2018-05-31 10:34:00 -07:00
Matthew Fritze
06600041bc Make summary text update after settings changes
The uri's being pinged when changes happened were incorrect, because
of a hard coded '/'.

Bug: 79779837
Test: robotest
Change-Id: I6735c5a60dc7df6894bd17e67d7702a7ec6c07d4
2018-05-24 13:08:23 -07:00
Chihhang Chuang
3b387a028a Refactor nfc preference controller
- Remove BaseNfcPreferenceController.
- NfcPreferenceController inherit from TogglePreferenceController.
- AndroidBeamPreferenceController inherit from BasePreferenceController.
- Override getIntentFilter in NfcPreferenceController to listen changes.
- Add an API (hasAsyncUpdate) into BasePreferenceController to
distinguish the setting which is updated asynchronously.

Change-Id: I7c9c48ea7f1ad01a02524beabf9d30baa3db891f
Fixes: 67997761
Fixes: 74887543
Test: RunSettingsRoboTests
2018-05-23 13:58:28 +08:00
Matthew Fritze
d2bb2ab259 Add Bluetooth Slice
Bluetooth slice is added a special case, due to the migration of
bluetooth to a Switch Bar instead of a preference with a controller.

Bug: 67997327
Test: robotests
Change-Id: Icfdcd77601ad1e64e0f6c352a8d691f0181515c8
2018-05-21 20:03:24 -07:00
Matthew Fritze
4710917aa4 Add DnD as a special case Slice
Add DND Slice as a special case, since there is an existing
inheritance structures in the zen mode preference controllers which
would be too risky to change at this point in the release.

Test: make RunSettingsRoboTests
Bug: 67997377
Change-Id: Ice608b9a7bd6f38b73e581eb3723f0a2fae96f2b
2018-05-17 18:20:07 -07:00
Matthew Fritze
6feddd6954 Add Wifi Slice
Add a custom Wifi Slice to the Settings Slice Provider.
It needs a custom Slice because of the complicated listener logic
in the MasterSwitchPreferenceController, which makes it hard to
work-in synchronous set/get logic.

The one-off Slice requires extra changes, including:
- Including it in getDescendants
- Handling changes to wifi by the framework

This is the first change that uses SettingsLib's broadcast relay,
which allows settings to (un)register IntentFilters to a Uri,
allowing Settings Slices affected by the framework (quicksettings,
connectivity related, volume, etc) to be updated without action
on the Slice.

Bug: 70622039
Bug: 67997332
Test: robotests
Change-Id: Ibfe4736beecb833e3f6bb871b2eb5228a5fd3a34
2018-05-17 10:16:55 -07:00
Naina Nalluri
6885d85a7c Add Slices for WifiCalling
Add Slices for WifiCalling
WifiCalling Slice Provider:
  1. If there is no activation needed or if the Wifi calling
     is currently turned on - provide the slice to toggle the
     value
  2. Else display appropriate message with further instructions
WifiCalling Slice Broadcast Receiver:
  1. If the action is turning off wifi or if there is no
     activation needed. Change the setting with ImsManager.
  2. And Ask to requery the slice in one second to display
     updated settings if 1 is valid or display appropriate message

Bug: 63731862
Bug: 78192106
Test: Use support-slices-demos-debug.apk to test on device
Test: Robotests
Change-Id: I29e1822fd24ebcff575fa48ad93f84ed91bf4d87
2018-05-14 10:19:15 -07:00
Matthew Fritze
f9f72e8c2c Update Slice APIs to current versions
Change-Id: Icf40673e518534487be77f33427df937717735e5
Fixes: 77982356
Test: robotests
2018-04-19 17:29:18 -07:00
Matthew Fritze
7acd13f3e4 Update a Slice Uri when unavailable
When a slice becomes unavailable, it should not update the
underlying data even if the view has not changed.

When we receive a change from an unavailable slice, notifychange
on the Uri and do not change the underlying data.

Change-Id: I91851ab668e4aece669fd65c14e0dc4ec2edefdf
Fixes: 77980406
Test: robotests
2018-04-17 10:43:26 -07:00
Jason Monk
9b555bf515 Update slice constant reference
Test: build
Bug: 73123786
Change-Id: I9f38f0298bcaace85256639fd285d38a580c90fe
2018-04-10 10:56:32 -04:00
Fan Zhang
87b2634fc0 Log when settings slice is requested/updated.
Change-Id: Ie6b7000729b3a414a29e3dfc25a29e1f2f939ddd
Fixes: 71503986
Test: robotests
2018-04-03 10:15:56 -07:00
Fan Zhang
b5c651c939 Register most app info related controllers in xml
Bug: 77216595
Test: robotests
Change-Id: I79afa38820b7518d8b3112148802797ebcf6d184
2018-03-29 17:55:41 -07:00
Matthew Fritze
fcdfc2d83f Return back-up slices for unavailable settings
When an inline slice is requested, and the setting is unavailable,
we should present more useful information to the user. This CL handles:
- Unsupported: return intent slice to Settings home page
- Disabled for user: intent to the setting page
- Unknown reason: intent to setting page
- Disabled dependency: Create intent-based Slice rather
than the requested inline slice.

Bug: 71640747
Test: robotests
Change-Id: I9c1a0ee36119d4f9f3b205e0824c251f4356db55
2018-03-23 12:47:36 -07:00
Matthew Fritze
ad6678f9fc Add Slider template for Slices
Add the Seekbar preference equivalent
to the TwoStatePreference (toggle) preference
controller abstract controller.

Change-Id: I6ff91f2f72a7f72c18ddbc27b2b1fda4b6ce6ca9
Fixes: 67996707
Test: Robotests
2018-03-22 11:46:47 -07:00
Matthew Fritze
a4a3dfffa2 Declare official platform slice
Create the notion of an official platform slice.
This includes:
- Adding a second authority to the provider
- tagging slices in xml with a platform slice flag
- Including authority in the getUri method

Bug:73359139
Test: robotests
Change-Id: I5382be138a262dbc5a8324c34aab131c5d0d5516
Merged-In: I581ee6dfcdf935f452a15e89e5d055e375ff1877
2018-03-09 18:04:06 +00:00
Matthew Fritze
82254b08fd Add dynamic summaries to Slices
Summary on slices will now determined by checking that
summaries in the following order are valid:
1) SliceData summary
2) Preference Controller summary
3) SliceData screen title

Valid is currently defined as:
- Not empty / null
- Not whitespace
- Not sumamry placeholder

Fixes: 71640678
Test: robotests
Change-Id: I5e699e8566ece80742d311617b7dc4e9a9bda8cf
2018-01-15 16:05:16 -08:00
Matthew Fritze
8c96843fe3 Build slice from indexed data in SliceProvider
Connect the SliceIndexing data to the SliceProvider,
such that a query to SliceProvider can build a Slice
via the indexed data from SlicesIndexingManager.

We take the key from the Uri supplied to the SettingSliceProvider
and find a potential matching row in the indexed data. The
matched data is then used to Build a slice for the caller.

Bug: 67996923
Test: robotests
Change-Id: If51bfd1a05c3f3817ae720554f95a98fc7b002e1
2018-01-10 10:58:33 -08:00
Matthew Fritze
7fddfebf6c Add Slices Data object and DB Contract
Add in a Data object used to represent one row
in a new SQLite database used for building Slices.

The database has the following schema:
- Key
- Title
- Subtitle
- Screentitle
- Icon
- Fragment
- Controller

The key is the preference key.
Title, subtitle and Icon are for UI info.
Screentitle and fragment are for the intent.
Controller is used to get dynamic ui info (like summary),
and to take actions on the slice (like a toggle).

The actual indexing and a Slice will be handled in a subsquent CL,
but a prototype can be found here: ag/3324435

Test: robotests
Bug: 67996923
Change-Id: Id91deb58a3ab89ce1dab5a3f34cdb9ade6263aa8
2017-12-13 10:59:47 -08:00