You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by ia...@apache.org on 2017/01/09 12:26:44 UTC

[1/2] incubator-taverna-mobile git commit: add imeoption to search configuration

Repository: incubator-taverna-mobile
Updated Branches:
  refs/heads/master ab6a414af -> d14f853f4


add imeoption to search configuration


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

Branch: refs/heads/master
Commit: 0bad5eb52fc8f539b8a6fbc5a7c5e41f610e7ea5
Parents: ab6a414
Author: Sagar <ku...@gmail.com>
Authored: Sat Dec 31 21:47:03 2016 +0530
Committer: Sagar <ku...@gmail.com>
Committed: Sat Dec 31 21:47:03 2016 +0530

----------------------------------------------------------------------
 app/src/main/res/xml/searchable.xml | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/0bad5eb5/app/src/main/res/xml/searchable.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/xml/searchable.xml b/app/src/main/res/xml/searchable.xml
index d86697f..8ff36eb 100644
--- a/app/src/main/res/xml/searchable.xml
+++ b/app/src/main/res/xml/searchable.xml
@@ -19,9 +19,8 @@ See the License for the specific language governing permissions and
 limitations under the License.
 -->
 <searchable xmlns:android="http://schemas.android.com/apk/res/android"
-    android:hint="@string/search_hint"
-    android:autoUrlDetect="true"
-    android:label="@string/app_name"
-    >
+            android:hint="@string/search_hint"
+            android:imeOptions="actionSearch"
+            android:label="@string/app_name">
 
 </searchable>
\ No newline at end of file


[2/2] incubator-taverna-mobile git commit: implementation of search functionality

Posted by ia...@apache.org.
implementation of search functionality


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

Branch: refs/heads/master
Commit: d14f853f4dafc83428e679d25699965ab1c78798
Parents: 0bad5eb
Author: Sagar <ku...@gmail.com>
Authored: Sat Dec 31 21:54:04 2016 +0530
Committer: Sagar <ku...@gmail.com>
Committed: Sat Dec 31 21:54:04 2016 +0530

----------------------------------------------------------------------
 .../mobile/ui/adapter/WorkflowAdapter.java      |  4 +
 .../mobile/ui/workflow/WorkflowFragment.java    | 96 ++++++++++++++++++--
 app/src/main/res/values/strings.xml             |  3 +-
 3 files changed, 96 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d14f853f/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java
index 977eb7e..7510800 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java
@@ -119,6 +119,10 @@ public class WorkflowAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
         return mWorkflowList.get(position) != null ? VIEW_ITEM : VIEW_PROG;
     }
 
