mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 23:40:33 +05:30
Merge pull request #681 from Bnyro/master
New play/pause btns, improve about fragment, code cleanup
This commit is contained in:
commit
8ff4dc2897
@ -13,7 +13,6 @@ import android.os.Bundle
|
|||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.util.TypedValue
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowInsets
|
import android.view.WindowInsets
|
||||||
import android.view.WindowInsetsController
|
import android.view.WindowInsetsController
|
||||||
@ -24,7 +23,6 @@ import androidx.appcompat.app.AppCompatActivity
|
|||||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout
|
import androidx.constraintlayout.widget.ConstraintLayout
|
||||||
import androidx.core.os.bundleOf
|
import androidx.core.os.bundleOf
|
||||||
import androidx.core.text.HtmlCompat
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
@ -124,14 +122,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
val typedValue = TypedValue()
|
binding.toolbar.title = ThemeHelper.getStyledAppName(this)
|
||||||
this.theme.resolveAttribute(R.attr.colorPrimary, typedValue, true)
|
|
||||||
val hexColor = String.format("#%06X", (0xFFFFFF and typedValue.data))
|
|
||||||
val appName = HtmlCompat.fromHtml(
|
|
||||||
"Libre<span style='color:$hexColor';>Tube</span>",
|
|
||||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
|
||||||
)
|
|
||||||
binding.toolbar.title = appName
|
|
||||||
|
|
||||||
binding.toolbar.setNavigationOnClickListener {
|
binding.toolbar.setNavigationOnClickListener {
|
||||||
// settings activity stuff
|
// settings activity stuff
|
||||||
|
@ -3,10 +3,8 @@ package com.github.libretube.dialogs
|
|||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.util.TypedValue
|
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.text.HtmlCompat
|
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
@ -15,6 +13,7 @@ import com.github.libretube.databinding.DialogAddtoplaylistBinding
|
|||||||
import com.github.libretube.obj.PlaylistId
|
import com.github.libretube.obj.PlaylistId
|
||||||
import com.github.libretube.preferences.PreferenceHelper
|
import com.github.libretube.preferences.PreferenceHelper
|
||||||
import com.github.libretube.util.RetrofitInstance
|
import com.github.libretube.util.RetrofitInstance
|
||||||
|
import com.github.libretube.util.ThemeHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import retrofit2.HttpException
|
import retrofit2.HttpException
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@ -37,14 +36,7 @@ class AddtoPlaylistDialog : DialogFragment() {
|
|||||||
|
|
||||||
if (token != "") fetchPlaylists()
|
if (token != "") fetchPlaylists()
|
||||||
|
|
||||||
val typedValue = TypedValue()
|
binding.title.text = ThemeHelper.getStyledAppName(requireContext())
|
||||||
this.requireActivity().theme.resolveAttribute(R.attr.colorPrimaryDark, typedValue, true)
|
|
||||||
val hexColor = String.format("#%06X", (0xFFFFFF and typedValue.data))
|
|
||||||
val appName = HtmlCompat.fromHtml(
|
|
||||||
"Libre<span style='color:$hexColor';>Tube</span>",
|
|
||||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
|
||||||
)
|
|
||||||
binding.title.text = appName
|
|
||||||
|
|
||||||
builder.setView(binding.root)
|
builder.setView(binding.root)
|
||||||
builder.create()
|
builder.create()
|
||||||
|
@ -3,9 +3,7 @@ package com.github.libretube.dialogs
|
|||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.util.TypedValue
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.text.HtmlCompat
|
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
@ -14,6 +12,7 @@ import com.github.libretube.fragments.LibraryFragment
|
|||||||
import com.github.libretube.obj.Playlists
|
import com.github.libretube.obj.Playlists
|
||||||
import com.github.libretube.preferences.PreferenceHelper
|
import com.github.libretube.preferences.PreferenceHelper
|
||||||
import com.github.libretube.util.RetrofitInstance
|
import com.github.libretube.util.RetrofitInstance
|
||||||
|
import com.github.libretube.util.ThemeHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import retrofit2.HttpException
|
import retrofit2.HttpException
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@ -28,14 +27,7 @@ class CreatePlaylistDialog : DialogFragment() {
|
|||||||
val builder = MaterialAlertDialogBuilder(it)
|
val builder = MaterialAlertDialogBuilder(it)
|
||||||
binding = DialogCreatePlaylistBinding.inflate(layoutInflater)
|
binding = DialogCreatePlaylistBinding.inflate(layoutInflater)
|
||||||
|
|
||||||
val typedValue = TypedValue()
|
binding.title.text = ThemeHelper.getStyledAppName(requireContext())
|
||||||
this.requireActivity().theme.resolveAttribute(R.attr.colorPrimaryDark, typedValue, true)
|
|
||||||
val hexColor = String.format("#%06X", (0xFFFFFF and typedValue.data))
|
|
||||||
val appName = HtmlCompat.fromHtml(
|
|
||||||
"Libre<span style='color:$hexColor';>Tube</span>",
|
|
||||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
|
||||||
)
|
|
||||||
binding.title.text = appName
|
|
||||||
|
|
||||||
binding.cancelButton.setOnClickListener {
|
binding.cancelButton.setOnClickListener {
|
||||||
dismiss()
|
dismiss()
|
||||||
|
@ -2,14 +2,13 @@ package com.github.libretube.dialogs
|
|||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.TypedValue
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.text.HtmlCompat
|
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
import com.github.libretube.databinding.DialogCustomInstanceBinding
|
import com.github.libretube.databinding.DialogCustomInstanceBinding
|
||||||
import com.github.libretube.obj.CustomInstance
|
import com.github.libretube.obj.CustomInstance
|
||||||
import com.github.libretube.preferences.PreferenceHelper
|
import com.github.libretube.preferences.PreferenceHelper
|
||||||
|
import com.github.libretube.util.ThemeHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
|
|
||||||
@ -63,14 +62,7 @@ class CustomInstanceDialog : DialogFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val typedValue = TypedValue()
|
binding.title.text = ThemeHelper.getStyledAppName(requireContext())
|
||||||
this.requireActivity().theme.resolveAttribute(R.attr.colorPrimaryDark, typedValue, true)
|
|
||||||
val hexColor = String.format("#%06X", (0xFFFFFF and typedValue.data))
|
|
||||||
val appName = HtmlCompat.fromHtml(
|
|
||||||
"Libre<span style='color:$hexColor';>Tube</span>",
|
|
||||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
|
||||||
)
|
|
||||||
binding.title.text = appName
|
|
||||||
|
|
||||||
builder.setView(binding.root)
|
builder.setView(binding.root)
|
||||||
builder.create()
|
builder.create()
|
||||||
|
@ -3,9 +3,7 @@ package com.github.libretube.dialogs
|
|||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.util.TypedValue
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.text.HtmlCompat
|
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
@ -14,6 +12,7 @@ import com.github.libretube.databinding.DialogDeleteAccountBinding
|
|||||||
import com.github.libretube.obj.DeleteUserRequest
|
import com.github.libretube.obj.DeleteUserRequest
|
||||||
import com.github.libretube.preferences.PreferenceHelper
|
import com.github.libretube.preferences.PreferenceHelper
|
||||||
import com.github.libretube.util.RetrofitInstance
|
import com.github.libretube.util.RetrofitInstance
|
||||||
|
import com.github.libretube.util.ThemeHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
class DeleteAccountDialog : DialogFragment() {
|
class DeleteAccountDialog : DialogFragment() {
|
||||||
@ -37,14 +36,7 @@ class DeleteAccountDialog : DialogFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val typedValue = TypedValue()
|
binding.title.text = ThemeHelper.getStyledAppName(requireContext())
|
||||||
this.requireActivity().theme.resolveAttribute(R.attr.colorPrimaryDark, typedValue, true)
|
|
||||||
val hexColor = String.format("#%06X", (0xFFFFFF and typedValue.data))
|
|
||||||
val appName = HtmlCompat.fromHtml(
|
|
||||||
"Libre<span style='color:$hexColor';>Tube</span>",
|
|
||||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
|
||||||
)
|
|
||||||
binding.title.text = appName
|
|
||||||
|
|
||||||
builder.setView(binding.root)
|
builder.setView(binding.root)
|
||||||
builder.create()
|
builder.create()
|
||||||
|
@ -8,16 +8,15 @@ import android.os.Build
|
|||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Environment
|
import android.os.Environment
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.util.TypedValue
|
|
||||||
import android.widget.ArrayAdapter
|
import android.widget.ArrayAdapter
|
||||||
import androidx.core.app.ActivityCompat
|
import androidx.core.app.ActivityCompat
|
||||||
import androidx.core.text.HtmlCompat
|
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
import com.github.libretube.activities.MainActivity
|
import com.github.libretube.activities.MainActivity
|
||||||
import com.github.libretube.databinding.DialogDownloadBinding
|
import com.github.libretube.databinding.DialogDownloadBinding
|
||||||
import com.github.libretube.obj.Streams
|
import com.github.libretube.obj.Streams
|
||||||
import com.github.libretube.services.DownloadService
|
import com.github.libretube.services.DownloadService
|
||||||
|
import com.github.libretube.util.ThemeHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
class DownloadDialog : DialogFragment() {
|
class DownloadDialog : DialogFragment() {
|
||||||
@ -130,14 +129,7 @@ class DownloadDialog : DialogFragment() {
|
|||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
|
|
||||||
val typedValue = TypedValue()
|
binding.title.text = ThemeHelper.getStyledAppName(requireContext())
|
||||||
this.requireActivity().theme.resolveAttribute(R.attr.colorPrimaryDark, typedValue, true)
|
|
||||||
val hexColor = String.format("#%06X", (0xFFFFFF and typedValue.data))
|
|
||||||
val appName = HtmlCompat.fromHtml(
|
|
||||||
"Libre<span style='color:$hexColor';>Tube</span>",
|
|
||||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
|
||||||
)
|
|
||||||
binding.title.text = appName
|
|
||||||
|
|
||||||
builder.setView(binding.root)
|
builder.setView(binding.root)
|
||||||
builder.create()
|
builder.create()
|
||||||
|
@ -3,9 +3,7 @@ package com.github.libretube.dialogs
|
|||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.util.TypedValue
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.text.HtmlCompat
|
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
@ -14,6 +12,7 @@ import com.github.libretube.databinding.DialogLoginBinding
|
|||||||
import com.github.libretube.obj.Login
|
import com.github.libretube.obj.Login
|
||||||
import com.github.libretube.preferences.PreferenceHelper
|
import com.github.libretube.preferences.PreferenceHelper
|
||||||
import com.github.libretube.util.RetrofitInstance
|
import com.github.libretube.util.RetrofitInstance
|
||||||
|
import com.github.libretube.util.ThemeHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
import retrofit2.HttpException
|
import retrofit2.HttpException
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@ -52,14 +51,7 @@ class LoginDialog : DialogFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val typedValue = TypedValue()
|
binding.title.text = ThemeHelper.getStyledAppName(requireContext())
|
||||||
this.requireActivity().theme.resolveAttribute(R.attr.colorPrimaryDark, typedValue, true)
|
|
||||||
val hexColor = String.format("#%06X", (0xFFFFFF and typedValue.data))
|
|
||||||
val appName = HtmlCompat.fromHtml(
|
|
||||||
"Libre<span style='color:$hexColor';>Tube</span>",
|
|
||||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
|
||||||
)
|
|
||||||
binding.title.text = appName
|
|
||||||
|
|
||||||
builder.setView(binding.root)
|
builder.setView(binding.root)
|
||||||
builder.create()
|
builder.create()
|
||||||
|
@ -2,14 +2,13 @@ package com.github.libretube.dialogs
|
|||||||
|
|
||||||
import android.app.Dialog
|
import android.app.Dialog
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.TypedValue
|
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.core.text.HtmlCompat
|
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
import com.github.libretube.activities.requireMainActivityRestart
|
import com.github.libretube.activities.requireMainActivityRestart
|
||||||
import com.github.libretube.databinding.DialogLogoutBinding
|
import com.github.libretube.databinding.DialogLogoutBinding
|
||||||
import com.github.libretube.preferences.PreferenceHelper
|
import com.github.libretube.preferences.PreferenceHelper
|
||||||
|
import com.github.libretube.util.ThemeHelper
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
|
||||||
class LogoutDialog : DialogFragment() {
|
class LogoutDialog : DialogFragment() {
|
||||||
@ -32,14 +31,7 @@ class LogoutDialog : DialogFragment() {
|
|||||||
dialog?.dismiss()
|
dialog?.dismiss()
|
||||||
}
|
}
|
||||||
|
|
||||||
val typedValue = TypedValue()
|
binding.title.text = ThemeHelper.getStyledAppName(requireContext())
|
||||||
this.requireActivity().theme.resolveAttribute(R.attr.colorPrimaryDark, typedValue, true)
|
|
||||||
val hexColor = String.format("#%06X", (0xFFFFFF and typedValue.data))
|
|
||||||
val appName = HtmlCompat.fromHtml(
|
|
||||||
"Libre<span style='color:$hexColor';>Tube</span>",
|
|
||||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
|
||||||
)
|
|
||||||
binding.title.text = appName
|
|
||||||
|
|
||||||
builder.setView(binding.root)
|
builder.setView(binding.root)
|
||||||
builder.create()
|
builder.create()
|
||||||
|
@ -15,8 +15,10 @@ import com.github.libretube.databinding.FragmentAboutBinding
|
|||||||
import com.github.libretube.util.DONATE_URL
|
import com.github.libretube.util.DONATE_URL
|
||||||
import com.github.libretube.util.GITHUB_URL
|
import com.github.libretube.util.GITHUB_URL
|
||||||
import com.github.libretube.util.PIPED_GITHUB_URL
|
import com.github.libretube.util.PIPED_GITHUB_URL
|
||||||
|
import com.github.libretube.util.ThemeHelper.getThemeColor
|
||||||
import com.github.libretube.util.WEBSITE_URL
|
import com.github.libretube.util.WEBSITE_URL
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
import com.google.android.material.snackbar.Snackbar
|
||||||
|
|
||||||
class AboutFragment : Fragment() {
|
class AboutFragment : Fragment() {
|
||||||
private lateinit var binding: FragmentAboutBinding
|
private lateinit var binding: FragmentAboutBinding
|
||||||
@ -39,31 +41,46 @@ class AboutFragment : Fragment() {
|
|||||||
binding.website.setOnClickListener {
|
binding.website.setOnClickListener {
|
||||||
openLinkFromHref(WEBSITE_URL)
|
openLinkFromHref(WEBSITE_URL)
|
||||||
}
|
}
|
||||||
|
binding.website.setOnLongClickListener {
|
||||||
|
val text = context?.getString(R.string.website_summary)!!
|
||||||
|
showSnackBar(text)
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
binding.piped.setOnClickListener {
|
binding.piped.setOnClickListener {
|
||||||
openLinkFromHref(PIPED_GITHUB_URL)
|
openLinkFromHref(PIPED_GITHUB_URL)
|
||||||
}
|
}
|
||||||
|
binding.piped.setOnLongClickListener {
|
||||||
|
val text = context?.getString(R.string.piped_summary)!!
|
||||||
|
showSnackBar(text)
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
binding.donate.setOnClickListener {
|
binding.donate.setOnClickListener {
|
||||||
openLinkFromHref(DONATE_URL)
|
openLinkFromHref(DONATE_URL)
|
||||||
}
|
}
|
||||||
|
binding.donate.setOnLongClickListener {
|
||||||
|
val text = context?.getString(R.string.donate_summary)!!
|
||||||
|
showSnackBar(text)
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
binding.github.setOnClickListener {
|
binding.github.setOnClickListener {
|
||||||
openLinkFromHref(GITHUB_URL)
|
openLinkFromHref(GITHUB_URL)
|
||||||
}
|
}
|
||||||
binding.license.setOnClickListener {
|
binding.github.setOnLongClickListener {
|
||||||
val licenseString = view.context.assets
|
val text = context?.getString(R.string.contributing_summary)!!
|
||||||
.open("gpl3.html").bufferedReader().use {
|
showSnackBar(text)
|
||||||
it.readText()
|
true
|
||||||
}
|
}
|
||||||
val licenseHtml = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
|
||||||
Html.fromHtml(licenseString, 1)
|
|
||||||
} else {
|
|
||||||
Html.fromHtml(licenseString)
|
|
||||||
}
|
|
||||||
|
|
||||||
MaterialAlertDialogBuilder(view.context!!)
|
binding.license.setOnClickListener {
|
||||||
.setPositiveButton(getString(R.string.okay)) { _, _ -> }
|
showLicense()
|
||||||
.setMessage(licenseHtml)
|
}
|
||||||
.create()
|
binding.license.setOnLongClickListener {
|
||||||
.show()
|
val text = context?.getString(R.string.license_summary)!!
|
||||||
|
showSnackBar(text)
|
||||||
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -72,4 +89,34 @@ class AboutFragment : Fragment() {
|
|||||||
val intent = Intent(Intent.ACTION_VIEW).setData(uri)
|
val intent = Intent(Intent.ACTION_VIEW).setData(uri)
|
||||||
startActivity(intent)
|
startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun showSnackBar(text: String) {
|
||||||
|
val snackBar = Snackbar
|
||||||
|
.make(binding.root, text, Snackbar.LENGTH_LONG)
|
||||||
|
snackBar.setBackgroundTint(getThemeColor(requireContext(), R.attr.colorSurface))
|
||||||
|
snackBar.setTextColor(getThemeColor(requireContext(), R.attr.colorPrimary))
|
||||||
|
snackBar.show()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun showLicense() {
|
||||||
|
val assets = view?.context?.assets
|
||||||
|
val licenseString = assets
|
||||||
|
?.open("gpl3.html")
|
||||||
|
?.bufferedReader()
|
||||||
|
.use {
|
||||||
|
it?.readText()
|
||||||
|
}
|
||||||
|
|
||||||
|
val licenseHtml = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
Html.fromHtml(licenseString.toString(), 1)
|
||||||
|
} else {
|
||||||
|
Html.fromHtml(licenseString.toString())
|
||||||
|
}
|
||||||
|
|
||||||
|
MaterialAlertDialogBuilder(requireContext())
|
||||||
|
.setPositiveButton(getString(R.string.okay)) { _, _ -> }
|
||||||
|
.setMessage(licenseHtml)
|
||||||
|
.create()
|
||||||
|
.show()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,8 +5,11 @@ import android.content.ComponentName
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
|
import android.text.Spanned
|
||||||
|
import android.util.TypedValue
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.appcompat.app.AppCompatDelegate
|
import androidx.appcompat.app.AppCompatDelegate
|
||||||
|
import androidx.core.text.HtmlCompat
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
import com.github.libretube.preferences.PreferenceHelper
|
import com.github.libretube.preferences.PreferenceHelper
|
||||||
|
|
||||||
@ -70,4 +73,19 @@ object ThemeHelper {
|
|||||||
intent?.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK
|
intent?.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK
|
||||||
context.startActivity(intent)
|
context.startActivity(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getThemeColor(context: Context, colorCode: Int): Int {
|
||||||
|
val value = TypedValue()
|
||||||
|
context.theme.resolveAttribute(colorCode, value, true)
|
||||||
|
return value.data
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getStyledAppName(context: Context): Spanned {
|
||||||
|
val colorPrimary = getThemeColor(context, R.attr.colorPrimaryDark)
|
||||||
|
val hexColor = String.format("#%06X", (0xFFFFFF and colorPrimary))
|
||||||
|
return HtmlCompat.fromHtml(
|
||||||
|
"Libre<span style='color:$hexColor';>Tube</span>",
|
||||||
|
HtmlCompat.FROM_HTML_MODE_COMPACT
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
8
app/src/main/res/values/drawables.xml
Normal file
8
app/src/main/res/values/drawables.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Replaces the drawables of the default exoplayer controls (see https://github.com/google/ExoPlayer/blob/release-v2/library/ui/src/main/res/values/drawables.xml) -->
|
||||||
|
<resources>
|
||||||
|
|
||||||
|
<drawable name="exo_styled_controls_play">@drawable/ic_play</drawable>
|
||||||
|
<drawable name="exo_styled_controls_pause">@drawable/ic_pause</drawable>
|
||||||
|
|
||||||
|
</resources>
|
Loading…
x
Reference in New Issue
Block a user