From de1cc566a1c9525696ff74de03b349d5bce14d26 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 1 May 2017 20:57:12 +0200 Subject: [PATCH] show license in the links section This makes the license a link to the spdx.org page for the app's license. I think this is an improvement over the way the license was displayed before 0.103 since it provides a direct link to the actual text of the license. The license icon is a modified version of the public domain icon: https://commons.wikimedia.org/wiki/File:Cc-sa_white.svg closes #960 --- .../main/java/org/fdroid/fdroid/data/App.java | 2 +- .../views/AppDetailsRecyclerViewAdapter.java | 20 ++++++++++++++++++- app/src/main/res/drawable/ic_license.xml | 16 +++++++++++++++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/ic_license.xml diff --git a/app/src/main/java/org/fdroid/fdroid/data/App.java b/app/src/main/java/org/fdroid/fdroid/data/App.java index f7d04b79a..d1c972c6d 100644 --- a/app/src/main/java/org/fdroid/fdroid/data/App.java +++ b/app/src/main/java/org/fdroid/fdroid/data/App.java @@ -126,7 +126,7 @@ public class App extends ValueObject implements Comparable, Parcelable { public String[] tvScreenshots = new String[0]; public String[] wearScreenshots = new String[0]; - public String license = "Unknown"; + public String license; public String authorName; public String authorEmail; diff --git a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java index 05c4f5624..8f96e178d 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/AppDetailsRecyclerViewAdapter.java @@ -744,6 +744,15 @@ public class AppDetailsRecyclerViewAdapter updateExpandableItem(false); contentView.removeAllViews(); + // License link + if (!TextUtils.isEmpty(app.license)) { + String firstLicense = app.license.split(",")[0]; + String url = "https://spdx.org/licenses/" + firstLicense + ".html"; + if (uriIsSetAndCanBeOpened(url)) { + addLinkItemView(contentView, R.string.menu_license, R.drawable.ic_license, url, app.license); + } + } + // Video link if (uriIsSetAndCanBeOpened(app.video)) { addLinkItemView(contentView, R.string.menu_video, R.drawable.ic_video, app.video); @@ -902,8 +911,17 @@ public class AppDetailsRecyclerViewAdapter } private void addLinkItemView(ViewGroup parent, int resIdText, int resIdDrawable, final String url) { + addLinkItemView(parent, resIdText, resIdDrawable, url, null); + } + + private void addLinkItemView(ViewGroup parent, int resIdText, int resIdDrawable, final String url, String formatArg) { TextView view = (TextView) LayoutInflater.from(parent.getContext()).inflate(R.layout.app_details2_link_item, parent, false); - view.setText(resIdText); + if (formatArg == null) { + view.setText(resIdText); + } else { + String text = parent.getContext().getString(resIdText, formatArg); + view.setText(text); + } TextViewCompat.setCompoundDrawablesRelativeWithIntrinsicBounds(view, resIdDrawable, 0, 0, 0); parent.addView(view); view.setOnClickListener(new View.OnClickListener() { diff --git a/app/src/main/res/drawable/ic_license.xml b/app/src/main/res/drawable/ic_license.xml new file mode 100644 index 000000000..389c86c90 --- /dev/null +++ b/app/src/main/res/drawable/ic_license.xml @@ -0,0 +1,16 @@ + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 80b8f9f07..bb58f8c7c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -161,6 +161,7 @@ Issues Changelog Video + License: %s Source Code Upgrade Donate