Commit Graph

11853 Commits

Author SHA1 Message Date
Jeff Sharkey
98cb23dccf Merge "Slight API renaming, better behavior." 2015-12-09 22:51:43 +00:00
Jeff Sharkey
e13529a4ad Slight API renaming, better behavior.
Rename APIs to reflect that they're storage-related.  Also move
credential-storage APIs to be system API.

Return a null Context when device-encrypted storage isn't
supported.  This is the easiest way to keep legacy apps working when
upgrading from M to N.

Reduce strictness of path checking so we don't crash when working
with special packages like "android".

Bug: 22358539, 26104027
Change-Id: I38c24fc003488186210a6ae3b64270f86e1efe56
2015-12-09 15:22:54 -07:00
Yin-Chia Yeh
5e7033702a Merge "Camera: add RAW_PRIVATE format" 2015-12-09 20:40:39 +00:00
Ta-wei Yen
6b733f61e9 Merge "Add KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN to CarrierConfigManager" 2015-12-09 20:18:01 +00:00
Yin-Chia Yeh
44581ff4db Camera: add RAW_PRIVATE format
Also add necessary plumbing for RAW_PRIVATE to work for ImageReader.

Bug: 25596619
Change-Id: Ic90f3f44264ac46fae1fafbc27ac64b5319f0970
2015-12-09 11:20:32 -08:00
Chet Haase
709bf2a37c Merge "Revert "Add support for partial view layouts"" 2015-12-09 18:40:06 +00:00
Jeff Tinker
67b39bfa08 Merge "Remove unused MediaDrm.unprovisionDevice" 2015-12-09 17:07:35 +00:00
Roozbeh Pournader
3f74371155 Merge "Revert "Fix Build: Revert "Implement locale matching in LocalesList.""" 2015-12-09 17:06:10 +00:00
Jeff Tinker
dade24c12a Remove unused MediaDrm.unprovisionDevice
bug:25726218
Change-Id: Ibbd51aaa1ee4c21c9ec8b162fc6e378ab7ba6e7b
2015-12-09 09:02:31 -08:00
Narayan Kamath
6f775a8d0f Merge "Track API changes to java.lang.ref.Reference." 2015-12-09 16:19:39 +00:00
Narayan Kamath
12f62b7ec1 Track API changes to java.lang.ref.Reference.
Change-Id: Iea25e3e0efec56106f44d42232e772cf36f76e68
2015-12-09 15:59:03 +00:00
Roozbeh Pournader
2591cc8630 Revert "Fix Build: Revert "Implement locale matching in LocalesList.""
This reverts commit 9c2f0d751d.

The original commit, 17b2b2d458, had
missed adding api/test-current.txt.

Change-Id: I26a6325b3cee4c2412ee599f002cc6addb35d36f
2015-12-08 22:28:30 -08:00
Ian Pedowitz
adf2b4d669 Merge "Fix Build: Revert "Implement locale matching in LocalesList."" 2015-12-09 02:36:29 +00:00
Ian Pedowitz
9c2f0d751d Fix Build: Revert "Implement locale matching in LocalesList."
This reverts commit 17b2b2d458.

Change-Id: I93c010054648a7127172a16c6ef3eb5f13604fd7
2015-12-09 02:17:32 +00:00
Roozbeh Pournader
7ed26b10e7 Merge "Implement locale matching in LocalesList." 2015-12-09 01:03:31 +00:00
Chet Haase
4610eeff9c Revert "Add support for partial view layouts"
This reverts commit c55d5072ac.

There were several bugs related to incorrect handling of various
layout issues (layout not being run on containers/views that needed
it), reverting to take another run at it outside of master.

Issue #25980198  requestLayout() sometimes doesn't result in measure/layout for view

Change-Id: Ic0e159cbcf6171652d8fd1bee9ae44a3977cea04
2015-12-08 16:45:23 -08:00
Filip Gruszczynski
d427047d98 Merge "Remove Window.setDecorView API." 2015-12-09 00:13:42 +00:00
Tony Mak
4b97eecf11 Merge "Add Email.ENTEPRISE_CONTENT_FILTER_URI" 2015-12-09 00:11:53 +00:00
Filip Gruszczynski
9b81e406b0 Remove Window.setDecorView API.
We currently don't have a strong use case for this.

