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