- remove DashboardFeatureProvider.isEnabled() and all relating code
and tests.
Bug: 35764802
Test: make RunSettingsRoboTests
Change-Id: If7796677abc8904b7436525836d50cdef38e37a4
- Added a activity-alias pointing to displaySettings as top level
setting item.
- Refactored all preference logic in DisplaySettings into
PreferenceControllers. During fragment onAttach it installs all
controllers, and during onResume it updates preference state. Each
controller listens to its own preference change event.
Bug: 31800242
Test: RunSettingsRoboTests
Change-Id: Ibc9bf200c5acce7c4ae9292340822afee27a3a28
- Make a SummaryConsumer interface. Things that needs latest summary
should implement this interface (DashboardAdapter for homepage,
DashboardFragment for subsettings). This also decouples SummaryLoader
from relying on SettingsDrawerActivity.
- Make DashboardFeatureProvider more generic to load DashboardCategory
by key.
Bug: 31781480
Test: RunSettingsRoboTests
Change-Id: I9c65456fb433a74c352498251e0ccf65da0be1f0
Merged refreshAllPreferences into DashboardFragment. This hopefully
makes it more modular to manage preference display logic in each
dashboardFragment, and makes it more efficient to monitor category
changes.
Now subclasses needs to implement 2 methods:
- displayResourceTiles(): for 'static' preferences from xml
- getDashboardTiles(): returns a list of dashboard tiles and superclass
will wire it up to preference screen.
If getDashboardTiles() return null (aka no dashboardCategory available),
the fragment will not attempt to monitor category change. The edge case
is that if a package starts to provide a tile for this category, we will
not be notified. I have not seen this case coming up. If we indeed need
to handle this case, the category listener needs to have a way to
monitor specific category rather than globally.
Bug: 31781480
Test: make RunSettingsRoboTests -j40
Change-Id: Ia9f9541b95816214df0d0bb27e3e41078c36c5ca
Adding support to homepage category.
Test: SettingsRoboTests for regression. Will write tests for new feature
soon once we are set on the data structure.
Bug: 31781480
Change-Id: I25fa367fecb643f17e23f0182df7585bf1fcdd02
Bug: 30490325
SummaryLoader needs DashboardCategory to update summary and it currently
ask for it from DashboardAdapter. But DashboardCategory is not always
available in DashboardAdapter. When SummaryLoader wants to get category
from adapter before adapter is ready, it won't have it, causing summary
to appear blank sometimes.
The fix is to get category from data source directly.
Change-Id: I9d7f676954d1cece42d6e03748ab7aa35357f8b7
Once more and probably not for all
Don't let multiple listening state changes get queued, this can cause
rapid changes like listening->not listening->listening. Also store
listening state on the worker thread now that we drop some state
messages and only notify summaries when there is a state change.
Change-Id: I93a5f364e9b35929f9088e044ebefd9be69740e6
Fixes: 28319383
When in doubt, post to main thread.
Also clean up the listening state just in case there were any
doubts about it.
Change-Id: I9ab85781f38b0f694dc46ed5a953506ef10c5778
Fixes: 28319383 (Fingers crossed)
Previous CL accidentally cleared the listening bit too early making
it never actually tell the SummaryProviders to stop listening.
Change-Id: I6af1acc861f6987b33641c40637354c75cf4d708
Fixes: 28306872
The background thread is not stopping listening fast enough and is
resulting in first a receiver leak message followed by a crash when
trying to finally unregister the receiver.
Fix this by adding a registerReceiver to SummaryLoader that will
automatically unregister the receiver on the main thread to ensure
it happens in time.
Change-Id: I0104e929d5505eb53993f6765e4c90120df35cf6
Fixes: 28211606
- Cut down on amount stored in conditions xml
- Remove extra work from dashboard startup
- Move summary to min priority
Change-Id: I51ca3828e4446632d6faa60dcfbab3446d19d335
Fixes: 28134360
Mostly hypothetical fix for weird circumstance where listening
lifecycle gets broken. To fix this, track the current state
of listening in the SummaryLoader and force it into the non-listening
state when released.
Bug: 26027137
Bug: 26731143
Change-Id: I7299749230924eafa3e6e7d5b0de6e48ff014a38
Otherwise the receivers don't get unregistered, which causes a warning,
immediately followed by them actually getting unregistered, which
causes a crash.
Bug: 26027137
Change-Id: Ib55edb4490de960d10036c35d98b8a8e31e13ae1
Use an XML to define the categories that Settings will look for,
and surface enabled activities under those categories as suggestions.
When clicked on the activity will be started for result. If the result
is not cancelled, then the operation is assumed successful and the
suggestion is disabled. Users can also use an overflow -> remove
flow to get rid of unwanted suggestions.
Change-Id: I767abf8efe103af0509bc6b6b55888ae82643512