59 Commits

Author SHA1 Message Date
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
Jason Monk
e427cb8076 Add sizes to SysUI tests
Change-Id: I27e4a60e2658d3a5db32cdeb73bd0a031865ce86
2015-07-28 10:06:01 -04:00
Jason Monk
3e946a212f am 17127a3c: am 184044e4: am 42caf399: am e648ccbb: am 157ad64d: Merge "Fix emergency only when no sims" into mnc-dev
* commit '17127a3cb603876223949f4475bdc94a2a782b85':
  Fix emergency only when no sims
2015-07-24 05:15:15 +00:00
Jason Monk
b0808aab0c Fix emergency only when no sims
Need to look at a ServiceState to determine if we are actually in
a emergency only state.

Bug: 22619451
Change-Id: I06a2a6fab85ed2ce41d8f7cbb98a1f169ec61b33
2015-07-23 14:20:18 -04:00
Jason Monk
be79896435 am d2fb90f4: am f4b54d2d: am eddcee21: am 5ef8188f: am 58599104: Merge "Remove data icon for WFC" into mnc-dev
* commit 'd2fb90f47ecf9a07cccca5865683b3ac4f469af1':
  Remove data icon for WFC
2015-07-09 20:10:20 +00:00
Jason Monk
e9a12c2476 am 18b2242d: am f98efaeb: am 6f85d1f5: am de5df114: am 8969817a: Merge "Fix roaming icon when not default signal" into mnc-dev
* commit '18b2242d01363e8f03ba420d5ed8e155c361759e':
  Fix roaming icon when not default signal
2015-07-09 20:10:13 +00:00
Jason Monk
5859910463 Merge "Remove data icon for WFC" into mnc-dev 2015-07-09 18:55:06 +00:00
Jason Monk
7150d7fa35 Remove data icon for WFC
Bug: 22095746
Change-Id: I0ca8420c2d88425cbb6da5fcc02c083355e933e9
2015-07-09 10:14:12 -04:00
Jason Monk
61633f1861 Fix roaming icon when not default signal
Bug: 22183802
Change-Id: I0d38f23d81b79e53e3d92db8c6f6a1455a94da4c
2015-07-08 14:19:25 -04:00
James Cook
bd8b81717b Persist navbar app icon list to disk
The icon list is stored in SharedPreferences under
com.android.systemui.navbarapps.

* Introduced a separate data model class for the navbar app list
* All icons are now loaded from PackageManager, not from LauncherApps
* Added test for NavigationBarAppsModel

Bug: 20024603
Change-Id: I0eb3b9e927d3311818096cfd484d6f5a81acbbc7
2015-07-07 22:50:32 +00:00
Jason Monk
c6cc6266c9 Fix EmergencyCallback in NetworkController
- Do some cleanup so that things are more testable
 - Test emergency callback since its possible
 - Fix emergency callback in no sims case

Bug: 16218652
Change-Id: Ic859eff732cc11c5ae8aa6ced3584905bbe215c7
2015-06-11 11:10:15 -04:00
Andrew Flynn
55fc8004ad Show Carrier Network Change icon SysUI even while connected
Taking connect/disconnect events into accounts results in frequent jank
while trying to show the icon.

Bug: 21504588
Change-Id: If271980cc46cfc20f80083de17a4b57c42439069
2015-06-02 12:41:53 -04:00
Andrew Flynn
2fdbe12820 Remove separate light/dark animated vector drawables
Now that AnimatedVectorDrawables can use themed animations, SysUI no longer
needs to track separate AVDs for the carrier network change icons.

Bug: 21118142
Change-Id: Ifb6d7b5e7e3de85c10bc13183b4142fd2e6714b6
2015-06-01 16:45:41 -04:00
Jason Monk
33f8ae7543 Show data icon when appropriate.
Show it in the status bar when its a default network, but always show
it in QS when its connected, so that users can know its connected.

Also fix the tests.

Bug: 18776546
Change-Id: I553588fc6850b0c2ef6e6015b313222bf4c786e7
2015-05-18 11:49:24 -04:00
Jason Monk
07b75fe65d Move NetworkController broadcasts/listeners to BG
Also do some refactoring to avoid having to sets of callback interfaces
with 75% of the same data.

Bug: 19520495
Change-Id: Ife1c71174c0d6a21f924f7de3cb2f97a04c3d5a1
2015-05-18 11:31:49 -04:00
Pavel Zhamaitsiak
5504d39b7f WiFi Calling: Show different operator name string in Data usage dialog.
Bug: 19950657
Change-Id: I9999d58e78154ed2d6d824973c40011875de15ef
(cherry picked from lmp-mr1-wfc-dev)
2015-05-05 13:59:28 -07:00
Andrew Flynn
ae499d19eb Merge "SystemUI Carrier Network Change unit tests" into mnc-dev 2015-05-04 14:43:20 +00:00
Andrew Flynn
5e75147806 SystemUI Carrier Network Change unit tests
- Includes unit tests for verifying mobile data indicators.
- Found one bug where dark mode icon wasn't showing properly when
  different from light mode icon.
- Comment out failing test
  NetworkControllerSignalTest#testSetCurrentSubscriptions

Bug: 20288155
Change-Id: Ib3c9ba224c4187cab35d6bfa68f6bd4c489cf98e
2015-05-04 10:25:09 -04:00
Lorenzo Colitti
d46bb58fa6 Add a status bar icon for Ethernet.
Bug: 20613953
Change-Id: I52970b4f5fb6429876d1a2eb195a834c9e020021
2015-05-02 10:43:31 +09:00
Andrew Flynn
a478d70a68 SysUI: Carrier Network Change icon
- Listen for new PhoneStateListener.CARRIER_NETWORK_CHANGE events.
- Show/hide a new unique animated icon in status bar and quick settings during
  Carrier Network Change events if we are instructed by PhoneStateListener
  and it's during a period without connectivity.
