Releases: aws-amplify/amplify-android
Amplify Android 1.6.7
DataStore
-
Encountering error while publishing mutation no longer crashes DataStore. See PR #976.
-
Fixed a race condition in the sync engine. See Issue #1010.
-
Storage engine behavioral updates:
-
Improved Flutter support:
Auth
- Now supports specifying custom browser for web UI. See PR #1030.
API
- Fix Rest API's DELETE operation. See Issue #1028.
Amplify Android 1.6.6
Minor improvements to the DataStore:
- Fixes issue #1012, aligning the
OutboxMutationEvent
to the design on iOS (See PR #1015.) - Fixes issue #1011, addressing a failure while merging AppSync deletions, when being used by Flutter (See PR #1014.)
- Improves the recovery suggestions in the error messages arising when subscriptions fail (See #1016.)
Amplify Android 1.6.5
Fixes various bugs in the DataStore.
Fixes benefiting all DataStore customers:
- #993 addressing #984, "Error events in DataStore.observe cause an app crash"
- #1000, "Prevent NPE while inspecting GraphQL errors," resolving #977
Fixes benefiting customers who use the Android DataStore via Flutter:
- #1004 resolving #994, "Remote delete mutations are not getting saved locally"
- #1001 addressing #998, "ClassCastException when saving Temporal types from Flutter"
- #1007 addressing #997, "
ClassNotFoundException: boolean
on app start"
A complete manifest of changes since 1.6.4 can be seen here.
Amplify Android 1.6.4
Fixes a DataStore bug where-in Flutter users publishing connected models to AppSync could fail.
Amplify Android 1.6.3
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.