From 74bda719a6224cfae1c307ce860bdafc51634e61 Mon Sep 17 00:00:00 2001
From: TobiGr
Date: Fri, 22 Sep 2017 11:07:10 +0200
Subject: [PATCH] add themes to license dialog
---
app/src/main/assets/gpl_2.html | 6 +-
app/src/main/assets/mpl2.html | 1 +
.../org/schabi/newpipe/about/License.java | 4 ++
.../schabi/newpipe/about/LicenseFragment.java | 57 ++++++++++++++++---
app/src/main/res/values/colors.xml | 8 ++-
5 files changed, 64 insertions(+), 12 deletions(-)
diff --git a/app/src/main/assets/gpl_2.html b/app/src/main/assets/gpl_2.html
index 37d578a69..0e1b8827e 100644
--- a/app/src/main/assets/gpl_2.html
+++ b/app/src/main/assets/gpl_2.html
@@ -15,9 +15,9 @@ Version 2, June 1991
-Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
diff --git a/app/src/main/assets/mpl2.html b/app/src/main/assets/mpl2.html
index 5009391a0..5e988a70c 100644
--- a/app/src/main/assets/mpl2.html
+++ b/app/src/main/assets/mpl2.html
@@ -4,6 +4,7 @@
Mozilla Public License, version 2.0
+
Mozilla Public License
Version 2.0
1. Definitions
diff --git a/app/src/main/java/org/schabi/newpipe/about/License.java b/app/src/main/java/org/schabi/newpipe/about/License.java
index 312ad5087..e51e1d0f1 100644
--- a/app/src/main/java/org/schabi/newpipe/about/License.java
+++ b/app/src/main/java/org/schabi/newpipe/about/License.java
@@ -50,6 +50,10 @@ public class License implements Parcelable {
public String getAbbreviation() {
return abbreviation;
}
+
+ public String getFilename() {
+ return filename;
+ }
@Override
public int describeContents() {
diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java
index 8b0e67d18..42e886d30 100644
--- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.java
@@ -8,17 +8,15 @@ import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v7.app.AlertDialog;
-import android.view.ContextMenu;
-import android.view.LayoutInflater;
-import android.view.MenuInflater;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ViewGroup;
+import android.view.*;
import android.webkit.WebView;
import android.widget.TextView;
import org.schabi.newpipe.R;
+import org.schabi.newpipe.util.ThemeHelper;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
@@ -58,7 +56,26 @@ public class LicenseFragment extends Fragment {
alert.setTitle(license.getName());
WebView wv = new WebView(context);
- wv.loadUrl(license.getContentUri().toString());
+ String licenseContent = "";
+ String webViewData;
+ try {
+ BufferedReader in = new BufferedReader(new InputStreamReader(context.getAssets().open(license.getFilename()), "UTF-8"));
+ String str;
+ while ((str = in.readLine()) != null) {
+ licenseContent += str;
+ }
+ in.close();
+
+ // split the HTML file and insert the stylesheet into the HEAD of the file
+ String[] insert = licenseContent.split("");
+ webViewData = insert[0] + ""
+ + insert[1];
+ } catch (Exception e) {
+ throw new NullPointerException("could not get license file:" + getLicenseStylesheet(context));
+ }
+ wv.loadData(webViewData, "text/html", "utf-8");
+
alert.setView(wv);
alert.setNegativeButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
@@ -69,6 +86,32 @@ public class LicenseFragment extends Fragment {
alert.show();
}
+ public static String getLicenseStylesheet(Context context) {
+ return "body{padding:12px 15px;margin:0;background:#"
+ + getHexRGBColor(context,(ThemeHelper.isLightThemeSelected(context))
+ ? R.color.light_license_background_color
+ : R.color.dark_license_background_color)
+ + ";color:#"
+ + getHexRGBColor(context,(ThemeHelper.isLightThemeSelected(context))
+ ? R.color.light_license_text_color
+ : R.color.dark_license_text_color) + ";}"
+ + "a[href]{color:#"
+ + getHexRGBColor(context,(ThemeHelper.isLightThemeSelected(context))
+ ? R.color.light_youtube_primary_color
+ : R.color.dark_youtube_primary_color) + ";}"
+ + "pre{white-space: pre-wrap;}";
+ }
+
+ /**
+ * Cast R.color to a hexadecimal color value
+ * @param context the context to use
+ * @param color the color number from R.color
+ * @return a six characters long String with hexadecimal RGB values
+ */
+ public static String getHexRGBColor(Context context, int color) {
+ return context.getResources().getString(color).substring(3);
+ }
+
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 9f8a41bc5..3008f68ee 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -10,6 +10,8 @@
#48868686
#1fa6a6a6
#5a000000
+ #ffffff
+ #212121
#222222
@@ -20,6 +22,8 @@
#48ffffff
#1f717171
#82000000
+ #424242
+ #ffffff
#000
@@ -37,8 +41,8 @@
#e53935
#fff
- #d6d6d6d
- #717171d
+ #d6d6d6
+ #717171
#607D8B