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 2015/06/29 12:08:54 UTC
[44/46] incubator-taverna-mobile git commit: Fixed details not
loading when requested
Fixed details not loading when requested
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/12bc0cb8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/12bc0cb8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/12bc0cb8
Branch: refs/heads/master
Commit: 12bc0cb862aeb5ce603194a0d311c50714842d46
Parents: c810e19
Author: larrytech7 <la...@gmail.com>
Authored: Sat Jun 27 23:13:26 2015 +0100
Committer: larrytech7 <la...@gmail.com>
Committed: Sat Jun 27 23:13:26 2015 +0100
----------------------------------------------------------------------
app/src/main/ic_loading-web.png | Bin 0 -> 32040 bytes
.../activities/DashboardMainActivity.java | 19 +-
.../mobile/fragments/WorkflowItemFragment.java | 25 +-
.../workflowdetails/WorkflowdetailFragment.java | 46 ++-
.../taverna/mobile/tavernamobile/Workflow.java | 5 +
.../taverna/mobile/utils/DetailsLoader.java | 61 ++--
.../taverna/mobile/utils/WorkflowLoader.java | 6 +-
.../utils/xmlparsers/MyExperimentXmlParser.java | 319 ------------------
.../xmlparsers/MyExperimentXmlParserRules.java | 320 +++++++++++++++++++
.../utils/xmlparsers/WorkflowDetailParser.java | 2 +
.../res/layout/fragment_workflow_detail.xml | 2 +-
app/src/main/res/mipmap-hdpi/ic_loading.png | Bin 0 -> 1899 bytes
app/src/main/res/mipmap-mdpi/ic_loading.png | Bin 0 -> 1108 bytes
app/src/main/res/mipmap-xhdpi/ic_loading.png | Bin 0 -> 2927 bytes
app/src/main/res/mipmap-xxhdpi/ic_loading.png | Bin 0 -> 5161 bytes
app/src/main/res/mipmap-xxxhdpi/ic_loading.png | Bin 0 -> 7653 bytes
app/src/main/res/values/strings.xml | 3 +
17 files changed, 434 insertions(+), 374 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/ic_loading-web.png
----------------------------------------------------------------------
diff --git a/app/src/main/ic_loading-web.png b/app/src/main/ic_loading-web.png
new file mode 100644
index 0000000..1adde64
Binary files /dev/null and b/app/src/main/ic_loading-web.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
index 4b69674..e5f245b 100644
--- a/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
+++ b/app/src/main/java/org/apache/taverna/mobile/activities/DashboardMainActivity.java
@@ -25,6 +25,7 @@ package org.apache.taverna.mobile.activities;
* under the License.
*/
+import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
@@ -32,6 +33,7 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.preference.PreferenceManager;
+import android.support.v4.app.DialogFragment;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
@@ -43,6 +45,9 @@ import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
+import android.widget.EditText;
+import android.widget.LinearLayout;
+import android.widget.TextView;
import android.widget.Toast;
import org.apache.taverna.mobile.R;
@@ -68,7 +73,7 @@ public class DashboardMainActivity extends ActionBarActivity
static final int NUM_ITEMS = 2;
private final int SELECT_WORKFLOW = 10;
public static final String APP_DIRECTORY_NAME = "TavernaMobile";
-
+ private Dialog aboutDialog;
MyAdapter mAdapter;
ViewPager mPager;
@@ -77,6 +82,7 @@ public class DashboardMainActivity extends ActionBarActivity
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard_main);
setUpWorkflowDirectory(this);
+ aboutDialog = new Dialog(this);
mNavigationDrawerFragment = (NavigationDrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
@@ -136,10 +142,13 @@ public class DashboardMainActivity extends ActionBarActivity
.commit();
break;
case 4: //show about
- fragmentManager.beginTransaction()
- .replace(R.id.container, FavoriteFragment.newInstance(position + 1))
- .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
- .commit();
+ TextView about = new TextView(getApplicationContext());
+ about.setTextSize(25);
+ about.setText(getResources().getString(R.string.about));
+
+ aboutDialog.setTitle("About Taverna Mobile");
+ aboutDialog.setContentView(about);
+ aboutDialog.show();
break;
case 5://open settings/preference activity
startActivity(new Intent(this, SettingsActivity.class));
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/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 f60f3e3..10a1f8b 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
@@ -34,6 +34,7 @@ import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.SearchView;
+import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -223,19 +224,21 @@ public class WorkflowItemFragment extends Fragment implements SwipeRefreshLayout
WorkflowAdapter ladapter = new WorkflowAdapter(getActivity());
WorkflowAdapter wk = searchAdpater;//workflowAdapter;
- if(null != wk)
- for(int i=0; i< wk.getItemCount(); i++) {
- Workflow workflow = wk.getItem(i);
- if( workflow.getWorkflow_title().toLowerCase().contains(search.toLowerCase())){
- ladapter.addWorkflow(workflow);
+ if(!TextUtils.isEmpty(search)) {
+ if (null != wk)
+ for (int i = 0; i < wk.getItemCount(); i++) {
+ Workflow workflow = wk.getItem(i);
+ if (workflow.getWorkflow_title().toLowerCase().contains(search.toLowerCase())) {
+ ladapter.addWorkflow(workflow);
+ }
+ }
+ else {
+ Toast.makeText(getActivity(), "No workflows available", Toast.LENGTH_SHORT).show();
}
+ mListView.swapAdapter(ladapter, true);
+ if (ladapter.getItemCount() == 0)
+ Toast.makeText(getActivity(), "No workflows found matching criteria", Toast.LENGTH_SHORT).show();
}
- else{
- Toast.makeText(getActivity(),"No workflows available", Toast.LENGTH_SHORT).show();
- }
- mListView.swapAdapter(ladapter, true);
- if(ladapter.getItemCount()==0)
- Toast.makeText(getActivity(),"No workflows found matching criteria", Toast.LENGTH_SHORT).show();
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/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 5b3c363..31ab593 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
@@ -59,6 +59,7 @@ import android.widget.Toast;
import org.apache.taverna.mobile.R;
import org.apache.taverna.mobile.activities.DashboardMainActivity;
import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
+import org.apache.taverna.mobile.tavernamobile.User;
import org.apache.taverna.mobile.tavernamobile.Workflow;
import org.apache.taverna.mobile.utils.DetailsLoader;
import org.apache.taverna.mobile.utils.WorkflowDownloadManager;
@@ -180,7 +181,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
@Override
public Loader<Workflow> onCreateLoader(int i, Bundle bundle) {
-
+ progressDialog.show();
return new DetailsLoader(getActivity(),
DetailsLoader.LOAD_TYPE.TYPE_WORKFLOW_DETAIL,
getActivity().getIntent().getStringExtra("uri"));
@@ -202,7 +203,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
// preview.setImageURI(Uri.parse(workflow.getWorkflow_remote_url()));
download_url =workflow.getWorkflow_remote_url();
// progressDialog.cancel();
- */ // progressDialog.dismiss();
+ */ //progressDialog.dismiss();
}
@Override
@@ -216,7 +217,8 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
public void run() {
//update UI with code here
TextView author = (TextView) rootView.findViewById(R.id.wkf_author);
- author.append("->" + wk.getWorkflow_author());
+ User uploader = wk.getUploader();
+ author.setText("Uploader ->" + uploader != null?uploader.getName():"Unknown");
TextView title = (TextView) rootView.findViewById(R.id.wtitle);
title.setText(wk.getWorkflow_title());
TextView desc = (TextView) rootView.findViewById(R.id.wdescription);
@@ -224,15 +226,47 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList
TextView createdat = (TextView) rootView.findViewById(R.id.wcreatedat);
createdat.setText("Created : " + wk.getWorkflow_datecreated());
TextView updated = (TextView) rootView.findViewById(R.id.wupdatedat);
- updated.setText(wk.getWorkflow_datemodified() + wk.getWorkflow_remote_url());
+ updated.setText("Workflow Description");
ImageView preview = (ImageView) rootView.findViewById(R.id.wkf_image);
- preview.setImageURI(Uri.parse("http://www.myexperiment.org/workflows/5/versions/2/previews/full"));
+ //preview.setImageURI(Uri.parse(wk.getWorkflow_preview()));
+ new LoadImageThread(preview, wk.getWorkflow_preview()).execute();
download_url =wk.getWorkflow_remote_url();
- // progressDialog.dismiss();
+ progressDialog.dismiss();
}
});
}
+ private static class LoadImageThread extends AsyncTask<String, Void, Bitmap>{
+ ImageView imageView;
+ String src ;
+ public LoadImageThread(ImageView image, String source) {
+ imageView = image;
+ src = source;
+ }
+
+ @Override
+ protected Bitmap doInBackground(String... strings) {
+ Bitmap myBitmap = null;
+ try {
+ URL url = new URL(src);
+ HttpURLConnection connection = null;
+ connection = (HttpURLConnection) url.openConnection();
+ connection.setDoInput(true);
+ connection.connect();
+ InputStream input = connection.getInputStream();
+ myBitmap = BitmapFactory.decodeStream(input);
+// imageView.setImageBitmap(myBitmap);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return myBitmap;
+ }
+
+ @Override
+ protected void onPostExecute(Bitmap bitmap) {
+ imageView.setImageBitmap(bitmap);
+ }
+ }
//create and return a new TextView
public TextView createTextView(Context mcontext, String placeholder){
TextView tv = new TextView(mcontext);
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java
index 7868450..b4547ae 100644
--- a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java
+++ b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/Workflow.java
@@ -299,6 +299,11 @@ public class Workflow {
public void setWorkflow_credits(List<String> workflow_credits) {
this.workflow_credits = workflow_credits;
}
+
+ @Override
+ public String toString() {
+ return this.workflow_title;
+ }
}
/* Use the sample code if it becomes necessary to pass this objects amongst activities
/ simple class that just has one member property as an example
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java b/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java
index a73d10d..4be2542 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/DetailsLoader.java
@@ -31,10 +31,9 @@ import android.util.Log;
import com.thebuzzmedia.sjxp.rule.IRule;
-import org.apache.taverna.mobile.tavernamobile.Runs;
import org.apache.taverna.mobile.tavernamobile.TavernaPlayerAPI;
import org.apache.taverna.mobile.tavernamobile.Workflow;
-import org.apache.taverna.mobile.utils.xmlparsers.MyExperimentXmlParser;
+import org.apache.taverna.mobile.utils.xmlparsers.MyExperimentXmlParserRules;
import org.apache.taverna.mobile.utils.xmlparsers.WorkflowDetailParser;
import org.json.JSONArray;
import org.json.JSONException;
@@ -49,8 +48,6 @@ import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
-import static org.apache.taverna.mobile.utils.DetailsLoader.LOAD_TYPE.*;
-
/**
* Loads workflow details from the myexperiment API and presents them on the UI .The class is generic and can be used to load the
* different details sections of the app.
@@ -69,7 +66,7 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> {
this.context = context;
this.lt = load_type;
this.uri = detailsRUI;
- workflow = new Workflow();
+ this.workflow = new Workflow();
}
@Override
@@ -110,44 +107,44 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> {
connection.connect(); //send request
Log.i("RESPONSE Code", "" + connection.getResponseCode());
Log.i("RESPONSE Messsage", ""+connection.getResponseMessage());
- Log.i("Authorization ", ""+connection.getRequestProperty("Authorization"));
InputStream dis = connection.getInputStream();
- BufferedReader br = new BufferedReader(new InputStreamReader(dis));
- StringBuffer sb = new StringBuffer();
- String jsonData = "";
- while((jsonData = br.readLine()) != null){
- sb.append(jsonData);
- }
switch(this.lt) {
case TYPE_WORKFLOW_DETAIL: {
//make rules and apply the parser
- IRule workfl = new MyExperimentXmlParser.WorkflowDetailRule(IRule.Type.ATTRIBUTE,
+ IRule workfl = new MyExperimentXmlParserRules.WorkflowDetailRule(IRule.Type.ATTRIBUTE,
"/workflow", "uri","resource", "id","version");
- IRule title = new MyExperimentXmlParser.TitleRule(IRule.Type.CHARACTER,"/workflow/title");
- IRule description = new MyExperimentXmlParser.DescriptionRule(IRule.Type.CHARACTER, "/workflow/description");
- IRule type = new MyExperimentXmlParser.TypeRule(IRule.Type.CHARACTER, "/workflow/type");
- IRule attrType = new MyExperimentXmlParser.TypeRule(IRule.Type.ATTRIBUTE, "/workflow/type", "resource", "uri","id");
- IRule uploader = new MyExperimentXmlParser.UploaderRule(IRule.Type.CHARACTER, "/workflow/uploader");
- IRule attrUploader = new MyExperimentXmlParser.UploaderRule(IRule.Type.ATTRIBUTE, "/workflow/uploader", "resource", "uri","id");
- IRule date = new MyExperimentXmlParser.DateRule(IRule.Type.CHARACTER, "/workflow/created-at");
- IRule preview = new MyExperimentXmlParser.PreviewRule(IRule.Type.CHARACTER, "/workflow/preview");
- IRule licetype = new MyExperimentXmlParser.LicenceTypeRule(IRule.Type.CHARACTER, "/workflow/licence-type");
- IRule attrlicetype = new MyExperimentXmlParser.LicenceTypeRule(IRule.Type.ATTRIBUTE,"/workflow/licence-type", "resource", "uri","id");
- IRule contenturi = new MyExperimentXmlParser.ContentUriRule(IRule.Type.CHARACTER, "/workflow/content-uri");
- IRule contentType = new MyExperimentXmlParser.ContentTypeRule(IRule.Type.CHARACTER, "/workflow/content-type");
- IRule tags = new MyExperimentXmlParser.TagsRule(IRule.Type.CHARACTER, "/workflow/tags/tag");
- IRule attrTags = new MyExperimentXmlParser.TagsRule(IRule.Type.ATTRIBUTE, "/workflow/tags/tag", "resource", "uri","id");
+ IRule title = new MyExperimentXmlParserRules.TitleRule(IRule.Type.CHARACTER,"/workflow/title");
+ IRule description = new MyExperimentXmlParserRules.DescriptionRule(IRule.Type.CHARACTER, "/workflow/description");
+ IRule type = new MyExperimentXmlParserRules.TypeRule(IRule.Type.CHARACTER, "/workflow/type");
+ IRule attrType = new MyExperimentXmlParserRules.TypeRule(IRule.Type.ATTRIBUTE, "/workflow/type", "resource", "uri","id");
+ IRule uploader = new MyExperimentXmlParserRules.UploaderRule(IRule.Type.CHARACTER, "/workflow/uploader");
+ IRule attrUploader = new MyExperimentXmlParserRules.UploaderRule(IRule.Type.ATTRIBUTE, "/workflow/uploader", "resource", "uri","id");
+ IRule date = new MyExperimentXmlParserRules.DateRule(IRule.Type.CHARACTER, "/workflow/created-at");
+ IRule preview = new MyExperimentXmlParserRules.PreviewRule(IRule.Type.CHARACTER, "/workflow/preview");
+ IRule licetype = new MyExperimentXmlParserRules.LicenceTypeRule(IRule.Type.CHARACTER, "/workflow/licence-type");
+ IRule attrlicetype = new MyExperimentXmlParserRules.LicenceTypeRule(IRule.Type.ATTRIBUTE,"/workflow/licence-type", "resource", "uri","id");
+ IRule contenturi = new MyExperimentXmlParserRules.ContentUriRule(IRule.Type.CHARACTER, "/workflow/content-uri");
+ IRule contentType = new MyExperimentXmlParserRules.ContentTypeRule(IRule.Type.CHARACTER, "/workflow/content-type");
+ IRule tags = new MyExperimentXmlParserRules.TagsRule(IRule.Type.CHARACTER, "/workflow/tags/tag");
+ IRule attrTags = new MyExperimentXmlParserRules.TagsRule(IRule.Type.ATTRIBUTE, "/workflow/tags/tag", "resource", "uri","id");
WorkflowDetailParser parser = new WorkflowDetailParser(new IRule[]{workfl,title,description,type,
attrlicetype,attrType, uploader,attrUploader,date,preview,licetype,contenturi,contentType,tags,attrTags});
- parser.parse(dis, workflow);
+ // System.out.println(sb.toString());
+ parser.parse(dis, this.workflow);
}
dis.close();
- br.close();
+ //br.close();
return workflow;
case TYPE_RUN_HISTORY:{
+ BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+ StringBuffer sb = new StringBuffer();
+ String jsonData = "";
+ while((jsonData = br.readLine()) != null){
+ sb.append(jsonData);
+ }
workflow = new Workflow(this.context);
JSONArray jsonArray = new JSONArray(sb.toString());
Log.i("JSON ", jsonArray.toString(2));
@@ -181,6 +178,12 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> {
}
return workflow;
default:
+ BufferedReader br = new BufferedReader(new InputStreamReader(dis));
+ StringBuffer sb = new StringBuffer();
+ String jsonData = "";
+ while((jsonData = br.readLine()) != null){
+ sb.append(jsonData);
+ }
dis.close();
br.close();
return workflow;
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
index e08de2a..af16b68 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowLoader.java
@@ -31,7 +31,7 @@ import android.util.Log;
import com.thebuzzmedia.sjxp.rule.IRule;
import org.apache.taverna.mobile.tavernamobile.Workflow;
-import org.apache.taverna.mobile.utils.xmlparsers.MyExperimentXmlParser;
+import org.apache.taverna.mobile.utils.xmlparsers.MyExperimentXmlParserRules;
import org.apache.taverna.mobile.utils.xmlparsers.WorkflowParser;
import java.io.IOException;
@@ -120,8 +120,8 @@ public class WorkflowLoader extends AsyncTask<Object, Object, Object>{ //Workflo
} catch (JSONException | IOException e) {
e.printStackTrace();
}*/
- IRule wkflowRule = new MyExperimentXmlParser.WorkflowRule(IRule.Type.ATTRIBUTE, "/workflows/workflow", "resource", "uri","id", "version");
- IRule workflowNameRule = new MyExperimentXmlParser.WorkflowRule(IRule.Type.CHARACTER, "/workflows/workflow");
+ IRule wkflowRule = new MyExperimentXmlParserRules.WorkflowRule(IRule.Type.ATTRIBUTE, "/workflows/workflow", "resource", "uri","id", "version");
+ IRule workflowNameRule = new MyExperimentXmlParserRules.WorkflowRule(IRule.Type.CHARACTER, "/workflows/workflow");
WorkflowParser xmlParser = new WorkflowParser(new IRule[]{wkflowRule, workflowNameRule});
try {
URL workflowurl = new URL("http://www.myexperiment.org/workflows.xml");
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParser.java
deleted file mode 100644
index 46250eb..0000000
--- a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParser.java
+++ /dev/null
@@ -1,319 +0,0 @@
-package org.apache.taverna.mobile.utils.xmlparsers;
-/**
- * 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.annotation.TargetApi;
-import android.os.Build;
-import android.text.Html;
-
-import com.thebuzzmedia.sjxp.XMLParser;
-import com.thebuzzmedia.sjxp.rule.DefaultRule;
-
-import org.apache.taverna.mobile.tavernamobile.User;
-import org.apache.taverna.mobile.tavernamobile.Workflow;
-import org.apache.taverna.mobile.utils.WorkflowLoader;
-import org.simpleframework.xml.Default;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Created by Larry Akah on 6/23/15.
- */
-public class MyExperimentXmlParser {
-
- public static Workflow mWorkflow = new Workflow();
-
- public MyExperimentXmlParser(){
- }
-
- public Workflow getWorkflowHere(){
- return mWorkflow;
- }
- //parse a single workflow from myexperiment
- public static class WorkflowDetailRule extends DefaultRule{
-
- public WorkflowDetailRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
- switch(index){
- case 0: //uri
- mWorkflow.setWorkflow_details_url(value);
- ((Workflow)userObject).setWorkflow_details_url(value);
- break;
- case 1: //resource
- mWorkflow.setWorkflow_web_url(value);
- ((Workflow)userObject).setWorkflow_web_url(value);
- break;
- case 2: //id
- mWorkflow.setId(Integer.parseInt(value));
- ((Workflow)userObject).setId(Integer.parseInt(value));
- break;
- case 3://version
- mWorkflow.setWorkflow_versions(value);
- ((Workflow)userObject).setWorkflow_versions(value);
- break;
- }
- }
- }
-
- public static class TitleRule extends DefaultRule{
-
- public TitleRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
- mWorkflow.setWorkflow_title(text);
- ((Workflow)userObject).setWorkflow_title(text);
- }
- }
-
- public static class DescriptionRule extends DefaultRule{
-
- public DescriptionRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
-
- mWorkflow.setWorkflow_description(String.valueOf(Html.fromHtml(text)));
- ((Workflow)userObject).setWorkflow_description(String.valueOf(Html.fromHtml(text)));
- }
- }
-
- public static class TypeRule extends DefaultRule{
-
- public TypeRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
- switch (index){
- case 0:
- break;
- case 1:
- break;
- case 2:
- break;
-
- }
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
- mWorkflow.setWorkflow_Type(text);
- ((Workflow)userObject).setWorkflow_Type(text);
- }
- }
-
- public static class UploaderRule extends DefaultRule{
-
- User muser;
- public UploaderRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- muser = new User();
- }
-
- @Override
- public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
- switch(index){
- case 0:
- muser.setWebsite(value);
- break;
- case 1:
- muser.setDetails_uri(value);
- break;
- case 2:
- muser.setId(value);
- break;
- }
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
- muser.setName(text);
- mWorkflow.setUploader(muser);
- ((Workflow)userObject).setUploader(muser);
- }
- }
-//rule for the date the workflow was created/uploaded
- public static class DateRule extends DefaultRule{
-
- public DateRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
- mWorkflow.setWorkflow_datecreated(text);
- ((Workflow)userObject).setWorkflow_datecreated(text);
-
- }
-}
-
- public static class PreviewRule extends DefaultRule{
-
- public PreviewRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
- mWorkflow.setWorkflow_preview(text);
- ((Workflow)userObject).setWorkflow_preview(text);
- }
- }
-
- public static class LicenceTypeRule extends DefaultRule{
-
- public LicenceTypeRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
- super.handleParsedAttribute(parser, index, value, userObject);
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
- mWorkflow.setWorkflow_licence_type("Licence By "+text);
- ((Workflow)userObject).setWorkflow_licence_type("Licence By "+text);
- }
- }
-//set download link for the workflow
- public static class ContentUriRule extends DefaultRule{
-
- public ContentUriRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
- mWorkflow.setWorkflow_remote_url(text);
- ((Workflow)userObject).setWorkflow_remote_url(text);
- }
- }
-
- public static class ContentTypeRule extends DefaultRule{
-
- public ContentTypeRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
- mWorkflow.setWorkflow_content_type(text);
- ((Workflow)userObject).setWorkflow_content_type(text);
- }
- }
-
- public static class TagsRule extends DefaultRule{
-
- public TagsRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- }
-
- @Override
- public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
- super.handleParsedAttribute(parser, index, value, userObject);
- System.out.println(value);
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
- mWorkflow.setWorkflow_tags(new ArrayList<String>(){});
- ((Workflow)userObject).setWorkflow_tags(new ArrayList<String>(){});
- System.out.println(text);
- }
- }
-
- /**
- * parse workflows from myExperiment
- */
- public final static class WorkflowRule extends DefaultRule{
- Workflow workflow;
- List<Workflow> wlist;
- static String uri,version,desc;
- static String url=uri=version=desc="";
- static long id = 0;
-
- public WorkflowRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
- super(type, locationPath, attributeNames);
- this.workflow = new Workflow();
- wlist = new ArrayList<>();
- }
- //instantiated to parse xml data for a given workflow
- public WorkflowRule(Type type, String path, int id, String attributenames){
- super(type,path,attributenames);
- }
-
- @Override
- public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
-
- switch(index){
- case 0:
- System.out.println("Workflow Resource: "+value); url = value;
- desc = "To view workflow on the web, click "+value;
- break;
- case 1:
- System.out.println("Workflow uri: "+value);
- uri = value;
- break;
- case 2:
- System.out.println("Workflow id: "+value);
- id = Integer.parseInt(value);
- break;
- case 3:
- System.out.println("Workflow version: "+value);
- version = value;
- break;
- }
- }
-
- @Override
- public void handleParsedCharacters(XMLParser parser, String text, Object workflowListObject) {
- //add the workflow to the workflow list
- this.workflow = new Workflow("", desc, id, url);
- this.workflow.setWorkflow_details_url(uri);
- this.workflow.setWorkflow_title(text);
- this.workflow.setWorkflow_author("");
- wlist.add(this.workflow);
- WorkflowLoader.loadedWorkflows.add(this.workflow);
- System.out.println("static Workflow Count: " + WorkflowLoader.loadedWorkflows.size());
- ((List<Workflow>)workflowListObject).add(this.workflow);
- this.workflow = null;
- }
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
new file mode 100644
index 0000000..9bb47ed
--- /dev/null
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/MyExperimentXmlParserRules.java
@@ -0,0 +1,320 @@
+package org.apache.taverna.mobile.utils.xmlparsers;
+/**
+ * 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.annotation.TargetApi;
+import android.os.Build;
+import android.text.Html;
+
+import com.thebuzzmedia.sjxp.XMLParser;
+import com.thebuzzmedia.sjxp.rule.DefaultRule;
+
+import org.apache.taverna.mobile.tavernamobile.User;
+import org.apache.taverna.mobile.tavernamobile.Workflow;
+import org.apache.taverna.mobile.utils.WorkflowLoader;
+import org.simpleframework.xml.Default;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by Larry Akah on 6/23/15.
+ */
+public class MyExperimentXmlParserRules {
+
+ public static Workflow mWorkflow = new Workflow();
+
+ public MyExperimentXmlParserRules(){
+ }
+
+ public Workflow getWorkflowHere(){
+ return mWorkflow;
+ }
+ //parse a single workflow from myexperiment
+ public final static class WorkflowDetailRule extends DefaultRule{
+
+ public WorkflowDetailRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ System.out.println("Parser rules created. Ready to parse");
+ }
+
+ @Override
+ public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+ switch(index){
+ case 0: //uri
+ mWorkflow.setWorkflow_details_url(value);
+ ((Workflow)userObject).setWorkflow_details_url(value);
+ break;
+ case 1: //resource
+ mWorkflow.setWorkflow_web_url(value);
+ ((Workflow)userObject).setWorkflow_web_url(value);
+ break;
+ case 2: //id
+ mWorkflow.setId(Integer.parseInt(value));
+ ((Workflow)userObject).setId(Integer.parseInt(value));
+ break;
+ case 3://version
+ mWorkflow.setWorkflow_versions(value);
+ ((Workflow)userObject).setWorkflow_versions(value);
+ break;
+ }
+ }
+ }
+
+ public static class TitleRule extends DefaultRule{
+
+ public TitleRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+ mWorkflow.setWorkflow_title(text);
+ ((Workflow)userObject).setWorkflow_title(text);
+ }
+ }
+
+ public static class DescriptionRule extends DefaultRule{
+
+ public DescriptionRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+
+ mWorkflow.setWorkflow_description(String.valueOf(Html.fromHtml(text)));
+ ((Workflow)userObject).setWorkflow_description(String.valueOf(Html.fromHtml(text)));
+ }
+ }
+
+ public static class TypeRule extends DefaultRule{
+
+ public TypeRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ }
+
+ @Override
+ public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+ switch (index){
+ case 0:
+ break;
+ case 1:
+ break;
+ case 2:
+ break;
+
+ }
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+ mWorkflow.setWorkflow_Type(text);
+ ((Workflow)userObject).setWorkflow_Type(text);
+ }
+ }
+
+ public static class UploaderRule extends DefaultRule{
+
+ User muser;
+ public UploaderRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ muser = new User();
+ }
+
+ @Override
+ public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+ switch(index){
+ case 0:
+ muser.setWebsite(value);
+ break;
+ case 1:
+ muser.setDetails_uri(value);
+ break;
+ case 2:
+ muser.setId(value);
+ break;
+ }
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+ muser.setName(text);
+ mWorkflow.setUploader(muser);
+ ((Workflow)userObject).setUploader(muser);
+ }
+ }
+//rule for the date the workflow was created/uploaded
+ public static class DateRule extends DefaultRule{
+
+ public DateRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+ mWorkflow.setWorkflow_datecreated(text);
+ ((Workflow)userObject).setWorkflow_datecreated(text);
+
+ }
+}
+
+ public static class PreviewRule extends DefaultRule{
+
+ public PreviewRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+ mWorkflow.setWorkflow_preview(text);
+ ((Workflow)userObject).setWorkflow_preview(text);
+ }
+ }
+
+ public static class LicenceTypeRule extends DefaultRule{
+
+ public LicenceTypeRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ }
+
+ @Override
+ public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+ super.handleParsedAttribute(parser, index, value, userObject);
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+ mWorkflow.setWorkflow_licence_type("Licence By "+text);
+ ((Workflow)userObject).setWorkflow_licence_type("Licence By "+text);
+ }
+ }
+//set download link for the workflow
+ public static class ContentUriRule extends DefaultRule{
+
+ public ContentUriRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+ mWorkflow.setWorkflow_remote_url(text);
+ ((Workflow)userObject).setWorkflow_remote_url(text);
+ }
+ }
+
+ public static class ContentTypeRule extends DefaultRule{
+
+ public ContentTypeRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+ mWorkflow.setWorkflow_content_type(text);
+ ((Workflow)userObject).setWorkflow_content_type(text);
+ }
+ }
+
+ public static class TagsRule extends DefaultRule{
+
+ public TagsRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ }
+
+ @Override
+ public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+ super.handleParsedAttribute(parser, index, value, userObject);
+ System.out.println("Tag attribute value"+value);
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object userObject) {
+ mWorkflow.setWorkflow_tags(new ArrayList<String>(){});
+ ((Workflow)userObject).setWorkflow_tags(new ArrayList<String>(){});
+ System.out.println(text);
+ }
+ }
+
+ /**
+ * parse workflows from myExperiment
+ */
+ public final static class WorkflowRule extends DefaultRule{
+ Workflow workflow;
+ List<Workflow> wlist;
+ static String uri,version,desc;
+ static String url=uri=version=desc="";
+ static long id = 0;
+
+ public WorkflowRule(Type type, String locationPath, String... attributeNames) throws IllegalArgumentException {
+ super(type, locationPath, attributeNames);
+ this.workflow = new Workflow();
+ wlist = new ArrayList<>();
+ }
+ //instantiated to parse xml data for a given workflow
+ public WorkflowRule(Type type, String path, int id, String attributenames){
+ super(type,path,attributenames);
+ }
+
+ @Override
+ public void handleParsedAttribute(XMLParser parser, int index, String value, Object userObject) {
+
+ switch(index){
+ case 0:
+ System.out.println("Workflow Resource: "+value); url = value;
+ desc = "To view workflow on the web, click "+value;
+ break;
+ case 1:
+ System.out.println("Workflow uri: "+value);
+ uri = value;
+ break;
+ case 2:
+ System.out.println("Workflow id: "+value);
+ id = Integer.parseInt(value);
+ break;
+ case 3:
+ System.out.println("Workflow version: "+value);
+ version = value;
+ break;
+ }
+ }
+
+ @Override
+ public void handleParsedCharacters(XMLParser parser, String text, Object workflowListObject) {
+ //add the workflow to the workflow list
+ this.workflow = new Workflow("", desc, id, url);
+ this.workflow.setWorkflow_details_url(uri);
+ this.workflow.setWorkflow_title(text);
+ this.workflow.setWorkflow_author("");
+ wlist.add(this.workflow);
+ WorkflowLoader.loadedWorkflows.add(this.workflow);
+ System.out.println("static Workflow Count: " + WorkflowLoader.loadedWorkflows.size());
+ ((List<Workflow>)workflowListObject).add(this.workflow);
+ this.workflow = null;
+ }
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java
----------------------------------------------------------------------
diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java
index 964c6af..a49d836 100644
--- a/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java
+++ b/app/src/main/java/org/apache/taverna/mobile/utils/xmlparsers/WorkflowDetailParser.java
@@ -46,5 +46,7 @@ public class WorkflowDetailParser extends XMLParser {
@Override
protected void doEndDocument(Object userObject) {
WorkflowdetailFragment.setWorkflowDetails((Workflow) userObject);
+ // WorkflowdetailFragment.setWorkflowDetails(MyExperimentXmlParserRules.mWorkflow);
+ System.out.println("Finished Parsing document. Results"+(Workflow) userObject);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/res/layout/fragment_workflow_detail.xml
----------------------------------------------------------------------
diff --git a/app/src/main/res/layout/fragment_workflow_detail.xml b/app/src/main/res/layout/fragment_workflow_detail.xml
index 946e5ed..3c920d2 100644
--- a/app/src/main/res/layout/fragment_workflow_detail.xml
+++ b/app/src/main/res/layout/fragment_workflow_detail.xml
@@ -82,7 +82,7 @@ limitations under the License.
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/wkf_image"
- android:src="@mipmap/ic_viewworkflow"
+ android:src="@mipmap/ic_loading"
android:backgroundTint="@color/accent_material_light"
android:backgroundTintMode="src_atop" />
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/res/mipmap-hdpi/ic_loading.png
----------------------------------------------------------------------
diff --git a/app/src/main/res/mipmap-hdpi/ic_loading.png b/app/src/main/res/mipmap-hdpi/ic_loading.png
new file mode 100644
index 0000000..f0e927d
Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_loading.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/res/mipmap-mdpi/ic_loading.png
----------------------------------------------------------------------
diff --git a/app/src/main/res/mipmap-mdpi/ic_loading.png b/app/src/main/res/mipmap-mdpi/ic_loading.png
new file mode 100644
index 0000000..216a417
Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_loading.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/res/mipmap-xhdpi/ic_loading.png
----------------------------------------------------------------------
diff --git a/app/src/main/res/mipmap-xhdpi/ic_loading.png b/app/src/main/res/mipmap-xhdpi/ic_loading.png
new file mode 100644
index 0000000..f8858a9
Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_loading.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/res/mipmap-xxhdpi/ic_loading.png
----------------------------------------------------------------------
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_loading.png b/app/src/main/res/mipmap-xxhdpi/ic_loading.png
new file mode 100644
index 0000000..5a4b82f
Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_loading.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/app/src/main/res/mipmap-xxxhdpi/ic_loading.png
----------------------------------------------------------------------
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_loading.png b/app/src/main/res/mipmap-xxxhdpi/ic_loading.png
new file mode 100644
index 0000000..8007c63
Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_loading.png differ
http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/12bc0cb8/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 1107796..dc320b3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -85,5 +85,8 @@ limitations under the License.
<string name="emailerr">Email must not be empty</string>
<string name="passworderr">Password must not be empty</string>
+ <string name="about">Mobile Application for managing Taverna workflows on the fly.<br/>
+ View, run and download workflows at a convenience on your android mobile<br/>
+ device. \n\n <br/><b>Developed at Apache Taverna and Powered by MyExperiment</b><br/></string>
</resources>