Commit Graph

58630 Commits

Author SHA1 Message Date
Yohei Yukawa
f3806f57a5 Automatically grant URI permission as needed.
With this CL, the system automatically grants a temporary URI permission
to the target application when the IME calls
InputConnection#commitContent() with
InputConnection#INPUT_CONTENT_GRANT_READ_URI_PERMISSION.  The temporary
permission will be revoked by any of the following events:
 - InputContentInfo#releasePermission() is explicitly called by the
   target application.
 - The target application returned false in
   InputConnection#commitContent().
 - All the InputContentInfo instances copied from the original one are
   GC-ed.

If we do not do this and there is an application that forgot to call
that method then there is no way for IME developers to prevent
permission denial from happening in the application except for relaxing
the default permission of the ContentProvider just because of such an
application.

Although application developers are still expected to explicitly call
InputContentInfo#{request,release}Permission(), forgetting to call
InputContentInfo#requestPermission() does not hurt the user anymore.

With this CL, calling InputContentInfo#requestPermission() after calling
InputContentInfo#releasePermission() is also allowed.

Bug: 29892936
Change-Id: Id955435dd2e72549ee7134f46b3c6951581694ad
2016-06-30 16:27:46 -07:00
Yohei Yukawa
8acb1a7570 Merge "Revert "Remove InputContentInfo#requestPermission()"" into nyc-mr1-dev 2016-06-30 19:30:21 +00:00
Yohei Yukawa
79d1c75a3f Revert "Remove InputContentInfo#requestPermission()"
This reverts commit c4b8f36de5.

Having InputContentInfo#requestPermission() should not hurt developers,
but we can polish the behavior in a subsequent CL without changing
the API.

Bug: 29450031
Bug: 29892936
Change-Id: I1b43c19417b643d0c269af860db2d309b73a90d5
2016-06-30 19:24:43 +00:00
Yohei Yukawa
c80c64a97b Merge "Remove InputContentInfo#requestPermission()" into nyc-mr1-dev 2016-06-30 18:21:48 +00:00
Tim Murray
5e261441d3 Merge "Add a new API to improve VR thread scheduling." into nyc-mr1-dev 2016-06-30 18:05:57 +00:00
Alan Viverette
a2beb44834 Merge \"Only clip PopupWindow in the vertical direction\" into nyc-dev
am: 4b736ea56d

Change-Id: Idf5aedfb2f19595b8317c7dca1640ff0caf31696
2016-06-30 17:35:52 +00:00
Alan Viverette
4b736ea56d Merge "Only clip PopupWindow in the vertical direction" into nyc-dev 2016-06-30 17:24:22 +00:00
Alan Viverette
650cc68f10 Merge \"Exclude children from excess space distribution when using largest child\" into nyc-dev
am: 7705d5fd6e

Change-Id: I747b4dab5bfc31b2461b445d1d983ac95a05693d
2016-06-30 17:19:41 +00:00
Alan Viverette
9705fa0602 Only clip PopupWindow in the vertical direction
Bug: 29865091
Change-Id: Ic4e3b50571034f341aff2c2fbf2c349342622448
2016-06-30 13:17:26 -04:00
TreeHugger Robot
7705d5fd6e Merge "Exclude children from excess space distribution when using largest child" into nyc-dev 2016-06-30 17:07:07 +00:00
Srinath Sridharan
e535a5827b Add a new API to improve VR thread scheduling.
Adds a new API that enables device-specific scheduler optimizations for
latency-sensitive VR threads.

BUG: 29163534
Change-Id: I58d7be0eb266eca452c804cd07004784fb7daf2b
2016-06-30 10:03:46 -07:00
Yohei Yukawa
c4b8f36de5 Remove InputContentInfo#requestPermission()
It turns out that requiring editor authors to call
InputContentInfo#requestPermission() as needed is just confusing and can
cause compatibility issues, because if an editor author forgot to call
that method then there would be no way for IME developers to prevent
permission denial except for relaxing the default permission of the
ContentProvider just because of such an application. This is not what we
want to see.

My conclusion is that the system should automatically call
InputContentInfo#requestPermission() (or do any equivalent operation)
when InputConnection#INPUT_CONTENT_GRANT_READ_URI_PERMISSION is
specified, like we have done in Context#startActivity().

With this CL, the system automatically grants a temporary URI permission
to the target application when the IME calls
InputConnection#commitContent() with
InputConnection#INPUT_CONTENT_GRANT_READ_URI_PERMISSION, and the
temporary permission will be revoked by any of the following events:
 - InputContentInfo#releasePermission() is explicitly called by the
   target application.
 - The target application returned false in
   InputConnection#commitContent().
 - All the InputContentInfo instances copied from the original one are
   GC-ed.

