92 Commits

Author SHA1 Message Date
Adrian Roos
7d7affe313 Merge \\"Doze: Add config for fine grained proximity checks\\" into nyc-mr1-dev am: 4ba23f30b5
am: e0cac111db

Change-Id: Iff1af5e273af306190539a91fed0876f19b38888
2016-07-15 23:25:31 +00:00
Adrian Roos
4ba23f30b5 Merge "Doze: Add config for fine grained proximity checks" into nyc-mr1-dev 2016-07-15 21:09:51 +00:00
Jason Monk
b55c3c60a8 Merge \\"QS: Don\\'t use ComponentName to identify tiles\\" into nyc-mr1-dev am: a0967ebbdf
am: 356d4914b2

Change-Id: I83fad6237edfb9516e1fe40612b820c319f26cc5
2016-07-15 20:16:44 +00:00
Adrian Roos
5753f05e85 Doze: Add config for fine grained proximity checks
Bug: 29619338
Change-Id: Ic9ff7fc78f47873858881c1a4ac14bc2b834ab84
2016-07-13 12:34:23 -07:00
Adam Lesinski
38e89667e3 Build SystemUI and Keyguard with AAPT2
Bug:29462255
Change-Id: I0bd6da7da21927d185ff230c81aac390cfa8029d
2016-07-07 12:23:02 -07:00
Adam Lesinski
8138058a46 Revert "Build SystemUI and Keyguard with AAPT2"
Looks like SystemUI's manifest may be corrupt.

This reverts commit 91f576081fe67f2742980f75c17d11e36f7c60e1.

Bug:29939875
Change-Id: I06e5f3cbc4629a67d254a8fcfcb9749b317aef5f
2016-07-01 19:46:55 +00:00
Jason Monk
ee68fd889c QS: Don't use ComponentName to identify tiles
Evidently some apps redirect/obscure tiles in a way that makes
creating a ComponentName from the TileService useless.  Instead
generate a token which will be a much more stable way of identifying
tiles henceforth.

Change-Id: Id68550bcdcdc3e3987f09380f258610e7a5aca85
Fixes: 29121793
2016-06-30 14:49:50 -04:00
Adam Lesinski
91f576081f Build SystemUI and Keyguard with AAPT2
Bug:29462255
Change-Id: I9a886b4d17a7dbc4cfd7b4f8d398138f00df04a7
2016-06-29 21:38:34 -07:00
Jason Monk
6831aee5fa Merge \\\"QS API: Fix mService and mTile being null once and for all\\\" into nyc-dev am: fc70b07385 am: c552a36992
am: 6a06372bb9

Change-Id: I8164179f96be4195bcafb3528e8dcbc45946bee2
2016-06-17 21:49:07 +00:00
Jason Monk
a3453b8bd9 QS API: Fix mService and mTile being null once and for all
Change-Id: Idd82e4c2f6cfc2b30432e15e23963c1d7a959e43
Fixes: 29121793
2016-06-17 13:04:05 -04:00
Jason Monk
b3bd312637 Merge "Don\'t show data disabled icon when user isn\'t setup" into nyc-dev am: ede4fcea6b am: a629f50398
am: 6815912e3b

* commit '6815912e3b928faf3113498e4bc3d0b0172abc57':
  Don't show data disabled icon when user isn't setup

Change-Id: I3971a2b524f4c506b9cbe8e474819dfa31019b99
2016-04-29 18:11:30 +00:00
Jason Monk
fd57ea730e Don't show data disabled icon when user isn't setup
Change-Id: I2d540b8c0cb613cbf120ffadc404ee03d0447a8b
Fixes: 28246388
2016-04-29 13:37:58 -04:00
Yao Chen
634acb9712 Add CarVolumeDialogController in SystemUI for Android Auto.
Cars usually have an external audio module. When Android is serving as
the car's headunit, users should be able to adjust the car's volume
through SystemUI. The following changes are made to make it work:

+ Load VolumeDialogController from SystemUIFactory
+ Added CarSystemUIFactory
+ Added CarVolumeDialogController which extends VolumeDialogController
  and it uses CarAudioManager as source of truth for volume controls.
+ Some refactor in VolumeDialogController to make it easier for
subclasses to override volume controls.

Note that CarAudioManager does not completely replace AudioManager.
Majority of code in VolumeDialogController still applies in the car use
case, so I made CarVolumeDialogController a subclass of
VolumeDialogController instead of making them peers.

Bug: 27595951

