First version of licence viewer
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/b05192ba Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/b05192ba Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/b05192ba Branch: refs/heads/master Commit: b05192ba70c9d668abe2f2a42a3a62643990b4f6 Parents: a3ef86f Author: Ian Dunlop <ian.dun...@manchester.ac.uk> Authored: Tue Oct 11 15:53:44 2016 +0100 Committer: Ian Dunlop <ian.dun...@manchester.ac.uk> Committed: Tue Oct 11 15:53:44 2016 +0100 ---------------------------------------------------------------------- .../activities/DashboardMainActivity.java | 21 ++++++++++- .../mobile/ui/licences/LicenceFragment.java | 38 ++++---------------- .../ui/licences/LicenceRecyclerViewAdapter.java | 18 ++++------ .../ui/licences/licence/LicenceContent.java | 17 ++------- .../main/res/layout/fragment_licence_list.xml | 2 +- app/src/main/res/menu/drawer_view.xml | 4 +++ app/src/main/res/values/strings.xml | 1 + 7 files changed, 42 insertions(+), 59 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b05192ba/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 511ab2c..3d88865 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 @@ -55,14 +55,16 @@ import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.local.PreferencesHelper; import org.apache.taverna.mobile.ui.anouncements.AnnouncementFragment; import org.apache.taverna.mobile.ui.favouriteworkflow.FavouriteWorkflowsFragment; +import org.apache.taverna.mobile.ui.licences.licence.LicenceContent; import org.apache.taverna.mobile.ui.myworkflows.MyWorkflowFragment; +import org.apache.taverna.mobile.ui.licences.LicenceFragment; import org.apache.taverna.mobile.ui.workflow.WorkflowFragment; import org.apache.taverna.mobile.utils.ActivityUtils; import org.apache.taverna.mobile.utils.WorkflowOpen; import java.io.File; -public class DashboardMainActivity extends AppCompatActivity { +public class DashboardMainActivity extends AppCompatActivity implements LicenceFragment.OnListFragmentInteractionListener { public static final String APP_DIRECTORY_NAME = "TavernaMobile"; private final int SELECT_WORKFLOW = 10; @@ -226,6 +228,19 @@ public class DashboardMainActivity extends AppCompatActivity { mDrawerLayout.closeDrawers(); return true; + case R.id.os_licences: + + fragment = new LicenceFragment(); + ActivityUtils + .addFragmentToActivity( + getSupportFragmentManager(), + fragment, + R.id.frame_container); + + menuItem.setChecked(true); + mDrawerLayout.closeDrawers(); + return true; + case R.id.nav_settings: startActivity(new Intent(getApplicationContext(), @@ -372,4 +387,8 @@ public class DashboardMainActivity extends AppCompatActivity { return super.onOptionsItemSelected(item); } + @Override + public void onListFragmentInteraction(LicenceContent.LicenceItem item) { + + } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b05192ba/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceFragment.java index f97be38..ae68460 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceFragment.java @@ -3,30 +3,23 @@ package org.apache.taverna.mobile.ui.licences; import android.content.Context; import android.os.Bundle; import android.support.v4.app.Fragment; -import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import mobile.taverna.apache.org.tavernamobile.R; - -import org.apache.taverna.mobile.ui.licences.dummy.DummyContent; -import org.apache.taverna.mobile.ui.licences.dummy.DummyContent.DummyItem; +import org.apache.taverna.mobile.R; +import org.apache.taverna.mobile.ui.licences.licence.LicenceContent; /** - * A fragment representing a list of Items. + * A fragment representing a list of Licence Items. * <p/> * Activities containing this fragment MUST implement the {@link OnListFragmentInteractionListener} * interface. */ public class LicenceFragment extends Fragment { - // TODO: Customize parameter argument names - private static final String ARG_COLUMN_COUNT = "column-count"; - // TODO: Customize parameters - private int mColumnCount = 1; private OnListFragmentInteractionListener mListener; /** @@ -36,23 +29,9 @@ public class LicenceFragment extends Fragment { public LicenceFragment() { } - // TODO: Customize parameter initialization - @SuppressWarnings("unused") - public static LicenceFragment newInstance(int columnCount) { - LicenceFragment fragment = new LicenceFragment(); - Bundle args = new Bundle(); - args.putInt(ARG_COLUMN_COUNT, columnCount); - fragment.setArguments(args); - return fragment; - } - @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - - if (getArguments() != null) { - mColumnCount = getArguments().getInt(ARG_COLUMN_COUNT); - } } @Override @@ -64,12 +43,8 @@ public class LicenceFragment extends Fragment { if (view instanceof RecyclerView) { Context context = view.getContext(); RecyclerView recyclerView = (RecyclerView) view; - if (mColumnCount <= 1) { - recyclerView.setLayoutManager(new LinearLayoutManager(context)); - } else { - recyclerView.setLayoutManager(new GridLayoutManager(context, mColumnCount)); - } - recyclerView.setAdapter(new MyLicenceRecyclerViewAdapter(DummyContent.ITEMS, mListener)); + recyclerView.setLayoutManager(new LinearLayoutManager(context)); + recyclerView.setAdapter(new LicenceRecyclerViewAdapter(LicenceContent.ITEMS, mListener)); } return view; } @@ -103,7 +78,6 @@ public class LicenceFragment extends Fragment { * >Communicating with Other Fragments</a> for more information. */ public interface OnListFragmentInteractionListener { - // TODO: Update argument type and name - void onListFragmentInteraction(DummyItem item); + void onListFragmentInteraction(LicenceContent.LicenceItem item); } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b05192ba/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceRecyclerViewAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceRecyclerViewAdapter.java b/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceRecyclerViewAdapter.java index 85ff0b5..e3b66d3 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceRecyclerViewAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/licences/LicenceRecyclerViewAdapter.java @@ -8,21 +8,20 @@ import android.widget.TextView; import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.ui.licences.LicenceFragment.OnListFragmentInteractionListener; -import org.apache.taverna.mobile.ui.licences.licence.LicenceContent.DummyItem; +import org.apache.taverna.mobile.ui.licences.licence.LicenceContent.LicenceItem; import java.util.List; /** - * {@link RecyclerView.Adapter} that can display a {@link DummyItem} and makes a call to the + * {@link RecyclerView.Adapter} that can display a {@link LicenceItem} and makes a call to the * specified {@link OnListFragmentInteractionListener}. - * TODO: Replace the implementation with code for your data type. */ public class LicenceRecyclerViewAdapter extends RecyclerView.Adapter<LicenceRecyclerViewAdapter.ViewHolder> { - private final List<DummyItem> mValues; + private final List<LicenceItem> mValues; private final OnListFragmentInteractionListener mListener; - public LicenceRecyclerViewAdapter(List<DummyItem> items, OnListFragmentInteractionListener listener) { + public LicenceRecyclerViewAdapter(List<LicenceItem> items, OnListFragmentInteractionListener listener) { mValues = items; mListener = listener; } @@ -30,15 +29,14 @@ public class LicenceRecyclerViewAdapter extends RecyclerView.Adapter<LicenceRecy @Override public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.fragment_item, parent, false); + .inflate(R.layout.fragment_licence, parent, false); return new ViewHolder(view); } @Override public void onBindViewHolder(final ViewHolder holder, int position) { holder.mItem = mValues.get(position); - holder.mIdView.setText(mValues.get(position).id); - holder.mContentView.setText(mValues.get(position).content); + holder.mContentView.setText(mValues.get(position).toString()); holder.mView.setOnClickListener(new View.OnClickListener() { @Override @@ -59,14 +57,12 @@ public class LicenceRecyclerViewAdapter extends RecyclerView.Adapter<LicenceRecy public class ViewHolder extends RecyclerView.ViewHolder { public final View mView; - public final TextView mIdView; public final TextView mContentView; - public DummyItem mItem; + public LicenceItem mItem; public ViewHolder(View view) { super(view); mView = view; - mIdView = (TextView) view.findViewById(R.id.id); mContentView = (TextView) view.findViewById(R.id.content); } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b05192ba/app/src/main/java/org/apache/taverna/mobile/ui/licences/licence/LicenceContent.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/licences/licence/LicenceContent.java b/app/src/main/java/org/apache/taverna/mobile/ui/licences/licence/LicenceContent.java index 3b403ff..e5131c4 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/licences/licence/LicenceContent.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/licences/licence/LicenceContent.java @@ -10,26 +10,16 @@ import java.util.List; import java.util.Map; /** - * Helper class for providing sample content for user interfaces created by - * Android template wizards. - * <p> - * TODO: Replace all uses of this class before publishing your app. + * Create licence items from JSON string and add to list */ public class LicenceContent { /** - * An array of sample (dummy) items. + * An array of licence items. */ public static final List<LicenceItem> ITEMS = new ArrayList<LicenceItem>(); private static String licence_json = "[{'library': 'dropbox-android-sdk','version': '1.6.3'}, {'library': 'json_simple','version': '1.1'}, {'libary': 'sjxp','version': '2.2'}, {'library': 'com.android.support:appcompat','version': 'v7:23.3.0'}, {'library': 'com.android.support:cardview','version': 'v7:23.3.0'}, {'library': 'com.android.support:recyclerview','version': 'v7:23.3.0'}, {'library': 'com.android.support:support','version': 'v4:23.3.0'}, {'library': 'com.android.support:design','version': ':23.3.0'}, {'library': 'com.squareup.retrofit2:retrofit','version': '2.0.2'}, {'library': 'com.squareup.retrofit2:adapter-rxjava', 'version': '2.0.2'}, { 'library': 'com.squareup.okhttp3:logging-interceptor', 'version': '3.2.0'}, { 'library': 'com.squareup.retrofit2:converter-simplexml', 'version': '2.0.2'}, { 'library': 'com.jakewharton:butterknife', 'version': '8.0.1'}, { 'library': 'com.jakewharton:butterknife-compiler', 'version': '8.0.1'}, {'library': 'io.reactivex:rxandroid', 'version': '1.2.0'}, {'library': 'io.reactivex:rxjava', 'version': '1.1.4'}, {'library': 'org.simpleframework:simple-xml', 'version': '2.7. +'}, { 'library': 'com.github.bumptech.glide:glide', 'version': '3.6.0'}, { 'libray': 'com.caverock:androidsvg', 'version': '1.2.1'}, { 'library': 'com.github.Raizlabs.DBFlow:dbflow-processor', 'version': '3.0.1'}, { 'library': 'com.github.Raizlabs.DBFlow:dbflow-core', 'version': '3.0.1'}, { 'library': 'com.github.Raizlabs.DBFlow:dbflow', 'version': '3.0.1'}, { 'library': 'com.facebook.stetho:stetho', 'version': '1.3.1'}, { 'library': 'com.facebook.stetho:stetho-okhttp', 'version': '3: 1.3.1'}, { 'library': 'com.github.chrisbanes:PhotoView', 'version': '1.2.6'}, { 'library': 'com.androidsupport:multidex','version': '1.0.0'}, {'library': 'com.google.code.gson:gson','version': '2.7'}, {'library': 'com.squareup.retrofit2:converter-gson','version': '2.0.2'}, {'library': 'com.anton46:stepsview','version': '0.0.2'}]"; - /** - * A map of sample (dummy) items, by ID. - */ - public static final Map<String, LicenceItem> ITEM_MAP = new HashMap<String, LicenceItem>(); - - private static final int COUNT = 25; - static { JSONArray licenceList = null; try { @@ -51,7 +41,6 @@ public class LicenceContent { private static void addItem(LicenceItem item) { ITEMS.add(item); - ITEM_MAP.put(item.id, item); } private static LicenceItem createLicenceItem(int position, String name, String version) { @@ -59,7 +48,7 @@ public class LicenceContent { } /** - * A dummy item representing a piece of content. + * A licence item containing info about a library used by the app. */ public static class LicenceItem { public final String id; http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b05192ba/app/src/main/res/layout/fragment_licence_list.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/layout/fragment_licence_list.xml b/app/src/main/res/layout/fragment_licence_list.xml index 350829d..97a6935 100644 --- a/app/src/main/res/layout/fragment_licence_list.xml +++ b/app/src/main/res/layout/fragment_licence_list.xml @@ -9,5 +9,5 @@ android:layout_marginLeft="16dp" android:layout_marginRight="16dp" app:layoutManager="LinearLayoutManager" - tools:context="org.apache.taverna.mobile.ui.org.apache.taverna.mobile.ui.licences.LicenceFragment" + tools:context=".ui.licences.LicenceFragment" tools:listitem="@layout/fragment_licence" /> http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b05192ba/app/src/main/res/menu/drawer_view.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/menu/drawer_view.xml b/app/src/main/res/menu/drawer_view.xml index 93337df..9cd5a26 100644 --- a/app/src/main/res/menu/drawer_view.xml +++ b/app/src/main/res/menu/drawer_view.xml @@ -48,6 +48,10 @@ android:icon="@drawable/ic_about_web" android:title="About"/> <item + android:id="@+id/os_licences" + android:icon="@drawable/ic_about_web" + android:title="@string/os_licences"/> + <item android:id="@+id/nav_settings" android:icon="@drawable/ic_setting_workflows_web" android:title="Settings"/> http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/b05192ba/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 8e531ae..d58fe29 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -13,6 +13,7 @@ See the License for the specific language governing permissions and limitations under the License. --> <resources> + <string name="os_licences">Licence info</string> <string name="app_name">Taverna Mobile</string> <string name="hello_world">Empty</string> <string name="action_settings">Settings</string>