Releases: aws-amplify/aws-sdk-android
Releases · aws-amplify/aws-sdk-android
AWS SDK for Android 2.12.6
Misc. Updates
- AWS IoT
- Fixed an internal SDK usage metrics tracker.
AWS SDK for Android 2.12.5
New Features
-
AWS Mobile Client
- Added support for SAML in
federatedSignIn(). - Added support for developer authenticated identities in
federatedSignIn(). See issue #577 - Added support Cognito Hosted UI in
showSignIn(). - Added support to use OAuth 2.0 provider like
Auth0inshowSignIn(). Federation for AWS credentials requires OpenID support from the provider. - Added support for global sign out.
- Added support for device features which include
list,get,updateStatusandforget. These APIs are available throughgetDeviceOperations().
- Added support for SAML in
-
Amazon Cognito Identity Provider
- Fixed threading issues to ensure callbacks are made from main looper when
xInBackground()method variants are used. See issue #722
- Fixed threading issues to ensure callbacks are made from main looper when
-
Amazon Cognito Auth
- Fixed erroneous user cancelled error when redirecting back to app. See issue #328
AWS SDK for Android 2.12.4
- AWS Core
- Fixed a crash in initializing
CognitoCachingCredentialsProviderwhile migrating the data stored underexpirationDate.
- Fixed a crash in initializing
AWS SDK for Android 2.12.3
Enhancements
-
AWS Core
- The
SharedPreferencesused byCognitoCachingCredentialsProvideris now encrypted. - Added a method
CognitoCachingCredentialsProvider.setPersistenceEnabled(boolean), which is enabled (set to true) by default therefore the information is persisted in SharedPreferences. When disabled (set to false), the information will only be kept in memory.
- The
-
Amazon CognitoIdentityProvider
- The
SharedPreferencesused byCognitoUserPoolis now encrypted. - Added a method
CognitoUserPool.setPersistenceEnabled(boolean), which is enabled (set to true) by default therefore the information is persisted in SharedPreferences. When disabled (set to false), the information will only be kept in memory.
- The
-
Amazon CognitoAuth
- The
SharedPreferencesused byAuthis now encrypted. - Added a method
Auth.setPersistenceEnabled(boolean), which is enabled (set to true) by default therefore the information is persisted in SharedPreferences. When disabled (set to false), the information will only be kept in memory.
- The
-
AWSMobileClient
- The
SharedPreferencesused byAWSMobileClientis now encrypted.
- The
AWS SDK for Android 2.12.2
Misc. Updates
- Model updates for the following services
- Amazon S3
AWS SDK for Android 2.12.1
Bug Fixes
- AWS Mobile Client
- Fixed a bug that cause
changePassword(String, String, Callback)to return error when successful. The error returned was null and will now callonResult(Void)
- Fixed a bug that cause
Enhancements
-
Amazon Cognito Identity Provider
- The Amazon Cognito Identity Provider SDK now supports all Amazon Cognito Identity Provider APIs, including "CreateUserPool", "DescribeUserPool", "UpdateUserPool", "ListUserPools", "AdminEnableUser", "AdminDisableUser", "AdminConfirmRegisterUser", "AdminResetUserPassword", "AdminGetUser", "AdminUpdateUserAttributes", "AdminDeleteUserAttributes", "AdminDeleteUser". All admin APIs require developer credentials. Note that by using admin APIs, you are inherently dealing with privileged functions that could result in data loss, if improperly used.
- Fixed
initiateUserAuthentication()to respectrunInBackgroundflag for network calls. See pr #702
-
AWS Core Runtime
- Add templated callback structure for async methods across SDKs. Internal
ReturningRunnableadded to facilitate support for synchronous and asynchronous methods.
- Add templated callback structure for async methods across SDKs. Internal
Misc. Updates
- Model updates for the following services
- AWS IoT
- Amazon Lambda
AWS SDK for Android 2.12.0
Enhancements
-
Amazon Cognito Auth
- Allow user to unbind the service after being done with authentication. See pr #615. Thanks @rlatapy-luna!
-
Amazon Cognito User Pools
- Adds support for the SRP protocol at the beginning of custom auth. Please use
AuthenticationDetails(String, String, Map<String, String>, Map<String, String>)to trigger custom auth flow with SRP protocol as the first step.
- Adds support for the SRP protocol at the beginning of custom auth. Please use
-
Amazon S3
- Note: AWS Signature Version 4 (
SigV4) is recommended for signing Amazon S3 API requests over AWS Signature Version 2 (SigV2) as it provides improved security by using a signing key rather than your secret access key. SigV4 is currently supported in all AWS regions while SigV2 is only supported in regions launched prior to Jan 2014. Amazon S3 will stop accepting requests signed using SigV2 in all regions on June 24, 2019, any
requests signed using SigV2 made after this time will fail. Please visit the S3 documentation site to get more information on using SigV4: Signing Aamzon S3 requests using SigV4. You can find the list of
changes between versions here: Changes in SigV4. - Deprecated the existing constructors in
AmazonS3Clientand introduced equivalent constructors that require the AWS region, because a valid AWS region is required to sign the request using SigV4. Please use the following constructors to specify the AWS region in order to sign the request to Amazon S3 using SigV4.
- Note: AWS Signature Version 4 (
| 2.11.1 | 2.12.0 |
|---|---|
| AmazonS3Client(AWSCredentials) | AmazonS3Client(AWSCredentials, com.amazonaws.regions.Region) |
| AmazonS3Client(AWSCredentials, ClientConfiguration) | AmazonS3Client(AWSCredentials, ClientConfiguration, com.amazonaws.regions.Region) |
| AmazonS3Client(AWSCredentialsProvider) | AmazonS3Client(AWSCredentialsProvider, com.amazonaws.regions.Region) |
| AmazonS3Client(AWSCredentialsProvider, ClientConfiguration) | AmazonS3Client(AWSCredentialsProvider, ClientConfiguration, com.amazonaws.regions.Region) |
| AmazonS3Client(AWSCredentialsProvider, ClientConfiguration, HttpClient) | AmazonS3Client(AWSCredentialsProvider, ClientConfiguration, HttpClient, com.amazonaws.regions.Region) |
| AmazonS3Client(ClientConfiguration) | AmazonS3Client(ClientConfiguration, com.amazonaws.regions.Region) |
AWS SDK for Android 2.11.1
New Features
- Amazon S3
- Add the ability to specify the type of network connection (
TransferNetworkConnectionType.ANY- any network,TransferNetworkConnectionType.MOBILE- mobile only,TransferNetworkConnectionType.WIFI- WiFi only) for the transfers throughTransferUtilityOptions. TheTransferUtilityOptionsis passed to theTransferUtilityobject and is used for all the transfers that are initiated through this object. The network connection type can be passed while constructing theTransferUtilityOptionsobject throughTransferUtilityOptions(int, TransferNetworkConnectionType). See pr #575. Thanks @nasdf!
- Add the ability to specify the type of network connection (
Bug Fixes
-
Amazon Cognito Identity Provider
- Fixed a bug that used a null username during custom auth challenge. See issue #657 & issue #583
-
AWS IoT
- Fixed a bug that caused some IoT connections to not reconnect after errors.
See PR #660.
Thanks @sklikowicz!
- Fixed a bug that caused some IoT connections to not reconnect after errors.
-
Amazon S3
- Improved the state, progress and error reporting when the transfers are interrupted.
- When the transfer is paused or cancelled by the user, the state is reported correctly.
- When the transfer is interrupted because of a network drop, the state is set to WAITING_FOR_NETWORK when the
TransferNetworkLossHandleris used. - When the transfer is interrupted otherwise, the transfer is set to FAILED and the exception is reported via
TransferListener.onErrorcallback.
- Fixed the bug where progress is reported inaccurately (over 100%) when a transfer is paused by user or network drop and resumed before completion. See issue #677, issue #667, issue #616, issue #406
- Improved the state, progress and error reporting when the transfers are interrupted.
Enhancements
- Amazon Cognito Identity
- The Amazon Cognito Identity SDK now supports all Amazon Cognito Identity
APIs, including admin APIs that require developer credentials. Note that by
using admin APIs, you are inherently dealing with privileged functions that
could result in data loss of data if improperly used. See issue
#645
- The Amazon Cognito Identity SDK now supports all Amazon Cognito Identity
Misc. Updates
- Model updates for the following services
- AWS IoT
- Amazon Comprehend
- Amazon Cognito Identity Provider
- Amazon Kinesis Firehose
- Amazon Transcribe
- Amazon Pinpoint
AWS Mobile SDK for Android v2.11.0
Enhancements
- Amazon S3
- Introduced
TransferNetworkLossHandler, a utility that listens for network connectivity changes.TransferNetworkLossHandlerpauses the on-going transfers when the network goes offline and resumes the transfers that were paused when the network comes back online. TransferServicewill be moved to foreground state when the device is running Android Oreo (API Level 26) and above.- Transitioning to the foreground state requires a valid on-going
Notificationobject, identifier for on-going notification and the flag that determines the ability to remove the on-going notification when the service transitions out of foreground state. If a valid notification object is not passed in, the service will not be transitioned into the foreground state. - The
TransferServicecan now be started usingstartForegroundServicemethod to move the service to foreground state. The service can be invoked in the following way to transition the service to foreground state:getApplicationContext().startForegroundService(intent);.
- Transitioning to the foreground state requires a valid on-going
- Introduced
Bug Fixes
- Amazon S3
- Fixed a bug in
TransferUtilitywhere the state is not set to 'WAITING_FOR_NETWORKwhen network goes offline during execution of transfers. - Fixed a bug where objects with key name containing characters that require special handling are uploaded with URL encoded key name on the S3 bucket.
- Since
2.4.0version of the SDK, the key name containing characters that require special handling are URL encoded and escaped( space, %2A, ~, /, :, ', (, ), !, [, ] )by theAmazonS3Client, after which the AWS Android Core Runtime encodes the URL resulting in double encoding of the key name. - Starting
2.11.0, the additional layer of encoding and escaping done byAmazonS3Clientis removed. The key name will not be encoded and escaped byAmazonS3Client. Now, the key name that is given toAmazonS3ClientorTransferUtilitywill appear on the Amazon S3 console as is. - See issue #526, issue #321, issue #360
, issue #545, issue #597.
- Since
- Fixed a bug where
AmazonS3Client.listObjectsoperation executed on a bucket, with key names containing characters that require special handling, returns theListObjectsResponsewith the key names being URL encoded.- When a S3 bucket contans objects with key names containing characters that require special handling, and since the SDK has an XML parser, (XML 1.0 parser) which cannot parse some characters, the SDK is required to request that Amazon S3 encode the keys in the response. This can be done by passing in
urlasencodingTypein theListObjectsRequest. - Since
2.4.0, there was a bug where the SDK did not decode the key names which are encoded by S3 whenurlis requested as theencodingType. This is fixed in2.11.0, where the SDK will decode the key names in theListObjectsResponsesent by S3. - If you have objects in S3 bucket that has a key name containing characters that require special handling, you need to pass the
encodingTypeasurlin theListObjectsRequest.
- When a S3 bucket contans objects with key names containing characters that require special handling, and since the SDK has an XML parser, (XML 1.0 parser) which cannot parse some characters, the SDK is required to request that Amazon S3 encode the keys in the response. This can be done by passing in
- Fixed a bug in
Misc. Updates
- Amazon S3
- Allow requester-pays access for
listObjectsandlistObjectsV2requests.
- Allow requester-pays access for
beta_v2.10.4
add back dependency to s3 release for build