Change-Id: I106aaf1224d7934964d9b92628fd3cdd42507c46
2015-12-08 16:07:02 -08:00
Roozbeh Pournader
17b2b2d458 Implement locale matching in LocalesList.
The algorithm tries to find the first locale in the locale list
(usually from the user preference) that somewhat matches one of the
locales supported (usually from the list of locales supported by the
system or an app).

Locales match if both their language and their likely script is the
same. Otherwise they don't.

Bug: 25800576
Change-Id: I4fbc3f44ab16d41efebbf941e94a0bb30d598f82
2015-12-08 15:03:39 -08:00
Jeff Sharkey
103d61b9f7 Merge "Shift around encryption public APIs." 2015-12-08 22:29:52 +00:00
Jeff Sharkey
7a30a30ebe Shift around encryption public APIs.
There are far too many Context APIs with special directory paths
to replicate device-encryption versions of them all.  Instead, add
methods to clone a Context that explicitly stores its data in either
credential- or device-encrypted storage.

Methods to test the behavior of a given Context.

Bug: 22358539
Change-Id: I6a6290a9b282605ce9a1f82742fc2c4c50536754
2015-12-08 15:24:29 -07:00
Svet Ganov
2acf063da0 Ephemeral cookie API
Add APIs for an ephemeral app to set a cookie which is a small
peice of data cached longer than the app itself. This is useful
for avoiding the user to login every time they use the ephemeral
app. The cookie is stored after an ephemeral app is uninstalled.
Normal apps or ephemeral apps upgraded to full apps can also use
these APIs with the difference that once they are uninstalled
the cookie is deleted.

The cookie size defaults to 16KB and is configurable by a global
settings which can be adjusted via gservices. Also eviction policy
is time based with a default of one month and is configurable by
a global setting which can be adjusted via gservices. If the cert
of the app cahnges (when ephemeral is installed, uninstalled and
installed again) the cooke is wiped to prevent data leaks.

This cahange also adds an API for apps to know whether they run in
an ephemeral mode since it this mode some APIs will not be available.
Another API exposed by this change is private for the system and
exposes all ephemeral apps - installed and uninstalled. Only the
system can call this API. When an ephemeral app is uninstalled the
system stores its name, icon, and permissions. When the app is
reinstalled or a full version is installed the permissions are
propagated.

Change-Id: Id4a73a7750bfbabda0bfcb9bf9018d2062e94367
2015-12-08 19:17:15 +00:00
Robin Lee
254a8371e2 Fix test-api.txt
37317e7c22e89816156e6e9a7abf4c5a59e8440a Commit was generated before
test-api.txt existed.

Change-Id: Ied6ead08826c7635c7da15b91f6e30f29c575fbd
2015-12-08 17:11:04 +00:00
Robin Lee
fbc65644b9 DevicePolicy API to remove an installed KeyPair
The keypair is specified by alias and removed via a call to the
KeyChainService, which will have installed the pair in the first place.

Bug: 22541933
Change-Id: I37317e7c22e89816156e6e9a7abf4c5a59e8440a
2015-12-08 16:40:56 +00:00
Tony Mak
415369ead5 Add Email.ENTEPRISE_CONTENT_FILTER_URI
Bug: 26074697

Change-Id: Ie1d595828912edf9d998eb2bcc4ba2f6388030b7
2015-12-08 07:39:37 +00:00
Jeff Sharkey
6a6cdafaec APIs to obtain SharedPreferences paths.
Needed for apps that want to migrate SharedPreferences from CE to DE
storage.  Note that a device will only ever enter a CE mode with a
factory reset, so apps should only be using these APIs when they
want to migrate files to a consistent location on non-FBE devices
for simplicity.

Bug: 25503089
Change-Id: Ic846215da1617d116a048e036415ac7ad523b770
2015-12-07 19:25:25 -07:00
Rubin Xu
cc586c5ab1 Merge "Introduce quiet mode state to managed profile users" 2015-12-07 21:52:40 +00:00
Yohei Yukawa
3a346cfe8e Merge "Add subtypeId for SpellCheckerSubtype." 2015-12-07 20:58:02 +00:00
Rubin Xu
0a29ecd8a5 Introduce quiet mode state to managed profile users
Quiet mode means the user will be free from visual and audio interruptions
from apps inside the managed profile, including notifications, widgets and
others. This CL adds the underlying state bit to users and exposes various
APIs to control and query the quiet mode state.

