Previously the shelf algorithm wasn't applied properly
on the lockscreen.
Test: Add notifications, observe shelf on the lockscreen when collapsing
Bug: 32437839
Change-Id: I7c768e1450a86b5a8731c998ef58212550dfb4bc
Started the implementation of a new notification
scrolling model that dynamically transforms notifications
into a new icon shelf.
Test: Add notifications, scroll!
Bug: 32437839
Change-Id: Ic28cc1c82f2cda2ffa7a312648903b5bc2408820
Viewstates are now much more independent of the
Stack scroller and can be used on their own.
Test: Add notification, everything still works
Bug: 32437839
Change-Id: I535ea9200dcaafef9eb833c2f0301cb09731542f
Data returned via ParceledListSlice is a snapshot of data from the
system, and should not be mutated directly.
In particular, this can cause developer confusion if they call
Collection.remove(), which doesn't actually mutate the value in the
system. There are other mutation APIs that developers should be
using instead, such as JobScheduler.cancel().
Test: builds, boots, common operations work
Bug: 27856974
Change-Id: I72528dee4d79e483aa295bd91d1ed80d0d72d21c
Each CurrentUserTracker has one receiver per one object.
This could cause unnecessary transaction as Tracker counts
increases. The idea of redcuing receiver is creating
one static receiver for CurrentUserTracker and share it
with all object.
Test: Check if Quicksetting order is changed properly
after switching user.
Change-Id: I8404829826391f8b315b42bbd0f50e77b783eeab
The issue is that QSPanel get touch event while brightness mirros
is showing after density changes. This is because StatusBarWindowView
keeps the reference of detached brightness mirror view. We can refresh
it at onViewAdded function.
Test: manual(change device density > Check if can click QuickSettings
while dragging brightness slider.)
Change-Id: I646092abbc23b24bb91fc5c8525b12a143364b84
This matches the newest mocks better than the previous version.
Bug: 32101881
Test: Locally on local Ryu device
Change-Id: I85769215a48b7a4f1e7b52bd7572eb48ca333471
- Ensure that we reapply the minimized offset after applying the snap
fraction to the rotated bounds
- Fixing small issue where we weren't bottom aligning the PIP when the
visible IME changes size (but is not made invisible)
- Also fixing an issue where the touch gesture continually allowed
swiping offscreen even after dragging the PIP a distance. Now, if no
gesture handles the drag, then the default gesture will disallow
offscreen dragging once it handles the move.
- Shrinking PIP slightly to fit proportions of screen.
Test: Enable minimization in SysUI tuner, put PIP into minimized state,
rotate the screen. This is not final UX and the CTS tests will
be updated to reflect this behavior once it is final.
Change-Id: I15c851a0bcf5f867289bc5ad50d298f82a103308
The following behavior was buggy: Home -> toggle recents -> toggle
recents again.
This reverts to using the same model (task stack where older tasks are
first) as other Recents, and only reversing the order when placing
views on screen. Then the same logic as existing Recents implementation
can be used.
Bug: 32101881
Test: Tested behavior locally on Ryu. Existing tests should cover.
Change-Id: I52899af4581921902cd781dee707caea694d27e8
This is a simple first version in the spirit of small, incremental CLs.
It is fully functional but the following will come in later changes:
* Split screen support
* Potential animations
* Alt-tab behavior
* Relayout on orientation changes
The new activity is only started when a specific system property is set.
Test: Tested new activity behavior on local Ryu. Added tests for layout logic.
Bug: 32101881
Merged-In: I550f6e7ea0de3937dbf80e5f0294676cfe567d47
Change-Id: I46a537646e98b312d831510e1d331948888ae5ce
For better reusability in other flavors of Recents.
Bug: 32101881
Test: Behavior is covered by existing automated tests.
Change-Id: Ibe39cbae0b5973210cad478a9c5ab75280ee0ac2
In some cases the recents view isn't entirely occupied by task views.
Taps on the empty space should take the user home, which was mostly
supported except for this small missing part.
Bug: 32101881
Test: Locally on Ryu device.
Change-Id: I264202397f7408608aa444a421765715fb1e74ba
Set up a base class for testing fragments that will generate the host
and run the fragment through some lifecycle checks to make sure it
does ok with standard lifecycle.
Fragment tests will also automatically check for any sort of leaks
related to bindings, receivers, or other callbacks in sysui. This
requires changing the statusbar.policy classes with callbacks to
have a common interface.
Lastly also fixes a few lifecycle bugs in QS found from the above
tests.
Bug: 32609190
Test: runtest systemui
Change-Id: I52007c696c2fd41914bba4ba9d8055f2b564a7d8
Allows fragments to be easily switched over to plugins and a provides
a convenient base class for plugins to use that makes sure the layout
inflater and context point at the plugin's and not sysui's.
Bug: 32609190
Test: runtest systemui
Change-Id: I6503947e980f66ddcd826f6ca9a92b591ce0eb1e
There is now a bit too much of the view/layout logic touching the
fragment, but sort out that later and get something over to fragments
for now.
Bug: 32609190
Test: Manual
Change-Id: Icf677f4a70e6b92892a0fc27a0e673940ebc7a73
Add system to add fragments to sysui windows for better code
modularity and testability.
Bug: 32609190
Test: Manual
Change-Id: I2ae7ed6133aff3fc5cdbdb3ec89d55183b7ac797
Add a way to fake values for settings in tests. Since the content
provider is cached in the NameValueCache, there is one static
FakeSettingsProvider that passes through all values to the
real SettingsProvider by default. Values that are required for
the test can be acquired and locked for the duration of the test
easily.
Test: runtest systemui
Change-Id: Ibc31ac8509fb31a22c522358a9c1bae6ec63553b