diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt
index c816d78be..f19ecd74a 100644
--- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt
+++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragment.kt
@@ -8,7 +8,6 @@ import androidx.core.os.bundleOf
import androidx.fragment.app.Fragment
import io.reactivex.rxjava3.disposables.CompositeDisposable
import org.schabi.newpipe.R
-import org.schabi.newpipe.about.LicenseFragmentHelper.showLicense
import org.schabi.newpipe.databinding.FragmentLicensesBinding
import org.schabi.newpipe.databinding.ItemSoftwareComponentBinding
diff --git a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt
index 3acb50cb9..34dfe8fb4 100644
--- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt
+++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt
@@ -14,30 +14,29 @@ import org.schabi.newpipe.util.ThemeHelper
import org.schabi.newpipe.util.external_communication.ShareUtils
import java.io.IOException
-object LicenseFragmentHelper {
- /**
- * @param context the context to use
- * @param license the license
- * @return String which contains a HTML formatted license page
- * styled according to the context's theme
- */
- private fun getFormattedLicense(context: Context, license: License): String {
- try {
- return context.assets.open(license.filename).bufferedReader().use { it.readText() }
- // split the HTML file and insert the stylesheet into the HEAD of the file
- .replace("", "")
- } catch (e: IOException) {
- throw IllegalArgumentException("Could not get license file: ${license.filename}", e)
- }
+/**
+ * @param context the context to use
+ * @param license the license
+ * @return String which contains a HTML formatted license page
+ * styled according to the context's theme
+ */
+private fun getFormattedLicense(context: Context, license: License): String {
+ try {
+ return context.assets.open(license.filename).bufferedReader().use { it.readText() }
+ // split the HTML file and insert the stylesheet into the HEAD of the file
+ .replace("", "")
+ } catch (e: IOException) {
+ throw IllegalArgumentException("Could not get license file: ${license.filename}", e)
}
+}
- /**
- * @param context the Android context
- * @return String which is a CSS stylesheet according to the context's theme
- */
- private fun getLicenseStylesheet(context: Context): String {
- val isLightTheme = ThemeHelper.isLightThemeSelected(context)
- return (
+/**
+ * @param context the Android context
+ * @return String which is a CSS stylesheet according to the context's theme
+ */
+private fun getLicenseStylesheet(context: Context): String {
+ val isLightTheme = ThemeHelper.isLightThemeSelected(context)
+ return (
"body{padding:12px 15px;margin:0;" + "background:#" + getHexRGBColor(
context,
if (isLightTheme) R.color.light_license_background_color
@@ -52,62 +51,62 @@ object LicenseFragmentHelper {
else 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
- */
- private fun getHexRGBColor(context: Context, color: Int): String {
- return context.getString(color).substring(3)
- }
+/**
+ * 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
+ */
+private fun getHexRGBColor(context: Context, color: Int): String {
+ return context.getString(color).substring(3)
+}
- fun showLicense(context: Context?, license: License): Disposable {
- return showLicense(context, license) { alertDialog ->
- alertDialog.setPositiveButton(R.string.ok) { dialog, _ ->
- dialog.dismiss()
- }
- }
- }
-
- fun showLicense(context: Context?, component: SoftwareComponent): Disposable {
- return showLicense(context, component.license) { alertDialog ->
- alertDialog.setPositiveButton(R.string.dismiss) { dialog, _ ->
- dialog.dismiss()
- }
- alertDialog.setNeutralButton(R.string.open_website_license) { _, _ ->
- ShareUtils.openUrlInBrowser(context!!, component.link)
- }
- }
- }
-
- private fun showLicense(
- context: Context?,
- license: License,
- block: (AlertDialog.Builder) -> Unit
- ): Disposable {
- return if (context == null) {
- Disposable.empty()
- } else {
- Observable.fromCallable { getFormattedLicense(context, license) }
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe { formattedLicense ->
- val webViewData = Base64.encodeToString(formattedLicense.toByteArray(), Base64.NO_PADDING)
- val webView = WebView(context)
- webView.loadData(webViewData, "text/html; charset=UTF-8", "base64")
-
- AlertDialog.Builder(context).apply {
- setTitle(license.name)
- setView(webView)
- Localization.assureCorrectAppLanguage(context)
- block(this)
- show()
- }
- }
+fun showLicense(context: Context?, license: License): Disposable {
+ return showLicense(context, license) { alertDialog ->
+ alertDialog.setPositiveButton(R.string.ok) { dialog, _ ->
+ dialog.dismiss()
}
}
}
+
+fun showLicense(context: Context?, component: SoftwareComponent): Disposable {
+ return showLicense(context, component.license) { alertDialog ->
+ alertDialog.setPositiveButton(R.string.dismiss) { dialog, _ ->
+ dialog.dismiss()
+ }
+ alertDialog.setNeutralButton(R.string.open_website_license) { _, _ ->
+ ShareUtils.openUrlInBrowser(context!!, component.link)
+ }
+ }
+}
+
+private fun showLicense(
+ context: Context?,
+ license: License,
+ block: (AlertDialog.Builder) -> Unit
+): Disposable {
+ return if (context == null) {
+ Disposable.empty()
+ } else {
+ Observable.fromCallable { getFormattedLicense(context, license) }
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe { formattedLicense ->
+ val webViewData =
+ Base64.encodeToString(formattedLicense.toByteArray(), Base64.NO_PADDING)
+ val webView = WebView(context)
+ webView.loadData(webViewData, "text/html; charset=UTF-8", "base64")
+
+ AlertDialog.Builder(context).apply {
+ setTitle(license.name)
+ setView(webView)
+ Localization.assureCorrectAppLanguage(context)
+ block(this)
+ show()
+ }
+ }
+ }
+}