Implemented app preferences to configure Taverna player and server portals
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/1fcf1fe6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/1fcf1fe6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/1fcf1fe6 Branch: refs/heads/master Commit: 1fcf1fe647dc38b8c70e370111c65c754af933e9 Parents: 78ee0be Author: larrytech7 <larrya...@gmail.com> Authored: Tue Jun 16 16:43:37 2015 +0100 Committer: larrytech7 <larrya...@gmail.com> Committed: Tue Jun 16 16:43:37 2015 +0100 ---------------------------------------------------------------------- app/src/main/AndroidManifest.xml | 11 +- app/src/main/ic_dashboard_home-web.png | Bin 0 -> 2121 bytes .../activities/DashboardMainActivity.java | 11 +- .../mobile/activities/SettingsActivity.java | 244 +++++++++++++++++++ .../mobile/adapters/SliderMenuAdapter.java | 18 +- .../fragments/NavigationDrawerFragment.java | 1 + .../workflowdetails/WorkflowAboutFragment.java | 1 - .../workflowdetails/WorkflowdetailFragment.java | 7 +- .../mobile/tavernamobile/TavernaPlayerAPI.java | 42 +++- .../taverna/mobile/utils/DetailsLoader.java | 10 +- .../taverna/mobile/utils/WorkflowRunHelper.java | 30 --- .../main/res/mipmap-hdpi/ic_dashboard_home.png | Bin 0 -> 224 bytes .../main/res/mipmap-mdpi/ic_dashboard_home.png | Bin 0 -> 273 bytes .../main/res/mipmap-xhdpi/ic_dashboard_home.png | Bin 0 -> 371 bytes .../res/mipmap-xxhdpi/ic_dashboard_home.png | Bin 0 -> 566 bytes .../res/mipmap-xxxhdpi/ic_dashboard_home.png | Bin 0 -> 659 bytes .../res/values/strings_activity_settings.xml | 22 ++ app/src/main/res/xml/pref_general.xml | 33 +++ app/src/main/res/xml/pref_headers.xml | 9 + 19 files changed, 380 insertions(+), 59 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/AndroidManifest.xml ---------------------------------------------------------------------- diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7db3bdb..5d1c634 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -67,9 +67,18 @@ limitations under the License. android:enabled="true" android:exported="true" > <intent-filter> - <action android:name="android.intent.action.DOWNLOAD_COMPLETE"/> + <action android:name="android.intent.action.DOWNLOAD_COMPLETE" /> </intent-filter> </receiver> + + <activity + android:name=".activities.SettingsActivity" + android:label="@string/title_activity_settings" + android:parentActivityName="org.apache.taverna.mobile.activities.DashboardMainActivity" > + <meta-data + android:name="android.support.PARENT_ACTIVITY" + android:value="org.apache.taverna.mobile.activities.DashboardMainActivity" /> + </activity> </application> </manifest> http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/ic_dashboard_home-web.png ---------------------------------------------------------------------- diff --git a/app/src/main/ic_dashboard_home-web.png b/app/src/main/ic_dashboard_home-web.png new file mode 100644 index 0000000..5810950 Binary files /dev/null and b/app/src/main/ic_dashboard_home-web.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/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 5ff0640..7624082 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 @@ -110,7 +110,7 @@ public class DashboardMainActivity extends ActionBarActivity // update the main content by replacing fragments FragmentManager fragmentManager = getSupportFragmentManager(); switch(position+1){ - case 1: + case 1://return home fragmentManager.beginTransaction() .replace(R.id.container, WorkflowItemFragment.newInstance("param1", "param2")) .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE) @@ -145,7 +145,11 @@ public class DashboardMainActivity extends ActionBarActivity .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) .commit(); break; - case 5: //logout user + case 5://open settings/preference activity + startActivity(new Intent(this, SettingsActivity.class)); + overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right); + break; + case 6: //logout user this.finish(); break; default: @@ -178,6 +182,9 @@ public class DashboardMainActivity extends ActionBarActivity mTitle = getString(R.string.title_about); break; case 5: + mTitle = getString(R.string.title_activity_settings); + break; + case 6: mTitle = getString(R.string.title_exit); break; } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/java/org/apache/taverna/mobile/activities/SettingsActivity.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/activities/SettingsActivity.java b/app/src/main/java/org/apache/taverna/mobile/activities/SettingsActivity.java new file mode 100644 index 0000000..4a5048d --- /dev/null +++ b/app/src/main/java/org/apache/taverna/mobile/activities/SettingsActivity.java @@ -0,0 +1,244 @@ +package org.apache.taverna.mobile.activities; +/** + * 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.content.Context; +import android.content.res.Configuration; +import android.os.Build; +import android.os.Bundle; +import android.preference.ListPreference; +import android.preference.Preference; +import android.preference.PreferenceActivity; +import android.preference.PreferenceFragment; +import android.preference.PreferenceManager; +import android.support.annotation.NonNull; +import android.support.v4.app.NavUtils; +import android.view.MenuItem; + +import org.apache.taverna.mobile.R; + +import java.util.List; + +/** + * A {@link PreferenceActivity} that presents a set of application settings. On + * handset devices, settings are presented as a single list. On tablets, + * settings are split by category, with category headers shown to the left of + * the list of settings. + * <p/> + * See <a href="http://developer.android.com/design/patterns/settings.html"> + * Android Design: Settings</a> for design guidelines and the <a + * href="http://developer.android.com/guide/topics/ui/settings.html">Settings + * API Guide</a> for more information on developing a Settings UI. + */ +public class SettingsActivity extends PreferenceActivity { + /** + * Determines whether to always show the simplified settings UI, where + * settings are presented in a single list. When false, settings are shown + * as a master/detail two-pane view on tablets. When true, a single pane is + * shown on tablets. + */ + private static final boolean ALWAYS_SIMPLE_PREFS = false; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // setupActionBar(); + } + + /** + * Set up the {@link android.app.ActionBar}, if the API is available. + */ + /* @NonNull + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + private void setupActionBar() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { + // Show the Up button in the action bar. + getActionBar().setDisplayHomeAsUpEnabled(true); + } + } +*/ + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + if (id == android.R.id.home) { + // This ID represents the Home or Up button. In the case of this + // activity, the Up button is shown. Use NavUtils to allow users + // to navigate up one level in the application structure. For + // more details, see the Navigation pattern on Android Design: + // + // http://developer.android.com/design/patterns/navigation.html#up-vs-back + // + // TODO: If Settings has multiple levels, Up should navigate up + // that hierarchy. + NavUtils.navigateUpFromSameTask(this); + return true; + } + return super.onOptionsItemSelected(item); + } + + @Override + protected void onPostCreate(Bundle savedInstanceState) { + super.onPostCreate(savedInstanceState); + + setupSimplePreferencesScreen(); + } + + /** + * Shows the simplified settings UI if the device configuration if the + * device configuration dictates that a simplified, single-pane UI should be + * shown. + */ + private void setupSimplePreferencesScreen() { + if (!isSimplePreferences(this)) { + return; + } + + // In the simplified UI, fragments are not used at all and we instead + // use the older PreferenceActivity APIs. + + // Add 'general' preferences. + addPreferencesFromResource(R.xml.pref_general); + + // Bind the summaries of EditText/List/Dialog/Ringtone preferences to + // their values. When their values change, their summaries are updated + // to reflect the new value, per the Android Design guidelines. + bindPreferenceSummaryToValue(findPreference("pref_server_url")); + bindPreferenceSummaryToValue(findPreference("pref_player_url")); + } + + /** + * {@inheritDoc} + */ + @Override + public boolean onIsMultiPane() { + return isXLargeTablet(this) && !isSimplePreferences(this); + } + + /** + * Helper method to determine if the device has an extra-large screen. For + * example, 10" tablets are extra-large. + */ + private static boolean isXLargeTablet(Context context) { + return (context.getResources().getConfiguration().screenLayout + & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE; + } + + /** + * Determines whether the simplified settings UI should be shown. This is + * true if this is forced via {@link #ALWAYS_SIMPLE_PREFS}, or the device + * doesn't have newer APIs like {@link PreferenceFragment}, or the device + * doesn't have an extra-large screen. In these cases, a single-pane + * "simplified" settings UI should be shown. + */ + private static boolean isSimplePreferences(Context context) { + return ALWAYS_SIMPLE_PREFS + || Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB + || !isXLargeTablet(context); + } + + /** + * {@inheritDoc} + */ + @Override + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public void onBuildHeaders(List<Header> target) { + if (!isSimplePreferences(this)) { + loadHeadersFromResource(R.xml.pref_headers, target); + } + } + + /** + * A preference value change listener that updates the preference's summary + * to reflect its new value. + */ + private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object value) { + String stringValue = value.toString(); + + if (preference instanceof ListPreference) { + // For list preferences, look up the correct display value in + // the preference's 'entries' list. + ListPreference listPreference = (ListPreference) preference; + int index = listPreference.findIndexOfValue(stringValue); + + // Set the summary to reflect the new value. + preference.setSummary( + index >= 0 + ? listPreference.getEntries()[index] + : null); + + } else { + // For all other preferences, set the summary to the value's + // simple string representation. + preference.setSummary(stringValue); + } + return true; + } + }; + + /** + * Binds a preference's summary to its value. More specifically, when the + * preference's value is changed, its summary (line of text below the + * preference title) is updated to reflect the value. The summary is also + * immediately updated upon calling this method. The exact display format is + * dependent on the type of preference. + * + * @see #sBindPreferenceSummaryToValueListener + */ + private static void bindPreferenceSummaryToValue(Preference preference) { + // Set the listener to watch for value changes. + preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener); + + // Trigger the listener immediately with the preference's + // current value. + sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, + PreferenceManager + .getDefaultSharedPreferences(preference.getContext()) + .getString(preference.getKey(), "")); + } + + /** + * This fragment shows general preferences only. It is used when the + * activity is showing a two-pane settings UI. + */ + @TargetApi(Build.VERSION_CODES.HONEYCOMB) + public static class GeneralPreferenceFragment extends PreferenceFragment { + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.pref_general); + + // Bind the summaries of EditText/List/Dialog/Ringtone preferences + // to their values. When their values change, their summaries are + // updated to reflect the new value, per the Android Design + // guidelines. + bindPreferenceSummaryToValue(findPreference("pref_server_url")); + bindPreferenceSummaryToValue(findPreference("pref_player_url")); + } + } + +} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/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 index 9a68189..9b702a1 100644 --- a/app/src/main/java/org/apache/taverna/mobile/adapters/SliderMenuAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/adapters/SliderMenuAdapter.java @@ -68,22 +68,12 @@ public class SliderMenuAdapter extends BaseAdapter{ public View getView(int i, View view, ViewGroup viewGroup) { View menuitemview = LayoutInflater.from(context).inflate(R.layout.menu_item_layout, viewGroup, false); - /* if(view != null ) { - ViewHolder vh = (ViewHolder) view.getTag(); - if (vh == null) { - ViewHolder v = new ViewHolder(menuitemview); - view.setTag(v); - return getView(i,view,viewGroup); - } else { - vh.menuitem.setText(dataItems.get(i)); - vh.menuicon.setImageResource(R.drawable.gear_icon); - } - }*/ + 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_workflows); + menuicon.setImageResource(R.mipmap.ic_dashboard_home); menuitem.setText(dataItems.get(i)); break; case 2: @@ -99,6 +89,10 @@ public class SliderMenuAdapter extends BaseAdapter{ 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; http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/java/org/apache/taverna/mobile/fragments/NavigationDrawerFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/NavigationDrawerFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/NavigationDrawerFragment.java index e936d1e..f3aaed0 100644 --- a/app/src/main/java/org/apache/taverna/mobile/fragments/NavigationDrawerFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/fragments/NavigationDrawerFragment.java @@ -138,6 +138,7 @@ public class NavigationDrawerFragment extends Fragment { mlist.add(getString(R.string.title_openworkflow)); mlist.add(getString(R.string.title_usage)); mlist.add(getString(R.string.title_about)); + mlist.add(getString(R.string.title_activity_settings)); mlist.add(getString(R.string.title_exit)); mDrawerListView.setAdapter(new SliderMenuAdapter(getActivity(), mlist)); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowAboutFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowAboutFragment.java b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowAboutFragment.java index e54cdaf..c8f1e64 100644 --- a/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowAboutFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/fragments/workflowdetails/WorkflowAboutFragment.java @@ -84,5 +84,4 @@ public class WorkflowAboutFragment extends Fragment { return inflater.inflate(R.layout.fragment_workflow_about, container, false); } - } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/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 656ea90..3068791 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 @@ -246,7 +246,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList StringBuffer sb = new StringBuffer(); try { - URL workflowurl = new URL(TavernaPlayerAPI.PLAYER_RUN_FRAMEWORK_URL+params[0]); + URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_FRAMEWORK_URL+params[0]); HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection(); String userpass = "icep...@gmail.com" + ":" + "creationfox"; String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT); @@ -359,6 +359,8 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList @Override protected void onPreExecute() { super.onPreExecute(); + progressDialog.setMessage("Creating new run for the workflow"); + progressDialog.show(); } @Override @@ -366,7 +368,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList StringBuffer sb = new StringBuffer(); try { - URL workflowurl = new URL(TavernaPlayerAPI.PLAYER_RUN_URL); + URL workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_URL); HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection(); String userpass = "icep...@gmail.com" + ":" + "creationfox"; String basicAuth = "Basic " + Base64.encodeToString(userpass.getBytes(), Base64.DEFAULT); @@ -409,6 +411,7 @@ public class WorkflowdetailFragment extends Fragment implements View.OnClickList @Override protected void onPostExecute(String s) { Log.i("RUN OutPut", s); + progressDialog.dismiss(); } } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java index 85874a8..9697fb8 100644 --- a/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java +++ b/app/src/main/java/org/apache/taverna/mobile/tavernamobile/TavernaPlayerAPI.java @@ -1,5 +1,8 @@ package org.apache.taverna.mobile.tavernamobile; +import android.content.Context; +import android.preference.PreferenceManager; + import java.net.PasswordAuthentication; /** @@ -7,14 +10,41 @@ import java.net.PasswordAuthentication; */ public class TavernaPlayerAPI { - public static final String PLAYER_BASE_URL = "http://heater.cs.man.ac.uk:3000/"; - public static final String SERVER_BASE_URL = "http://heater.cs.man.ac.uk:8090/taverna-2.5.4/"; - public static final String PLAYER_WORKFLOW_URL = PLAYER_BASE_URL+"workflows/"; - public static final String PLAYER_RUN_URL = PLAYER_BASE_URL+"runs/"; - public static final String PLAYER_RUN_FRAMEWORK_URL = PLAYER_RUN_URL+"new?workflow_id="; //returns a json 'framework' used for creating runs for the given workflow + public static String PLAYER_BASE_URL = "http://heater.cs.man.ac.uk:3000/"; + public static String SERVER_BASE_URL = "http://heater.cs.man.ac.uk:8090/taverna-2.5.4/"; + public static String PLAYER_WORKFLOW_URL = PLAYER_BASE_URL+"workflows/"; + public static String PLAYER_RUN_URL = PLAYER_BASE_URL+"runs/"; + public static String PLAYER_RUN_FRAMEWORK_URL = PLAYER_RUN_URL+"new?workflow_id="; //returns a json 'framework' used for creating runs for the given workflow + + + public TavernaPlayerAPI(Context context) { + String server = PreferenceManager.getDefaultSharedPreferences(context).getString("pref_server_url","/"); + String player = PreferenceManager.getDefaultSharedPreferences(context).getString("pref_player_url","/"); + PLAYER_BASE_URL = player; + SERVER_BASE_URL = server; + PLAYER_WORKFLOW_URL = PLAYER_BASE_URL+"workflows/"; + PLAYER_RUN_URL = PLAYER_BASE_URL+"runs/"; + PLAYER_RUN_FRAMEWORK_URL = PLAYER_RUN_URL+"new?workflow_id="; + } + + public static String getPLAYER_BASE_URL() { + return PLAYER_BASE_URL; + } + public static String getSERVER_BASE_URL() { + return SERVER_BASE_URL; + } + + public static String getPLAYER_WORKFLOW_URL() { + return PLAYER_WORKFLOW_URL; + } + + public static String getPLAYER_RUN_URL() { + return PLAYER_RUN_URL; + } - public TavernaPlayerAPI() { + public static String getPLAYER_RUN_FRAMEWORK_URL() { + return PLAYER_RUN_FRAMEWORK_URL; } public static class Authenticator extends java.net.Authenticator{ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/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 08d69bf..f0998fc 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 @@ -75,19 +75,19 @@ public class DetailsLoader extends AsyncTaskLoader<Workflow> { switch (this.lt){ case TYPE_WORKFLOW_DETAIL: - workflowurl = new URL(TavernaPlayerAPI.PLAYER_WORKFLOW_URL+this.wid); + workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_WORKFLOW_URL+this.wid); break; case TYPE_RUN_HISTORY: - workflowurl = new URL(TavernaPlayerAPI.PLAYER_RUN_URL); + workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_RUN_URL); break; case TYPE_POLICY: - workflowurl = new URL(TavernaPlayerAPI.SERVER_BASE_URL); + workflowurl = new URL(new TavernaPlayerAPI(this.context).SERVER_BASE_URL); break; case TYPE_ABOUT_WORKFLOW: - workflowurl = new URL(TavernaPlayerAPI.PLAYER_WORKFLOW_URL); + workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_WORKFLOW_URL); break; default: - workflowurl = new URL(TavernaPlayerAPI.PLAYER_WORKFLOW_URL); + workflowurl = new URL(new TavernaPlayerAPI(this.context).PLAYER_WORKFLOW_URL); break; } HttpURLConnection connection = (HttpURLConnection) workflowurl.openConnection(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowRunHelper.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowRunHelper.java b/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowRunHelper.java deleted file mode 100644 index f450bca..0000000 --- a/app/src/main/java/org/apache/taverna/mobile/utils/WorkflowRunHelper.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.apache.taverna.mobile.utils; -/** - * 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. - */ -/** - * Created by root on 6/11/15. - */ -public class WorkflowRunHelper { -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/res/mipmap-hdpi/ic_dashboard_home.png ---------------------------------------------------------------------- diff --git a/app/src/main/res/mipmap-hdpi/ic_dashboard_home.png b/app/src/main/res/mipmap-hdpi/ic_dashboard_home.png new file mode 100644 index 0000000..841a7b4 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_dashboard_home.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/res/mipmap-mdpi/ic_dashboard_home.png ---------------------------------------------------------------------- diff --git a/app/src/main/res/mipmap-mdpi/ic_dashboard_home.png b/app/src/main/res/mipmap-mdpi/ic_dashboard_home.png new file mode 100644 index 0000000..373ae1f Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_dashboard_home.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/res/mipmap-xhdpi/ic_dashboard_home.png ---------------------------------------------------------------------- diff --git a/app/src/main/res/mipmap-xhdpi/ic_dashboard_home.png b/app/src/main/res/mipmap-xhdpi/ic_dashboard_home.png new file mode 100644 index 0000000..d41aa64 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_dashboard_home.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/res/mipmap-xxhdpi/ic_dashboard_home.png ---------------------------------------------------------------------- diff --git a/app/src/main/res/mipmap-xxhdpi/ic_dashboard_home.png b/app/src/main/res/mipmap-xxhdpi/ic_dashboard_home.png new file mode 100644 index 0000000..f197418 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_dashboard_home.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/res/mipmap-xxxhdpi/ic_dashboard_home.png ---------------------------------------------------------------------- diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_dashboard_home.png b/app/src/main/res/mipmap-xxxhdpi/ic_dashboard_home.png new file mode 100644 index 0000000..08e4ec6 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_dashboard_home.png differ http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/res/values/strings_activity_settings.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/values/strings_activity_settings.xml b/app/src/main/res/values/strings_activity_settings.xml new file mode 100644 index 0000000..9469b98 --- /dev/null +++ b/app/src/main/res/values/strings_activity_settings.xml @@ -0,0 +1,22 @@ +<resources> + <string name="title_activity_settings">Settings</string> + + <!-- Strings related to Settings --> + + <!-- Example General settings --> + <string name="pref_header_general">General</string> + + <!-- Login status info--> + <string name="pref_remainLogged_in">Remain Logged-in</string> + <string name="pref_login_description">Decide whether or not to be automatically logged-in when next the app starts</string> + <!-- Player Portal url info --> + <string name="pref_player_default"> http://heater.cs.man.ac.uk:3000/</string> <!-- default value --> + <string name="pref_player_title">Configure Taverna player portal</string> + <string name="pref_player_des">Configure a different player URL for the app to use. End with the mount point(/)</string> + + <!-- Server Portal url info --> + <string name="pref_server_default"> http://heater.cs.man.ac.uk:8090/taverna-2.5.4/</string> <!-- default value --> + <string name="pref_server_title">Configure Taverna Server </string> + <string name="pref_server_des">Configure a different Taverna Server for the app</string> + +</resources> http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/res/xml/pref_general.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/xml/pref_general.xml b/app/src/main/res/xml/pref_general.xml new file mode 100644 index 0000000..cfa5985 --- /dev/null +++ b/app/src/main/res/xml/pref_general.xml @@ -0,0 +1,33 @@ +<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> + + <CheckBoxPreference + android:key="pref_logged_in" + android:title="@string/pref_remainLogged_in" + android:summary="@string/pref_login_description" + android:defaultValue="true" /> + + <!-- NOTE: EditTextPreference accepts EditText attributes. --> + <!-- NOTE: EditTextPreference's summary should be set to its value by the activity code. --> + <EditTextPreference + android:key="pref_player_url" + android:title="@string/pref_player_title" + android:summary="@string/pref_player_des" + android:defaultValue="@string/pref_player_default" + android:selectAllOnFocus="true" + android:inputType="textCapWords" + android:capitalize="words" + android:singleLine="true" + android:maxLines="1" /> + <EditTextPreference + android:key="pref_server_url" + android:title="@string/pref_server_title" + android:summary="@string/pref_server_des" + android:defaultValue="@string/pref_server_default" + android:selectAllOnFocus="true" + android:inputType="textCapWords" + android:capitalize="words" + android:singleLine="true" + android:maxLines="1" /> + + +</PreferenceScreen> http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/1fcf1fe6/app/src/main/res/xml/pref_headers.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/xml/pref_headers.xml b/app/src/main/res/xml/pref_headers.xml new file mode 100644 index 0000000..e50e89f --- /dev/null +++ b/app/src/main/res/xml/pref_headers.xml @@ -0,0 +1,9 @@ +<preference-headers xmlns:android="http://schemas.android.com/apk/res/android"> + + <!-- These settings headers are only used on tablets. --> + + <header + android:fragment="org.apache.taverna.mobile.activities.SettingsActivity$GeneralPreferenceFragment" + android:title="@string/pref_header_general" /> + +</preference-headers>