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 2016/10/31 09:30:13 UTC
[5/7] incubator-taverna-mobile git commit: clear codebase
clear codebase
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/b93d871c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/b93d871c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/b93d871c
Branch: refs/heads/master
Commit: b93d871c7e94541d6f2fd2da3f56279aa61e23f0
Parents: c850e05
Author: Sagar <ku...@gmail.com>
Authored: Tue Oct 18 17:22:25 2016 +0530
Committer: Sagar <ku...@gmail.com>
Committed: Tue Oct 18 19:13:36 2016 +0530
----------------------------------------------------------------------
app/libs/dropbox-android-sdk-1.6.3.jar | Bin 168350 -> 0 bytes
app/libs/json_simple-1.1.jar | Bin 16046 -> 0 bytes
app/libs/sjxp-2.2.jar | Bin 24390 -> 0 bytes
.../taverna/mobile/activities/RunResult.java | 56 --
.../activities/WorkflowDetailActivity.java | 142 ----
.../adapters/FavoriteWorkflowAdapter.java | 198 -----
.../taverna/mobile/adapters/RunAdapter.java | 158 ----
.../mobile/adapters/SliderMenuAdapter.java | 114 ---
.../mobile/adapters/WorkflowAdapter.java | 352 --------
.../WorkflowDownloadReceiver.java | 66 --
.../customviews/WorkflowPreviewImageView.java | 277 -------
.../mobile/fragments/FavoriteFragment.java | 228 ------
.../mobile/fragments/WorkflowItemFragment.java | 492 -----------
.../mobile/fragments/WorkflowViewpager.java | 140 ----
.../fragments/workflowdetails/RunFragment.java | 321 --------
.../workflowdetails/WorkflowAboutFragment.java | 87 --
.../WorkflowLicenceFragment.java | 93 ---
.../WorkflowRunHistoryFragment.java | 172 ----
.../workflowdetails/WorkflowdetailFragment.java | 811 -------------------
.../taverna/mobile/tavernamobile/Runs.java | 113 ---
.../mobile/tavernamobile/TavernaPlayerAPI.java | 107 ---
.../taverna/mobile/tavernamobile/User.java | 171 ----
.../taverna/mobile/tavernamobile/Workflow.java | 361 ---------
.../mobile/tavernamobile/WorkflowComponent.java | 36 -
.../taverna/mobile/utils/AvatarLoader.java | 84 --
.../apache/taverna/mobile/utils/DBUtility.java | 65 --
.../taverna/mobile/utils/DetailsLoader.java | 280 -------
.../apache/taverna/mobile/utils/HttpUtil.java | 108 ---
.../apache/taverna/mobile/utils/RunTask.java | 124 ---
.../apache/taverna/mobile/utils/WorkflowDB.java | 328 --------
.../mobile/utils/WorkflowDataCallback.java | 39 -
.../mobile/utils/WorkflowDownloadManager.java | 118 ---
.../taverna/mobile/utils/WorkflowLoader.java | 106 ---
.../mobile/utils/WorkflowLoaderMain.java | 45 -
.../taverna/mobile/utils/WorkflowOpen.java | 339 --------
.../utils/xmlparsers/AvatarXMLParser.java | 47 --
.../xmlparsers/MyExperimentXmlParserRules.java | 380 ---------
.../utils/xmlparsers/WorkflowDetailParser.java | 56 --
.../mobile/utils/xmlparsers/WorkflowParser.java | 52 --
app/src/main/res/layout/activity_run_result.xml | 28 -
.../res/layout/activity_workflow_detail.xml | 39 -
.../main/res/layout/favorite_item_layout.xml | 138 ----
.../main/res/layout/fragment_dashboard_main.xml | 39 -
app/src/main/res/layout/fragment_item_grid.xml | 51 --
app/src/main/res/layout/fragment_item_list.xml | 50 --
app/src/main/res/layout/fragment_run_result.xml | 164 ----
.../main/res/layout/fragment_workflow_about.xml | 39 -
.../res/layout/fragment_workflow_detail.xml | 190 -----
.../res/layout/fragment_workflow_licence.xml | 39 -
.../layout/fragment_workflow_run_history.xml | 44 -
app/src/main/res/layout/menu_item_layout.xml | 44 -
app/src/main/res/layout/viewpager_workflow.xml | 56 --
.../main/res/layout/workflow_item_layout.xml | 173 ----
app/src/main/res/layout/workflow_layout.xml | 36 -
app/src/main/res/layout/workflow_run_item.xml | 136 ----
app/src/main/res/menu/run_result.xml | 34 -
app/src/main/res/values-large/refs.xml | 31 -
app/src/main/res/values-large/strings.xml | 33 -
app/src/main/res/values-sw600dp/refs.xml | 31 -
app/src/main/res/values-sw600dp/strings.xml | 25 -
app/src/main/res/values-w820dp/strings.xml | 28 -
app/src/main/res/values/refs.xml | 31 -
app/src/main/res/values/strings.xml | 22 +
.../res/values/strings_activity_settings.xml | 46 --
64 files changed, 22 insertions(+), 8191 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/libs/dropbox-android-sdk-1.6.3.jar
----------------------------------------------------------------------
diff --git a/app/libs/dropbox-android-sdk-1.6.3.jar b/app/libs/dropbox-android-sdk-1.6.3.jar
deleted file mode 100644
index 1a0ee36..0000000
Binary files a/app/libs/dropbox-android-sdk-1.6.3.jar and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/libs/json_simple-1.1.jar
----------------------------------------------------------------------
diff --git a/app/libs/json_simple-1.1.jar b/app/libs/json_simple-1.1.jar
deleted file mode 100644
index f395f41..0000000
Binary files a/app/libs/json_simple-1.1.jar and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/libs/sjxp-2.2.jar
----------------------------------------------------------------------
diff --git a/app/libs/sjxp-2.2.jar b/app/libs/sjxp-2.2.jar
deleted file mode 100644
index 67960bc..0000000
Binary files a/app/libs/sjxp-2.2.jar and /dev/null differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java b/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
deleted file mode 100644
index 8034706..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/activities/RunResult.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.taverna.mobile.activities;
-
-import android.os.Bundle;
-import android.support.v7.app.AppCompatActivity;
-import android.view.Menu;
-import android.view.MenuItem;
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.fragments.workflowdetails.RunFragment;
-
-public class RunResult extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_run_result);
- if (savedInstanceState == null) {
- getSupportFragmentManager().beginTransaction()
- .add(R.id.container, RunFragment.newInstance())
- .commit();
- }
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- return false;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
-
- this.finish();
-
- return super.onOptionsItemSelected(item);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java
deleted file mode 100644
index 2ee4384..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/activities/WorkflowDetailActivity.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.taverna.mobile.activities;
-
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import android.support.v4.app.FragmentPagerAdapter;
-import android.support.v4.view.ViewPager;
-import android.support.v7.app.AppCompatActivity;
-import android.view.Menu;
-import android.view.MenuItem;
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.fragments.workflowdetails.WorkflowAboutFragment;
-import org.apache.taverna.mobile.fragments.workflowdetails.WorkflowLicenceFragment;
-import org.apache.taverna.mobile.fragments.workflowdetails.WorkflowRunHistoryFragment;
-import org.apache.taverna.mobile.fragments.workflowdetails.WorkflowdetailFragment;
-
-import java.util.Locale;
-
-public class WorkflowDetailActivity extends AppCompatActivity {
-
- /**
- * The {@link android.support.v4.view.PagerAdapter} that will provide
- * fragments for each of the sections. We use a
- * {@link FragmentPagerAdapter} derivative, which will keep every
- * loaded fragment in memory. If this becomes too memory intensive, it
- * may be best to switch to a
- * {@link android.support.v4.app.FragmentStatePagerAdapter}.
- */
- SectionsPagerAdapter mSectionsPagerAdapter;
-
- /**
- * The {@link ViewPager} that will host the section contents.
- */
- ViewPager mViewPager;
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_workflow_detail);
- // Create the adapter that will return a fragment for each of the three
- // primary sections of the activity.
- mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
-
- // Set up the ViewPager with the sections adapter.
- mViewPager = (ViewPager) findViewById(R.id.pager);
- if (mViewPager != null) {
- mViewPager.setAdapter(mSectionsPagerAdapter);
- }
- }
-
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- return false;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- // Handle action bar item clicks here. The action bar will
- if (item.getItemId() == android.R.id.home) {
- finish();
- this.overridePendingTransition(android.R.anim.fade_in, android.R.anim.slide_out_right);
- }
- return super.onOptionsItemSelected(item);
- }
-
- @Override
- public void onBackPressed() {
- finish();
- this.overridePendingTransition(android.R.anim.fade_in, android.R.anim.slide_out_right);
- }
-
- /**
- * A {@link FragmentPagerAdapter} that returns a fragment corresponding to
- * one of the sections/tabs/pages.
- */
- public class SectionsPagerAdapter extends FragmentPagerAdapter {
-
- public SectionsPagerAdapter(FragmentManager fm) {
- super(fm);
- }
-
- @Override
- public Fragment getItem(int position) {
- switch (position + 1) {
- case 1:
- return WorkflowdetailFragment.newInstance(position + 1);
- case 2:
- //System.out.println(""+getIntent().getStringExtra("wtitle"));
- return WorkflowRunHistoryFragment.newInstance(getIntent().getStringExtra
- ("wtitle"));
- case 3:
- return WorkflowLicenceFragment.newInstance("", "");
- case 4:
- return WorkflowAboutFragment.newInstance("", "");
- }
- return WorkflowdetailFragment.newInstance(position + 1);
- }
-
- @Override
- public int getCount() {
- // Show 4 total pages.
- return 3;
- }
-
- @Override
- public CharSequence getPageTitle(int position) {
- Locale l = Locale.getDefault();
- switch (position) {
- case 0:
- return getString(R.string.detail_title_section1).toUpperCase(l);
- case 1:
- return getString(R.string.detail_title_section2).toUpperCase(l);
- case 2:
- return getString(R.string.detail_title_section3).toUpperCase(l);
- case 3:
- return getString(R.string.detail_title_section4).toUpperCase(l);
- }
- return "";
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/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
deleted file mode 100644
index 9522a3a..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/adapters/FavoriteWorkflowAdapter.java
+++ /dev/null
@@ -1,198 +0,0 @@
-package org.apache.taverna.mobile.adapters;
-/**
- * Apache Taverna Mobile
- * Copyright 2015 The Apache Software Foundation
- *
- * This product includes software developed at
- * The Apache Software Foundation (http://www.apache.org/).
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.utils.WorkflowDB;
-import org.json.JSONException;
-
-import android.app.Dialog;
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.graphics.Color;
-import android.preference.PreferenceManager;
-import android.support.design.widget.FloatingActionButton;
-import android.support.v7.widget.RecyclerView;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Created by Larry Akah on 6/9/15.
- */
-public class FavoriteWorkflowAdapter extends RecyclerView.Adapter<FavoriteWorkflowAdapter
- .FViewHolder> {
- private static final String TAG = "FavoriteWorkflowAdapter";
- public WorkflowDB favDB;
- private Context context;
- private List<ArrayList<Object>> dataSet;
-
- public FavoriteWorkflowAdapter(Context c, List<ArrayList<Object>> data) {
- context = c;
- dataSet = data;
- favDB = new WorkflowDB(context, WorkflowAdapter.WORKFLOW_FAVORITE_KEY);
- }
-
- @Override
- public FViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
- View itemview = LayoutInflater.from(context).inflate(R.layout.favorite_item_layout,
- viewGroup, false);
- FViewHolder vh = new FViewHolder(itemview);
- return vh;
- }
-
- /**
- * Register a new observer to listen for data changes.
- * <p/>
- * <p>The adapter may publish a variety of events describing specific changes.
- * Not all adapters may support all change types and some may fall back to a generic
- * {@link android.support.v7.widget.RecyclerView.AdapterDataObserver#onChanged()
- * "something changed"} event if more specific data is not available.</p>
- * <p/>
- * <p>Components registering observers with an adapter are responsible for
- * {@link #unregisterAdapterDataObserver(android.support.v7.widget.RecyclerView
- * .AdapterDataObserver)
- * unregistering} those observers when finished.</p>
- *
- * @param observer Observer to register
- * @see #unregisterAdapterDataObserver(android.support.v7.widget.RecyclerView
- * .AdapterDataObserver)
- */
- @Override
- public void registerAdapterDataObserver(RecyclerView.AdapterDataObserver observer) {
- super.registerAdapterDataObserver(observer);
- //observer.onChanged();
- }
-
- /**
- * Unregister an observer currently listening for data changes.
- * <p/>
- * <p>The unregistered observer will no longer receive events about changes
- * to the adapter.</p>
- *
- * @param observer Observer to unregister
- * @see #registerAdapterDataObserver(android.support.v7.widget.RecyclerView.AdapterDataObserver)
- */
- @Override
- public void unregisterAdapterDataObserver(RecyclerView.AdapterDataObserver observer) {
- super.unregisterAdapterDataObserver(observer);
- }
-
- @Override
- public void onBindViewHolder(FViewHolder fViewHolder, int i) {
- //get data 0,1,3 from set;
- final ArrayList<Object> data = dataSet.get(i);
-
- //String[] mdata = dataSet.get(i);
- fViewHolder.author.setText((CharSequence) data.get(6));
- fViewHolder.title.setText((CharSequence) data.get(2));
- fViewHolder.dateMarked.setText((CharSequence) data.get(4));
- fViewHolder.btn_delete.setOnClickListener(new FloatingActionButton.OnClickListener() {
- @Override
- public void onClick(View view) {
- try {
- Toast.makeText(context, String.format("%s", "Removed "), Toast.LENGTH_SHORT)
- .show();
- //removeMarkedWorkflow(String.valueOf(data.get(0)));
- favDB.delete(String.valueOf(data.get(0)));
- notifyDataSetChanged();
- } catch (JSONException e) {
- Log.e(TAG, "onClick: ", e);
- } catch (Exception ex) {
- Log.e(TAG, "onClick: ", ex);
- }
-
- }
- });
- fViewHolder.btn_view_fav.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Dialog d = new Dialog(context);
- TextView textView = new TextView(context);
- String text = "Author -> " + (String) data.get(6) + "\nTitle: " + data.get(2) +
- "\nDescription\n" + data.get(3);
- textView.setText(text);
- textView.setTextSize(22);
- textView.setTextColor(Color.BLACK);
- d.setTitle("" + data.get(2));
- d.setContentView(textView);
- d.show();
- }
- });
- }
-
- //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, Arrays.toString
- (charsequence)
- ).apply();
- }
-
- @Override
- public int getItemCount() {
- return dataSet.size();
- }
-
- public ArrayList<Object> getDataItemAt(int position) {
- return dataSet.size() == 0 ? null : dataSet.get(position);
- }
-
- public class FViewHolder extends RecyclerView.ViewHolder {
-
- public final ImageView favorite_thumb;
- public final TextView author, title, dateMarked; // dateAdd;
- public final FloatingActionButton btn_delete;
- public final Button btn_view_fav;
-
- public FViewHolder(View itemView) {
- super(itemView);
- favorite_thumb = (ImageView) itemView.findViewById(R.id.author_profile_image);
- author = (TextView) itemView.findViewById(R.id.author);
- title = (TextView) itemView.findViewById(R.id.favorite_title);
- dateMarked = (TextView) itemView.findViewById(R.id.date_set);
- btn_delete = (FloatingActionButton) itemView.findViewById(R.id.favoriteButtonDelete);
- btn_view_fav = (Button) itemView.findViewById(R.id.buttonOpenFavorite);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/src/main/java/org/apache/taverna/mobile/adapters/RunAdapter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/adapters/RunAdapter.java b/app/src/main/java/org/apache/taverna/mobile/adapters/RunAdapter.java
deleted file mode 100644
index b6a0e23..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/adapters/RunAdapter.java
+++ /dev/null
@@ -1,158 +0,0 @@
-package org.apache.taverna.mobile.adapters;
-/**
- * Apache Taverna Mobile
- * Copyright 2015 The Apache Software Foundation
- *
- * This product includes software developed at
- * The Apache Software Foundation (http://www.apache.org/).
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.tavernamobile.Runs;
-
-import android.content.Context;
-import android.support.v7.widget.RecyclerView;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.ImageButton;
-import android.widget.TextView;
-
-import java.util.List;
-
-
-/**
- * Created by root on 6/14/15.
- */
-public class RunAdapter extends RecyclerView.Adapter<RunAdapter.RunHolder> {
- private Context context;
- private List<Runs> runList;
-
- public RunAdapter(Context context, List<Runs> runs) {
- this.context = context;
- this.runList = runs;
- }
-
- /**
- * Called when RecyclerView needs a new
- * {@link android.support.v7.widget.RecyclerView.ViewHolder}
- * of the given type to represent
- * an item.
- * <p/>
- * This new ViewHolder should be constructed with a new View that can represent the items
- * of the given type. You can either create a new View manually or inflate it from an XML
- * layout file.
- * <p/>
- * The new ViewHolder will be used to display items of the adapter using
- * . Since it will be re-used to display different
- * items in the data set, it is a good idea to cache references to sub views of the View to
- * avoid unnecessary {@link android.view.View#findViewById(int)} calls.
- *
- * @param parent The ViewGroup into which the new View will be added after it is bound to
- * an adapter position.
- * @param viewType The view type of the new View.
- * @return A new ViewHolder that holds a View of the given view type.
- * @see #getItemViewType(int)
- */
- @Override
- public RunHolder onCreateViewHolder(ViewGroup parent, int viewType) {
- View v = LayoutInflater.from(context).inflate(R.layout.workflow_run_item, parent, false);
- return new RunHolder(v);
- }
-
- /**
- * Called by RecyclerView to display the data at the specified position. This method
- * should update the contents of the
- * {@link android.support.v7.widget.RecyclerView.ViewHolder#itemView}
- * to reflect the item at
- * the given position.
- * <p/>
- * Note that unlike {@link android.widget.ListView}, RecyclerView will not call this
- * method again if the position of the item changes in the data set unless the item itself
- * is invalidated or the new position cannot be determined. For this reason, you should only
- * use the <code>position</code> parameter while acquiring the related data item inside this
- * method and should not keep a copy of it. If you need the position of an item later on
- * (e.g. in a click listener), use
- * {@link android.support.v7.widget.RecyclerView.ViewHolder#getAdapterPosition()}
- * which will have
- * the updated adapter position.
- *
- * @param holder The ViewHolder which should be updated to represent the contents of the
- * item at the given position in the data set.
- * @param position The position of the item within the adapter's data set.
- */
- @Override
- public void onBindViewHolder(RunHolder holder, int position) {
- Runs lRun = runList.get(position);
- holder.runtitle.setText(lRun.getRunName());
- holder.runstarted.setText(lRun.getRunStartedDate());
- holder.runfinished.setText(lRun.getRunEndedDate());
- holder.runAuthor.setText("Author->" + lRun.getRunAuthor());
- switch (lRun.getState()) {
- case RUNNING:
- holder.runStatus.setImageResource(android.R.drawable.presence_busy);
- holder.textState.setText("Running");
- break;
- case FINISHED:
- holder.runStatus.setImageResource(android.R.drawable.presence_online);
- holder.textState.setText("Finished");
- break;
- case FAILED:
- holder.runStatus.setImageResource(android.R.drawable.presence_offline);
- holder.textState.setText("Failed");
- break;
- }
-
- }
-
- public List<Runs> getRunList() {
- return this.runList;
- }
-
- public void setRunList(List<Runs> runList) {
- this.runList = runList;
- }
-
- /**
- * Returns the total number of items in the data set hold by the adapter.
- *
- * @return The total number of items in this adapter.
- */
- @Override
- public int getItemCount() {
- //return 0;
- return runList.size();
- }
-
- public static class RunHolder extends RecyclerView.ViewHolder {
- public final TextView runtitle, runstarted, runfinished, textState, runAuthor;
- public final ImageButton runStatus;
-
- public RunHolder(View itemView) {
- super(itemView);
- runtitle = (TextView) itemView.findViewById(R.id.runtitle);
- runAuthor = (TextView) itemView.findViewById(R.id.run_authorTextview);
- runstarted = (TextView) itemView.findViewById(R.id.runstarted);
- runfinished = (TextView) itemView.findViewById(R.id.runfinished);
- runStatus = (ImageButton) itemView.findViewById(R.id.imageButtonState);
- textState = (TextView) itemView.findViewById(R.id.textState);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/src/main/java/org/apache/taverna/mobile/adapters/SliderMenuAdapter.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/adapters/SliderMenuAdapter.java b/app/src/main/java/org/apache/taverna/mobile/adapters/SliderMenuAdapter.java
deleted file mode 100644
index 5a4bbc2..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/adapters/SliderMenuAdapter.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package org.apache.taverna.mobile.adapters;
-/**
- * Apache Taverna Mobile
- * Copyright 2015 The Apache Software Foundation
- *
- * This product includes software developed at
- * The Apache Software Foundation (http://www.apache.org/).
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.taverna.mobile.R;
-
-import android.content.Context;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.BaseAdapter;
-import android.widget.ImageView;
-import android.widget.TextView;
-
-import java.util.List;
-
-/**
- * Created by root on 6/7/15.
- */
-public class SliderMenuAdapter extends BaseAdapter {
-
- private List<String> dataItems;
- private Context context;
-
- public SliderMenuAdapter(Context c, List<String> items) {
- dataItems = items;
- context = c;
- }
-
- @Override
- public int getCount() {
- return dataItems.size();
- }
-
- @Override
- public String getItem(int i) {
- return dataItems.get(i);
- }
-
- @Override
- public long getItemId(int i) {
- return 0;
- }
-
- @Override
- public View getView(int i, View view, ViewGroup viewGroup) {
-
- View menuitemview = LayoutInflater.from(context).inflate(R.layout.menu_item_layout,
- viewGroup, false);
-
- ImageView menuicon = (ImageView) menuitemview.findViewById(R.id.menuIcon);
- TextView menuitem = (TextView) menuitemview.findViewById(R.id.menuItemText);
- switch (i + 1) {
- case 1:
- menuicon.setImageResource(R.mipmap.ic_dashboard_home);
- menuitem.setText(dataItems.get(i));
- break;
- case 2:
- menuicon.setImageResource(R.mipmap.ic_openwk);
- menuitem.setText(dataItems.get(i));
- break;
- case 3:
- menuicon.setImageResource(R.mipmap.ic_usage);
- menuitem.setText(dataItems.get(i));
- break;
- case 4:
- menuicon.setImageResource(R.mipmap.ic_about);
- menuitem.setText(dataItems.get(i));
- break;
- case 5:
- menuicon.setImageResource(R.mipmap.ic_workflows);
- menuitem.setText(dataItems.get(i));
- break;
- case 6:
- menuicon.setImageResource(R.mipmap.ic_logout);
- menuitem.setText(dataItems.get(i));
- break;
- }
- return menuitemview;
- }
-
- public static class ViewHolder {
- public final ImageView menuicon;
- public final TextView menuitem;
-
- public ViewHolder(View view) {
- menuicon = (ImageView) view.findViewById(R.id.menuIcon);
- menuitem = (TextView) view.findViewById(R.id.menuItemText);
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/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
deleted file mode 100644
index 03c28fe..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/adapters/WorkflowAdapter.java
+++ /dev/null
@@ -1,352 +0,0 @@
-package org.apache.taverna.mobile.adapters;
-/**
- * Apache Taverna Mobile
- * Copyright 2015 The Apache Software Foundation
- *
- * This product includes software developed at
- * The Apache Software Foundation (http://www.apache.org/).
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import com.thebuzzmedia.sjxp.rule.IRule;
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.activities.WorkflowDetailActivity;
-import org.apache.taverna.mobile.fragments.workflowdetails.WorkflowdetailFragment;
-import org.apache.taverna.mobile.tavernamobile.User;
-import org.apache.taverna.mobile.tavernamobile.Workflow;
-import org.apache.taverna.mobile.utils.WorkflowDB;
-import org.apache.taverna.mobile.utils.xmlparsers.MyExperimentXmlParserRules;
-import org.apache.taverna.mobile.utils.xmlparsers.WorkflowDetailParser;
-
-import android.app.Activity;
-import android.content.Context;
-import android.content.Intent;
-import android.os.AsyncTask;
-import android.preference.PreferenceManager;
-import android.support.v7.widget.RecyclerView;
-import android.text.Html;
-import android.text.util.Linkify;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.ImageView;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-
-/**
- * Created by Larry Akah on 6/8/15.
- */
-public class WorkflowAdapter extends RecyclerView.Adapter<WorkflowAdapter.ViewHolder> {
- public static final String WORKFLOW_FAVORITE_KEY = "WORKFLOW_FAVORITES"; //workflow key used
- // to save workflows when marked as favorites
- public static final String FAVORITE_LIST_DB = "FAVORITE_LIST";
- private static final String TAG = "WorkflowAdapter";
- public WorkflowDB favDB; //favorited keeps items that have been favorited in order to
- // identify them during
- private Context context;
- private List<Workflow> workflowList; //workflow data to bind to the UI
- private WorkflowAdapter.ViewHolder mViewHolder;
-
- // display in the list.
- public WorkflowAdapter(Context c, List<Workflow> wk) {
- context = c;
- workflowList = wk;
- favDB = new WorkflowDB(context, WORKFLOW_FAVORITE_KEY);
- }
-
- public WorkflowAdapter(Context c) {
- context = c;
- workflowList = new ArrayList<Workflow>();
- favDB = new WorkflowDB(context, WORKFLOW_FAVORITE_KEY);
- }
-
- public void addItems(List<Workflow> workflow, int position) throws ClassCastException {
- //add items to the current list of list
- //workflowList.add(position,workflow);
- workflowList.addAll(workflow);
- notifyItemRangeInserted(position + 24, 25);
- }
-
- public void removeItem(Workflow workflow) {
- workflowList.remove(workflow);
- //notifyItemRemoved();
- }
-
- /**
- * Register a new observer to listen for data changes.
- * <p/>
- * <p>The adapter may publish a variety of events describing specific changes.
- * Not all adapters may support all change types and some may fall back to a generic
- * {@link android.support.v7.widget.RecyclerView.AdapterDataObserver#onChanged()
- * "something changed"} event if more specific data is not available.</p>
- * <p/>
- * <p>Components registering observers with an adapter are responsible for
- * {@link #registerAdapterDataObserver(android.support.v7.widget.RecyclerView
- * .AdapterDataObserver)
- * unregistering} those observers when finished.</p>
- *
- * @param observer Observer to register
- * @see #registerAdapterDataObserver(android.support.v7.widget.RecyclerView
- * .AdapterDataObserver)
- */
- @Override
- public void registerAdapterDataObserver(RecyclerView.AdapterDataObserver observer) {
- super.registerAdapterDataObserver(observer);
- }
-
- /**
- * Unregister an observer currently listening for data changes.
- * <p/>
- * <p>The unregistered observer will no longer receive events about changes
- * to the adapter.</p>
- *
- * @param observer Observer to unregister
- * @see #registerAdapterDataObserver(android.support.v7.widget.RecyclerView.AdapterDataObserver)
- */
- @Override
- public void unregisterAdapterDataObserver(RecyclerView.AdapterDataObserver observer) {
- super.unregisterAdapterDataObserver(observer);
- }
-
- @Override
- public WorkflowAdapter.ViewHolder onCreateViewHolder(ViewGroup parentViewGroup, int viewType) {
- View v = LayoutInflater.from(context).inflate(R.layout.workflow_item_layout,
- parentViewGroup, false);
- mViewHolder = new ViewHolder(v);
- return mViewHolder;
- }
-
- /**
- * Bind data set items for each data
- *
- * @param viewHolder the recycled view used to bind data (Overwrite data values)
- * @param i position of data in the dataset to use.
- */
- @Override
- public void onBindViewHolder(final ViewHolder viewHolder, int i) {
-
- final long wid = workflowList.get(i).getId();
- final String author = workflowList.get(i).getWorkflowAuthor();
-// final String author = workflowList.get(i).getUploader().getName();
- final String title = workflowList.get(i).getWorkflowTitle();
- String description = workflowList.get(i).getWorkflowDescription();
- final String uri = workflowList.get(i).getWorkflowDetailsUrl();
- final String desc_full = description;
-
- if (description.length() > 80) description = description.substring(0, 79) + " ...";
- viewHolder.author_name.setHint(author);
- viewHolder.wk_title.setHint(title);
- viewHolder.wk_description.setText(description);
- Linkify.addLinks(viewHolder.wk_description, Linkify.WEB_URLS);
-
- final Intent it = new Intent();
- Log.d(TAG, "Workflow_uri:" + uri);
- it.setClass(context, WorkflowDetailActivity.class);
-// 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.mWorkfloId = title; //workflow.get(i).getId();
-
- //determine whether to mark button as favorited or not
- final String favs = PreferenceManager.getDefaultSharedPreferences(context).getString
- (FAVORITE_LIST_DB, "");
- String[] ids = favs.split(",");
- if (ids.length > 0) {
- for (String id : ids) {
- if (id.equalsIgnoreCase("" + wid)) {
- viewHolder.btn_mark_workflow.setBackgroundResource(R.drawable
- .abc_list_selector_disabled_holo_light);
- break;
- }
- }
- }
-
- viewHolder.btn_view_workflow.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- context.startActivity(it);
- ((Activity) context).overridePendingTransition(android.R.anim.slide_in_left,
- android.R.anim.fade_out);
- }
- });
-
- viewHolder.btn_mark_workflow.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- ArrayList<Object> mfav = new ArrayList<Object>();
- //save current workflow as favorite
- mfav.add(wid);
- mfav.add(author);
- mfav.add(title);
- mfav.add(desc_full);
- mfav.add(SimpleDateFormat.getDateTimeInstance().format(new Date()));
- mfav.add(uri);
- mfav.add(viewHolder.author_name.getText());
- int saved = favDB.insert(mfav);
-
- if (saved > 0) {
- viewHolder.btn_mark_workflow.setBackgroundResource(R.drawable
- .abc_list_selector_disabled_holo_light);
-
- PreferenceManager.getDefaultSharedPreferences(context).edit().putString
- (FAVORITE_LIST_DB, favs + wid + ",").apply();
- //refresh fragment since data has changed
- FavoriteWorkflowAdapter favoriteWorkflowAdapter = (FavoriteWorkflowAdapter) (
- (RecyclerView) ((Activity) context).findViewById(R.id.favoriteList))
- .getAdapter();
- //try {
- if (null != favoriteWorkflowAdapter)
- favoriteWorkflowAdapter.notifyDataSetChanged();
- //}catch(NullPointerException np){
- // np.printStackTrace();
- // }
- Toast.makeText(context, "Workflow marked as favorite", Toast.LENGTH_SHORT)
- .show();
- } else if (saved == -1) {
- Toast.makeText(context, "Sorry! This workflow has already been marked as a " +
- "favourite", Toast.LENGTH_SHORT).show();
- } else {
- Toast.makeText(context, "Error! Please try again", Toast.LENGTH_SHORT).show();
- }
- }
- });
- viewHolder.wk_showmore.setText(Html.fromHtml(context.getResources().getString(R.string
- .seemore)));
- viewHolder.wk_showmore.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- if (viewHolder.infolayout.getVisibility() == View.GONE) {
- viewHolder.infolayout.setVisibility(View.VISIBLE);
- } else {
- viewHolder.infolayout.setVisibility(View.GONE);
- }
- }
- });
-
- synchronized (this) {
- new DetailLinkLoader(viewHolder).execute(uri, String.valueOf(i));
- }
- }
-
- public void setData(List<Workflow> workflowList) {
- this.workflowList = workflowList;
- }
-
- @Override
- public long getItemId(int i) {
- return workflowList.get(i).getId();
- }
-
- @Override
- public int getItemCount() {
- return workflowList.size();
- }
-
- public Workflow getItem(int position) {
- return workflowList.get(position);
- }
-
- public void addWorkflow(Workflow wk) {
- workflowList.add(wk);
- }
-
- public static class ViewHolder extends RecyclerView.ViewHolder {
- public final ImageView author_profile;
- public final TextView author_name, wk_title, wk_showmore, wk_description;
- public final Button btn_view_workflow;
- public final Button btn_download_workflow;
- public final Button btn_mark_workflow;
- public final LinearLayout infolayout;
-
- public ViewHolder(View v) {
- super(v);
- infolayout = (LinearLayout) v.findViewById(R.id.layoutinfo);
- //cache text fields
- author_profile = (ImageView) v.findViewById(R.id.author_profile_image);
- author_name = (TextView) v.findViewById(R.id.workflow_author);
- wk_title = (TextView) v.findViewById(R.id.workflow_title);
- wk_showmore = (TextView) v.findViewById(R.id.show_more);
- // wk_created = (TextView) v.findViewById(R.id.workflow_datecreated);
- // wk_modified = (TextView) v.findViewById(R.id.workflow_dateupdated);
- wk_description = (TextView) v.findViewById(R.id.workflow_brief_description);
- //cache buttons
- btn_download_workflow = (Button) v.findViewById(R.id.button_download_workflow);
- btn_mark_workflow = (Button) v.findViewById(R.id.button_mark_workflow);
- btn_view_workflow = (Button) v.findViewById(R.id.button_view_workflow);
- }
- }
-
- /**
- * Loads partially details of a given workflow to retrieve author information
- */
- private class DetailLinkLoader extends AsyncTask<String, Void, Void> {
- ViewHolder mViewHolder;
-
- public DetailLinkLoader(ViewHolder vh) {
- this.mViewHolder = vh;
- }
-
- @Override
- protected Void doInBackground(String... strings) {
- URL url = null;
- HttpURLConnection connection = null;
- try {
- url = new URL(strings[0]); //fetch workflow detail
- connection = (HttpURLConnection) url.openConnection();
- connection.setDoInput(true);
- connection.connect();
- InputStream input = connection.getInputStream();
- IRule avatarRule = new MyExperimentXmlParserRules.UploaderRule(IRule.Type
- .ATTRIBUTE, "/workflow/uploader", "resource", "uri", "id");
- IRule uploaderRule = new MyExperimentXmlParserRules.UploaderRule(IRule.Type
- .CHARACTER, "/workflow/uploader");
- WorkflowDetailParser detailMinParser = new WorkflowDetailParser(new
- IRule[]{avatarRule, uploaderRule});
- detailMinParser.parse(input, new User(strings[1], this.mViewHolder));
-
- } catch (MalformedURLException e) {
- Log.e(TAG, "doInBackground: ", e);
- } catch (IOException e) {
- Log.e(TAG, "doInBackground: ", e);
- }
- return null;
- }
-
- @Override
- protected void onPostExecute(Void aVoid) {
-
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/src/main/java/org/apache/taverna/mobile/broadcastreceivers/WorkflowDownloadReceiver.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/broadcastreceivers/WorkflowDownloadReceiver.java b/app/src/main/java/org/apache/taverna/mobile/broadcastreceivers/WorkflowDownloadReceiver.java
deleted file mode 100644
index 383f707..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/broadcastreceivers/WorkflowDownloadReceiver.java
+++ /dev/null
@@ -1,66 +0,0 @@
-package org.apache.taverna.mobile.broadcastreceivers;
-/**
- * Apache Taverna Mobile
- * Copyright 2015 The Apache Software Foundation
- *
- * This product includes software developed at
- * The Apache Software Foundation (http://www.apache.org/).
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.utils.WorkflowDownloadManager;
-
-import android.app.DownloadManager;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.database.Cursor;
-
-public class WorkflowDownloadReceiver extends BroadcastReceiver {
- public WorkflowDownloadReceiver() {
- }
-
- @Override
- public void onReceive(Context context, Intent intent) {
-
- long receivedID = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1L);
- DownloadManager mgr = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
- WorkflowDownloadManager wdm = new WorkflowDownloadManager(context, mgr);
-
- DownloadManager.Query query = new DownloadManager.Query(); //ask for information about
- // the download queue
- query.setFilterById(receivedID);
- Cursor cur = mgr.query(query);
- int index = cur.getColumnIndex(DownloadManager.COLUMN_STATUS);
-// String workflow = cur.getString(cur.getColumnIndex(DownloadManager
-// .COLUMN_LOCAL_FILENAME));
-
- if (cur.moveToFirst()) {
- if (cur.getInt(index) == DownloadManager.STATUS_SUCCESSFUL) {
- wdm.sendNotification(context.getResources().getString(R.string.downloadcomplete));
- } else {
- wdm.sendNotification(context.getResources().getString(R.string.downloadfailed));
- }
- } else {
- wdm.sendNotification(context.getResources().getString(R.string.downloadfailed));
- }
- cur.close();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/src/main/java/org/apache/taverna/mobile/customviews/WorkflowPreviewImageView.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/customviews/WorkflowPreviewImageView.java b/app/src/main/java/org/apache/taverna/mobile/customviews/WorkflowPreviewImageView.java
deleted file mode 100644
index 32a9389..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/customviews/WorkflowPreviewImageView.java
+++ /dev/null
@@ -1,277 +0,0 @@
-package org.apache.taverna.mobile.customviews;
-/**
- * Apache Taverna Mobile
- * Copyright 2015 The Apache Software Foundation
- *
- * This product includes software developed at
- * The Apache Software Foundation (http://www.apache.org/).
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Matrix;
-import android.graphics.PointF;
-import android.util.AttributeSet;
-import android.view.MotionEvent;
-import android.view.ScaleGestureDetector;
-import android.view.View;
-import android.widget.ImageView;
-
-/**
- * Created by Akah Harvey on 6/29/15.
- */
-public class WorkflowPreviewImageView extends ImageView {
- static final int NONE = 0;
- static final int DRAG = 1;
- static final int ZOOM = 2;
- static final int CLICK = 3;
- Matrix matrix = new Matrix();
- int mode = NONE;
-
- PointF last = new PointF();
- PointF start = new PointF();
- float minScale = 1f;
- float maxScale = 4f;
- float[] m;
-
- float redundantXSpace, redundantYSpace;
- float width, height;
- float saveScale = 1f;
- float right, bottom, origWidth, origHeight, bmWidth, bmHeight;
-
- ScaleGestureDetector mScaleDetector;
- Context context;
-
- public WorkflowPreviewImageView(Context context, AttributeSet attr) {
- super(context, attr);
- super.setClickable(true);
- this.context = context;
- mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
- matrix.setTranslate(1f, 1f);
- m = new float[9];
- setImageMatrix(matrix);
- setScaleType(ScaleType.MATRIX);
-
- setOnTouchListener(new OnTouchListener() {
-
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- mScaleDetector.onTouchEvent(event);
-
- matrix.getValues(m);
- float x = m[Matrix.MTRANS_X];
- float y = m[Matrix.MTRANS_Y];
- PointF curr = new PointF(event.getX(), event.getY());
-
- switch (event.getAction()) {
- //when one finger is touching
- //set the mode to DRAG
- case MotionEvent.ACTION_DOWN:
- last.set(event.getX(), event.getY());
- start.set(last);
- mode = DRAG;
- break;
- //when two fingers are touching
- //set the mode to ZOOM
- case MotionEvent.ACTION_POINTER_DOWN:
- last.set(event.getX(), event.getY());
- start.set(last);
- mode = ZOOM;
- break;
- //when a finger moves
- //If mode is applicable move image
- case MotionEvent.ACTION_MOVE:
- //if the mode is ZOOM or
- //if the mode is DRAG and already zoomed
- if (mode == ZOOM || (mode == DRAG && saveScale > minScale)) {
- float deltaX = curr.x - last.x; // x difference
- float deltaY = curr.y - last.y; // y difference
- float scaleWidth = Math.round(origWidth * saveScale); // width after
- // applying current scale
- float scaleHeight = Math.round(origHeight * saveScale); // height
- // after applying current scale
- //if scaleWidth is smaller than the views width
- //in other words if the image width fits in the view
- //limit left and right movement
- if (scaleWidth < width) {
- deltaX = 0;
- if (y + deltaY > 0) {
- deltaY = -y;
- } else if (y + deltaY < -bottom) {
- deltaY = -(y + bottom);
- }
- } else if (scaleHeight < height) {
- //if scaleHeight is smaller than the views height
- //in other words if the image height fits in the view
- //limit up and down movement
- deltaY = 0;
- if (x + deltaX > 0) {
- deltaX = -x;
- } else if (x + deltaX < -right) {
- deltaX = -(x + right);
- }
- } else {
- //if the image doesnt fit in the width or height
- //limit both up and down and left and right
- if (x + deltaX > 0) {
- deltaX = -x;
- } else if (x + deltaX < -right) {
- deltaX = -(x + right);
- }
- if (y + deltaY > 0) {
- deltaY = -y;
- } else if (y + deltaY < -bottom) {
- deltaY = -(y + bottom);
- }
- }
- //move the image with the matrix
- matrix.postTranslate(deltaX, deltaY);
- //set the last touch location to the current
- last.set(curr.x, curr.y);
- }
- break;
- //first finger is lifted
- case MotionEvent.ACTION_UP:
- mode = NONE;
- int xDiff = (int) Math.abs(curr.x - start.x);
- int yDiff = (int) Math.abs(curr.y - start.y);
- if (xDiff < CLICK && yDiff < CLICK)
- performClick();
- break;
- // second finger is lifted
- case MotionEvent.ACTION_POINTER_UP:
- mode = NONE;
- break;
- }
- setImageMatrix(matrix);
- invalidate();
- return true;
- }
-
- });
- }
-
- @Override
- public void setImageBitmap(Bitmap bm) {
- super.setImageBitmap(bm);
- bmWidth = bm.getWidth();
- bmHeight = bm.getHeight();
- }
-
- public void setMaxZoom(float x) {
- maxScale = x;
- }
-
- @Override
- protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
- super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- width = MeasureSpec.getSize(widthMeasureSpec);
- height = MeasureSpec.getSize(heightMeasureSpec);
- //Fit to screen.
- float scale;
- float scaleX = width / bmWidth;
- float scaleY = height / bmHeight;
- scale = Math.min(scaleX, scaleY);
- matrix.setScale(scale, scale);
- setImageMatrix(matrix);
- saveScale = 1f;
-
- // Center the image
- redundantYSpace = height - (scale * bmHeight);
- redundantXSpace = width - (scale * bmWidth);
- redundantYSpace /= 2;
- redundantXSpace /= 2;
-
- matrix.postTranslate(redundantXSpace, redundantYSpace);
-
- origWidth = width - 2 * redundantXSpace;
- origHeight = height - 2 * redundantYSpace;
- right = width * saveScale - width - (2 * redundantXSpace * saveScale);
- bottom = height * saveScale - height - (2 * redundantYSpace * saveScale);
- setImageMatrix(matrix);
- }
-
- private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
-
- @Override
- public boolean onScaleBegin(ScaleGestureDetector detector) {
- mode = ZOOM;
- return true;
- }
-
- @Override
- public boolean onScale(ScaleGestureDetector detector) {
- float mScaleFactor = detector.getScaleFactor();
- float origScale = saveScale;
- saveScale *= mScaleFactor;
- if (saveScale > maxScale) {
- saveScale = maxScale;
- mScaleFactor = maxScale / origScale;
- } else if (saveScale < minScale) {
- saveScale = minScale;
- mScaleFactor = minScale / origScale;
- }
- right = width * saveScale - width - (2 * redundantXSpace * saveScale);
- bottom = height * saveScale - height - (2 * redundantYSpace * saveScale);
- if (origWidth * saveScale <= width || origHeight * saveScale <= height) {
- matrix.postScale(mScaleFactor, mScaleFactor, width / 2, height / 2);
- if (mScaleFactor < 1) {
- matrix.getValues(m);
- float x = m[Matrix.MTRANS_X];
- float y = m[Matrix.MTRANS_Y];
- if (mScaleFactor < 1) {
- if (Math.round(origWidth * saveScale) < width) {
- if (y < -bottom) {
- matrix.postTranslate(0, -(y + bottom));
- } else if (y > 0) {
- matrix.postTranslate(0, -y);
- }
- } else {
- if (x < -right) {
- matrix.postTranslate(-(x + right), 0);
- } else if (x > 0) {
- matrix.postTranslate(-x, 0);
- }
- }
- }
- }
- } else {
- matrix.postScale(mScaleFactor, mScaleFactor, detector.getFocusX(), detector
- .getFocusY());
- matrix.getValues(m);
- float x = m[Matrix.MTRANS_X];
- float y = m[Matrix.MTRANS_Y];
- if (mScaleFactor < 1) {
- if (x < -right) {
- matrix.postTranslate(-(x + right), 0);
- } else if (x > 0) {
- matrix.postTranslate(-x, 0);
- }
- if (y < -bottom) {
- matrix.postTranslate(0, -(y + bottom));
- } else if (y > 0) {
- matrix.postTranslate(0, -y);
- }
- }
- }
- return true;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b93d871c/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
deleted file mode 100644
index 3cca379..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/fragments/FavoriteFragment.java
+++ /dev/null
@@ -1,228 +0,0 @@
-package org.apache.taverna.mobile.fragments;
-
-/*
-* Apache Taverna Mobile
-* Copyright 2015 The Apache Software Foundation
-
-* This product includes software developed at
-* The Apache Software Foundation (http://www.apache.org/).
-
-* Licensed to the Apache Software Foundation (ASF) under one
-* or more contributor license agreements. See the NOTICE file
-* distributed with this work for additional information
-* regarding copyright ownership. The ASF licenses this file
-* to you under the Apache License, Version 2.0 (the
-* "License"); you may not use this file except in compliance
-* with the License. You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing,
-* software distributed under the License is distributed on an
-* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-* KIND, either express or implied. See the License for the
-* specific language governing permissions and limitations
-* under the License.
-*/
-
-import org.apache.taverna.mobile.R;
-import org.apache.taverna.mobile.adapters.FavoriteWorkflowAdapter;
-import org.apache.taverna.mobile.adapters.WorkflowAdapter;
-import org.apache.taverna.mobile.utils.WorkflowDB;
-import org.json.JSONException;
-
-import android.os.Bundle;
-import android.support.v4.app.Fragment;
-import android.support.v7.widget.LinearLayoutManager;
-import android.support.v7.widget.RecyclerView;
-import android.util.Log;
-import android.view.ContextMenu;
-import android.view.LayoutInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-/**
- * Created by Larry Akah on 6/6/15.
- */
-public class FavoriteFragment extends Fragment implements RecyclerView.OnCreateContextMenuListener {
- /**
- * The fragment argument representing the section number for this
- * fragment.
- */
- private static final String TAG = "FavoriteFragment";
- private static final String ARG_SECTION_NUMBER = "SECTION_NUMBER";
- public FavoriteWorkflowAdapter favoriteAdapter;
- public WorkflowDB myWorkflowDb;
- private RecyclerView wFavoriteListView;
- private RecyclerView.AdapterDataObserver dataObserver;
-
- public FavoriteFragment() {
- }
-
- /**
- * Returns a new instance of this fragment for the given section
- * number.
- */
- public static FavoriteFragment newInstance(int sectionNumber) {
- FavoriteFragment fragment = new FavoriteFragment();
- Bundle args = new Bundle();
- args.putInt(ARG_SECTION_NUMBER, sectionNumber);
- fragment.setArguments(args);
-
- return fragment;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- dataObserver = new RecyclerView.AdapterDataObserver() {
- @Override
- public void onChanged() {
- super.onChanged();
- // Toast.makeText(getActivity(), "data changed", Toast.LENGTH_SHORT).show();
- setUpFavoriteData();
- setUpListView();
- }
- };
- setUpFavoriteData();
-
- }
-
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View rootView = inflater.inflate(R.layout.fragment_dashboard_main, container, false);
- wFavoriteListView = (RecyclerView) rootView.findViewById(R.id.favoriteList);
- wFavoriteListView.setHasFixedSize(true);
- wFavoriteListView.setLayoutManager(new LinearLayoutManager(getActivity()));
- wFavoriteListView.setAdapter(favoriteAdapter);
- return rootView;
- }
-
- /**
- * Prepare the data to be used in the list as favorite items
- */
- private void setUpFavoriteData() {
- myWorkflowDb = new WorkflowDB(getActivity(), WorkflowAdapter.WORKFLOW_FAVORITE_KEY);
- try {
- List<ArrayList<Object>> mfavorites = myWorkflowDb.get();
- favoriteAdapter = new FavoriteWorkflowAdapter(getActivity(), mfavorites);
- favoriteAdapter.registerAdapterDataObserver(dataObserver);
- } catch (JSONException e) {
- Log.e(TAG, "setUpFavoriteData: ", e);
- favoriteAdapter = new FavoriteWorkflowAdapter(getActivity(), Collections
- .<ArrayList<Object>>emptyList());
- favoriteAdapter.registerAdapterDataObserver(dataObserver);
- }
- }
-
- /**
- * Populate the listview using the adapter
- */
- private void setUpListView() {
- wFavoriteListView.setAdapter(favoriteAdapter);
- }
-
- /**
- * Called when a context menu for the {@code view} is about to be shown.
- * Unlike {@link #onCreateOptionsMenu}, this will be called every
- * time the context menu is about to be shown and should be populated for
- * the view (or item inside the view for {@link android.widget.AdapterView} subclasses,
- * this can be found in the {@code menuInfo})).
- * <p/>
- * Use {@link #onContextItemSelected(android.view.MenuItem)} to know when an
- * item has been selected.
- * <p/>
- * The default implementation calls up to
- * {@link android.app.Activity#onCreateContextMenu Activity.onCreateContextMenu}, though
- * you can not call this implementation if you don't want that behavior.
- * <p/>
- * It is not safe to hold onto the context menu after this method returns.
- * {@inheritDoc}
- */
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo
- menuInfo) {
- // super.onCreateContextMenu(menu, v, menuInfo);
- menu.add("View");
- menu.add("Remove");
- menu.setHeaderIcon(R.mipmap.ic_launcher);
- menu.setHeaderTitle("Favorite");
-
- }
-
- /**
- * This hook is called whenever an item in a context menu is selected. The
- * default implementation simply returns false to have the normal processing
- * happen (calling the item's Runnable or sending a message to its Handler
- * as appropriate). You can use this method for any items for which you
- * would like to do processing without those other facilities.
- * <p/>
- * Use {@link android.view.MenuItem#getMenuInfo()} to get extra information set by the
- * View that added this menu item.
- * <p/>
- * Derived classes should call through to the base class for it to perform
- * the default menu handling.
- *
- * @param item The context menu item that was selected.
- * @return boolean Return false to allow normal context menu processing to
- * proceed, true to consume it here.
- */
- @Override
- public boolean onContextItemSelected(MenuItem item) {
- String title = (String) item.getTitle();
- if (title.equals("View")) {
- Toast.makeText(getActivity(), "View", Toast.LENGTH_SHORT).show();
- return true;
- } else if (title.equals("Remove")) {
- Toast.makeText(getActivity(), "Removing", Toast.LENGTH_SHORT).show();
- return true;
- } else {
- return super.onContextItemSelected(item);
- }
- }
-
- /**
- * Called when the fragment is visible to the user and actively running.
- * This is generally
- * tied to {@link android.app.Activity#onResume() Activity.onResume} of the containing
- * Activity's lifecycle.
- */
- @Override
- public void onResume() {
- super.onResume();
- // setUpListView();
- //wFavoriteListView.setOnCreateContextMenuListener(this);
- //registerForContextMenu(wFavoriteListView);
-
- }
-
- /**
- * Called when the fragment is no longer in use. This is called
- * after {@link #onStop()} and before {@link #onDetach()}.
- */
- @Override
- public void onDestroy() {
- super.onDestroy();
- favoriteAdapter.unregisterAdapterDataObserver(dataObserver);
- unregisterForContextMenu(wFavoriteListView);
- }
-
- /**
- * Causes the empty textView to be set and become visible
- */
- private void setEmptyText() {
- View emptyView = wFavoriteListView.getChildAt(1);
- if (emptyView instanceof TextView) {
- emptyView.setVisibility(View.VISIBLE);
- }
- }
-
-}