Bug: 22541941
Change-Id: If5f8e5a897843050e83b6ec26cb39561098f12b9
2015-12-07 18:17:46 +00:00
Wale Ogunwale
5f986095be APIs for activity to know when its windowing/pip modes change
Added APIs that allow activities to ask the system if they are currently
in multi-window or picture-in-picture mode and also get notified when
their modes change.

Bug: 25509834
Bug: 25683717
Change-Id: I4b8c316a49940bd6a8b31a93b345f9fd725a4721
2015-12-07 07:40:56 -08:00
Tyler Gunn
aa5c2c9303 Merge commit 'bc4da97ce0fcd0ddef228048bc663e383776c323' into tgunn-mncvtdev-to-master-2015-12-04 2015-12-04 21:04:20 -08:00
Tyler Gunn
1cee477bc5 Merge commit '024557b2afdbe2e946d2cc557cb71492d87b0f62' into tgunn-mncvtdev-to-master-2015-12-04
Change-Id: I156930f72a3267b59123469231331e9da5ac6aab
2015-12-04 21:03:30 -08:00
Yohei Yukawa
0894319162 Add subtypeId for SpellCheckerSubtype.
What this CL actually does is just copying the existing concept
"subtypeId" from InputMethodSubtype to SpellCheckerSubtype.

To recap, the underlying problem is that the system has stored only the
return value of SpellCheckerSubtype#hashCode() to track the set of
enabled subtypes, and SpellCheckerSubtype#hashCode() has been
implemented as Arrays.hashCode(new Object[] {locale, extraValue}), which
is problematic because:
  - Spell checker developers cannot change "locale" and/or 'extraValue'
    if they want to keep enabled subtypes enabled.
  - Android Framework developers cannot change the hash function even
    when new fields are added if they want to keep enabled subtypes
    enabled.
InputMethodSubtype has had the same issue, and what we did was
introducing a concept "subtypeId", which allows IME developers to
specify the return value of #hashCode().

For instance, suppose that a subtype X has already been used in
production with the following attributes:
  - locale: "tl_PH"
  - extraValues: "key1=value1,key2=value2"

With "subtypeId", you can change the attributes of subtype X without
losing the enabled state of subtype X on devices as follows.
  - locale: "fil_PH"
  - extraValues: "key1=value1,key2=value2,key3=value3"
  - subtypeId: Arrays.hashCode(new Object[] {
            "tl_PH", "key1=value1,key2=value2"})

This CL also deprecates existing public constructor of
SpellCheckerSubtype, which was probably published as a public API by
mistake.  Note that the constructor of SpellCheckerInfo class is @hide.
Also there is no public API that receives SpellCheckerSubtype object
instantiated by developers with custom data.  Making developers to be
able to instantiate SpellCheckerSubtype does not make sense right now.

Bug: 11736916
Bug: 22858221
Change-Id: I98f05c1e9421c47a93769bc4a6fe11b678bc2509
2015-12-04 16:16:47 -08:00
Sandra Kwan
db9df39992 Merge "AccountManager: add finishSession(...) API." 2015-12-04 23:35:20 +00:00
Sandra Kwan
920f6ef983 AccountManager: add finishSession(...) API.
Adding finishSession API to AccountManager and
AbstractAccountAuthenticator.

Change-Id: I153dd2bb6fe01d2e4b10b41e8b553f59da26bd29
2015-12-04 15:32:47 -08:00
Jeff Sharkey
65196ee28b Merge "Add tagging variants for DatagramSocket." 2015-12-04 22:44:40 +00:00
Jeff Sharkey
f0d7633bdc Add tagging variants for DatagramSocket.
Oops, we missed these along the way.

Bug: 25799174
Change-Id: I4ad368f9faee4b1996d605534dce4c2b23dbe200
2015-12-04 15:32:07 -07:00
Vinit Deshpande
0dfd4faf01 Merge "Mark WIFI_AP_STATE_CHANGED_ACTION and extras @SystemApi." 2015-12-04 19:58:58 +00:00
Jeff Sharkey
0534ac90e5 Merge "Handle non-encryption-aware accounts and sync." 2015-12-04 16:50:38 +00:00
Jeff Sharkey
9d8a1048bb Handle non-encryption-aware accounts and sync.
The system can now boot in a "locked" state where only encryption
aware (EA) components can be safely started.  When in this state,
PackageManager already filters away non-EA components, but system
services like AccountManager and SyncManager need to carefully handle
these temporarily "missing" components.

