This repository has been archived by the owner on Jul 16, 2022. It is now read-only.
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.
The new idea of Restful Resource Client. The concept is to make it more explicit to follow by remove the Reflection part out and borrow some concepts from Robospice.
RestfulResourceClient
Execute
RestRequest
object for connecting to API and Database. The result will be post back withOnDataReceivedEvent
object. WhenMovieDBApi
API Interface use with Retrofit. Data classes defined as a Response for each service.
RestRequest
Request class to define how to interact with resources both API and Realm. The
LocalRequest
class is used to execute database transactions with Realm andNetworkRequest
class is used to execute Retrofit service. Note that theLocalRequest
may be null to ignore the response that does not need to be saved to Realm (e.g. SignIn/SignUp). Each request will have generated ID (timestamp) to identify itself when the result is send back to UI with EventBus.ActionExecutor
Class to define how to CRUD with Realm based on given API. Each
ActionExecutor
need to implement trait fromMovieDBApi
.OnDataReceivedEvent
Event class to get the result from
ResourcefulResourceClient
. Each event will containrequestId
,source
,result
anderror
. Thesource
variable will be used to determine whether the result is come fromDATABASE
orNETWORK
. Theerror
will not be null if there is an error occured