LyricsDialog displays lyrics without timestamps
Refactoring
This commit is contained in:
parent
3122923d5f
commit
c047ea96a7
7 changed files with 142 additions and 112 deletions
|
|
@ -20,6 +20,7 @@ import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
|||
import com.kabouzeid.gramophone.helper.MusicProgressViewUpdateHelper;
|
||||
import com.kabouzeid.gramophone.misc.SimpleAnimatorListener;
|
||||
import com.kabouzeid.gramophone.model.lyrics.AbsSynchronizedLyrics;
|
||||
import com.kabouzeid.gramophone.model.lyrics.Lyrics;
|
||||
import com.kabouzeid.gramophone.ui.fragments.AbsMusicServiceFragment;
|
||||
import com.kabouzeid.gramophone.util.PreferenceUtil;
|
||||
import com.kabouzeid.gramophone.util.ViewUtil;
|
||||
|
|
@ -42,7 +43,7 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
|||
ImageView favoriteIcon;
|
||||
|
||||
@BindView(R.id.player_lyrics)
|
||||
FrameLayout lyrics;
|
||||
FrameLayout lyricsLayout;
|
||||
@BindView(R.id.player_lyrics_line1)
|
||||
TextView lyricsLine1;
|
||||
@BindView(R.id.player_lyrics_line2)
|
||||
|
|
@ -51,7 +52,7 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
|||
private Callbacks callbacks;
|
||||
private int currentPosition;
|
||||
|
||||
private AbsSynchronizedLyrics synchronizedLyrics;
|
||||
private Lyrics lyrics;
|
||||
private MusicProgressViewUpdateHelper progressViewUpdateHelper;
|
||||
|
||||
@Override
|
||||
|
|
@ -181,18 +182,18 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
|||
.start();
|
||||
}
|
||||
|
||||
public void setSynchronizedLyrics(AbsSynchronizedLyrics sLyrics) {
|
||||
if (sLyrics == null || sLyrics.lines.size() == 0) {
|
||||
synchronizedLyrics = null;
|
||||
lyrics.setVisibility(View.GONE);
|
||||
public void setLyrics(Lyrics l) {
|
||||
if (l == null || !l.isSynchronized() || !l.isValid()) {
|
||||
lyrics = null;
|
||||
lyricsLayout.setVisibility(View.GONE);
|
||||
lyricsLine1.setText(null);
|
||||
lyricsLine2.setText(null);
|
||||
return;
|
||||
}
|
||||
|
||||
synchronizedLyrics = sLyrics;
|
||||
lyrics = l;
|
||||
|
||||
lyrics.setVisibility(View.VISIBLE);
|
||||
lyricsLayout.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
private void notifyColorChange(int color) {
|
||||
|
|
@ -205,14 +206,17 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
|
|||
|
||||
@Override
|
||||
public void onUpdateProgressViews(int progress, int total) {
|
||||
if (synchronizedLyrics == null || synchronizedLyrics.lines.size() == 0 || !PreferenceUtil.getInstance(getActivity()).synchronizedLyricsShow()) {
|
||||
lyrics.setVisibility(View.GONE);
|
||||
if (lyrics == null || !lyrics.isSynchronized() || !lyrics.isValid() || !PreferenceUtil.getInstance(getActivity()).synchronizedLyricsShow()) {
|
||||
lyricsLayout.setVisibility(View.GONE);
|
||||
lyricsLine1.setText(null);
|
||||
lyricsLine2.setText(null);
|
||||
return;
|
||||
}
|
||||
|
||||
lyrics.setVisibility(View.VISIBLE);
|
||||
if (!(lyrics instanceof AbsSynchronizedLyrics)) return;
|
||||
AbsSynchronizedLyrics synchronizedLyrics = (AbsSynchronizedLyrics) lyrics;
|
||||
|
||||
lyricsLayout.setVisibility(View.VISIBLE);
|
||||
|
||||
String oldLine = lyricsLine2.getText().toString();
|
||||
String line = synchronizedLyrics.getLine(progress);
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ import com.kabouzeid.gramophone.dialogs.SongShareDialog;
|
|||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.menu.SongMenuHelper;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.lyrics.AbsSynchronizedLyrics;
|
||||
import com.kabouzeid.gramophone.model.lyrics.Lyrics;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
|
||||
import com.kabouzeid.gramophone.ui.fragments.player.AbsPlayerFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.player.PlayerAlbumCoverFragment;
|
||||
|
|
@ -89,7 +89,7 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
|||
private AsyncTask updateIsFavoriteTask;
|
||||
private AsyncTask updateLyricsAsyncTask;
|
||||
|
||||
private LyricsDialog.LyricInfo lyricsInfo;
|
||||
private Lyrics lyrics;
|
||||
|
||||
private Impl impl;
|
||||
|
||||
|
|
@ -236,8 +236,8 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
|||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_show_lyrics:
|
||||
if (lyricsInfo != null)
|
||||
LyricsDialog.create(lyricsInfo).show(getFragmentManager(), "LYRICS");
|
||||
if (lyrics != null)
|
||||
LyricsDialog.create(lyrics).show(getFragmentManager(), "LYRICS");
|
||||
return true;
|
||||
}
|
||||
return super.onMenuItemClick(item);
|
||||
|
|
@ -304,8 +304,8 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
|||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
lyricsInfo = null;
|
||||
playerAlbumCoverFragment.setSynchronizedLyrics(null);
|
||||
lyrics = null;
|
||||
playerAlbumCoverFragment.setLyrics(null);
|
||||
toolbar.getMenu().removeItem(R.id.action_show_lyrics);
|
||||
}
|
||||
|
||||
|
|
@ -315,16 +315,15 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String lyrics) {
|
||||
super.onPostExecute(lyrics);
|
||||
if (TextUtils.isEmpty(lyrics)) {
|
||||
lyricsInfo = null;
|
||||
protected void onPostExecute(String data) {
|
||||
if (TextUtils.isEmpty(data)) {
|
||||
lyrics = null;
|
||||
if (toolbar != null) {
|
||||
toolbar.getMenu().removeItem(R.id.action_show_lyrics);
|
||||
}
|
||||
} else {
|
||||
lyricsInfo = new LyricsDialog.LyricInfo(song.title, lyrics);
|
||||
playerAlbumCoverFragment.setSynchronizedLyrics(AbsSynchronizedLyrics.parse(lyrics));
|
||||
lyrics = Lyrics.parse(song, data);
|
||||
playerAlbumCoverFragment.setLyrics(lyrics);
|
||||
Activity activity = getActivity();
|
||||
if (toolbar != null && activity != null)
|
||||
if (toolbar.getMenu().findItem(R.id.action_show_lyrics) == null) {
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ import com.kabouzeid.gramophone.dialogs.SongShareDialog;
|
|||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.helper.menu.SongMenuHelper;
|
||||
import com.kabouzeid.gramophone.model.Song;
|
||||
import com.kabouzeid.gramophone.model.lyrics.AbsSynchronizedLyrics;
|
||||
import com.kabouzeid.gramophone.model.lyrics.Lyrics;
|
||||
import com.kabouzeid.gramophone.ui.activities.base.AbsSlidingMusicPanelActivity;
|
||||
import com.kabouzeid.gramophone.ui.fragments.player.AbsPlayerFragment;
|
||||
import com.kabouzeid.gramophone.ui.fragments.player.PlayerAlbumCoverFragment;
|
||||
|
|
@ -86,7 +86,7 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
|||
private AsyncTask updateIsFavoriteTask;
|
||||
private AsyncTask updateLyricsAsyncTask;
|
||||
|
||||
private LyricsDialog.LyricInfo lyricsInfo;
|
||||
private Lyrics lyrics;
|
||||
|
||||
private Impl impl;
|
||||
|
||||
|
|
@ -232,8 +232,8 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
|||
public boolean onMenuItemClick(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_show_lyrics:
|
||||
if (lyricsInfo != null)
|
||||
LyricsDialog.create(lyricsInfo).show(getFragmentManager(), "LYRICS");
|
||||
if (lyrics != null)
|
||||
LyricsDialog.create(lyrics).show(getFragmentManager(), "LYRICS");
|
||||
return true;
|
||||
}
|
||||
return super.onMenuItemClick(item);
|
||||
|
|
@ -300,8 +300,8 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
|||
@Override
|
||||
protected void onPreExecute() {
|
||||
super.onPreExecute();
|
||||
lyricsInfo = null;
|
||||
playerAlbumCoverFragment.setSynchronizedLyrics(null);
|
||||
lyrics = null;
|
||||
playerAlbumCoverFragment.setLyrics(null);
|
||||
toolbar.getMenu().removeItem(R.id.action_show_lyrics);
|
||||
}
|
||||
|
||||
|
|
@ -311,16 +311,15 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
|
|||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(String lyrics) {
|
||||
super.onPostExecute(lyrics);
|
||||
if (TextUtils.isEmpty(lyrics)) {
|
||||
lyricsInfo = null;
|
||||
protected void onPostExecute(String data) {
|
||||
if (TextUtils.isEmpty(data)) {
|
||||
lyrics = null;
|
||||
if (toolbar != null) {
|
||||
toolbar.getMenu().removeItem(R.id.action_show_lyrics);
|
||||
}
|
||||
} else {
|
||||
lyricsInfo = new LyricsDialog.LyricInfo(song.title, lyrics);
|
||||
playerAlbumCoverFragment.setSynchronizedLyrics(AbsSynchronizedLyrics.parse(lyrics));
|
||||
lyrics = Lyrics.parse(song, data);
|
||||
playerAlbumCoverFragment.setLyrics(lyrics);
|
||||
Activity activity = getActivity();
|
||||
if (toolbar != null && activity != null)
|
||||
if (toolbar.getMenu().findItem(R.id.action_show_lyrics) == null) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue