Releases: aws-amplify/amplify-android
Amplify Android 1.6.2
DataStore
- Selective Sync: Added ability to filter which data is synced to the client (everything is synced by default) (#959)
Amplify.addPlugin(new AWSDataStorePlugin(DataStoreConfiguration.builder()
.syncExpression(Blog.class, () -> Blog.NAME.equals("foo"))
.syncExpression(Post.class, () -> Post.TITLE.beginsWith("bar"))
.syncExpression(Comment.class, () -> Comment.CONTENT.contains("baz"))
.build()));
Amplify.configure(context);
See the following diff for a complete set of changes since the last release.
Amplify Android 1.6.1
Storage
- Added
uploadInputStream
API. With the privacy changes in Android 10, clients often don't have easy access to aFile
anymore, so the existinguploadFile
API is not enough. Now, clients are typically working with a URI, which can easily be converted to an InputStream, and passed to the new API (#955).
InputStream inputStream = new ByteArrayInputStream("myData".getBytes());
Amplify.Storage.uploadInputStream(
"keyForMyData",
inputStream,
result -> Log.d("MyApp", "Uploaded InputStream for key: " + result.getKey()),
error -> Log.e("MyApp", "Error uploading InputStream: ", error));
See the following diff for a complete set of changes since the last release.
Amplify Android 1.6.0
DataStore
- Fixed issue with querying deeply nested relational models (#892)
- Conditional delete is now wired up with the local storage (#949)
- Fixed race condition that caused
READY
status to fire multiple times (#952) - Now works with Dart-language models for Flutter support (#954). See issue #842 for more details.
See the following diff for a complete set of changes since the last release.
Amplify Android 1.5.0
API
- Added support for owner-based auth with OIDC (#906)
- Added support for custom group claim with OIDC (#930)
- Fix bug where subscriptions will not be received if the owner field is defined implicitly (#926)
DataStore
- Modifies subscription error handling to allow other subscriptions to stay connected if others return Unauthorized errors (#942)
- Added
start
andstop
APIs to provide more control of the DataStore lifecycle, and modified behavior ofconfigure
andclear
to notstart
anymore. Lazy start will still occur if needed as a result ofquery
,save
,delete
, andobserve
(#909) - Removed the
PUBLISHED_TO_CLOUD
event, which was duplicated byOUTBOX_MUTATION_PROCESSED
, and renames theRECEIVED_FROM_CLOUD
event toSUBSCRIPTION_DATA_PROCESSED
(#931)
See the following diff for a complete set of changes since the last release.
Amplify Android 1.4.2
DataStore
- Added mutation conflict handling (#883)(#904)(#907). Users can supply their own conflict handling strategy, by passing it in a
DataStoreConfiguration
provided to theAWSDataStorePlugin
:
val config = DataStoreConfiguration.builder()
.dataStoreConflictHandler((conflictData, onResult) -> {
onResult.accept(DataStoreConflictHandlerResult.APPLY_REMOTE);
})
.build();
Amplify.addPlugin(AWSDataStorePlugin(config))
- fix: make subscription timeout model count dependent (#858)
- fix: Prevent concurrent start/stop on orchestrator (#876
API
- Adds support for custom identity claim (#889)
Storage
Amplify.Storage.uploadFile(
"ExampleKey",
exampleFile,
AWSS3StorageUploadFileOptions.builder()
.serverSideEncryption(ServerSideEncryption.MANAGED_KEYS)
.build(),
{ progress -> Log.i("MyAmplifyApp", "Fraction completed: ${progress.fractionCompleted}") },
{ result -> Log.i("MyAmplifyApp", "Successfully uploaded: ${result.getKey()}") },
{ error -> Log.e("MyAmplifyApp", "Upload failed", error) }
)
Misc Updates
- Fail early and throw useful exception if customer forgets to call Amplify.configure (#888)
- Update okhttp 4.9.0 (#862)
- Update androidx-core 1.3.2 (#890)
- Update awsSdkVersion 2.19.1 (#914)
See the following diff for a complete set of changes since the last release.
Amplify Android 1.4.1
- Fixed a bug where API subscriptions would not work as intended if both owner auth directive and group auth directive are specified with a READ operation (See #860).
- Fixed a crash on serialization of Temporal types (#848)
See the following diff for a complete set of changes since the last release.
Amplify Android 1.4.0
-
Adds APIs to
Amplify.Auth
to support updating and retrieving user attributes, used for authentication. -
Aligns behavior of anonymous / guest users to the behavior of Amplify iOS's Auth category. (See #850).
-
Miscellaneous fixes to better support temporal types (
Temporal.Date
, etc.)
For a complete manifest of changes, see the diff between 1.4.0 and the previous release, 1.3.2.
Amplify Android 1.3.2
- Amplify Developer Menu can now be explicitly disabled:
val config = AmplifyConfiguration.builder(applicationContext)
.devMenuEnabled(false)
.build()
Amplify.configure(config)
-
Miscellaneous improvements for
@auth
support. -
Use latest stable versions of all dependencies (including
2.19.0
of the AWS SDK for Android.) -
Improved support for GraphQL types which do not specify
@model
-
Improved support for AppSync defined date/time scalars.
Version 1.3.1
Features
- (Auth) Auth errors are now categorized so you no longer need to rely on the message or cause - you can directly check the exception type.
Bug Fixes
- (Core) Removed duplicate app icon caused by Developer Menu (fixes #794)
Version 1.3.0
Features
- (Core) New Debug Functionality! A developer menu that can be activated by shaking the device during debug builds of your app. The developer menu is intended to help you access important information while debugging and easily file GitHub issues containing this information: https://docs.amplify.aws/lib/debugging/dev-menu/q/platform/android
- (Auth) Implement device tracking
- (API) PaginatedResult now implements Iterable
- (DataStore) Add pagination, respecting syncPageSize and syncMaxRecords
- (DataStore) Add sorting
- (DataStore) Implement mutation outbox hub events
- (DataStore) Trigger hub events during sync
- (RXBindings) RXBindings improvements
Bug Fixes
- (RXBindings) Make ConnectionStateEvent public
Misc
- Update rxjava and rxandroid to v3