This CL addresses the comments from API Council about Android KeyStore
KeyPairGeneratorSpec, KeyGeneratorSpec and KeyStoreParameter:
1. These abstractions should not take or hold references to Context.
2. The Builders of these abstractions should take all mandatory
parameters in their constructors rather than expose them as
setters -- only optional paratemers should be exposed via setters.
These comments cannot be addressed without deprecation in the already
launched KeyPairGeneratorSpec and KeyStoreParameter. Instead of
deprecating just the getContext methods and Builder constructors, this
CL goes for the nuclear option of deprecating KeyPairGeneratorSpec and
KeyStoreParameter as a whole and exposing all of the AndroidKeyStore
API in the new package android.security.keystore. This enables this CL
to correct all of the accrued design issues with KeyPairGeneratorSpec
(e.g., naming of certificate-related methods) and KeyStoreParameter.
This also makes the transition to API Level M more clear for existing
users of the AndroidKeyStore API. These users will only have to deal
with the new always-mandatory parameters (e.g., purposes) and
sometimes-mandatory (e.g., digests, block modes, paddings) if they
switch to the new API. Prior to this CL they would've had to deal with
this if they invoked any of the new methods of KeyPairGeneratorSpec
or KeyStoreParameter introduced in API Level M.
This CL rips out all the new API introduced into KeyPairGeneratorSpec
and KeyStoreParameter classes for Android M, thus reverting these
classes to the API launched in L MR1. This is because the new API is
now in android.security.keystore.KeyGenParameterSpec and KeyProtection
respectively.
Bug: 21039983
Change-Id: I59672b3c6ef7bc25c40aa85f1c47d9d8a05d627c
Part of this API involves persisting config bundles to avoid binding to
apps at critical moments (like boot). Regular bundles should not be
written to disk because they support object types that can lose their
meaning while the data is at rest.
In order to use PersistableBundle, we must either start with one or
filter unwanted types out of Bundle objects. Since the carrier config
API has no use for unsupported types, we chose to use PersistableBundle
everywhere.
Bug: 20268926
Change-Id: I17989ce840014c2a0ed3679c1bca5a8498082c7f
- Reorder parameters to loadDrawableAsync()
- New version of createWithResource that takes a package
name instead of a Resources
- Add loadDrawableAsUser() for INTERACT_ACROSS_USERS clients
like SystemUI
- Docs cleanups
Bug: 21089268
Bug: 21031774
Change-Id: I465d2b865e35e12094b564f994e59d55e522f65a
Addressed the feedback from the API Review:
android.media.tv.TvView.TimeShiftPositionCallback
Please add more documentation to explain why we are using the wall-clock
time here.
android.media.tv.TvInputService
onTimeShiftSetPlaybackRate should be renamed to
onTimeShiftSetPlaybackParams and pass in the PlaybackParams object
(formerly known as PlaybackSettings) instead of the rate and mode
separately.
android.media.tv.TvTrackInfo
getDescription() should return a CharSequence not a String.
android.media.tv.TvTrackInfo.Builder
setDescription() should take a CharSequence as input.
android.media.tv.TvView
Change timeShiftSetPlaybackRate() to setTimeShiftPlaybackParams() and
use the PlaybackParams object (formerly known as PlaybackSettings)
instead of the rate and mode separately.
Bug: 21045120
Change-Id: I768665ae9c385fcb034bfb346c21b4c9f0891172
It turned out that after the API change from ViewAssistStructure to
ViewStructure, the suggested mechanism did not work, and webview
started throwing abstractmethoderror exceptions. Temporarily
solve the problem by wrapping ViewStructure inside a
ViewAssistStructure. Once Webview APK is updated, drop it.
Change-Id: I09dfe7dac9c2bc7c037d842844c61dd879629470
* Add better docs to ChooserTarget
* Change ChooserTarget to use android.graphics.drawable.Icon instead
of Bitmap
* Preserve EXTRA_REFERRER when starting ChooserTargets
Bug 21045119
Change-Id: If859b86344cebaed3eaae477af132e7d7600aba6
This patch adds plumbing to TextView and StaticLayout to control the
frequency of automatic hyphenation used in laying out paragraphs.
Bug: 21038249
Change-Id: Ib45de190eb0a1ed738e69fd61f2b39561b11aec7
Rename MidiDeviceInfo.getPortList() to getPorts()
Rename MidiManager.getDeviceList() to getDevices()
Rename MidiReceiver.onReceive() to onSend()
Replace MidiManager.DeviceOpenCallback and BluetoothOpenCallback
with new interface MidiManager.OnDeviceOpenedListener
Add MidiSender.onConnect() and onDisconnect()
Add MidiReceiver.onFlush()
Ensure that MidiReceiver max message size is immutable
Bug: 21044677
Change-Id: I7711734a45e831e9744849a6f569e906feff9f80
Move CameraCapabilities into VideoProfile
Make PhoneAccount and PhoneAccountHandle final
Bug: 21040387
Bug: 21066505
Change-Id: I72453c89ae3765f9b9cf263938fce96d5978d2e0
This moves constants/flags declared in inner classes of
KeyStoreKeyProperties into KeyStoreKeyProperties, as requested by API
Council.
Bug: 21039983
Change-Id: I84a3c983e13644a027bed9f605ab8044220a352c
This gets rid of EcIesParameterSpec.PointFormat by moving the
constants into EcIesParameterSpec, prefixed with POINT_FORMAT_.
Bug: 21039983
Change-Id: I7a76bb84e0394db9c7f5b0d53526915d5bbdd511
All ConnectivityManager APIs taking a network type have been
deprecated so there should be no need to validate a network type.
bug:20647016
Change-Id: I2dcf24f58016e94aa814dda38cfc848366cc461c
The method TvView.requestUnblockContent doesn't match the name of the
corresponding method in TvInputService, onUnblockContent, hence changed
the name to make it consistent with the current naming scheme.
This change deprecated the requestUnblockContent method as the first
step.
Bug: 19337627
Change-Id: I530209c4dca66305da90ffded7199fa3c1c1780c
We now maintain a mata-state with each permission in the form of flags
specyfying the policy for this permission. This enables support of the
following use cases:
1. The user denies a permission with prejudice in which case an app cannot
request the permission at runtime. If an app requests such a permssion
it gets a denial unless the user grants the permission from settings.
2. A legacy app with disabled app-ops being upgraded to support runtime
permissions. The disabled app ops are converted to permission revocations.
The app ops manager is a part of the activity manger which sits on top
of the package manager, hence the latter cannot have a dependency on the
former. To avoid this the package installer which is the global
permission managment authority marks the permission as revoked on
upgrade and the package manager revokes it on upgrade.
3. A device policy fixing a permission in a granted or revoked state. This
additional information is folded in the meta-state flags and neither
apps can request such permissions if revoked not the user can change
the permission state in the UI.
Change-Id: I443e8a7bb94bfcb4ff6003d158e1408c26149811