Change-Id: Id4adec7281e41aa71f3de034e5b88a32a89be305
2016-04-19 14:50:10 -07:00
Jason Monk
aa336f8926 Merge "Allow mode of TileService to be changed" into nyc-dev 2016-04-08 19:37:55 +00:00
Jason Monk
97d2272be0 Allow mode of TileService to be changed
Since the mode of a tile service was set in onTileAdded, it couldn't
be controlled by developers if they updated their tile.  To handle
the mode has been moved to a boolean meta-data flag to indicate
a tile should be an active tile.

Bug: 28043969
Change-Id: I6403d34f8cb70809edc07769389d5a1f835c1ab3
2016-04-08 11:42:57 -04:00
Jason Monk
f30b5ca1b1 Make QS tile lifecycle tests less flaky (hopefully)
Change-Id: I387c774267c076cf244d2870b051ad6d586d3564
2016-04-06 12:54:26 -04:00
Jason Monk
0c6e099482 Fix tests and tag them for continuous testage
Change-Id: I25d7d34ff8c12308755be6567aae1db009b59a4d
2016-03-29 15:49:02 -04:00
Jason Monk
e06b065f6e Fix QS edit state being out of sync
Do this by making SignalCallbacks send out initial state immediately
rather than posting this state.  This requires a little refactoring
to how SignalControllers work.

Bug: 27061469
Change-Id: Iba6b91a4a5d1d13cce0f0d308b6f85f0340bff39
2016-03-02 16:35:27 -05:00
Jason Monk
46dbfb475f Handle density changes in QS
Bug: 26845796
Change-Id: Icc783c9d706382e553df49f699aaf44aac943d18
2016-03-01 11:08:19 -05:00
Jason Monk
f6a3cf9291 Add tests for TouchAnimator
Also fix existing tests

Bug: 27392084
Change-Id: I70299512e8fa3e0cb86c868b47df7703e04d6084
2016-02-29 13:01:08 -05:00
Adrian Roos
4cc2a58ed2 Fix duplicate eventlogtags warnings
Moves the protos and event log tags into a library,
so the build system doesn't think they're duplicates.

Bug: 27151225
Change-Id: Ic96b6b811d4813a4c48940081ea77b12fb23f0bc
2016-02-25 09:28:13 -08:00
Jason Monk
34a5cef629 Let SysUI watch TileService's dialog lifecycle
That way it can better handle tokens and service binding.

Change-Id: I9b882181ecbe52a65e731a2c45f1d296315884b4
2016-02-01 15:04:29 +00:00
Sid Soundararajan
b58c46acec Initial Commit of a Horizontal Grid View based recents UI for TV.
Change-Id: I048210e6fc91abafa41300ccb219b7bb9c84e835
2016-01-28 11:13:23 -08:00
Xiaohui Chen
e9dab0dade DO NOT MERGE sysui: remove shelf
Bug: 26742568
Change-Id: I36bd013c4adb62b76b6f2789aa490c1484a535d7
2016-01-26 11:31:51 -08:00
Jason Monk
f668d7cceb Support data usage changes in Settings
Change-Id: I78c6a3956e7136c3ed64d9323d3fe74df2898c5d
2016-01-16 11:18:59 -05:00
Jason Monk
561e219033 Merge "Round out the QS API" 2016-01-13 19:07:33 +00:00
Jason Monk
5bdfd8c126 Get data type from service state as well am: 67b2c16a9a am: 05130f3f23
am: 8ced692e44

* commit '8ced692e445526a74d51391f2c7c30bd43322d46':
  Get data type from service state as well
2016-01-13 18:46:13 +00:00
Jason Monk
9429513cc3 Round out the QS API
- Add startActivityAndCollapse, to make collapsing the shade easy
 - Add isSecure()
 - Add isLocked()
 - Add unlockandRun(Runnable)
 - Add unavailable, active, and inactive states

The states are added to allow consistent UI across OEM devices, by
allowing UI tweaking and tinting to match system tiles with custom
ones.

The combination of isSecure() and isLocked() and unlockAndRun(Runnable)
allows all combinations of launching show when lockend and triggering
an unlock when needed for sensitive tiles.

Change-Id: Iade98ad9f2c22aa174e62090d8ccd44c86f3bb3c
2016-01-12 17:27:52 -05:00
Jason Monk
67b2c16a9a Get data type from service state as well
Bug: 26276354
Bug: 26413831
Change-Id: Ic080300db7d5e5200caf611cc2ee1ef3af93736e
2016-01-12 10:24:09 -05:00
Jason Monk
66c89c15a0 Add API for System QS tiles to set status icons
Allow system apps that have a Quick Settings tile to show a
status bar icon.  If the quick settings tile is removed, the
status bar icon will no longer be shown.