Bug: 29450031
Bug: 29892936
Change-Id: I37fb744e4d3d1c59177fb0a9be4ef5c325c9a39f
2016-06-30 09:32:54 -07:00
Alan Viverette
070b22bdee Exclude children from excess space distribution when using largest child
Preserves API 23 behavior.

Bug: 29872769
Change-Id: I514cde81dcca4d78238f407251805cced4c0bea1
2016-06-30 11:15:36 -04: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
Hugo Benichi
cfbf7414a1 Record events for RA option lifetimes
This patch defines a new android.net.metrics.RaEvent class carrying
lifetime values contained in RA packets. RaEvent are recorded when
ApfFilter processes a new RA for which there is no match.

Example:
ConnectivityMetricsEvent(15:39:39.808, 0, 0): RaEvent(lifetimes: router=3600s, prefix_valid=2592000s, prefix_preferred=604800s, route_info=-1s, dnssl=-1s, rdnss=3600s)

Change-Id: Ia28652e03ed442d5f2a686ef5b3fafbcb77c503a
2016-06-30 18:26:39 +09:00
Hugo Benichi
647c86d70a Log RA listening statistics
This patch adds a new ApfStats event class that counts RA packet
reception statistics on the RA listener thread of ApfFilter and reports
the maximum program size advertised by hardware.

Statistics are gathered for the lifetime of a network with APF
capabilities and uploaded at network teardown when the listener thread
exits.

Example event:
ConnectivityMetricsEvent(15:44:23.741, 0, 0): ApfStats(284945ms 2048B RA: 2 received, 0 matching, 0 ignored, 0 expired, 0 parse errors, 2 program updates)

Bug: 28204408
Change-Id: Id2eaafdca97f61152a4b66d06061c971bc0aba4c
2016-06-30 18:26:33 +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
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
Daniel Nishi
6401217532 Merge "Use the Deletion Helper when system storage is low." into nyc-mr1-dev 2016-06-29 21:37:07 +00:00
Dianne Hackborn
50beee8af9 Merge \"Fix issue #29871385: Need JobScheduler.scheduleAsPackage to be system API\" into nyc-dev
am: 205bc262ce

Change-Id: I3d7186834028be519b512fbcb2240d2ff692f564
2016-06-29 20:50:52 +00:00
TreeHugger Robot
c295a4b23d Merge "Remove framework dependencies on Support* demos" into nyc-mr1-dev 2016-06-29 20:31:03 +00:00
Dianne Hackborn
1150b735c8 Fix issue #29871385: Need JobScheduler.scheduleAsPackage to be system API
Change-Id: I0034b1681158b9a010d01fb0fcbe7990d9038c1f
2016-06-29 11:49:01 -07:00
Amith Yamasani
b71081e4e9 Merge "An API to check if running in a demo user" into nyc-mr1-dev 2016-06-29 15:18:34 +00: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
41a3acc55a Merge changes I9b4e55c2,I429562a0 into nyc-mr1-dev
* changes:
  Add tests for MetricsLoggerService
  Tests for IpConnectivityMetricsLog
2016-06-29 00:15:49 +00:00
Amith Yamasani
1c41dc8ec5 An API to check if running in a demo user
Add an API to query if the calling app is running
in a demo user sandbox. This allows apps to customize
the starting experience to a potential customer.

Change-Id: I50e40f9a8c66da4b5672c1dc64606d7bedba3f8c
Fixes: 29833923
2016-06-28 17:05:19 -07:00
Android Build Merger (Role)
b1400b142e Merge "Merge \"Remove redundant setPendingIntentWhitelistDuration() calls.\" into nyc-dev am: c1374208e3" into nyc-mr1-dev 2016-06-28 20:49:14 +00:00
Felipe Leme
1cec26c69e Merge \"Remove redundant setPendingIntentWhitelistDuration() calls.\" into nyc-dev
am: c1374208e3

Change-Id: Ie02a847ac513f89c1c430af0e3f559cf0bc2039d
2016-06-28 20:48:51 +00:00
TreeHugger Robot
23bc74a8d5 Merge "Define deprecated fields in IntDef's" into nyc-mr1-dev 2016-06-28 20:48:37 +00:00
TreeHugger Robot
c1374208e3 Merge "Remove redundant setPendingIntentWhitelistDuration() calls." into nyc-dev 2016-06-28 20:45:40 +00:00
Alan Viverette
3c5a1c8124 Remove framework dependencies on Support* demos
Required on nyc-mr1-dev since support library branch was reset.

Change-Id: I5b3ba0e7a17ee5ccd93e97b3bd9c519cb8641d97
(cherry picked from commit 80bf1f8a3c)
2016-06-28 19:26:36 +00:00
Todd Kennedy
a1066ed6c2 Merge \"Default minSdkVersion to \'1\'\" into nyc-dev
am: a98e3e3ede

