This is the initial change for updating the suggestion cards:
- add a feature flag to swap between the new and current UI
- change suggestions to a standalone dashboard item. It becomes a
horizontal scroll list that won't collapse/expand.
- the expand/collapse logic now only control the conditions list
- add draft for the new suggestion UI elements, but detail to fine-tune
to match the UI spec will come in following changes.
Bug: 70573674
Test: make RunSettingsRoboTests
Change-Id: I00c901e2598b26a34288fc73fd6031cc26a29ac6
Support v1 is no longer used and we want to keep the codebase clean.
Test: robotests still pass
Bug: 70620533
Change-Id: Ic8af0f34aab510a533bd7a7ec5c059834395baf5
Previously, DashboardFragment stores preference controllers in an
ArrayMap of <Class, AbstractPreferenceController>. Thus when there are
multiple controllers of same class (ie. multiple
PreferenceCategoryControllers), they cannot be stored simultaneously.
This changes the value to a List so we can store multiple controllers of
the same Class without extraneous sub-classing.
Bug: 70949662
Test: All existing tests still pass.
Added
DashboardFragmentTest#testPreferenceControllerSetter_shouldAddAndNotReplace
and DashboardFragmentTest#updateState_doesNotSkipControllersOfSameClass.
Change-Id: I397e8c91977ea1180d48a3af75dd4058bf1175c0
It should use msg.obj to detect whether to start listening, not
msg.arg1.
Bug: 70607303
Test: Build
Change-Id: I55c4d988f0ebb35f4be9039055eba7803c0b082f
BUG:70212757
Test: Settings -> Work profile settings -> Toggle work mode
Test: Turn off work mode -> Settings -> Turn on work mode in the suggestion
Change-Id: Ic5c2c5b141fb8be365c07c70ad1d0291342d7106
LicenseHtmlGeneratorFromXml, LicenseHtmlLoader and indirecly AsyncLoader
shoud be commonly used by Settings and TvSettings.
So this CL will move them to SettingsLib.
Test: building succeeded and tested on sailfish.
make ROBOTEST_FILTER=SettingsLicenseActivityTest RunSettingsRoboTests
Change-Id: I12e9169b1d3d313a6c5da0d575a6526327268381
In monkey test, suggestion service can detach right before UI tries to query.
Change-Id: Ic2eeb81140f5b5d38688fbe92d20f68b9fa48c34
Fixes: 69979152
Test: monkey
- This is unfortunately necessary to avoid a jank when category
load completes before suggestion load, in which case user has to
manually scroll up to see the suggestions.
- We could technically just add scrollTo(0), but that causes the list
scroll on its own within 0.5 second of settings start, and that's bad.
Change-Id: I8dc869a69a5bf11bbf7644b281cc1778dd1a90e8
Fixes: 69068691
Test: visual
Test: robotests
When the dashboard summary is being initialized, it will rebuild the UI
while the summary loader tries to to go through the tiles to update the
summary. Both is being done on a separate backgroud thread, and it will
run into concurrent modification issue if the thread is being swapped
while one is looping through the list.
Instead of letting clients access the list of tiles directly, add a
getter method in DashboardCategory to get a copy of the list of tiles
for all read-only operations.
Change-Id: I479669abd8d1d0a8ee9a4113d8ad2244da56f4d8
Fixes: 69677575
Test: make RunSettingsRoboTests
Query sitemap will return a list of pairs [parent class name, child
class name]. It's up to consumer to figure out the display name later
so the provider doesn't have dependency on localizing any display names.
- Removed SiteMapManagerTest. We will perform the test in
SettingsIntelligence instead.
- Added test for the new provider in instrumentation test (robolectric
doesn't recognize the new constants in framework yet)
Bug: 67359411
Bug: 64938328
Test: atest
Change-Id: Ia973115320e6b7c8cf84d4756db1763ae7010aed
Add feature flag to toggle connected device between new and old
feature.
ConnectedDeviceDashboardFragment will contain new feature will
ConnectedDeviceDashboardFragment2 will hold old feature.
Bug: 69333961
Test: Build
Change-Id: I0ea932c69dea5242129aab994d5142b1f87fbea0
- Remove the old DevelopmentSettings
- Remove references to the feature flag
Fixes: 65522949
Test: make RunSettingsRoboTests -j40
Change-Id: Ie2eb3465127d79a027de6bb58a47bb15e3094f89
- Put memory updates on background thread
- Prevent update state from being called twice
Bug: 69000975
Test: Manual
Change-Id: I186bc25f6b74a5098b1737891efee3a6855dc996
Also moved all other flags in a common file so we can track them more
easily.
Bug: 68825426
Bug: 64938328
Test: rerun robotests
Change-Id: I3fc805054cb960bedd965b1b907be759df50b95d
Now that it controls both night display and color mode,
the NightDisplayController should reflect its expanded
purpose.
Bug: 68258004
Test: make RunSettingsRoboTests -j100
Change-Id: If0ad2539b44daf821fdba83b81de1199ad1ecc21
- Move view initialization from onViewCreated to onCreateView. This
doesn't really improve anything, it simply aligns the code more
with view's lifecycle management.
- Move dashboard category init into background. The init contains logic
invoking packageManager, which can be very expensive.
- Remove any call to DashboardFeatureProvider from SummaryLoader, and
delay the getCategory call until someone calls setListener().
- call updateCategory() from background thread.
Test: rerun app launch test. Avg latency drops back to pre-suggestion-v2
level.
Test: robotest
Fixes: 68761512
Change-Id: I5ec85af08e7b610786e439bda93b3651f5975593
The logic still lives in fragment for now. They will be moved into
PrefControllers in follow-up changes.
Bug: 32953042
Test: RoboTests
Change-Id: I2b03d26b5f4e6bbb37b42f9dc83a9464eb169868
- functionality for hiding portions of the preferences in the preference
screen is added to the support lib. So, changing the settings
implementation to use the feature from the support lib instead.
- remove ProgressiveDisclosureMixin and the related code
Fixes: 63985174
Test: make RunSettingsRoboTests
Change-Id: Ib1d39b2db93d78a56c7adf90abcae5226f9564c2
1. Move getPreferenceScreenResId() from individual subclass to
InstrumentedPreferenceFragment.
2. Removed InstrumentedPreferenceFragment.getTitle() and let the
preference fragments that do not have preference screen set the activity
title directly instead.
3. Removed OptionsMenuFragment as all it does is call
setHasOptionMenu().
- changed subclasses of OptionsMenuFragment to extend from
InstrumentedPreferenceFragment directly.
- none of the exisitng subclasses actually implements the option menu
related methods to provide any option menu. So, the setHasOptionMenu()
call is not added to the subclasses.
4. Update Languages preference title.
- launch the fragment from the preference controller instead of from the
default handling, as we need the title res id at launch time to get it
work properly when retrieving the title from back stack.
Bug: 64564191
Test: blaze-bin/screenshots/android/i18nscreenshots/i18nscreenshots
Change-Id: Ibecdcab32cbaed8bf604ec5ebe0a926b4e489a7d
- Removed calls to disable view. No ripple effect seen even after
the change
bug: 65851388
Test: Manually tested and verified
Change-Id: I876696a3e7351d586e6d045c8b2d07676f96ea9d