Skip to content

Commit

Permalink
- add Realm impl & fix some issue
Browse files Browse the repository at this point in the history
  • Loading branch information
alhazmy13 committed Jan 18, 2017
1 parent 4540bfd commit 38b2c83
Show file tree
Hide file tree
Showing 7 changed files with 98 additions and 18 deletions.
6 changes: 6 additions & 0 deletions template/ActivityCleanArchitecture/recipe.xml.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@

</#if>

<#if generateRealmImpl>
<instantiate from="root/src/app_package/SimpleRealmImpl.java.ftl"
to="${escapeXmlAttribute(srcOut)}/model/${realmImplClass}.java" />

</#if>

<#if generateModelLayer>
<instantiate from="root/src/app_package/SimpleModel.java.ftl"
to="${escapeXmlAttribute(srcOut)}/model/model/${modelClass}.java" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package ${packageName}.model;


import retrofit2.Response;
import rx.Observable;
import rx.functions.Func1;
import ${packageName}.data.${repositoryInterface};
import ${packageName}.data.${serviceClass};

public class ${mockImplClass} implements ${repositoryInterface} {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package ${packageName}.model;

import io.realm.Realm;
import rx.Observable;
import rx.functions.Func1;
import ${packageName}.data.${repositoryInterface};

public class ${realmImplClass} implements ${repositoryInterface} {

private Realm mRealm;
public ${realmImplClass}() {
this.mRealm = Realm.getDefaultInstance();
}



// @Override
// public Observable<List<${modelClass}>> methodeFromRepo() {
// return mRealm.where(${modelClass}.class).findAll().asObservable()
// .map(new Func1<RealmResults<${modelClass}>, List<${modelClass}>>() {
// @Override
// public List<${modelClass}> call(RealmResults<${modelClass}> results) {
// return mRealm.copyFromRealm(results);
// }
// });
//
// //OR
// //return mRealm.where(${modelClass}.class).findFirst().asObservable();
//
// }

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,33 @@ package ${packageName}.model;
import rx.Observable;
import rx.functions.Func1;
import ${packageName}.data.${repositoryInterface};
import ${packageName}.data.${serviceClass};

public class ${repositoryImplClass} implements ${repositoryInterface} {

private ${serviceClass} mRetrofitService;
private ${retrofitService} mRetrofitService;

public ${repositoryImplClass}(${serviceClass} retrofitService) {
public ${repositoryImplClass}(${retrofitService} retrofitService) {
this.mRetrofitService = retrofitService;
}


// @Override
// @Override
//public Observable<${modelClass}> methodeFromRepo() {
// return mRetrofitService.methodeFromRetrofit().map(new Func1<Response<${modelClass}>, ${modelClass}>() {
// @Override
// public ${modelClass} call(Response<${modelClass}> response) {
// if (response.isSuccess())
// return response.body();
// else
// throw new RuntimeException(response.body().getResultMessage());
// }
//});
// }
// return mRetrofitService.methodeFromRetrofit()
// .subscribeOn(Schedulers.io())
// .observeOn(AndroidSchedulers.mainThread())
// .map(new Func1<Response<${modelClass}>, ${modelClass}>() {
// @Override
// public ${modelClass} call(Response<${modelClass}> response) {
// if (response.isSuccess()){
// return response.body();
// //OR if you are using a caching tempelte
// //return NetworkParser.cacheResponse(response.body());
// }else{
// throw new RuntimeException(response.body().getResultMessage());
// }
// }
//});
// }

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,6 @@ import rx.Observable;

public interface ${retrofitService} {

//GET("")
//Observable<Response<${modelClass}>> methodeFromRetrofit();
}
Original file line number Diff line number Diff line change
@@ -1,19 +1,40 @@
package ${packageName}.data;


public class ${serviceClass} {
public class ${serviceClass} implements ${repositoryInterface}{

private ${repositoryInterface} mRepo;
private Context mContext;
private ${repositoryInterface} mRepo;
private ${repositoryInterface} mOfflineRepo;


public ${serviceClass}(${repositoryInterface} repo) {
this.mRepo = repo;
}

public ${serviceClass}(${repositoryInterface} repo, ${repositoryInterface} offlineRepo, Context context) {
this.mRepo = repo;
this.mOfflineRepo = offlineRepo;
this.mContext = context;
}


// TODO:create methode in repo class
//
// public Observable<${modelClass}> methodeName() {
// return mRepo.methodeFromRepo();
//
//
// //OR if you are using a chacing templete
// //if (mContext != null && !Utility.isNetworkAvailable(mContext)) {
// // return mOfflineRepo.fetchPosts();
// //} else {
// // return mRepo.fetchPosts();
// // }
// }
//




}
17 changes: 17 additions & 0 deletions template/ActivityCleanArchitecture/template.xml
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,23 @@
visibility="generateMockImpl"
help="The name of the mock implementation to create" />

<parameter
id="generateRealmImpl"
name="Generate Realm Implementation for caching template"
type="boolean"
default="true"
help="If true, realm implementation will be generated" />

<parameter
id="realmImplClass"
name="Realm Implementation name"
type="string"
constraints="class|unique|nonempty"
suggest="${activityClass}RealmImpl"
default="MainRealmImpl"
visibility="generateRealmImpl"
help="The name of the realm implementation to create" />

<parameter
id="generateModel"
name="Generate Model for responce"
Expand Down

0 comments on commit 38b2c83

Please sign in to comment.