Utilize parseAsHtml KTX extension
This commit is contained in:
parent
4d873e59f0
commit
6200a7f291
11 changed files with 36 additions and 80 deletions
|
@ -23,7 +23,7 @@ import android.os.Build
|
|||
import android.os.Bundle
|
||||
import android.provider.Settings
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.core.view.isVisible
|
||||
import code.name.monkey.appthemehelper.ThemeStore
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
|
@ -77,10 +77,8 @@ class PermissionActivity : AbsMusicServiceActivity() {
|
|||
private fun setupTitle() {
|
||||
val color = ThemeStore.accentColor(this)
|
||||
val hexColor = String.format("#%06X", 0xFFFFFF and color)
|
||||
val appName = HtmlCompat.fromHtml(
|
||||
"Hello there! <br>Welcome to <b>Retro <span style='color:$hexColor';>Music</span></b>",
|
||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
||||
)
|
||||
val appName = "Hello there! <br>Welcome to <b>Retro <span style='color:$hexColor';>Music</span></b>"
|
||||
.parseAsHtml()
|
||||
binding.appNameText.text = appName
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ package code.name.monkey.retromusic.dialogs
|
|||
import android.app.Dialog
|
||||
import android.os.Bundle
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import code.name.monkey.retromusic.EXTRA_PLAYLIST
|
||||
import code.name.monkey.retromusic.R
|
||||
|
@ -55,16 +55,10 @@ class DeletePlaylistDialog : DialogFragment() {
|
|||
//noinspection ConstantConditions
|
||||
if (playlists.size > 1) {
|
||||
title = R.string.delete_playlists_title
|
||||
message = HtmlCompat.fromHtml(
|
||||
String.format(getString(R.string.delete_x_playlists), playlists.size),
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
message = String.format(getString(R.string.delete_x_playlists), playlists.size).parseAsHtml()
|
||||
} else {
|
||||
title = R.string.delete_playlist_title
|
||||
message = HtmlCompat.fromHtml(
|
||||
String.format(getString(R.string.delete_playlist_x), playlists[0].playlistName),
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
message = String.format(getString(R.string.delete_playlist_x), playlists[0].playlistName).parseAsHtml()
|
||||
}
|
||||
|
||||
return materialDialog(title)
|
||||
|
|
|
@ -22,7 +22,7 @@ import android.provider.MediaStore
|
|||
import androidx.activity.result.IntentSenderRequest
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.EXTRA_SONG
|
||||
|
@ -87,18 +87,12 @@ class DeleteSongsDialog : DialogFragment() {
|
|||
val pair = if (songs.size > 1) {
|
||||
Pair(
|
||||
R.string.delete_songs_title,
|
||||
HtmlCompat.fromHtml(
|
||||
String.format(getString(R.string.delete_x_songs), songs.size),
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
String.format(getString(R.string.delete_x_songs), songs.size).parseAsHtml()
|
||||
)
|
||||
} else {
|
||||
Pair(
|
||||
R.string.delete_song_title,
|
||||
HtmlCompat.fromHtml(
|
||||
String.format(getString(R.string.delete_song_x), songs[0].title),
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
String.format(getString(R.string.delete_song_x), songs[0].title).parseAsHtml()
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ package code.name.monkey.retromusic.dialogs
|
|||
import android.app.Dialog
|
||||
import android.os.Bundle
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import code.name.monkey.retromusic.EXTRA_SONG
|
||||
import code.name.monkey.retromusic.R
|
||||
|
@ -52,21 +52,16 @@ class RemoveSongFromPlaylistDialog : DialogFragment() {
|
|||
val pair = if (songs.size > 1) {
|
||||
Pair(
|
||||
R.string.remove_songs_from_playlist_title,
|
||||
HtmlCompat.fromHtml(
|
||||
String.format(getString(R.string.remove_x_songs_from_playlist), songs.size),
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
String.format(getString(R.string.remove_x_songs_from_playlist), songs.size)
|
||||
.parseAsHtml()
|
||||
)
|
||||
} else {
|
||||
Pair(
|
||||
R.string.remove_song_from_playlist_title,
|
||||
HtmlCompat.fromHtml(
|
||||
String.format(
|
||||
getString(R.string.remove_song_x_from_playlist),
|
||||
songs[0].title
|
||||
),
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
).parseAsHtml()
|
||||
)
|
||||
}
|
||||
return materialDialog(pair.first)
|
||||
|
|
|
@ -23,7 +23,7 @@ import android.view.LayoutInflater
|
|||
import android.widget.TextView
|
||||
import androidx.annotation.NonNull
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import code.name.monkey.retromusic.EXTRA_SONG
|
||||
import code.name.monkey.retromusic.R
|
||||
|
@ -167,10 +167,8 @@ class SongDetailDialog : DialogFragment() {
|
|||
}
|
||||
|
||||
private fun makeTextWithTitle(context: Context, titleResId: Int, text: String?): Spanned {
|
||||
return HtmlCompat.fromHtml(
|
||||
"<b>" + context.resources.getString(titleResId) + ": " + "</b>" + text,
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
return ("<b>" + context.resources.getString(titleResId) + ": " + "</b>" + text)
|
||||
.parseAsHtml()
|
||||
}
|
||||
|
||||
private fun getFileSizeString(sizeInBytes: Long): String {
|
||||
|
|
|
@ -22,7 +22,7 @@ import android.view.*
|
|||
import androidx.activity.addCallback
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.doOnPreDraw
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
|
@ -283,10 +283,8 @@ class AlbumDetailsFragment : AbsMainActivityFragment(R.layout.fragment_album_det
|
|||
binding.fragmentAlbumContent.aboutAlbumTitle.show()
|
||||
binding.fragmentAlbumContent.aboutAlbumTitle.text =
|
||||
String.format(getString(R.string.about_album_label), lastFmAlbum.album.name)
|
||||
binding.fragmentAlbumContent.aboutAlbumText.text = HtmlCompat.fromHtml(
|
||||
lastFmAlbum.album.wiki.content,
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
binding.fragmentAlbumContent.aboutAlbumText.text =
|
||||
lastFmAlbum.album.wiki.content.parseAsHtml()
|
||||
}
|
||||
if (lastFmAlbum.album.listeners.isNotEmpty()) {
|
||||
binding.fragmentAlbumContent.listeners.show()
|
||||
|
|
|
@ -12,7 +12,7 @@ import android.view.View
|
|||
import androidx.activity.addCallback
|
||||
import androidx.appcompat.widget.PopupMenu
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.doOnPreDraw
|
||||
import androidx.core.view.isVisible
|
||||
|
@ -198,7 +198,7 @@ abstract class AbsArtistDetailsFragment : AbsMainActivityFragment(R.layout.fragm
|
|||
binding.fragmentArtistContent.run {
|
||||
biographyText.isVisible = true
|
||||
biographyTitle.isVisible = true
|
||||
biography = HtmlCompat.fromHtml(bioContent, HtmlCompat.FROM_HTML_MODE_LEGACY)
|
||||
biography = bioContent.parseAsHtml()
|
||||
biographyText.text = biography
|
||||
if (lastFmArtist.artist.stats.listeners.isNotEmpty()) {
|
||||
listeners.show()
|
||||
|
|
|
@ -22,7 +22,7 @@ import android.view.MenuItem.SHOW_AS_ACTION_IF_ROOM
|
|||
import android.view.View
|
||||
import androidx.activity.addCallback
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.core.view.doOnLayout
|
||||
import androidx.core.view.doOnPreDraw
|
||||
import androidx.core.view.isVisible
|
||||
|
@ -171,10 +171,7 @@ class HomeFragment :
|
|||
findNavController().navigate(R.id.action_search, null, navOptions)
|
||||
}
|
||||
val hexColor = String.format("#%06X", 0xFFFFFF and accentColor())
|
||||
val appName = HtmlCompat.fromHtml(
|
||||
"Retro <span style='color:$hexColor';>Music</span>",
|
||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
||||
)
|
||||
val appName = "Retro <span style='color:$hexColor';>Music</span>".parseAsHtml()
|
||||
binding.appNameText.text = appName
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ import android.view.Menu
|
|||
import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.navigation.ui.NavigationUI
|
||||
|
@ -66,10 +66,7 @@ class LibraryFragment : AbsMainActivityFragment(R.layout.fragment_library) {
|
|||
private fun setupTitle() {
|
||||
val color = ThemeStore.accentColor(requireContext())
|
||||
val hexColor = String.format("#%06X", 0xFFFFFF and color)
|
||||
val appName = HtmlCompat.fromHtml(
|
||||
"Retro <span style='color:$hexColor';>Music</span>",
|
||||
HtmlCompat.FROM_HTML_MODE_COMPACT
|
||||
)
|
||||
val appName = "Retro <span style='color:$hexColor';>Music</span>".parseAsHtml()
|
||||
binding.appNameText.text = appName
|
||||
}
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ import android.util.AttributeSet
|
|||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.graphics.BlendModeColorFilterCompat
|
||||
import androidx.core.graphics.BlendModeCompat.SRC_IN
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEDialogPreference
|
||||
import code.name.monkey.retromusic.App
|
||||
|
@ -84,15 +84,10 @@ class BlacklistPreferenceDialog : DialogFragment(), BlacklistFolderChooserDialog
|
|||
.setItems(paths.toTypedArray()) { _, which ->
|
||||
materialDialog(R.string.remove_from_blacklist)
|
||||
.setMessage(
|
||||
HtmlCompat.fromHtml(
|
||||
String.format(
|
||||
getString(
|
||||
R.string.do_you_want_to_remove_from_the_blacklist
|
||||
),
|
||||
getString(R.string.do_you_want_to_remove_from_the_blacklist),
|
||||
paths[which]
|
||||
),
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
).parseAsHtml()
|
||||
)
|
||||
.setPositiveButton(R.string.remove_action) { _, _ ->
|
||||
BlacklistStore.getInstance(App.getContext())
|
||||
|
|
|
@ -26,7 +26,7 @@ import android.graphics.drawable.Drawable
|
|||
import android.os.Build
|
||||
import android.support.v4.media.session.MediaSessionCompat
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.text.HtmlCompat
|
||||
import androidx.core.text.parseAsHtml
|
||||
import androidx.media.app.NotificationCompat.MediaStyle
|
||||
import code.name.monkey.appthemehelper.util.VersionUtils
|
||||
import code.name.monkey.retromusic.R
|
||||
|
@ -120,19 +120,9 @@ class PlayingNotificationImpl24(
|
|||
}
|
||||
|
||||
override fun updateMetadata(song: Song, onUpdate: () -> Unit) {
|
||||
setContentTitle(
|
||||
HtmlCompat.fromHtml(
|
||||
"<b>" + song.title + "</b>",
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
)
|
||||
setContentTitle(("<b>" + song.title + "</b>").parseAsHtml())
|
||||
setContentText(song.artistName)
|
||||
setSubText(
|
||||
HtmlCompat.fromHtml(
|
||||
"<b>" + song.albumName + "</b>",
|
||||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||||
)
|
||||
)
|
||||
setSubText(("<b>" + song.albumName + "</b>").parseAsHtml())
|
||||
val bigNotificationImageSize = context.resources
|
||||
.getDimensionPixelSize(R.dimen.notification_big_image_size)
|
||||
GlideApp.with(context).asBitmapPalette().songCoverOptions(song)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue