Commit Graph

646 Commits

Author SHA1 Message Date
Makoto Onuki
a2241834a5 Handle package broadcasts before apps do
- Have PM to call the shortcut manager directly before sending a
pacakge broadcast.

- The shortcut manager will enqueue a task to handle a package
broadcast, which will be executed on Handler.

- At the entry points of all external facing methods, block until
all pending tasks are finished.

Bug 29895275

Change-Id: Ib29fa3c9c8d9b9e0ca5c8f1e9da2a390324960a4
2016-07-11 11:28:10 -07:00
Erik Kline
acdd639513 Support requesting async LinkProperties/NetworkCapabilities updates
Bug: 9580643
Change-Id: I1d7ba7645c20d7d53f6eef777dfce43727940f13
2016-07-11 19:17:41 +09:00
Lorenzo Colitti
b0a574fbfc Merge "Rewrite lingering." into nyc-mr1-dev 2016-07-07 10:55:39 +00:00
Lorenzo Colitti
b57578ca4f Rewrite lingering.
The two major changes here are:

- Move lingering out of NetworkMonitor. The fact that lingering
  is currently its own state in NetworkMonitor complicates the
  logic there: while a network is lingering it cannot be in any
  other state, we have to take care not to leave LingeringState
  for the wrong reason, etc.
- Instead of keeping a single per-network boolean to indicate
  whether a network is lingered or not, keep a linger timer for
  every request. This allows us to fix various corner-case bugs
  in lingering.

The changes in behaviour compared to the current code can be seen
in the unit test changes. Specifically:

1. Bug fix: when a network is lingered, and a request is added
   and removed to it, the existing code tears the network down
   immediately. The new code just sends another CALLBACK_LOSING
   and resumes lingering with the original timeout.
2. Bug fix: if cell is unvalidated and wifi comes up and
   validates before cell does (as might happen on boot), the
   existing code immediately tears down cell. The new code
   lingers cell, which is correct because unvalidated cell was
   the default network, so an app might have been using it.
3. Correctness improvement: always send CALLBACK_AVAILABLE for
   the new network before sending CALLBACK_LOSING. This was not
   really an issue in practice, because the usual flow is:
    - Network A is the default.
    - Network B connects, CALLBACK_AVAILABLE.
    - Network B validates, CALLBACK_LOSING.

Bug: 23113288
Change-Id: I2f1e779ff6eb869e62921a95aa9d356f380cf30a
2016-07-07 16:18:57 +09:00
Jeff Sharkey
f2bead5117 Switch network cycle calculation to use Calendar.
The older Time class is deprecated and doesn't handle edge cases
very well.  So migrate the cycle calculation logic to use the
long-standing and well-supported Calendar API.

Bug: 28689087
Change-Id: Ic1802b3f8556402f99bfea4cd625c35dfed81ac0
2016-07-06 17:15:33 -06:00
Hugo Benichi
54756fdfd9 Merge "IpConn metrics: correctly read RA lifetimes" into nyc-mr1-dev 2016-07-05 12:25:55 +00:00
Hugo Benichi
6ccd51a338 IpConn metrics: correctly read RA lifetimes
This patch
  - adds a Builder class for RaEvent.
  - uses this Builder class for correctly recording the minimum
    lifetime seen for every ICMP6 options tracked, instead of
    recording the last lifetime seen.
  - adds unit test coverage for RaEvent logging.