Change-Id: I8d2b7205f80b3cae5dce04839890df6aafa8449e
2016-06-28 19:16:40 +00:00
Todd Kennedy
1f397f4e7b Define deprecated fields in IntDef's
Tools need all of the valid constants to handle legacy apps; even
though we want developers to use the new constant names.

Bug: 29824931
Change-Id: I5f8055d50d1d3f32cfbed7459d8a497cfbd3661e
2016-06-28 12:14:11 -07:00
Felipe Leme
dd85da6e94 Remove redundant setPendingIntentWhitelistDuration() calls.
Since all pending intents are stored on a Set in the Notication object,
there is no need to individually check for specific pending intents.

BUG: 29480440
Change-Id: I27a18bb535a9a4bb6cb4e76bdc189e6c315a684a
2016-06-28 11:34:54 -07:00
Todd Kennedy
4f6570878c Default minSdkVersion to '1'
Exception when targetSdkVersion is a letter API [eg 'N']. While this
is technically not according to the external docs, it's the behaviour
with prior platforms.

Bug: 29817839
Change-Id: I8382909dbe62de7b2ddfb7995ce11d5c2f43372e
2016-06-28 10:31:05 -07:00
Hugo Benichi
3bba249c47 Tests for IpConnectivityMetricsLog
Bug: 28204408
Bug: 29035129
Change-Id: I429562a00904188947b11da9928ec5c01296ff97
2016-06-28 11:43:03 +09:00
Svet Ganov
7878e736f7 Merge \"Mark app pending intents in notification extras\" into nyc-dev
am: b2cd9c95bf

Change-Id: Idb515255f224c23d60a513713d9e4f93decd7a9c
2016-06-28 00:46:55 +00:00
Svet Ganov
ddb948896c Mark app pending intents in notification extras
We need to make every peniding intent that went in the notification
system to allow special handling of such intents when fired by a
notification listener. If a pending intent from a notification
is sent from a notification listener, we white-list the source app
to run in data saver mode for a short period of time. The problem is
that actions and the notificaion can have extras which bundles may
contain pending intents but the system cannot look into the bundles
as they may contain custom parcelable objects. To address this we
keep a list of all pending intents in the notification allowing
the system to access them without touching the bundle. Currently
the pending intents are written to the parcel twice, once in the
bundle and once as the explicit list. We can come up with a scheme
to optimize this but since pending itents are just a binder pointer
it is not worth the excecise.

bug:29480440

Change-Id: I7328a47017ca226117adf7054900836619f5679b
2016-06-27 17:32:25 -07:00
TreeHugger Robot
d06f87399b Merge "Frameworks/base: Add new flow to OtaDexoptService" into nyc-mr1-dev 2016-06-27 23:50:37 +00:00
Daniel Nishi
690346b145 Use the Deletion Helper when system storage is low.
A notification is posted when the system storage gets too low.
Currently, it redirects into the Storage Settings. Instead,
it should redirect into the Deletion Helper to directly let the
user clear out their storage.

Bug: 29437277
Change-Id: I4e35adf300d5e479d4171f1e6f090f2a757400f2
2016-06-27 15:22:35 -07:00
Andreas Gampe
cc241a580c Frameworks/base: Add new flow to OtaDexoptService
Add functionality to capture/intercept installd communication, and
use this to return the full communication for dexopt. These parameters
can be used to drive otapreopt_chroot directly.

Keep the old direct invocation alive until devices have transitioned
to a service that exposes this API.

In preparation for renaming of A/B OTA artifacts to include target
slot names.

Bug: 25612095
Bug: 28069686
Change-Id: I14728ee1266f3882cada8f08dd21891ed5f7a0cb
2016-06-27 15:10:12 -07:00
Yohei Yukawa
cb56978912 Merge "Use a flag to grant a temporary URI permission." into nyc-mr1-dev 2016-06-27 20:18:51 +00:00
Steven Ng
dc52eaaa98 Merge "Disallow disable / hide device provision app" into nyc-mr1-dev 2016-06-27 18:50:02 +00:00
Philip P. Moltmann
b6ee468b3e Merge "Do not remove handlers for loaders." into nyc-mr1-dev 2016-06-27 18:12:12 +00:00
John Reck
0fc8707e2d Merge \"Add missing null checks\" into nyc-dev
am: 02e391585d

Change-Id: Idcba5c8393609034b70382844d499b45759b5e6d
2016-06-27 17:06:24 +00:00
John Reck
474659ccc4 Add missing null checks
Bug: 29743482
Change-Id: Ic4bc5b9d5718eabd41e09a108a765b01aef4e3c8
2016-06-27 07:56:37 -07:00