Change-Id: I875b962bbdf4ff863012de688a3dd29a8d7e11ab
2016-01-08 08:54:13 -05:00
Jason Monk
fe8f6826ce More QS Tile modes in the API
Allow tiles to request when they are bound instead of doing it
automatically for them when in the listening state.  Only one
of these modes is allowed for a given tile, meaning it can either
push updates when it thinks they matter, or it can be told when
to update.

Change-Id: I165b39dddb836df90d253aeb5ebea48e62ea0dae
2016-01-05 11:08:05 -05:00
Jason Monk
d5a204f16e Better service management for QS 3rd party tiles
Better wrapper around the service that will handle rebinding
when it dies, binding when it becomes available, and forwarding
along all messages to the service once it binds.

Also better handling of too many services at a time.  Will only
ever bind to at most 3 tiles and will manage which ones are most
important to show based on pending clicks, last update, etc.

Change-Id: I5f4da0bc751f7eb25baa32e5c0bb9f1bc418f5bb
2016-01-04 14:46:11 -05:00
Jason Monk
87ccd55e8a Switch Tuner to support prefs (and some improvements)
Change-Id: I2ef62c0c56d4af69f9f34e1cfd297999d59b7da6
2015-12-16 19:41:25 +00:00
Winson
c29ff0025b Adding history view.
- Initial changes to show a history view within Overview (behind tuner
  flag)
- Restoring the task view dim in the stack

Change-Id: I0503d11768736c86f3145942404391dfacd0ddd6
2015-11-25 11:42:19 -08:00
Jason Monk
46c4a32ed9 Fix build
Change-Id: Ib784f3b8e1f8e5166128a86d07b43859ee803765
2015-11-18 10:40:34 -05:00
Jason Monk
4cf95aef83 Move some stuff to SettingsLib to use for Settings Home
Change-Id: Id903747069fe83a896132714e580b1a1d7ee895c
2015-11-18 10:06:54 -05:00
Winson
190fe3bf88 Refactoring secondary user recents logic.
- Removing old broadcasts in favor of direct aidl interface between
  system and secondary users.  Also moving user specific implementation
  into RecentsImpl, allowing Recents to handle proxying between users.

Change-Id: I4bd5ef1d1ee47309b7c754f50a5e8b2e2aab988f
2015-10-22 12:26:21 -07:00
Vadim Tryshev
4b1542a451 Fix accessibility labels for app icons.
Derive the app labels in a right way.
Not forgetting to get accessibility labels for newly dragged-in apps.

The change adds inefficiency with apps getting repeatedly resolved several times,
which is OK for a prototype, but I have plans to optimize this.

Bug: 20024603
Change-Id: I755d38de34c016d0ec31ecc617f7accfd876693b
2015-09-17 11:13:20 -07:00
Vadim Tryshev
4dc0c15a6a Making sure that after a rotation Shelf shows latest set of pinned apps.
2 copies of NavigationBarApps (for vertical and for horizontal orientation) share a single
static copy of NavigationBarsAppsModel.
If the active orientation's view made changes, they are not conveyed
to the inactive one, and if we rotate to show the other view, it will show
stale data.

The fix introduces an event generated by the model, which allows the invisible
shelf to get updated when the visible one makes changes.

Bug: 20024603
Change-Id: I0d749dbac700857b081bce8a5a232f24ba271b25
2015-09-16 16:11:53 -07:00
Vadim Tryshev
8786f3cfa8 Clarifying and stabilizing drag & drop
The existing Shelf DND crashes if profile or app removal happens
while dragging from outside of shelf. This is because in this case
shelf temporary adds a null placeholder enter to the model, and
doesn’t check for nulls in user-removed and app-removed callbacks.

Adding checking for nulls.
In addition, since adding nulls muds the contract between the
shelf view and its model, I’m getting rid of adding null entries
to the model. Nulls are used on the view side, but never leak to
the model.

Because of that, the state of the view (which may have nulls) and the
mode may not match each other during the drag, I introduce storing
app data in views, as a tag. Null tag means a drag placeholder.

Now that the state of the model doesn’t always follow the state
of the shelf via add/remove operations, it makes sense to introduce
set-all/get-all calls in the model, instead of add/remove/get(i)
calls.

