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..6e3aa4be8 100644
--- a/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt
+++ b/app/src/main/java/org/schabi/newpipe/about/LicenseFragmentHelper.kt
@@ -14,100 +14,90 @@ 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("</head>", "<style>${getLicenseStylesheet(context)}</style></head>")
-        } 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("</head>", "<style>${getLicenseStylesheet(context)}</style></head>")
+    } 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)
+    val licenseBackgroundColor = getHexRGBColor(
+        context, if (isLightTheme) R.color.light_license_background_color else R.color.dark_license_background_color
+    )
+    val licenseTextColor = getHexRGBColor(
+        context, if (isLightTheme) R.color.light_license_text_color else R.color.dark_license_text_color
+    )
+    val youtubePrimaryColor = getHexRGBColor(
+        context, if (isLightTheme) R.color.light_youtube_primary_color else R.color.dark_youtube_primary_color
+    )
+    return "body{padding:12px 15px;margin:0;background:#$licenseBackgroundColor;color:#$licenseTextColor}" +
+        "a[href]{color:#$youtubePrimaryColor}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)
+}
+
+fun showLicense(context: Context?, component: SoftwareComponent): Disposable {
+    return showLicense(context, component.license) {
+        setPositiveButton(R.string.dismiss) { dialog, _ ->
+            dialog.dismiss()
         }
-    }
-
-    /**
-     * @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
-                else R.color.dark_license_background_color
-            ) + ";" + "color:#" + getHexRGBColor(
-                context,
-                if (isLightTheme) R.color.light_license_text_color
-                else R.color.dark_license_text_color
-            ) + "}" + "a[href]{color:#" + getHexRGBColor(
-                context,
-                if (isLightTheme) R.color.light_youtube_primary_color
-                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)
-    }
-
-    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()
-                    }
-                }
+        setNeutralButton(R.string.open_website_license) { _, _ ->
+            ShareUtils.openUrlInBrowser(context!!, component.link)
         }
     }
 }
+
+fun showLicense(context: Context?, license: License) = showLicense(context, license) {
+    setPositiveButton(R.string.ok) { dialog, _ -> dialog.dismiss() }
+}
+
+private fun showLicense(
+    context: Context?,
+    license: License,
+    block: AlertDialog.Builder.() -> AlertDialog.Builder
+): 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")
+
+                Localization.assureCorrectAppLanguage(context)
+                AlertDialog.Builder(context)
+                    .setTitle(license.name)
+                    .setView(webView)
+                    .block()
+                    .show()
+            }
+    }
+}