add favourite workflow in DB and data layer
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/526e74db Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/526e74db Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/526e74db Branch: refs/heads/master Commit: 526e74dbaf001f425d281d8ec074c3d9db45b47e Parents: 7fa84c7 Author: Sagar <[email protected]> Authored: Mon Jul 4 18:16:19 2016 +0530 Committer: Sagar <[email protected]> Committed: Mon Jul 4 18:16:19 2016 +0530 ---------------------------------------------------------------------- .../apache/taverna/mobile/data/DataManager.java | 16 +++++ .../taverna/mobile/data/local/DBHelper.java | 71 ++++++++++++++++++-- 2 files changed, 82 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/526e74db/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java b/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java index 78c2e89..ce414ad 100644 --- a/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java +++ b/app/src/main/java/org/apache/taverna/mobile/data/DataManager.java @@ -99,4 +99,20 @@ public class DataManager { return mBaseApiManager.getTavernaApi().getLicenseDetail(id, options); } + /** + * @return Is Workflow toggle Favourite or not + */ + + public Observable<Boolean> setFavoriteWorkflow(String id) { + return mDBHelper.setFavouriteWorkflow(id); + } + + /** + * @return Is Workflow Favourite or not + */ + + public Observable<Boolean> getFavoriteWorkflow(String id) { + return mDBHelper.getFavouriteWorkflow(id); + } + } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/526e74db/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java b/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java index 7f3d538..3570f03 100644 --- a/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java +++ b/app/src/main/java/org/apache/taverna/mobile/data/local/DBHelper.java @@ -28,6 +28,7 @@ public class DBHelper { if (subscriber.isUnsubscribed()) return; for (Workflow workflow : workflows.getWorkflowList()) { if (!workflow.exists()) { + workflow.setFavourite(false); workflow.save(); } else { @@ -54,27 +55,31 @@ public class DBHelper { workflow1.setDescription(workflow.getDescription()); } - if (workflow.getUpdatedAt() != null ) { + if (workflow.getUpdatedAt() != null) { workflow1.setUpdatedAt(workflow.getUpdatedAt()); } - if (workflow.getSvgUri() != null ) { + if (workflow.getSvgUri() != null) { workflow1.setSvgUri(workflow.getSvgUri()); } - if (workflow.getLicenseType() != null ) { + if (workflow.getLicenseType() != null) { workflow1.setLicenseType(workflow.getLicenseType()); } - if (workflow.getContentUri() != null ) { + if (workflow.getContentUri() != null) { workflow1.setContentUri(workflow.getContentUri()); } - if (workflow.getContentType() != null ) { + if (workflow.getContentType() != null) { workflow1.setContentUri(workflow.getContentType()); } + if (workflow.getElementId() != null) { + workflow1.setElementId(workflow.getElementId()); + } + workflow1.setFavourite(workflow1.isFavourite()); workflow1.setTitle(workflow.getTitle()); workflow1.setType(workflow.getType()); workflow1.setUploader(workflow.getUploader()); @@ -109,5 +114,61 @@ public class DBHelper { } + public Observable<Boolean> setFavouriteWorkflow(final String id) { + return Observable.create(new Observable.OnSubscribe<Boolean>() { + @Override + public void call(Subscriber<? super Boolean> subscriber) { + if (subscriber.isUnsubscribed()) return; + subscriber.onNext(updateFavouriteWorkflow(id)); + subscriber.onCompleted(); + } + }); + } + + + public Observable<Boolean> getFavouriteWorkflow(final String id) { + return Observable.create(new Observable.OnSubscribe<Boolean>() { + @Override + public void call(Subscriber<? super Boolean> subscriber) { + if (subscriber.isUnsubscribed()) return; + Workflow workflow1 = SQLite.select() + .from(Workflow.class) + .where(Workflow_Table.id.eq(id)) + .querySingle(); + + if (workflow1 != null) { + + subscriber.onNext(workflow1.isFavourite()); + subscriber.onCompleted(); + }else{ + + subscriber.onError(null); + } + + + + } + }); + } + + public boolean updateFavouriteWorkflow(String id) { + + Workflow workflow1 = SQLite.select() + .from(Workflow.class) + .where(Workflow_Table.id.eq(id)) + .querySingle(); + + if (workflow1 != null) { + workflow1.setFavourite(!workflow1.isFavourite()); + workflow1.save(); + return true; + } + + return false; + } + + + + }
