fixing workflow streams on daashboard
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/1e9c5cfa Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/1e9c5cfa Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/1e9c5cfa Branch: refs/heads/master Commit: 1e9c5cfade4a221a5e236439fd2a7f20264b0ffd Parents: 5f424af Author: larrytech7 <larrya...@gmail.com> Authored: Thu Aug 13 18:06:45 2015 +0100 Committer: larrytech7 <larrya...@gmail.com> Committed: Thu Aug 13 18:06:45 2015 +0100 ---------------------------------------------------------------------- .../adapters/FavoriteWorkflowAdapter.java | 15 ++++++++++++ .../mobile/adapters/WorkflowAdapter.java | 4 +--- .../mobile/fragments/WorkflowItemFragment.java | 2 +- .../workflowdetails/WorkflowdetailFragment.java | 24 ++++++++++++++++---- app/src/main/res/values/strings.xml | 1 + 5 files changed, 38 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java b/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java index c2bdfa6..4ad6eef 100644 --- a/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java @@ -25,6 +25,8 @@ package org.apache.taverna.mobile.adapters; */ import android.content.Context; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; @@ -110,6 +112,7 @@ public class FavoriteWorkflowAdapter extends RecyclerView.Adapter<FavoriteWorkfl public void onClick(View view) { Toast.makeText(context, String.format("%s", "Removed "),Toast.LENGTH_SHORT).show(); try { + //removeMarkedWorkflow(String.valueOf(data.get(0))); favDB.delete(String.valueOf(data.get(0))); notifyDataSetChanged(); } catch (JSONException e) { @@ -119,6 +122,18 @@ public class FavoriteWorkflowAdapter extends RecyclerView.Adapter<FavoriteWorkfl } }); } + //remove a workflow from the marked state + private void removeMarkedWorkflow(String strToRemove){ + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + char[] charsequence = sharedPreferences.getString(WorkflowAdapter.FAVORITE_LIST_DB, "").toCharArray(); + for(int i=0; i<charsequence.length; i++){ + if(charsequence[i] == strToRemove.charAt(0)){ + charsequence[i] = '0'; + break; + } + } + sharedPreferences.edit().putString(WorkflowAdapter.FAVORITE_LIST_DB, charsequence.toString()).apply(); + } @Override public int getItemCount() { http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java b/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java index 0d1c99c..8cecae7 100644 --- a/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java @@ -147,8 +147,6 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo @Override public void onBindViewHolder(final ViewHolder viewHolder, int i) { - final int j = i; //position of workflow item that has workflow data - final long wid = workflowList.get(i).getId(); final String author = workflowList.get(i).getWorkflow_author(); // final String author = workflowList.get(i).getUploader().getName(); @@ -169,6 +167,7 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo // it.putExtra("workflowid", workflow.get(i).getId()); //workflow_url it.putExtra("uri",uri);//uri it.putExtra("wtitle", title); //pass this workflow's title to the detail activity so the corresponding run can be fetched + it.putExtra("wid", wid); WorkflowdetailFragment.WORKFLO_ID = title;//workflow.get(i).getId(); //determine whether to mark button as favorited or not @@ -182,7 +181,6 @@ public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHo } } - viewHolder.btn_view_workflow.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java index 0228a24..784e631 100644 --- a/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/fragments/WorkflowItemFragment.java @@ -294,7 +294,7 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout isRefreshData = true; isLoadMoreData = false; - new WorkflowLoader(getActivity(),swipeRefreshLayout).execute(""+currentPage); + new WorkflowLoader(getActivity(),swipeRefreshLayout).execute(""+1); } /** http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java index 94e072e..38a348c 100644 --- a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowdetailFragment.java @@ -33,6 +33,7 @@ import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.Loader; +import android.content.SharedPreferences; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.net.Uri; @@ -110,6 +111,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList private static String download_url; public static String WORKFLO_ID = ""; public static Context cont; + SharedPreferences sharedPreferences; private static boolean LOAD_STATE = false; private static boolean DROPUPLOAD = false; static Animation zoomin; @@ -119,6 +121,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList final static private String BOX_APP_KEY = "doicbvkfyzligh2"; final static private String BOX_APP_SECRET = "3uuuw36mm7jkflc"; static Workflow currentWorkflow = null; + private long wid; private DropboxAPI<AndroidAuthSession> mDBApi; @@ -157,12 +160,23 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList zoomout = AnimationUtils.loadAnimation(getActivity(), R.anim.zoomout); isZoomIn = false; - + sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); + wid = getActivity().getIntent().getLongExtra("wid", 0); Button createRun = (Button) rootView.findViewById(R.id.run_wk); createRun.setOnClickListener(this); Button download = (Button) rootView.findViewById(R.id.download_wk); download.setOnClickListener(this); - rootView.findViewById(R.id.mark_wk).setOnClickListener(this); + Button mark_workflow = (Button) rootView.findViewById(R.id.mark_wk); + mark_workflow.setOnClickListener(this); + final String favs = sharedPreferences.getString(WorkflowAdapter.FAVORITE_LIST_DB, ""); + String[] ids = favs.split(","); + if(ids.length > 0) { + for (String id : ids) + if (id.equalsIgnoreCase("" +wid )){ + mark_workflow.setBackgroundResource(R.drawable.abc_list_selector_disabled_holo_light); + break; + } + } rootView.findViewById(R.id.saveToDropboxButton).setOnClickListener(this); rootView.findViewById(R.id.saveToGoogleDriveButton).setOnClickListener(this); (rootView.findViewById(R.id.wkf_image)).setOnLongClickListener(new View.OnLongClickListener() { @@ -210,8 +224,9 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList break; case R.id.mark_wk: - //TODO mark a workflow as important and launch task to store the entry into the local database + ArrayList<Object> mfav = new ArrayList<Object>(); + String favs = sharedPreferences.getString(WorkflowAdapter.FAVORITE_LIST_DB, ""); //save current workflow as favorite mfav.add(currentWorkflow.getId()); mfav.add(currentWorkflow.getWorkflow_author()); @@ -222,8 +237,9 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList mfav.add(((TextView) rootView.findViewById(R.id.wkf_author)).getText()); int result = new Workflow_DB(getActivity(), WorkflowAdapter.WORKFLOW_FAVORITE_KEY).insert(mfav); if(result >0) { + sharedPreferences.edit().putString(WorkflowAdapter.FAVORITE_LIST_DB, favs+wid+",").apply(); Toast.makeText(getActivity(), "Workflow marked as favorite", Toast.LENGTH_SHORT).show(); - ((Button) view).setCompoundDrawables(getActivity().getResources().getDrawable(android.R.drawable.btn_star_big_on),null,null,null); + view.setBackgroundResource(R.drawable.abc_list_selector_disabled_holo_light); }else if(result == -1){ Toast.makeText(getActivity(),"sorry!, this workflow has already been marked as favorite",Toast.LENGTH_SHORT).show(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1e9c5cfa/app/src/main/res/values/strings.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 39be676..25c2755 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -108,5 +108,6 @@ limitations under the License. <string name="usage_menu_Text">The navigation drawer brings up a menu. The workflow menu item allows one to quickly return to the workflow streams page from any screen. The \'Open Workflow\' item allows users to pick a valid workflow from external storage and run it against a Taverna Server through a Taverna Player. Settings allow user to configure player accounts and portal urls. Logout allows users to log-out of the app</string> <string name="usage_detail">Usage | Workfow Detail</string> <string name="usage_detail_text">The details screen allows users to run particular worklows and provides detailed information about the workflows. Workflows can also be downloaded from here. Workflows can also be marked from this screen which would save much more data for offline use than on the dashboard screen. This screen also provides a set of runs for the workflow from other users</string> + <string name="runid_text">Workflow Run ID:</string> </resources>