Change-Id: I6443932f5cf7a613a5c695c65a60eab01e60602a
2016-07-05 13:52:24 +09:00
Lorenzo Colitti
09e202103d Add test coverage for a bug in the lingering code.
Bug: 23113288
Change-Id: I573ee5908b9d973931234eb7d2db8ea0aaa4b31e
2016-07-04 17:00:27 +09:00
Makoto Onuki
7df9ce075f Merge "Make sure re-published dynamic shortcuts are always enabled" into nyc-mr1-dev 2016-07-01 16:40:25 +00:00
Makoto Onuki
ee6b6e4a18 ShortcutManager: Make sure persisted default launcher still exists.
- Also make sure to ignore unexported activities.
(e.g. unexported activities shouldn't have shortcuts.)

- Also add unit tests for package manager related operations.

- Also remove stale TODOs (per-activity shortcut count check is
implemented already.)

Bug 29699769
Bug 29516954

Change-Id: Ia18301baf6bec1ad71ae195d9ae3d10bd8386fc4
2016-06-30 17:30:30 -07:00
Makoto Onuki
ff14f73152 Make sure re-published dynamic shortcuts are always enabled
- Originally there was explicit code to take over the disabled flag,
which was simply not necessary.

- Also fix the startShortcut() tests that have temporarily
been disabled.

(Also remove the stale TODOs to avoid conflict with Ia18301ba)

Bug 29633681

Change-Id: I58b12ad6918d7fef4b79059b0c2c7f2df6e32269
2016-06-30 17:11:25 -07:00
Makoto Onuki
60efbf2586 Merge "Start shortcuts as if publisher apps did using PendingIntent" into nyc-mr1-dev 2016-06-30 21:45:05 +00:00
TreeHugger Robot
74f7f2ec0d Merge changes I65784f35,Ib6937335 into nyc-mr1-dev
* changes:
  Add detailed test coverage for lingering.
  Add more test coverage for requests and callbacks.
2016-06-30 14:28:38 +00:00
TreeHugger Robot
f5e3481951 Merge changes Ia28652e0,Id2eaafdc,I9c4c8286 into nyc-mr1-dev
* changes:
  Record events for RA option lifetimes
  Log RA listening statistics
  Log events at APF program generation
2016-06-30 14:03:22 +00:00
Lorenzo Colitti
7369d8d1b6 Add detailed test coverage for lingering.
Bug: 23113288
Change-Id: I65784f3589378d97f3c824e600f21f361be8741e
2016-06-30 21:42:17 +09:00
Hugo Benichi
4fc3ee5be2 Log events at APF program generation
Example:
ConnectivityMetricsEvent(15:24:52.018, 0, 0): ApfProgramEvent(0/0 RAs 121B forever FLAG_MULTICAST_FILTER_ON)
ConnectivityMetricsEvent(15:24:53.036, 0, 0): ApfProgramEvent(1/1 RAs 334B 600s)
ConnectivityMetricsEvent(15:24:53.590, 0, 0): ApfProgramEvent(1/1 RAs 360B 600s FLAG_MULTICAST_FILTER_ON, FLAG_HAS_IPV4_ADDRESS)
ConnectivityMetricsEvent(15:24:58.157, 0, 0): ApfProgramEvent(1/1 RAs 294B 599s FLAG_HAS_IPV4_ADDRESS)

Bug: 28204408
Change-Id: I9c4c82861cf42eb2c7e7bf5471f05e8ff2fc560c
2016-06-30 18:21:09 +09:00
Lorenzo Colitti
6ee0a92ca0 Add more test coverage for requests and callbacks.
1. Support multiple callbacks in TestNetworkCallback. This is
   necessary to test situations where multiple callbacks are
   generated by the same event (e.g., CALLBACK_LOSING on cell
   with CALLBACK_AVAILABLE on wifi when wifi connects), which is
   necessary to test callback order. So far this has not been
   covered because all callback testing was using per-network
   callbacks.
2. Add a benchmark test for registering NetworkRequests and for
   sending onAvailable and onLosing callbacks.

Bug: 23113288
Change-Id: Ib69373358ad766ab1bd989e864a5a51ef762c73c
2016-06-30 13:18:12 +09:00
Makoto Onuki
ea11db15bd Start shortcuts as if publisher apps did using PendingIntent
Bug 29639471

Change-Id: I2aad115669b431cbea785ba92040b1958117ab47
2016-06-29 18:43:45 -07:00
Makoto Onuki
bc8e0052fd Merge "Fix updateShortcuts() with icons" into nyc-mr1-dev 2016-06-29 23:55:03 +00:00
Android Build Merger (Role)
9f22e79625 Merge "Move getRecentTasks() to ParceledListSlice. am: 479212cf50" into nyc-mr1-dev 2016-06-29 23:54:27 +00:00
Jeff Sharkey
3362400aa5 Move getRecentTasks() to ParceledListSlice.
am: 479212cf50

Change-Id: Ic76f624396117d922aac60eac9c2caae4f1d7e27
2016-06-29 23:53:58 +00:00
Makoto Onuki
01e51e59dd Merge "Address API council feedback (continued)" into nyc-mr1-dev 2016-06-29 23:53:51 +00:00
Makoto Onuki
d6880797f7 Address API council feedback (continued)
Got a second set of comments.

Bug 29757958

Change-Id: Ib3a3ffd28bc3e35eb0218b0819870eb5c6ebadb5
2016-06-29 15:22:56 -07:00
Jeff Sharkey
479212cf50 Move getRecentTasks() to ParceledListSlice.
In extreme cases the list of recent tasks can grow beyond the size
of a single Binder transaction.  This change moves over to
ParceledListSlice which handles chunking any large results.

Bug: 29635557
Change-Id: Iaf1227234f5f8c9451f73a6a5c1dc89f2067f05f
2016-06-29 22:17:41 +00:00
Makoto Onuki
dd097812fa Fix updateShortcuts() with icons
But 29822569

Change-Id: I72a0903ccc8acffc42f40d9df7b99ed6de26b66d
2016-06-29 13:14:23 -07:00
Hugo Benichi
5e055187be Adding tests for DnsEventListenerService
Bug: 29035129
Change-Id: Iaf0d9ec781da7a473b6f7d8623060ecde44b9cbd
2016-06-29 14:28:51 +09:00
Hugo Benichi
cfddd68792 Refactor IP connectivity event logging
This patch removes static methods for logging IP connectivity events
defined in android.net.metrics and replaces them with a single log()
instance method defined on IpConnectivityLog. Event constructors are
now public also. Every classes logging such events now create an
instance of IpConnectivityLog for logging event objects directly
instantiated with new.

Removing static dependencies allow straightforward testing of logging.

This patch also removes the base IpConnectivityEvent class which is not
needed any more.

Bug: 29035129
Change-Id: I3de700f93f46deaa48a759f938f7d00e1d8bff98
2016-06-29 14:28:51 +09:00
Hugo Benichi
a4abd91a73 Add tests for MetricsLoggerService
Bug: 29035129
Change-Id: I9b4e55c20f4ed3a2a642419369a5d95efbbcb54d
2016-06-28 11:43:03 +09:00
Hugo Benichi
3bba249c47 Tests for IpConnectivityMetricsLog
Bug: 28204408
Bug: 29035129
Change-Id: I429562a00904188947b11da9928ec5c01296ff97
2016-06-28 11:43:03 +09:00
Chris Wren
4e4d325b56 Merge "use an observer for the default sound" into nyc-mr1-dev 2016-06-27 15:08:03 +00:00
Chris Wren
d405431bc9 use an observer for the default sound
matches other settings use, and also improves testability of buzzbeepblink

Change-Id: I9445448c4c4f24f4f49f7cb1fdcd2f5362944606
2016-06-24 17:21:51 -04:00
Makoto Onuki
b08790c3b2 Shortcut: Only "main" activities can have shortcuts.
- Don't publish shortcuts when their target activities are not main.
- Only scan manifest shortcuts for main activities.
- When an app is updated, remove shortcuts that no longer belong to
valid main activities.

- Also re-publish manifest shortcuts after 'clear data'
- Also listen to PACKAGE_CHANGED and disable/re-publish shortcuts
properly.

Bug 29355786
Bug 29582255
Bug 29601844

Change-Id: I6c701ce669cf30a227bc2af4aa01de467ef73e3a
2016-06-24 13:07:17 -07:00
Makoto Onuki
3bdbf985e1 Make "cmd package set-home-activity" more CTS friendly
- Print "Success" when it went well.
- Catch all exceptions and print error message, not just
RemoteExceptions

- Update the shortcut manger test utility to match the new behavior

Bug 29612099

Change-Id: If6a80241ea5e8ef0b2d3f961d1442e730b908764
2016-06-23 17:01:02 -07:00
Lorenzo Colitti
5719a7f478 Merge \"Don\'t loop forever on 0-length options.\" into nyc-dev
am: 7aac630f8e

Change-Id: Icd3c0265ffb30232642f581a7c0031ed55ee6d21
2016-06-23 08:23:18 +00:00
Lorenzo Colitti
8995d85b94 Don't loop forever on 0-length options.
A malformed RA could cause the Ra constructor in ApfFilter to
enter an infinite loop while holding the class lock. This blocks
IpManager until reboot and drains the battery.

Bug: 29586253
Change-Id: Idaa46b3bc50371db076630881883807c2fa21674
2016-06-23 15:43:34 +09:00
Guang Zhu
3394a8e523 temporarily disable FakeSettingsProviderTest
Bug: 29281167
Change-Id: I463d7707c197bd114de762c86e3b3e574d456e3b
2016-06-22 16:30:09 -07:00
Makoto Onuki
b5a012fd6f Shortcut Manager: Address API council feedback and fix TODOs
Bug 29515722
Bug 29516909
Bug 29515090
Bug 29516954
Bug 29515088

Change-Id: Ibe1d27033cbd0fd50d37e3d9945b47551211c568
2016-06-21 14:42:48 -07:00
Makoto Onuki
901c03faba Merge "Launcher shortcut callback should deliver manifest shortcuts too" into nyc-mr1-dev 2016-06-20 21:06:42 +00:00
Chris Wren
5e27227b68 Merge \"assume a generous prior in the rate estimator\" into nyc-dev
am: fddf5df01f

Change-Id: I73dc1cb6a2a13bac21ff576319e7b9123aee09b3
2016-06-20 17:33:15 +00:00
Makoto Onuki
4d6b87ffdf Launcher shortcut callback should deliver manifest shortcuts too
- Also include "activity" in the key fields, as this is now an
important field.

- Also optimize ShortcutInfo parceling for the "key field only" case.

Bug 29394043
Bug 29451629

Change-Id: I61b2bc2f61ad6ebdcbaf6d02f1bd88777c45a7f0
2016-06-20 09:28:05 -07:00
Chris Wren
888b7a8faf assume a generous prior in the rate estimator
currently with one data point the estimator is biased high. If we don't
have any data we want to be biased low to allow the first interaction
to be an isolated burst.

Also add metrics for enqueue rate to make it easier to debug this
code in the future (currently we only have metrics after the
rate limiter).

Bug: 29379789
Change-Id: I7b1d379290a55f120d039fd29d1bc0abbc6d4932
2016-06-17 15:50:30 -04:00
Makoto Onuki
df6da040e0 Update manifest shortcut XML schema
Use the standard <intent> tag instead of custom tags.

- Also fix setDynamicShortcuts(), which was broken in the previous CL.
- Also tolerate runtime exceptions while parsing XMLs
- Also fix b/29422018 while I'm at it

Bug 29390156
Bug 29077932
Bug 29422018

Change-Id: I2756c9d66c6d7b2962a982d9e57a7d84a5755b28
2016-06-17 11:51:20 -07:00
Gustav Sennton
939f8caec2 Merge \"Support using uninstalled WebView packages as WebView implementation.\" into nyc-dev
am: e25c8532b6

Change-Id: Ie9f405765c146d21f1399037dd236d440902f0f9
2016-06-16 17:46:53 +00:00
Gustav Sennton
e25c8532b6 Merge "Support using uninstalled WebView packages as WebView implementation." into nyc-dev 2016-06-16 17:40:10 +00:00
Makoto Onuki
489bafbb4b Merge "Shortcut: Reset throttling upon inline reply" into nyc-mr1-dev 2016-06-16 17:05:55 +00:00
Gustav Sennton
0df2c5566a Support using uninstalled WebView packages as WebView implementation.
A package can be uninstalled for the system user but still be installed
on the device. Currently, we do not use such a package as WebView
implementation which means we fall back to using the fallback WebView
package.
However, if the fallback package is not valid (because it needs to be
updated first) loading WebView will fail.

With this change we fetch allow the fetching of information from
packages that are uninstalled for the system user so that we can still
load WebView when the only valid WebView provider is uninstalled for the
system user.

Also listen to package additions/changes/removals for all users -
otherwise we won't notice when a package becomes replaced if it was
already uninstalled for the system user.

Bug: 29321185
Change-Id: Ia23c4493844877aea1b4eab7e666fd37540c4f97
2016-06-16 15:45:45 +01:00
Makoto Onuki
70a91541e9 Merge "ShortcutManger: Auto-adjust ranks." into nyc-mr1-dev 2016-06-15 21:44:58 +00:00
Makoto Onuki
9e1f5595bd ShortcutManger: Auto-adjust ranks.
Spec: go/shortcutmanager-spec-ranks

Bug 28984376
Bug 28536066

Change-Id: Ibffb92233c62792af06eeadc5a9a6379d0506a3c
2016-06-15 14:24:44 -07:00
Kevin Gabayan
68dd6233bd Compute AnyMotionDetector angle using atan2. Bug: 29232136 am: db843c913f
am: e46d4fd7ad

Change-Id: I666fc7432cf6140c938423ec4370ca7727996bd6
2016-06-15 20:49:49 +00:00
Makoto Onuki
d6e1f3bec1 Shortcut: Reset throttling upon inline reply
When the user does an "inline reply", we consider the notification
publisher app is "activated" and reset the shortcut throttling.

Bug 28705275

Change-Id: Ic9ffa13635274ead7e9d1e832cd31dea997830aa
2016-06-14 14:12:07 -07:00