- ObjectAnimator doesn't let you animate colors between themed colors, so
  there's quite a bit of boilerplate duplication in the animation xml.
- Add a new demo mode command to toggle it on/off.

Change-Id: Ic5bb2aa7444303c6b7f2456526a9c25325c6e1f4
2015-04-16 08:37:43 -04:00
Selim Cinek
b8f09cf553 Integrate Heads-up notifications into the shade
Change-Id: I4ca0fb4e76e7c974490538c168da0564fe97e0ae
2015-04-15 12:32:00 -07:00
Jason Monk
baeb0dfccc Merge "Up the history on SignalControllers" 2015-02-17 15:25:35 +00:00
Jason Monk
7f9623f3dc Up the history on SignalControllers
Also add a test for it, because despite the comment next to it, I
try to set it to an invalid value...

Bug: 19201696
Change-Id: I3c12c871c73ad5ab15f39a6b91b29c71101adad6
2015-02-11 09:03:02 -05:00
Chris Wren
930eccaf44 Don't let the heads up close too quickly.
The public API of HeadsUpNotificaitonView was not well suited to the
new requirements, so it changed slightly.

Old API:
 - showNotification: show or update a notification
 - clear: close the window and forget the notification
 - release: send the notification to the shade and forget about it.
 - releaseAndClose: release and close the window
 - dismiss: clear the notification if clearable, or release it

New API:
 - showNotification: show a new notification
 - updateNotification: show a new version of the same notification
 - removeNotification: respond to a cancel
 - release: send the notification to the shade at some point
 - releaseImmediately: send the notification to the shade right now

The new API makes updating vs. posting and removing vs. releasing more explicit.

There is a new internal concept: lingering.  The heads up lingers
after an event that would have closed it if the minimum visibility
time has not been satisfied. In the case that the notification was
deleted, the heads up may be visible, but mHeadsUp will be null.  In
this case, touches on the notification views are disabled.

More responsibility for control of the heads of policy was moved into
the HeadsUpNotificaitonView class. This should continue on master.

Some changes to support testing.

Added a test to cover all the edge cases for minimum visibility time:
 1. extend visibility when canceled too soon
 2. extend when updated with a low-priority version, fast update.
 3. extend when updated with a low-priority version, slow update.
 4. don't extend the visibility in any other case

TODO: Policy parts of HeadsUpNotificationView should be split out
into a separate HeadsUpNotificationPolicy class, and even more of the
policy should be lifted from status bar that new class.

Bug: 17878008
Change-Id: I192419d0685dd022ee7edcd792e346a4f39c6adb
2015-02-04 17:16:16 -05:00
Jason Monk
a2bfc837cc Merge "Create SettingsLib" 2015-02-02 17:39:45 +00:00
Jason Monk
2ba4ce6a06 Create SettingsLib
This will hold common code that SystemUI and Settings (and others)
will share.

Bug: 19180466
Change-Id: I6614b31d6c3b0a2d426a2aa8ce66725245339d22
2015-02-02 11:33:17 -05:00
Jason Monk
18985e08eb Fix SysUI tests to pass.
Most were fixed by including the correct subscription id in the
broadcast.

The last was testing based on SIM card state which is not something
the MobileSignalControllers track anymore so I just pulled it out
completely.

Change-Id: Ie52068a3c8f8652f1b0641e6376696aeddda26a2
2015-01-29 15:58:23 +00:00
Jason Monk
da68f59628 SysUI: Separate SignalControllers into separate files
and remove the TODO that says to do it.

Change-Id: I54ac3f27f9246aea87d21f2a1da6608ae675aae6
2015-01-07 11:19:10 -05:00
Jason Monk
afeb044afc resolved conflicts for merge of 336c4666 to master
Change-Id: I350b3ecadce490b62c92c0e7b1d555825d035f87
2015-01-05 16:37:46 -05:00
Jason Monk
c014decc74 Don't unregister MobileSignalControllers still used
Also add some more testing for this section of code that manages
when MobileSignalControllers are added/removed to make sure we
are all good.

Bug: 18728593
Change-Id: I9902854c54d2e1deb58b38b7bd97dac1617831c0
2015-01-05 15:53:00 -05:00
Jason Monk
0adc69032d am f8dd5f6a: am a47f968d: Merge "Handle config changes in NetworkController" into lmp-mr1-dev
automerge: 89b75bd

* commit '89b75bdbf64416cfea39641a85bf6458212a32bf':
  Handle config changes in NetworkController
2014-12-12 18:56:18 +00:00
Jason Monk
7f8fab6fc3 am 10680627: am a6869700: Merge "Fix tests after inet changes in NetworkController" into lmp-mr1-dev
automerge: 19b6ae0

* commit '19b6ae0fe82913a9838a43f60ae330197d4ef978':
  Fix tests after inet changes in NetworkController
2014-12-12 18:55:04 +00:00
Jason Monk
3aaabd7124 Handle config changes in NetworkController
We need to remap or recalculate icons after a config change, so
configs based on mccmnc can update properly.

Bug: 18654943
Change-Id: I6a4c1debf9b266d486143b9869abb569bbc31aef
2014-12-12 11:56:11 -05:00
Jason Monk
d8e4bf4e43 Fix tests after inet changes in NetworkController
Bug: 17460017
Change-Id: Iee9c4399f5ca4413f1449cfcf05d72a67b0adadc
2014-12-12 10:26:43 -05:00