As a guiding principle, all known Accounts are still present when
the device is locked, but communication with underlying non-EA
authenticators is blocked.

To keep things simple for now, all SyncManager requests are kept
dormant until the user enters the unlocked state.

The core of this logic is that RegisteredServicesCache now works
with all components regardless of EA status, which prevents us from
accidentally thinking a service was removed when the user is locked.

Bug: 25945136
Change-Id: I8714121f6236b00821769023c4df7de1c8a99944
2015-12-04 09:36:39 -07:00
Ricky Wai
ccf15a45cf Merge "Change Contacts.CORP_CONTENT_FILTER_URI to enterprise API" 2015-12-04 16:35:33 +00:00
Ricky Wai
36220e3ed1 Merge "Make Work Directory API as Enterprise API" 2015-12-04 16:34:49 +00:00
Victor Chang
9d7670b466 Merge "Add ENTERPRISE_CONTENT_FILTER_URI to Callable and Phone" 2015-12-04 16:31:57 +00:00
Tomasz Mikolajewski
a4c338aea6 Add a FLAG_ARCHIVE flag to DocumentsContract.
Bug: 20176812
Change-Id: I4bf7c4f228682a68ca5106bfc757fb533e281a86
2015-12-04 19:16:28 +09:00
Jeremy Klein
b8c7badbb5 Mark WIFI_AP_STATE_CHANGED_ACTION and extras @SystemApi.
These will be used by Magic Tether within GmsCore.

Change-Id: I06691e69d256d0400d16a7bb63e3406fada7b5f1
2015-12-03 18:07:44 -08:00
Yohei Yukawa
b4ea6ddc03 Merge "Introduce EditorInfo#locales." 2015-12-04 01:21:02 +00:00
Yohei Yukawa
d550050171 Merge "Make LocaleList Parcelable." 2015-12-04 01:18:41 +00:00
Yohei Yukawa
8d6eeb01df Introduce EditorInfo#locales.
The primary goal of this CL is to enable application developers to
provide more context-based language (locale) information for IME
developers so that users can be benefited by more natural text input
experience.

As of API Level 23, there are several APIs that allow IMEs to retrieve
locale/country related information.

  - Locale#getDefault()
  - Configuration#locale
  - LocaleSpan#getLocale()
  - SubscriptionInfo#getCountryIso()

However, only LocaleSpan#getLocale() can be used to pass application
specific languge (locale) context from applications to IMEs.  Also
LocaleSpan is not designed to be used per input-context.  We want to
have something in EditorInfo and LocaleList would be the right thing.

Although default implementation of TextView#onCreateInputConnection()
starts filling EditorInfo#localeList with TextView#getTextLocales() by
this CL, application developers are encouraged to provide its own
LocaleList when they are confident that the user want to use a
certain (set) of language(s).

For instance, a chat application may be able to guess what language will
be used in the conversation before the user start typing.  At least it
should be able to remember the last used language for each conversation.

Another instance would be "From" and "To" EditText fields in a
translation app.  Those fields should have different LocaleList based on
the languages that the user want to translate from and to.

Bug: 22859862
Change-Id: I77db5b99a7cf745d800db75baf135bb60ad04820
2015-12-03 16:10:37 -08:00
Yohei Yukawa
789d8fdbd9 Make LocaleList Parcelable.
This is a preparation work to pass LocaleList from TextView to IMEs via
EditorInfo.

Marshalling and unmrshlling LocaleList via Parcel is actually not so
difficult.  We can reuse its internal data representation "localeTags"
as a canonical serialization format.

As for implementation, there are two choices.  One is making LocaleList
Parcelable and the other is having a utility method to do that.

This CL uses Parcelable approach so that not only Framework but also
application developers can reuse the code.

Bug: 22859862
Change-Id: Ib28363bd5ff74228d2abeaa95004ec8bed72bddd
2015-12-03 15:53:50 -08:00