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