You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by sa...@apache.org on 2017/01/21 10:53:11 UTC

[1/2] incubator-taverna-mobile git commit: fix runtime error in search view

Repository: incubator-taverna-mobile
Updated Branches:
  refs/heads/master 401b659ca -> 4999704e2


fix runtime error in search view


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

Branch: refs/heads/master
Commit: 25524c59e22b359fe4b8d6d24114519f0d723dfb
Parents: 401b659
Author: Sagar <ku...@gmail.com>
Authored: Sat Jan 21 16:17:33 2017 +0530
Committer: Sagar <ku...@gmail.com>
Committed: Sat Jan 21 16:17:33 2017 +0530

----------------------------------------------------------------------
 .../org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/25524c59/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 8a93fa9..d032210 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
@@ -197,7 +197,7 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView,
 
     @Override
     public void onItemClick(View childView, int position) {
-        if (searchView.isIconified()) {
+        if (searchView.isIconified() || TextUtils.isEmpty(searchView.getQuery())) {
             if (mWorkflowAdapter.getItem(position) != null && position != -1) {
                 Intent intent = new Intent(getActivity(), WorkflowDetailActivity.class);
                 intent.putExtra(Constants.WORKFLOW_ID, mWorkflowAdapter.getItem(position).getId());
@@ -276,7 +276,8 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView,
 
     @Override
     public boolean onClose() {
-        return false;
+        mRecyclerView.swapAdapter(mWorkflowAdapter, true);
+        return true;
     }
 
 


[2/2] incubator-taverna-mobile git commit: added Search functionality in Favourite section

Posted by sa...@apache.org.
added Search functionality in Favourite section


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

Branch: refs/heads/master
Commit: 4999704e20e5d7650d1fdb8e1127df0d2b37acbf
Parents: 25524c5
Author: Sagar <ku...@gmail.com>
Authored: Sat Jan 21 16:22:12 2017 +0530
Committer: Sagar <ku...@gmail.com>
Committed: Sat Jan 21 16:22:12 2017 +0530

----------------------------------------------------------------------
 .../ui/adapter/FavouriteWorkflowsAdapter.java   |  15 ++-
 .../FavouriteWorkflowsFragment.java             | 114 ++++++++++++++++---
 .../FavouriteWorkflowDetailActivity.java        |  10 +-
 3 files changed, 114 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/4999704e/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java
index 7e7e10d..c5c462f 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/FavouriteWorkflowsAdapter.java
@@ -25,12 +25,6 @@
 
 package org.apache.taverna.mobile.ui.adapter;
 
-import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.data.model.Workflow;
-
 import android.content.Context;
 import android.net.Uri;
 import android.support.v7.widget.RecyclerView;
@@ -40,6 +34,12 @@ import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.data.model.Workflow;
+
 import java.util.List;
 
 import butterknife.BindView;
@@ -107,6 +107,9 @@ public class FavouriteWorkflowsAdapter extends RecyclerView.Adapter<RecyclerView
         return mWorkflowList.size();
     }
 
+    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/4999704e/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java
index 134bd54..e4188ff 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflow/FavouriteWorkflowsFragment.java
@@ -19,13 +19,8 @@
 package org.apache.taverna.mobile.ui.favouriteworkflow;
 
 
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.data.DataManager;
-import org.apache.taverna.mobile.data.model.Workflow;
-import org.apache.taverna.mobile.ui.adapter.FavouriteWorkflowsAdapter;
-import org.apache.taverna.mobile.ui.adapter.RecyclerItemClickListner;
-import org.apache.taverna.mobile.ui.favouriteworkflowdetail.FavouriteWorkflowDetailActivity;
-
+import android.app.SearchManager;
+import android.content.Context;
 import android.content.Intent;
 import android.os.Bundle;
 import android.support.design.widget.Snackbar;
@@ -33,11 +28,24 @@ import android.support.v4.app.Fragment;
 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.TextView;
+import android.widget.Toast;
+
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.data.DataManager;
+import org.apache.taverna.mobile.data.model.Workflow;
+import org.apache.taverna.mobile.ui.adapter.FavouriteWorkflowsAdapter;
+import org.apache.taverna.mobile.ui.adapter.RecyclerItemClickListner;
+import org.apache.taverna.mobile.ui.favouriteworkflowdetail.FavouriteWorkflowDetailActivity;
+import org.apache.taverna.mobile.utils.Constants;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -46,13 +54,12 @@ import butterknife.BindView;
 import butterknife.ButterKnife;
 
 public class FavouriteWorkflowsFragment extends Fragment
-        implements FavouriteWorkflowsMvpView, RecyclerItemClickListner.OnItemClickListener {
+        implements FavouriteWorkflowsMvpView, RecyclerItemClickListner.OnItemClickListener,
+        SearchView.OnCloseListener, SearchView.OnQueryTextListener {
 
     public final String LOG_TAG = getClass().getSimpleName();
 
-    public static final String EXTRA_ID = "id";
 
-    public static final String EXTRA_TITLE = "title";
     @BindView(R.id.rv_fav_workflows)
     RecyclerView mRecyclerView;
 
@@ -69,6 +76,8 @@ public class FavouriteWorkflowsFragment extends Fragment
     private FavouriteWorkflowsAdapter mFavouriteWorkflowsAdapter;
 
     private List<Workflow> mWorkflowList;
+    private SearchView searchView;
+    private FavouriteWorkflowsAdapter mSearchFavouriteWorkflowAdapter;
 
 
     @Override
@@ -80,6 +89,7 @@ public class FavouriteWorkflowsFragment extends Fragment
         mFavouriteWorkflowsPresenter = new FavouriteWorkflowsPresenter(dataManager);
 
         mWorkflowList = new ArrayList<>();
+        setHasOptionsMenu(true);
     }
 
     @Override
@@ -153,14 +163,90 @@ public class FavouriteWorkflowsFragment extends Fragment
 
     @Override
     public void onItemClick(View childView, int position) {
-        Intent intent = new Intent(getActivity(), FavouriteWorkflowDetailActivity.class);
-        intent.putExtra(EXTRA_ID, mWorkflowList.get(position).getId());
-        intent.putExtra(EXTRA_TITLE, mWorkflowList.get(position).getTitle());
-        startActivity(intent);
+
+        if (searchView.isIconified() || TextUtils.isEmpty(searchView.getQuery())) {
+            if (mFavouriteWorkflowsAdapter.getItem(position) != null && position != -1) {
+                Intent intent = new Intent(getActivity(), FavouriteWorkflowDetailActivity.class);
+                intent.putExtra(Constants.WORKFLOW_ID, mFavouriteWorkflowsAdapter
+                        .getItem(position).getId());
+                intent.putExtra(Constants.WORKFLOW_TITLE, mFavouriteWorkflowsAdapter
+                        .getItem(position).getTitle());
+                startActivity(intent);
+            }
+        } else {
+            if (mSearchFavouriteWorkflowAdapter.getItem(position) != null && position != -1) {
+                Intent intent = new Intent(getActivity(), FavouriteWorkflowDetailActivity.class);
+                intent.putExtra(Constants.WORKFLOW_ID, mSearchFavouriteWorkflowAdapter
+                        .getItem(position).getId());
+                intent.putExtra(Constants.WORKFLOW_TITLE, mSearchFavouriteWorkflowAdapter
+                        .getItem(position).getTitle());
+                startActivity(intent);
+            }
+        }
     }
 
     @Override
     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) {
+        mSearchFavouriteWorkflowAdapter = new FavouriteWorkflowsAdapter(new ArrayList<Workflow>(),
+                getContext());
+        FavouriteWorkflowsAdapter wk = mFavouriteWorkflowsAdapter;
+        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())) {
+                        mSearchFavouriteWorkflowAdapter.addWorkflow(workflow);
+                    }
+                }
+
+            mRecyclerView.swapAdapter(mSearchFavouriteWorkflowAdapter, true);
+            if (mSearchFavouriteWorkflowAdapter.getItemCount() == 0)
+
+                Toast.makeText(getActivity(), getString(R.string.msg_no_workflow_found), Toast
+                        .LENGTH_SHORT).show();
+        } else {
+            mRecyclerView.swapAdapter(mFavouriteWorkflowsAdapter, 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/4999704e/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java
index fe9c07b..6e84a9e 100644
--- a/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/ui/favouriteworkflowdetail/FavouriteWorkflowDetailActivity.java
@@ -19,15 +19,15 @@
 package org.apache.taverna.mobile.ui.favouriteworkflowdetail;
 
 
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.ui.favouriteworkflow.FavouriteWorkflowsFragment;
-
 import android.os.Bundle;
 import android.support.annotation.Nullable;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
 
+import org.apache.taverna.mobile.R;
+import org.apache.taverna.mobile.utils.Constants;
+
 import butterknife.BindView;
 import butterknife.ButterKnife;
 
@@ -50,7 +50,7 @@ public class FavouriteWorkflowDetailActivity extends AppCompatActivity {
         if (actionbar != null) {
             actionbar.setHomeButtonEnabled(true);
             actionbar.setDisplayHomeAsUpEnabled(true);
-            actionbar.setTitle(getIntent().getStringExtra(FavouriteWorkflowsFragment.EXTRA_TITLE));
+            actionbar.setTitle(getIntent().getStringExtra(Constants.WORKFLOW_TITLE));
         }
 
 
@@ -59,7 +59,7 @@ public class FavouriteWorkflowDetailActivity extends AppCompatActivity {
                     .add(R.id.frame_container
                             , FavouriteWorkflowDetailFragment
                                     .newInstance(getIntent()
-                                            .getStringExtra(FavouriteWorkflowsFragment.EXTRA_ID)))
+                                            .getStringExtra(Constants.WORKFLOW_ID)))
                     .commit();
         }