add favourite logic

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/b346c024
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/b346c024
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/b346c024

Branch: refs/heads/master
Commit: b346c0242de7373bbb97cf74883375e0203dffe7
Parents: c277f82
Author: Sagar <[email protected]>
Authored: Mon Jul 4 18:19:08 2016 +0530
Committer: Sagar <[email protected]>
Committed: Mon Jul 4 18:19:08 2016 +0530

----------------------------------------------------------------------
 .../workflowdetail/WorkflowDetailFragment.java  | 24 ++++++++
 .../workflowdetail/WorkflowDetailMvpView.java   |  4 ++
 .../workflowdetail/WorkflowDetailPresenter.java | 62 +++++++++++++++++++-
 3 files changed, 89 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b346c024/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java
 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java
index 5513947..de038fe 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java
@@ -33,6 +33,7 @@ import android.widget.TextView;
 
 import butterknife.BindView;
 import butterknife.ButterKnife;
+import butterknife.OnClick;
 
 public class WorkflowDetailFragment extends Fragment implements 
WorkflowDetailMvpView {
 
@@ -59,6 +60,9 @@ public class WorkflowDetailFragment extends Fragment 
implements WorkflowDetailMv
     @BindView(R.id.tvDescription)
     WebView description;
 
+    @BindView(R.id.ivFav)
+    ImageView ivFavourite;
+
     @BindView(R.id.progressBar)
     ProgressBar mProgressBar;
 
@@ -126,6 +130,7 @@ public class WorkflowDetailFragment extends Fragment 
implements WorkflowDetailMv
         if (mConnectionInfo.isConnectingToInternet()) {
 
             mWorkflowDetailPresenter.loadWorkflowDetail(id);
+            mWorkflowDetailPresenter.getFavourite(id);
         } else {
 
             mProgressBar.setVisibility(View.GONE);
@@ -136,6 +141,11 @@ public class WorkflowDetailFragment extends Fragment 
implements WorkflowDetailMv
 
     }
 
+    @OnClick(R.id.ivFav)
+    void favClick(View v){
+        mWorkflowDetailPresenter.setFavourite(id);
+    }
+
     @Override
     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
         super.onCreateOptionsMenu(menu, inflater);
@@ -269,6 +279,20 @@ public class WorkflowDetailFragment extends Fragment 
implements WorkflowDetailMv
     }
 
     @Override
+    public void setFavouriteIcon() {
+            mWorkflowDetailPresenter.getFavourite(id);
+    }
+
+    @Override
+    public void getFavouriteIcon(boolean b) {
+        if(b){
+            ivFavourite.setImageResource(R.drawable.ic_star_black_24dp);
+        }else{
+            ivFavourite.setImageResource(R.drawable.ic_star_border_black_24dp);
+        }
+    }
+
+    @Override
     public void onDestroyView() {
         super.onDestroyView();
         mWorkflowDetailPresenter.detachView();

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b346c024/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailMvpView.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailMvpView.java
 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailMvpView.java
index b7110c1..8710bcc 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailMvpView.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailMvpView.java
@@ -19,4 +19,8 @@ public interface WorkflowDetailMvpView extends MvpView {
     void showLicense(License license);
 
     void showLicenseProgress(boolean b);
+
+    void setFavouriteIcon();
+
+    void getFavouriteIcon(boolean b);
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b346c024/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
----------------------------------------------------------------------
diff --git 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
index 511498f..43fcd37 100644
--- 
a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
+++ 
b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailPresenter.java
@@ -1,9 +1,9 @@
 package org.apache.taverna.mobile.ui.workflowdetail;
 
 import org.apache.taverna.mobile.data.DataManager;
-import org.apache.taverna.mobile.data.model.Workflow;
 import org.apache.taverna.mobile.data.model.License;
 import org.apache.taverna.mobile.data.model.User;
+import org.apache.taverna.mobile.data.model.Workflow;
 import org.apache.taverna.mobile.ui.base.BasePresenter;
 
 import java.util.HashMap;
@@ -116,6 +116,65 @@ public class WorkflowDetailPresenter extends 
BasePresenter<WorkflowDetailMvpView
                 });
     }
 
+    public void setFavourite(String id) {
+
+        if (mSubscriptions != null) mSubscriptions.unsubscribe();
+
+        mSubscriptions = mDataManager.setFavoriteWorkflow(id)
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribeOn(Schedulers.io())
+                .subscribe(new Observer<Boolean>() {
+                    @Override
+                    public void onCompleted() {
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        getMvpView().showErrorSnackBar("Something went wrong 
please try after " +
+                                "sometime");
+                    }
+
+                    @Override
+                    public void onNext(Boolean b) {
+                        if (b) {
+                            getMvpView().setFavouriteIcon();
+                            getMvpView().showErrorSnackBar("Add to Favourite 
");
+                        } else {
+                            getMvpView().showErrorSnackBar("Something went 
wrong please try after" +
+                                    "sometime");
+                        }
+
+                    }
+                });
+    }
+
+    public void getFavourite(String id) {
+
+        if (mSubscriptions != null) mSubscriptions.unsubscribe();
+
+        mSubscriptions = mDataManager.getFavoriteWorkflow(id)
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribeOn(Schedulers.io())
+                .subscribe(new Observer<Boolean>() {
+                    @Override
+                    public void onCompleted() {
+
+                    }
+
+                    @Override
+                    public void onError(Throwable e) {
+                        getMvpView().showErrorSnackBar("Something went wrong 
please try after " +
+                                "sometime");
+                    }
+
+                    @Override
+                    public void onNext(Boolean b) {
+                        getMvpView().getFavouriteIcon(b);
+                    }
+                });
+    }
+
     private Map<String, String> getDetailQueryOptions() {
 
         Map<String, String> option = new HashMap<>();
@@ -138,4 +197,5 @@ public class WorkflowDetailPresenter extends 
BasePresenter<WorkflowDetailMvpView
         return option;
     }
 
+
 }

Reply via email to