Again, all these changes, even though relatively massive, add clarity
into the view/model contract by eliminating strange states where the
model can have nulls in certain positions.

Also fixing a case when removing an app while dragging it happily
creates an icon.

Bug: 20024603
Change-Id: Ie4e617ccf9278708d64ee100265a4858d1227aed
2015-08-28 11:57:17 -07:00
Vadim Tryshev
2e8c5bfd6d Adding more checks for apps coming from saved prefs and from DND.
Bug: 20024603
Change-Id: Icb17c4adb55856e027a0443e19c7147c36bc37f4
2015-08-26 15:45:00 -07:00
Vadim Tryshev
ddcc49fead Merge "Using actual users in more places." 2015-08-25 19:05:10 +00:00
Vadim Tryshev
39810767b0 Using actual users in more places.
Fixing an issue when installed apps in Guest user were treated incorrectly.
This happened because we used APIs using the systemui current user (0),
not the app's user.

Also, switching AppInfo from user's serial numbers to UserHandle. Earlier,
I declared that user ids (not serials) is the "lingua franca" between different classes,
so, this move is along these lines. In addition, this is simply more convenient.

Bug: 20024603
Change-Id: I749d900aa17083a41e4215c6587ae5ccaa31f5eb
2015-08-24 18:05:31 -07:00
Blazej Magnowski
c3866bf81f Merge "System to track touch and sensor events before unlocking the phone" 2015-08-22 01:25:18 +00:00
Blazej Magnowski
7232332dc9 System to track touch and sensor events before unlocking the phone
Added a new component which tracks touch and sensor events and
also events like showing the bouncer tapping a notification and
others. The collection is enabled when the screen is turned on and
is disabled after the phone is unlocked. The data is saved in a
protobuf file in internal storage in a directory called
"good_touches". There is also an option to collect events which
end with the screen turning off. These are saved in the
"bad_touches" file. Everything is hidden behind the
ENABLE_ANALYTICS flag which is set by default to false and can be
turned on only if Build.IS_DEBUGGABLE is true. Also
behind the ENFORCE_BOUNCER flag the class shows the bouncer before
expanding a notification, showing quick settings or launching an
affordance from one of the bottom corners.

Change-Id: Iaeae0fb7a0d9c707daf7a270201fa5b1cd84c74a
2015-08-20 16:05:14 -07:00
Vadim Tryshev
1bec0c472b Checking for unlauncheable apps.
When loading apps from prefs, detecting apps that cannot
be launched (for example, were uninstalled) and not adding them
to the shelf.

Also watching for apps that become unlauncheable while the shelf
is shown, and removing them as it happens.

Bug: 22694757
Change-Id: Iab9494f0480e9bf4438b72a94041002be010334f
2015-08-19 15:06:56 -07:00
Vadim Tryshev
e983fd88b4 Eliminating “-1” user serial numbers.
These users required special treatment and complicated code development.

Now simply always using the actual value.

Bug: 22609426
Change-Id: Ife44de442de455248ae7a8ebf8655ddbc4c289d4
2015-08-12 16:57:55 -07:00
Vadim Tryshev
94d469bba4 Adding multiuser support to the shelf.
All users are stored in same SharedPreferences file. User serial number is included in the preference key.

Prefs for deleted users get cleaned up upon switching to a new user.

Bug: 22853745, 22609426
Change-Id: I7f774483bc660ed5b1e8115da9b468a291488723
2015-08-05 12:12:13 -07:00
Jason Monk
810796ca6a am 3bc1702c: am da808d29: am 3623f314: am ea0ad979: am fbcbad13: Merge "Add sizes to SysUI tests" into mnc-dev
* commit '3bc1702c1a789fd490e815916ce6b2df43b7002b':
  Add sizes to SysUI tests
2015-07-29 02:10:43 +00:00
Vadim Tryshev
c5f860cea0 Storing and using user id for pinned shelf apps.
We need this to differentiate between starting apps for the primary and
managed users.

This in particular solves the issue when apps were executed as Owner
while we are in Guest account (see the bug).

Valid user ids for a shelf app are either primary or a managed (work)
user for the profile.
Launcher allows mixing apps for for primary and the managed users on
its home screen. Apps for the managed user are marked with a suitcase
badge.

Launcher includes a user id in the drag and drop info that it sends to
SystemUI, as “profile” extra added to the intent.

Shelf now stores this user id and uses it to start apps.

Bug: 22609426
Change-Id: Id4c6c1ac8617a83f4484f78db578955699d1a888
2015-07-28 07:34:32 -07:00