Dropbox and Onedrive implementation of storage API using RESTful APIs#113
Open
TranceLove wants to merge 2 commits intomainfrom
Open
Dropbox and Onedrive implementation of storage API using RESTful APIs#113TranceLove wants to merge 2 commits intomainfrom
TranceLove wants to merge 2 commits intomainfrom
Conversation
Collaborator
Author
|
Test cases - list as suggested by Copilot for exhaustive scenarios, but may be redundant as well - subject to change before PR is out of draft status.
|
7b890e6 to
2b758fc
Compare
7fb430f to
d045100
Compare
There was a problem hiding this comment.
Pull Request Overview
This PR introduces RESTful API implementations for Dropbox and Microsoft OneDrive storage providers, offering SDK-less alternatives to the existing SDK-based implementations. The primary motivation is to enable usage scenarios where API credentials need to be provisioned outside the app, avoiding the constraints imposed by official SDKs.
- Creates new
plugin-dropbox-restfulandplugin-onedrive-restfulmodules using REST APIs instead of SDKs - Introduces a shared
core-restful-commonmodule to consolidate common RESTful API functionality - Fixes documentation and updates the sample app to include the new RESTful options
Reviewed Changes
Copilot reviewed 128 out of 130 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| settings.gradle.kts | Adds new plugin modules to project configuration |
| packages/plugin-onedrive/README.md | Fixes incorrect dependency name in documentation |
| packages/plugin-onedrive-restful/ | Complete OneDrive RESTful API implementation with tests |
| packages/plugin-dropbox-restful/ | Complete Dropbox RESTful API implementation with tests |
| packages/core-restful-common/ | Shared utilities for RESTful implementations |
| packages/core/src/main/java/com/openmobilehub/android/storage/core/ | Core utility extensions and exception types |
| packages/plugin-googledrive-non-gms/ | Updates to use shared restful-common module |
| apps/storage-sample/ | UI updates to include new RESTful login options |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
...lehub/android/storage/plugin/dropbox/restful/data/source/mapper/MemberSelectorSerializers.kt
Outdated
Show resolved
Hide resolved
...java/com/openmobilehub/android/storage/plugin/onedrive/restful/data/source/response/Drive.kt
Outdated
Show resolved
Hide resolved
...mobilehub/android/storage/plugin/onedrive/restful/OneDriveRestfulOmhStorageClientImplTest.kt
Outdated
Show resolved
Hide resolved
Signed-off-by: Raymond Lai <airwave209gt@gmail.com>
d045100 to
22561b5
Compare
- Updated Github Actions workflow for new artifacts - Updated dependencies between modules Signed-off-by: Raymond Lai <airwave209gt@gmail.com>
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implementation of android-omh-storage API for Dropbox and Microsoft Onedrive integration, without using Dropbox and Microsoft SDK but rely on RESTful API using https://github.com/square/okhttp and https://github.com/square/retrofit, along the style used by
plugin-googledrive-non-gmsmodule.One of the biggest drawback using original Dropbox and Microsoft implementation is developers must follow Dropbox and Microsoft SDK's method to place API credentials, which may not be ideal in some usage scenarios. With this SDK-less integration this opens up opportunities for integration without exposing API credentials in app source, either plaintext or compiled/obfuscated.
Note however, due to the common characteristics of this implementation with regards to
plugin-googledrive-non-gms, there are some classes moved to a newcore-restful-commonmodule. Separate PR shall be required for updating the Github Action build and publish workflow.Additionally, the metadata dialog in
storage-sample-appis also fixed for the crash problem whenever it pops up.Still in draft status since the UI acceptance test is not completed yet, as well as foreseeing some more fixes required. However still wanted to put this up for a proper checklist for testing the implementation as well.
Demo
Combination of original omh-auth using Dropbox and Microsoft SDK, integrated with this Dropbox and Microsoft RESTful implementation, is implemented into
storage-sample-app.Checklist:
storage-sample-app