From 62372ec205b437151db0404f9afb1a92792752f0 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Mon, 20 Jun 2022 14:43:06 +0530 Subject: [PATCH] Common screen for Normal and Synced the later is preferred --- app/build.gradle | 2 +- .../base/AbsSlidingMusicPanelActivity.kt | 3 +- .../{other => lyrics}/LyricsFragment.kt | 299 +++++++----------- .../player/PlayerAlbumCoverFragment.kt | 9 +- .../playlists/PlaylistDetailsFragment.kt | 3 + .../monkey/retromusic/util/PreferenceUtil.kt | 8 +- app/src/main/res/layout/fragment_lyrics.xml | 63 ++-- .../res/layout/fragment_normal_lyrics.xml | 29 -- .../res/layout/fragment_synced_lyrics.xml | 18 -- app/src/main/res/navigation/main_graph.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 11 files changed, 177 insertions(+), 261 deletions(-) rename app/src/main/java/code/name/monkey/retromusic/fragments/{other => lyrics}/LyricsFragment.kt (58%) delete mode 100644 app/src/main/res/layout/fragment_normal_lyrics.xml delete mode 100644 app/src/main/res/layout/fragment_synced_lyrics.xml diff --git a/app/build.gradle b/app/build.gradle index 5dedc35c3..12cd27799 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,7 +14,7 @@ android { vectorDrawables.useSupportLibrary = true applicationId "code.name.monkey.retromusic" - versionCode 10595 + versionCode 10596 versionName '6.0.2-beta' buildConfigField("String", "GOOGLE_PLAY_LICENSING_KEY", "\"${getProperty(getProperties('../public.properties'), 'GOOGLE_PLAY_LICENSE_KEY')}\"") diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt index 2ac89e7e8..ab31dd814 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt +++ b/app/src/main/java/code/name/monkey/retromusic/activities/base/AbsSlidingMusicPanelActivity.kt @@ -234,8 +234,7 @@ abstract class AbsSlidingMusicPanelActivity : AbsMusicServiceActivity(), navigationView.labelVisibilityMode = PreferenceUtil.tabTitleMode } TOGGLE_FULL_SCREEN -> { - if (!PreferenceUtil.isFullScreenMode) exitFullscreen() - setEdgeToEdgeOrImmersive() + recreate() } SCREEN_ON_LYRICS -> { keepScreenOn(bottomSheetBehavior.state == STATE_EXPANDED && PreferenceUtil.lyricsScreenOn && PreferenceUtil.showLyrics || PreferenceUtil.isScreenOnEnabled) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/other/LyricsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/lyrics/LyricsFragment.kt similarity index 58% rename from app/src/main/java/code/name/monkey/retromusic/fragments/other/LyricsFragment.kt rename to app/src/main/java/code/name/monkey/retromusic/fragments/lyrics/LyricsFragment.kt index e27e31c06..cd7bceb38 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/other/LyricsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/lyrics/LyricsFragment.kt @@ -12,11 +12,10 @@ * See the GNU General Public License for more details. * */ -package code.name.monkey.retromusic.fragments.other +package code.name.monkey.retromusic.fragments.lyrics import android.annotation.SuppressLint import android.app.Activity -import android.content.Intent import android.net.Uri import android.os.Bundle import android.provider.MediaStore @@ -26,22 +25,19 @@ import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.IntentSenderRequest import androidx.activity.result.contract.ActivityResultContracts import androidx.core.view.isVisible -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentActivity import androidx.navigation.fragment.findNavController import androidx.transition.Fade -import androidx.viewpager2.adapter.FragmentStateAdapter import code.name.monkey.appthemehelper.common.ATHToolbarActivity import code.name.monkey.appthemehelper.util.ToolbarContentTintHelper import code.name.monkey.appthemehelper.util.VersionUtils import code.name.monkey.retromusic.R import code.name.monkey.retromusic.activities.tageditor.TagWriter import code.name.monkey.retromusic.databinding.FragmentLyricsBinding -import code.name.monkey.retromusic.databinding.FragmentNormalLyricsBinding -import code.name.monkey.retromusic.databinding.FragmentSyncedLyricsBinding -import code.name.monkey.retromusic.extensions.* +import code.name.monkey.retromusic.extensions.accentColor +import code.name.monkey.retromusic.extensions.materialDialog +import code.name.monkey.retromusic.extensions.openUrl +import code.name.monkey.retromusic.extensions.uri import code.name.monkey.retromusic.fragments.base.AbsMainActivityFragment -import code.name.monkey.retromusic.fragments.base.AbsMusicServiceFragment import code.name.monkey.retromusic.helper.MusicPlayerRemote import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.lyrics.LrcView @@ -51,7 +47,6 @@ import code.name.monkey.retromusic.util.FileUtils import code.name.monkey.retromusic.util.LyricUtil import code.name.monkey.retromusic.util.UriUtil import com.afollestad.materialdialogs.input.input -import com.google.android.material.tabs.TabLayoutMediator import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.launch import org.jaudiotagger.audio.AudioFileIO @@ -59,14 +54,23 @@ import org.jaudiotagger.tag.FieldKey import java.io.File import java.io.FileOutputStream import java.util.* +import kotlin.collections.set -class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { +class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics), + MusicProgressViewUpdateHelper.Callback { private var _binding: FragmentLyricsBinding? = null private val binding get() = _binding!! private lateinit var song: Song - private lateinit var lyricsSectionsAdapter: LyricsSectionsAdapter + private lateinit var normalLyricsLauncher: ActivityResultLauncher + private lateinit var editSyncedLyricsLauncher: ActivityResultLauncher + + private lateinit var cacheFile: File + private var syncedLyrics: String = "" + private lateinit var syncedFileUri: Uri + + private var lyricsType: LyricsType = LyricsType.NORMAL_LYRICS private val googleSearchLrcUrl: String get() { @@ -77,13 +81,7 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { return baseUrl } - private lateinit var normalLyricsLauncher: ActivityResultLauncher - private lateinit var newSyncedLyricsLauncher: ActivityResultLauncher - private lateinit var editSyncedLyricsLauncher: ActivityResultLauncher - - private lateinit var cacheFile: File - private var syncedLyrics: String = "" - private lateinit var syncedFileUri: Uri + private lateinit var updateHelper: MusicProgressViewUpdateHelper override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -94,14 +92,6 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { FileUtils.copyFileToUri(requireContext(), cacheFile, song.uri) } } - newSyncedLyricsLauncher = - registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result -> - if (result.resultCode == Activity.RESULT_OK) { - context?.contentResolver?.openOutputStream(result.data?.data!!)?.use { - it.write(syncedLyrics.toByteArray()) - } - } - } editSyncedLyricsLauncher = registerForActivityResult(ActivityResultContracts.StartIntentSenderForResult()) { if (it.resultCode == Activity.RESULT_OK) { @@ -118,36 +108,42 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { super.onViewCreated(view, savedInstanceState) enterTransition = Fade() exitTransition = Fade() - updateTitleSong() - lyricsSectionsAdapter = LyricsSectionsAdapter(requireActivity()) _binding = FragmentLyricsBinding.bind(view) - binding.container.transitionName = "lyrics" + updateHelper = MusicProgressViewUpdateHelper(this, 500, 1000) + updateTitleSong() + setupLyricsView() + loadLyrics() setupWakelock() setupViews() setupToolbar() } - private fun setupViews() { - binding.lyricsPager.adapter = lyricsSectionsAdapter - TabLayoutMediator(binding.tabLyrics, binding.lyricsPager) { tab, position -> - tab.text = when (position) { - 0 -> getString(R.string.synced_lyrics) - 1 -> getString(R.string.normal_lyrics) - else -> "" - } - }.attach() -// lyricsPager.isUserInputEnabled = false + private fun setupLyricsView() { + binding.lyricsView.apply { + setCurrentColor(accentColor()) + setTimeTextColor(accentColor()) + setTimelineColor(accentColor()) + setTimelineTextColor(accentColor()) + setDraggable(true, LrcView.OnPlayClickListener { + MusicPlayerRemote.seekTo(it.toInt()) + return@OnPlayClickListener true + }) + } + } - binding.tabLyrics.setSelectedTabIndicatorColor(accentColor()) - binding.tabLyrics.setTabTextColors(textColorSecondary(), accentColor()) + override fun onUpdateProgressViews(progress: Int, total: Int) { + binding.lyricsView.updateTime(progress.toLong()) + } + + private fun setupViews() { binding.editButton.accentColor() binding.editButton.setOnClickListener { - when (binding.lyricsPager.currentItem) { - 0 -> { + when (lyricsType) { + LyricsType.SYNCED_LYRICS -> { editSyncedLyrics() } - 1 -> { + LyricsType.NORMAL_LYRICS -> { editNormalLyrics() } } @@ -157,11 +153,13 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { override fun onPlayingMetaChanged() { super.onPlayingMetaChanged() updateTitleSong() + loadLyrics() } override fun onServiceConnected() { super.onServiceConnected() updateTitleSong() + loadLyrics() } private fun updateTitleSong() { @@ -181,7 +179,7 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { } override fun onCreateMenu(menu: Menu, inflater: MenuInflater) { - inflater.inflate(R.menu.menu_search, menu) + inflater.inflate(R.menu.menu_lyrics, menu) ToolbarContentTintHelper.handleOnCreateOptionsMenu( requireContext(), binding.toolbar, @@ -197,17 +195,18 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { return false } - @SuppressLint("CheckResult") - private fun editNormalLyrics() { - var content = "" - val file = File(MusicPlayerRemote.currentSong.data) - try { - content = AudioFileIO.read(file).tagOrCreateDefault.getFirst(FieldKey.LYRICS) + private fun editNormalLyrics(lyrics: String? = null) { + val file = File(song.data) + val content = lyrics ?: try { + AudioFileIO.read(file).tagOrCreateDefault.getFirst(FieldKey.LYRICS) } catch (e: Exception) { e.printStackTrace() + "" } + val song = song + materialDialog().show { title(res = R.string.edit_normal_lyrics) input( @@ -217,7 +216,6 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { ) { _, input -> val fieldKeyValueMap = EnumMap(FieldKey::class.java) fieldKeyValueMap[FieldKey.LYRICS] = input.toString() - syncedLyrics = input.toString() GlobalScope.launch { if (VersionUtils.hasR()) { cacheFile = TagWriter.writeTagsToFilesR( @@ -244,7 +242,7 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { } } positiveButton(res = R.string.save) { - (lyricsSectionsAdapter.fragments[1].first as NormalLyrics).loadNormalLyrics() + loadNormalLyrics() } negativeButton(res = android.R.string.cancel) } @@ -252,9 +250,10 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { @SuppressLint("CheckResult") - private fun editSyncedLyrics() { - val content: String = LyricUtil.getStringFromLrc(LyricUtil.getSyncedLyricsFile(song)) + private fun editSyncedLyrics(lyrics: String? = null) { + val content = lyrics ?: LyricUtil.getStringFromLrc(LyricUtil.getSyncedLyricsFile(song)) + val song = song materialDialog().show { title(res = R.string.edit_synced_lyrics) input( @@ -277,145 +276,86 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { IntentSenderRequest.Builder(pendingIntent).build() ) } else { - val intent = Intent(Intent.ACTION_CREATE_DOCUMENT) - intent.addCategory(Intent.CATEGORY_OPENABLE) - intent.type = "*/*" - intent.putExtra( - Intent.EXTRA_TITLE, - LyricUtil.getLrcOriginalPath(File(song.data).name) - ) - newSyncedLyricsLauncher.launch(intent) + val fieldKeyValueMap = EnumMap(FieldKey::class.java) + fieldKeyValueMap[FieldKey.LYRICS] = input.toString() + GlobalScope.launch { + cacheFile = TagWriter.writeTagsToFilesR( + requireContext(), + AudioTagInfo(listOf(song.data), fieldKeyValueMap, null) + )[0] + val pendingIntent = MediaStore.createWriteRequest( + requireContext().contentResolver, + listOf(song.uri) + ) + + normalLyricsLauncher.launch( + IntentSenderRequest.Builder(pendingIntent).build() + ) + } } } else { LyricUtil.writeLrc(song, input.toString()) } } positiveButton(res = R.string.save) { - (lyricsSectionsAdapter.fragments[0].first as SyncedLyrics).loadLRCLyrics() + loadLRCLyrics() } negativeButton(res = android.R.string.cancel) } } - class LyricsSectionsAdapter(fragmentActivity: FragmentActivity) : - FragmentStateAdapter(fragmentActivity) { - val fragments = listOf( - Pair(SyncedLyrics(), R.string.synced_lyrics), - Pair(NormalLyrics(), R.string.normal_lyrics) - ) - - - override fun getItemCount(): Int { - return fragments.size + private fun loadNormalLyrics() { + var lyrics: String? = null + val file = File(song.data) + try { + lyrics = AudioFileIO.read(file).tagOrCreateDefault.getFirst(FieldKey.LYRICS) + } catch (e: Exception) { + e.printStackTrace() } + binding.noLyricsFound.isVisible = lyrics.isNullOrEmpty() + binding.normalLyrics.text = lyrics + } - override fun createFragment(position: Int): Fragment { - return fragments[position].first + /** + * @return success + */ + private fun loadLRCLyrics(): Boolean { + binding.lyricsView.setLabel(getString(R.string.empty)) + val lrcFile = LyricUtil.getSyncedLyricsFile(song) + if (lrcFile != null) { + binding.lyricsView.loadLrc(lrcFile) + println("File: ${lrcFile.absolutePath}") + } else { + val embeddedLyrics = LyricUtil.getEmbeddedSyncedLyrics(song.data) + if (embeddedLyrics != null) { + binding.lyricsView.loadLrc(embeddedLyrics) + println("Lyrics: ${embeddedLyrics.substring(0..50)}") + } else { + return false + } + } + return true + } + + private fun loadLyrics() { + lyricsType = if (!loadLRCLyrics()) { + loadNormalLyrics() + LyricsType.SYNCED_LYRICS + } else { + binding.noLyricsFound.isVisible = false + binding.normalLyrics.text = "" + LyricsType.NORMAL_LYRICS } } - class NormalLyrics : AbsMusicServiceFragment(R.layout.fragment_normal_lyrics) { - - private var _binding: FragmentNormalLyricsBinding? = null - private val binding get() = _binding!! - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - _binding = FragmentNormalLyricsBinding.bind(view) - loadNormalLyrics() - super.onViewCreated(view, savedInstanceState) - } - - fun loadNormalLyrics() { - var lyrics: String? = null - val file = File(MusicPlayerRemote.currentSong.data) - try { - lyrics = AudioFileIO.read(file).tagOrCreateDefault.getFirst(FieldKey.LYRICS) - } catch (e: Exception) { - e.printStackTrace() - } - binding.noLyricsFound.isVisible = lyrics.isNullOrEmpty() - binding.normalLyrics.text = lyrics - } - - override fun onPlayingMetaChanged() { - super.onPlayingMetaChanged() - loadNormalLyrics() - } - - override fun onServiceConnected() { - super.onServiceConnected() - loadNormalLyrics() - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } + override fun onResume() { + super.onResume() + updateHelper.start() } - class SyncedLyrics : AbsMusicServiceFragment(R.layout.fragment_synced_lyrics), - MusicProgressViewUpdateHelper.Callback { - - private var _binding: FragmentSyncedLyricsBinding? = null - private val binding get() = _binding!! - private lateinit var updateHelper: MusicProgressViewUpdateHelper - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - updateHelper = MusicProgressViewUpdateHelper(this, 500, 1000) - _binding = FragmentSyncedLyricsBinding.bind(view) - setupLyricsView() - loadLRCLyrics() - super.onViewCreated(view, savedInstanceState) - } - - fun loadLRCLyrics() { - binding.lyricsView.setLabel(getString(R.string.empty)) - LyricUtil.getSyncedLyricsFile(MusicPlayerRemote.currentSong)?.let { - binding.lyricsView.loadLrc(it) - } - } - - private fun setupLyricsView() { - binding.lyricsView.apply { - setCurrentColor(accentColor()) - setTimeTextColor(accentColor()) - setTimelineColor(accentColor()) - setTimelineTextColor(accentColor()) - setDraggable(true, LrcView.OnPlayClickListener { - MusicPlayerRemote.seekTo(it.toInt()) - return@OnPlayClickListener true - }) - } - } - - override fun onUpdateProgressViews(progress: Int, total: Int) { - binding.lyricsView.updateTime(progress.toLong()) - } - - override fun onPlayingMetaChanged() { - super.onPlayingMetaChanged() - loadLRCLyrics() - } - - override fun onServiceConnected() { - super.onServiceConnected() - loadLRCLyrics() - } - - override fun onResume() { - super.onResume() - updateHelper.start() - } - - override fun onPause() { - super.onPause() - updateHelper.stop() - } - - override fun onDestroyView() { - super.onDestroyView() - _binding = null - } + override fun onPause() { + super.onPause() + updateHelper.stop() } override fun onDestroyView() { @@ -424,4 +364,9 @@ class LyricsFragment : AbsMainActivityFragment(R.layout.fragment_lyrics) { mainActivity.expandPanel() _binding = null } + + enum class LyricsType { + NORMAL_LYRICS, + SYNCED_LYRICS + } } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/PlayerAlbumCoverFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/PlayerAlbumCoverFragment.kt index 8cf022dca..06c15d504 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/PlayerAlbumCoverFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/PlayerAlbumCoverFragment.kt @@ -46,7 +46,7 @@ import code.name.monkey.retromusic.model.lyrics.Lyrics import code.name.monkey.retromusic.transform.CarousalPagerTransformer import code.name.monkey.retromusic.transform.ParallaxPagerTransformer import code.name.monkey.retromusic.util.LyricUtil -import code.name.monkey.retromusic.util.LyricsType +import code.name.monkey.retromusic.util.CoverLyricsType import code.name.monkey.retromusic.util.PreferenceUtil import code.name.monkey.retromusic.util.color.MediaNotificationProcessor import code.name.monkey.retromusic.util.logD @@ -174,13 +174,11 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(R.layout.fragment_playe } override fun onServiceConnected() { - logD("Service Connected") updatePlayingQueue() updateLyrics() } override fun onPlayingMetaChanged() { - logD("Playing Meta Changed") if (viewPager.currentItem != MusicPlayerRemote.position) { viewPager.setCurrentItem(MusicPlayerRemote.position, true) } @@ -188,7 +186,6 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(R.layout.fragment_playe } override fun onQueueChanged() { - logD("Queue Changed") updatePlayingQueue() } @@ -222,7 +219,7 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(R.layout.fragment_playe binding.coverLyrics.isVisible = false binding.lyricsView.isVisible = false binding.viewPager.isVisible = true - val lyrics: View = if (PreferenceUtil.lyricsType == LyricsType.REPLACE_COVER) { + val lyrics: View = if (PreferenceUtil.lyricsType == CoverLyricsType.REPLACE_COVER) { ObjectAnimator.ofFloat(viewPager, View.ALPHA, if (visible) 0F else 1F).start() lrcView } else { @@ -242,7 +239,7 @@ class PlayerAlbumCoverFragment : AbsMusicServiceFragment(R.layout.fragment_playe // Don't show lyrics container for below conditions if (lyricViewNpsList.contains(nps) && PreferenceUtil.showLyrics) { showLyrics(true) - if (PreferenceUtil.lyricsType == LyricsType.REPLACE_COVER) { + if (PreferenceUtil.lyricsType == CoverLyricsType.REPLACE_COVER) { progressViewUpdateHelper?.start() } } else { diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt index 1a71944c1..911d6f8ce 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/playlists/PlaylistDetailsFragment.kt @@ -23,6 +23,7 @@ import code.name.monkey.retromusic.helper.menu.PlaylistMenuHelper import code.name.monkey.retromusic.interfaces.ICabCallback import code.name.monkey.retromusic.interfaces.ICabHolder import code.name.monkey.retromusic.model.Song +import code.name.monkey.retromusic.util.MusicUtil import code.name.monkey.retromusic.util.RetroColorUtil import code.name.monkey.retromusic.util.ThemedFastScroller import com.afollestad.materialcab.attached.AttachedCab @@ -72,6 +73,8 @@ class PlaylistDetailsFragment : AbsMainActivityFragment(R.layout.fragment_playli binding.container.transitionName = "playlist" playlist = arguments.extraPlaylist binding.toolbar.title = playlist.playlistEntity.playlistName + binding.toolbar.subtitle = + MusicUtil.getPlaylistInfoString(requireContext(), playlist.songs.toSongs()) setUpRecyclerView() viewModel.getSongs().observe(viewLifecycleOwner) { songs(it.toSongs()) diff --git a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt index 92e01f567..2198d08ff 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt +++ b/app/src/main/java/code/name/monkey/retromusic/util/PreferenceUtil.kt @@ -695,11 +695,11 @@ object PreferenceUtil { val isSnowFalling get() = sharedPreferences.getBoolean(SNOWFALL, false) - val lyricsType: LyricsType + val lyricsType: CoverLyricsType get() = if (sharedPreferences.getString(LYRICS_TYPE, "0") == "0") { - LyricsType.REPLACE_COVER + CoverLyricsType.REPLACE_COVER } else { - LyricsType.OVER_COVER + CoverLyricsType.OVER_COVER } var playbackSpeed @@ -738,6 +738,6 @@ object PreferenceUtil { get() = sharedPreferences.getBoolean(SWIPE_DOWN_DISMISS, true) } -enum class LyricsType { +enum class CoverLyricsType { REPLACE_COVER, OVER_COVER } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_lyrics.xml b/app/src/main/res/layout/fragment_lyrics.xml index 00645d23c..6b3f8ea26 100644 --- a/app/src/main/res/layout/fragment_lyrics.xml +++ b/app/src/main/res/layout/fragment_lyrics.xml @@ -28,37 +28,56 @@ android:layout_height="match_parent" android:background="?attr/colorSurface" android:gravity="start" - app:contentInsetLeft="0dp" + app:contentInsetLeft="0dp" app:contentInsetStart="0dp" app:contentInsetStartWithNavigation="0dp" app:navigationIcon="@drawable/ic_keyboard_backspace_black" - app:subtitleTextAppearance="@style/TextViewCaption" + app:title="@string/lyrics" app:titleMargin="0dp" app:titleMarginStart="0dp" - app:titleTextAppearance="@style/TextViewSubtitle1"> - - - + app:titleTextAppearance="@style/ToolbarTextAppearanceNormal" /> - + android:layout_marginTop="?attr/actionBarSize"> + + + + + + + + + + - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_synced_lyrics.xml b/app/src/main/res/layout/fragment_synced_lyrics.xml deleted file mode 100644 index 37dc17b02..000000000 --- a/app/src/main/res/layout/fragment_synced_lyrics.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/navigation/main_graph.xml b/app/src/main/res/navigation/main_graph.xml index 721cab2ba..63abf5367 100644 --- a/app/src/main/res/navigation/main_graph.xml +++ b/app/src/main/res/navigation/main_graph.xml @@ -125,5 +125,5 @@ + android:name="code.name.monkey.retromusic.fragments.lyrics.LyricsFragment" /> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d56dbaa73..0e6eaba7a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -94,6 +94,7 @@ Just Black Blacklist The app needs nearby devices permission to check for bluetooth devices + Nearby devices Blur Blur Card Unable to send report @@ -561,5 +562,4 @@ You have to select at least one category. You will be forwarded to the issue tracker website. Your account data is only used for authentication. - Nearby devices