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;
+    }
+
+
+
+
 }
 

Reply via email to