+    public Workflow getItem(int position) {
+        return mWorkflowList != null ? mWorkflowList.get(position) : null;
+    }
+
 
     class ViewHolder extends RecyclerView.ViewHolder {
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d14f853f/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java
index 397a43c..8a93fa9 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java
@@ -19,6 +19,8 @@
 package org.apache.taverna.mobile.ui.workflow;
 
 
+import android.app.SearchManager;
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.support.design.widget.Snackbar;
@@ -27,10 +29,15 @@ import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v7.widget.DefaultItemAnimator;
 import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.support.v7.widget.SearchView;
+import android.text.TextUtils;
 import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ProgressBar;
+import android.widget.Toast;
 
 import org.apache.taverna.mobile.R;
 import org.apache.taverna.mobile.data.DataManager;
@@ -51,7 +58,9 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 
 public class WorkflowFragment extends Fragment implements WorkflowMvpView,
-        RecyclerItemClickListner.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener {
+        RecyclerItemClickListner.OnItemClickListener, SwipeRefreshLayout.OnRefreshListener,
+        SearchView.OnQueryTextListener, SearchView
+                .OnCloseListener {
     public final String LOG_TAG = getClass().getSimpleName();
 
     @BindView(R.id.rv_workflows)
@@ -65,16 +74,20 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView,
 
     private WorkflowPresenter mWorkflowPresenter;
     private WorkflowAdapter mWorkflowAdapter;
+    private WorkflowAdapter mSearchWorkflowAdapter;
 
     private int mPageNumber = 1;
     private List<Workflow> mWorkflowList;
 
+    private SearchView searchView;
+
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         mWorkflowList = new ArrayList<>();
         DataManager dataManager = new DataManager();
         mWorkflowPresenter = new WorkflowPresenter(dataManager);
+        setHasOptionsMenu(true);
     }
 
     @Override
@@ -184,11 +197,23 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView,
 
     @Override
     public void onItemClick(View childView, int position) {
-        if (mWorkflowList.get(position) != null && position != -1) {
-            Intent intent = new Intent(getActivity(), WorkflowDetailActivity.class);
-            intent.putExtra(Constants.WORKFLOW_ID, mWorkflowList.get(position).getId());
-            intent.putExtra(Constants.WORKFLOW_TITLE, mWorkflowList.get(position).getTitle());
-            startActivity(intent);
+        if (searchView.isIconified()) {
+            if (mWorkflowAdapter.getItem(position) != null && position != -1) {
+                Intent intent = new Intent(getActivity(), WorkflowDetailActivity.class);
+                intent.putExtra(Constants.WORKFLOW_ID, mWorkflowAdapter.getItem(position).getId());
+                intent.putExtra(Constants.WORKFLOW_TITLE, mWorkflowAdapter.getItem(position)
+                        .getTitle());
+                startActivity(intent);
+            }
+        } else {
+            if (mSearchWorkflowAdapter.getItem(position) != null && position != -1) {
+                Intent intent = new Intent(getActivity(), WorkflowDetailActivity.class);
+                intent.putExtra(Constants.WORKFLOW_ID, mSearchWorkflowAdapter.getItem(position)
+                        .getId());
+                intent.putExtra(Constants.WORKFLOW_TITLE, mSearchWorkflowAdapter.getItem(position)
+                        .getTitle());
+                startActivity(intent);
+            }
         }
     }
 
@@ -196,4 +221,63 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView,
     public void onItemLongPress(View childView, int position) {
 
     }
+
+    @Override
+    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+        super.onCreateOptionsMenu(menu, inflater);
+        SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context
+                .SEARCH_SERVICE);
+        searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
+
+        searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity()
+                .getComponentName()));
+        searchView.setSubmitButtonEnabled(false);
+        searchView.setOnQueryTextListener(this);
+        searchView.setOnCloseListener(this);
+    }
+
+
+    private void performSearch(String search) {
+        mSearchWorkflowAdapter = new WorkflowAdapter(new ArrayList<Workflow>(),
+                getContext());
+        WorkflowAdapter wk = mWorkflowAdapter;
+        if (!TextUtils.isEmpty(search)) {
+            if (null != wk)
+                for (int i = 0; i < wk.getItemCount(); i++) {
+                    Workflow workflow = wk.getItem(i);
+                    if (workflow.getTitle().toLowerCase().contains(search.toLowerCase())) {
+                        mSearchWorkflowAdapter.addWorkflow(workflow);
+                    }
+                }
+
+            mRecyclerView.swapAdapter(mSearchWorkflowAdapter, true);
+            if (mSearchWorkflowAdapter.getItemCount() == 0)
+
+                Toast.makeText(getActivity(), getString(R.string.msg_no_workflow_found), Toast
+                        .LENGTH_SHORT).show();
+        } else {
+            mRecyclerView.swapAdapter(mWorkflowAdapter, true);
+        }
+    }
+
+    @Override
+    public boolean onQueryTextSubmit(String query) {
+        performSearch(query);
+        searchView.clearFocus();
+        return true;
+    }
+
+    @Override
+    public boolean onQueryTextChange(String newText) {
+        performSearch(newText);
+        return true;
+    }
+
+
+    @Override
+    public boolean onClose() {
+        return false;
+    }
+
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d14f853f/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 d063b3f..3b1a0e5 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -212,5 +212,6 @@ limitations under the License.
     <string name="title_nav_about">About</string>
     <string name="title_nav_my_workflows">My Workflows</string>
     <string name="title_nav_os_licences">Licence info</string>
-    <!-- Strings related to Settings -->
+    <!-- Strings related to message -->
+    <string name="msg_no_workflow_found">No matching criteria workflow found</string>
 </resources>