diff --git a/app/src/main/java/com/kabouzeid/gramophone/dialogs/LyricsDialog.java b/app/src/main/java/com/kabouzeid/gramophone/dialogs/LyricsDialog.java
deleted file mode 100644
index 18d6d5f0..00000000
--- a/app/src/main/java/com/kabouzeid/gramophone/dialogs/LyricsDialog.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.kabouzeid.gramophone.dialogs;
-
-import android.app.Dialog;
-import android.os.Bundle;
-import androidx.annotation.NonNull;
-import androidx.fragment.app.DialogFragment;
-
-import com.afollestad.materialdialogs.MaterialDialog;
-import com.kabouzeid.gramophone.model.lyrics.Lyrics;
-
-/**
- * @author Karim Abou Zeid (kabouzeid)
- */
-public class LyricsDialog extends DialogFragment {
- public static LyricsDialog create(@NonNull Lyrics lyrics) {
- LyricsDialog dialog = new LyricsDialog();
- Bundle args = new Bundle();
- args.putString("title", lyrics.song.title);
- args.putString("lyrics", lyrics.getText());
- dialog.setArguments(args);
- return dialog;
- }
-
- @NonNull
- @Override
- public Dialog onCreateDialog(Bundle savedInstanceState) {
- //noinspection ConstantConditions
- return new MaterialDialog.Builder(getActivity())
- .title(getArguments().getString("title"))
- .content(getArguments().getString("lyrics"))
- .build();
- }
-}
diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/lyrics/AbsSynchronizedLyrics.java b/app/src/main/java/com/kabouzeid/gramophone/model/lyrics/AbsSynchronizedLyrics.java
deleted file mode 100644
index 6ae8de9a..00000000
--- a/app/src/main/java/com/kabouzeid/gramophone/model/lyrics/AbsSynchronizedLyrics.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package com.kabouzeid.gramophone.model.lyrics;
-
-import android.util.SparseArray;
-
-public abstract class AbsSynchronizedLyrics extends Lyrics {
- private static final int TIME_OFFSET_MS = 500; // time adjustment to display line before it actually starts
-
- protected final SparseArray lines = new SparseArray<>();
- protected int offset = 0;
-
- public String getLine(int time) {
- time += offset + AbsSynchronizedLyrics.TIME_OFFSET_MS;
-
- int lastLineTime = lines.keyAt(0);
-
- for (int i = 0; i < lines.size(); i++) {
- int lineTime = lines.keyAt(i);
-
- if (time >= lineTime) {
- lastLineTime = lineTime;
- } else {
- break;
- }
- }
-
- return lines.get(lastLineTime);
- }
-
- public boolean isSynchronized() {
- return true;
- }
-
- public boolean isValid() {
- parse(true);
- return valid;
- }
-
- @Override
- public String getText() {
- parse(false);
-
- if (valid) {
- StringBuilder sb = new StringBuilder();
-
- for (int i = 0; i < lines.size(); i++) {
- String line = lines.valueAt(i);
- sb.append(line).append("\r\n");
- }
-
- return sb.toString().trim().replaceAll("(\r?\n){3,}", "\r\n\r\n");
- }
-
- return super.getText();
- }
-}
diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/lyrics/Lyrics.java b/app/src/main/java/com/kabouzeid/gramophone/model/lyrics/Lyrics.java
deleted file mode 100644
index eb6d54eb..00000000
--- a/app/src/main/java/com/kabouzeid/gramophone/model/lyrics/Lyrics.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package com.kabouzeid.gramophone.model.lyrics;
-
-import com.kabouzeid.gramophone.model.Song;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class Lyrics {
- private static final List> FORMATS = new ArrayList<>();
-
- public Song song;
- public String data;
-
- protected boolean parsed = false;
- protected boolean valid = false;
-
- public Lyrics setData(Song song, String data) {
- this.song = song;
- this.data = data;
- return this;
- }
-
- public static Lyrics parse(Song song, String data) {
- for (Class extends Lyrics> format : Lyrics.FORMATS) {
- try {
- Lyrics lyrics = format.newInstance().setData(song, data);
- if (lyrics.isValid()) return lyrics.parse(false);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return new Lyrics().setData(song, data).parse(false);
- }
-
- public static boolean isSynchronized(String data) {
- for (Class extends Lyrics> format : Lyrics.FORMATS) {
- try {
- Lyrics lyrics = format.newInstance().setData(null, data);
- if (lyrics.isValid()) return true;
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- return false;
- }
-
- public Lyrics parse(boolean check) {
- this.valid = true;
- this.parsed = true;
- return this;
- }
-
- public boolean isSynchronized() {
- return false;
- }
-
- public boolean isValid() {
- this.parse(true);
- return this.valid;
- }
-
- public String getText() {
- return this.data.trim().replaceAll("(\r?\n){3,}", "\r\n\r\n");
- }
-
- static {
- Lyrics.FORMATS.add(SynchronizedLyricsLRC.class);
- }
-}
diff --git a/app/src/main/java/com/kabouzeid/gramophone/model/lyrics/SynchronizedLyricsLRC.java b/app/src/main/java/com/kabouzeid/gramophone/model/lyrics/SynchronizedLyricsLRC.java
deleted file mode 100644
index 3d1e3632..00000000
--- a/app/src/main/java/com/kabouzeid/gramophone/model/lyrics/SynchronizedLyricsLRC.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.kabouzeid.gramophone.model.lyrics;
-
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-class SynchronizedLyricsLRC extends AbsSynchronizedLyrics {
- private static final Pattern LRC_LINE_PATTERN = Pattern.compile("((?:\\[.*?\\])+)(.*)");
- private static final Pattern LRC_TIME_PATTERN = Pattern.compile("\\[(\\d+):(\\d{2}(?:\\.\\d+)?)\\]");
- private static final Pattern LRC_ATTRIBUTE_PATTERN = Pattern.compile("\\[(\\D+):(.+)\\]");
-
- private static final float LRC_SECONDS_TO_MS_MULTIPLIER = 1000f;
- private static final int LRC_MINUTES_TO_MS_MULTIPLIER = 60000;
-
- @Override
- public SynchronizedLyricsLRC parse(boolean check) {
- if (this.parsed || this.data == null || this.data.isEmpty()) {
- return this;
- }
-
- String[] lines = this.data.split("\r?\n");
-
- for (String line : lines) {
- line = line.trim();
- if (line.isEmpty()) {
- continue;
- }
-
- Matcher attrMatcher = SynchronizedLyricsLRC.LRC_ATTRIBUTE_PATTERN.matcher(line);
- if (attrMatcher.find()) {
- try {
- String attr = attrMatcher.group(1).toLowerCase().trim();
- String value = attrMatcher.group(2).toLowerCase().trim();
- switch (attr) {
- case "offset":
- this.offset = Integer.parseInt(value);
- break;
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- } else {
- Matcher matcher = SynchronizedLyricsLRC.LRC_LINE_PATTERN.matcher(line);
- if (matcher.find()) {
- String time = matcher.group(1);
- String text = matcher.group(2);
-
- Matcher timeMatcher = SynchronizedLyricsLRC.LRC_TIME_PATTERN.matcher(time);
- while (timeMatcher.find()) {
- int m = 0;
- float s = 0f;
- try {
- m = Integer.parseInt(timeMatcher.group(1));
- s = Float.parseFloat(timeMatcher.group(2));
- } catch (NumberFormatException ex) {
- ex.printStackTrace();
- }
- int ms = (int) (s * LRC_SECONDS_TO_MS_MULTIPLIER) + m * LRC_MINUTES_TO_MS_MULTIPLIER;
-
- this.valid = true;
- if (check) return this;
-
- this.lines.append(ms, text);
- }
- }
- }
- }
-
- this.parsed = true;
-
- return this;
- }
-}
diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerAlbumCoverFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerAlbumCoverFragment.java
index 814483bd..9bf66c6f 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerAlbumCoverFragment.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/PlayerAlbumCoverFragment.java
@@ -11,19 +11,13 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
-import android.widget.FrameLayout;
import android.widget.ImageView;
-import android.widget.TextView;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.AlbumCoverPagerAdapter;
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;
import butterknife.BindView;
@@ -33,7 +27,7 @@ import butterknife.Unbinder;
/**
* @author Karim Abou Zeid (kabouzeid)
*/
-public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements ViewPager.OnPageChangeListener, MusicProgressViewUpdateHelper.Callback {
+public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements ViewPager.OnPageChangeListener {
public static final int VISIBILITY_ANIM_DURATION = 300;
@@ -44,19 +38,9 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
@BindView(R.id.player_favorite_icon)
ImageView favoriteIcon;
- @BindView(R.id.player_lyrics)
- FrameLayout lyricsLayout;
- @BindView(R.id.player_lyrics_line1)
- TextView lyricsLine1;
- @BindView(R.id.player_lyrics_line2)
- TextView lyricsLine2;
-
private Callbacks callbacks;
private int currentPosition;
- private Lyrics lyrics;
- private MusicProgressViewUpdateHelper progressViewUpdateHelper;
-
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_player_album_cover, container, false);
@@ -85,15 +69,12 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
return gestureDetector.onTouchEvent(event);
}
});
- progressViewUpdateHelper = new MusicProgressViewUpdateHelper(this, 500, 1000);
- progressViewUpdateHelper.start();
}
@Override
public void onDestroyView() {
super.onDestroyView();
viewPager.removeOnPageChangeListener(this);
- progressViewUpdateHelper.stop();
unbinder.unbind();
}
@@ -176,40 +157,6 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
.start();
}
- private boolean isLyricsLayoutVisible() {
- return lyrics != null && lyrics.isSynchronized() && lyrics.isValid() && PreferenceUtil.getInstance(getActivity()).synchronizedLyricsShow();
- }
-
- private boolean isLyricsLayoutBound() {
- return lyricsLayout != null && lyricsLine1 != null && lyricsLine2 != null;
- }
-
- private void hideLyricsLayout() {
- lyricsLayout.animate().alpha(0f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION).withEndAction(() -> {
- if (!isLyricsLayoutBound()) return;
- lyricsLayout.setVisibility(View.GONE);
- lyricsLine1.setText(null);
- lyricsLine2.setText(null);
- });
- }
-
- public void setLyrics(Lyrics l) {
- lyrics = l;
-
- if (!isLyricsLayoutBound()) return;
-
- if (!isLyricsLayoutVisible()) {
- hideLyricsLayout();
- return;
- }
-
- lyricsLine1.setText(null);
- lyricsLine2.setText(null);
-
- lyricsLayout.setVisibility(View.VISIBLE);
- lyricsLayout.animate().alpha(1f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION);
- }
-
private void notifyColorChange(int color) {
if (callbacks != null) callbacks.onColorChanged(color);
}
@@ -218,44 +165,6 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
callbacks = listener;
}
- @Override
- public void onUpdateProgressViews(int progress, int total) {
- if (!isLyricsLayoutBound()) return;
-
- if (!isLyricsLayoutVisible()) {
- hideLyricsLayout();
- return;
- }
-
- if (!(lyrics instanceof AbsSynchronizedLyrics)) return;
- AbsSynchronizedLyrics synchronizedLyrics = (AbsSynchronizedLyrics) lyrics;
-
- lyricsLayout.setVisibility(View.VISIBLE);
- lyricsLayout.setAlpha(1f);
-
- String oldLine = lyricsLine2.getText().toString();
- String line = synchronizedLyrics.getLine(progress);
-
- if (!oldLine.equals(line) || oldLine.isEmpty()) {
- lyricsLine1.setText(oldLine);
- lyricsLine2.setText(line);
-
- lyricsLine1.setVisibility(View.VISIBLE);
- lyricsLine2.setVisibility(View.VISIBLE);
-
- lyricsLine2.measure(View.MeasureSpec.makeMeasureSpec(lyricsLine2.getMeasuredWidth(), View.MeasureSpec.EXACTLY), View.MeasureSpec.UNSPECIFIED);
- int h = lyricsLine2.getMeasuredHeight();
-
- lyricsLine1.setAlpha(1f);
- lyricsLine1.setTranslationY(0f);
- lyricsLine1.animate().alpha(0f).translationY(-h).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION);
-
- lyricsLine2.setAlpha(0f);
- lyricsLine2.setTranslationY(h);
- lyricsLine2.animate().alpha(1f).translationY(0f).setDuration(PlayerAlbumCoverFragment.VISIBILITY_ANIM_DURATION);
- }
- }
-
public interface Callbacks {
void onColorChanged(int color);
@@ -263,4 +172,4 @@ public class PlayerAlbumCoverFragment extends AbsMusicServiceFragment implements
void onToolbarToggled();
}
-}
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/card/CardPlayerFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/card/CardPlayerFragment.java
index f7f6074e..f80fcb4a 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/card/CardPlayerFragment.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/card/CardPlayerFragment.java
@@ -17,9 +17,8 @@ import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.appcompat.widget.Toolbar;
-import android.text.TextUtils;
+
import android.view.LayoutInflater;
-import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewAnimationUtils;
@@ -40,12 +39,10 @@ import com.kabouzeid.appthemehelper.util.ToolbarContentTintHelper;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
import com.kabouzeid.gramophone.adapter.song.PlayingQueueAdapter;
-import com.kabouzeid.gramophone.dialogs.LyricsDialog;
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.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;
@@ -93,9 +90,6 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
private RecyclerViewDragDropManager recyclerViewDragDropManager;
private AsyncTask updateIsFavoriteTask;
- private AsyncTask updateLyricsAsyncTask;
-
- private Lyrics lyrics;
private Impl impl;
@@ -183,7 +177,6 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
updateQueue();
updateCurrentSong();
updateIsFavorite();
- updateLyrics();
}
@Override
@@ -191,7 +184,6 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
updateCurrentSong();
updateIsFavorite();
updateQueuePosition();
- updateLyrics();
}
@Override
@@ -239,17 +231,6 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
toolbar.setOnMenuItemClickListener(this);
}
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.action_show_lyrics:
- if (lyrics != null)
- LyricsDialog.create(lyrics).show(getFragmentManager(), "LYRICS");
- return true;
- }
- return super.onMenuItemClick(item);
- }
-
private void setUpRecyclerView() {
recyclerViewDragDropManager = new RecyclerViewDragDropManager();
final GeneralItemAnimator animator = new RefactoredDefaultItemAnimator();
@@ -303,56 +284,6 @@ public class CardPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
}.execute(MusicPlayerRemote.getCurrentSong());
}
- private void updateLyrics() {
- if (updateLyricsAsyncTask != null) updateLyricsAsyncTask.cancel(false);
- final Song song = MusicPlayerRemote.getCurrentSong();
- updateLyricsAsyncTask = new AsyncTask() {
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
- lyrics = null;
- playerAlbumCoverFragment.setLyrics(null);
- toolbar.getMenu().removeItem(R.id.action_show_lyrics);
- }
-
- @Override
- protected Lyrics doInBackground(Void... params) {
- String data = MusicUtil.getLyrics(song);
- if (TextUtils.isEmpty(data)) {
- return null;
- }
- return Lyrics.parse(song, data);
- }
-
- @Override
- protected void onPostExecute(Lyrics l) {
- lyrics = l;
- playerAlbumCoverFragment.setLyrics(lyrics);
- if (lyrics == null) {
- if (toolbar != null) {
- toolbar.getMenu().removeItem(R.id.action_show_lyrics);
- }
- } else {
- Activity activity = getActivity();
- if (toolbar != null && activity != null)
- if (toolbar.getMenu().findItem(R.id.action_show_lyrics) == null) {
- int color = ToolbarContentTintHelper.toolbarContentColor(activity, Color.TRANSPARENT);
- Drawable drawable = ImageUtil.getTintedVectorDrawable(activity, R.drawable.ic_comment_text_outline_white_24dp, color);
- toolbar.getMenu()
- .add(Menu.NONE, R.id.action_show_lyrics, Menu.NONE, R.string.action_show_lyrics)
- .setIcon(drawable)
- .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
- }
- }
- }
-
- @Override
- protected void onCancelled(Lyrics s) {
- onPostExecute(null);
- }
- }.execute();
- }
-
@Override
@ColorInt
public int getPaletteColor() {
diff --git a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/flat/FlatPlayerFragment.java b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/flat/FlatPlayerFragment.java
index 948d043c..ce0fde0d 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/flat/FlatPlayerFragment.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/ui/fragments/player/flat/FlatPlayerFragment.java
@@ -10,14 +10,12 @@ import android.os.AsyncTask;
import android.os.Bundle;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.appcompat.widget.Toolbar;
-import android.text.TextUtils;
+
import android.view.LayoutInflater;
-import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
@@ -37,12 +35,10 @@ import com.kabouzeid.appthemehelper.util.ToolbarContentTintHelper;
import com.kabouzeid.gramophone.R;
import com.kabouzeid.gramophone.adapter.base.MediaEntryViewHolder;
import com.kabouzeid.gramophone.adapter.song.PlayingQueueAdapter;
-import com.kabouzeid.gramophone.dialogs.LyricsDialog;
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.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;
@@ -63,12 +59,10 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
@BindView(R.id.player_status_bar)
View playerStatusBar;
- @Nullable
@BindView(R.id.toolbar_container)
FrameLayout toolbarContainer;
@BindView(R.id.player_toolbar)
Toolbar toolbar;
- @Nullable
@BindView(R.id.player_sliding_layout)
SlidingUpPanelLayout slidingUpPanelLayout;
@BindView(R.id.player_recycler_view)
@@ -89,9 +83,6 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
private RecyclerViewDragDropManager recyclerViewDragDropManager;
private AsyncTask updateIsFavoriteTask;
- private AsyncTask updateLyricsAsyncTask;
-
- private Lyrics lyrics;
private Impl impl;
@@ -178,7 +169,6 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
updateQueue();
updateCurrentSong();
updateIsFavorite();
- updateLyrics();
}
@Override
@@ -186,7 +176,6 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
updateCurrentSong();
updateIsFavorite();
updateQueuePosition();
- updateLyrics();
}
@Override
@@ -234,17 +223,6 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
toolbar.setOnMenuItemClickListener(this);
}
- @Override
- public boolean onMenuItemClick(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.action_show_lyrics:
- if (lyrics != null)
- LyricsDialog.create(lyrics).show(getFragmentManager(), "LYRICS");
- return true;
- }
- return super.onMenuItemClick(item);
- }
-
private void setUpRecyclerView() {
recyclerViewDragDropManager = new RecyclerViewDragDropManager();
final GeneralItemAnimator animator = new RefactoredDefaultItemAnimator();
@@ -298,56 +276,6 @@ public class FlatPlayerFragment extends AbsPlayerFragment implements PlayerAlbum
}.execute(MusicPlayerRemote.getCurrentSong());
}
- private void updateLyrics() {
- if (updateLyricsAsyncTask != null) updateLyricsAsyncTask.cancel(false);
- final Song song = MusicPlayerRemote.getCurrentSong();
- updateLyricsAsyncTask = new AsyncTask() {
- @Override
- protected void onPreExecute() {
- super.onPreExecute();
- lyrics = null;
- playerAlbumCoverFragment.setLyrics(null);
- toolbar.getMenu().removeItem(R.id.action_show_lyrics);
- }
-
- @Override
- protected Lyrics doInBackground(Void... params) {
- String data = MusicUtil.getLyrics(song);
- if (TextUtils.isEmpty(data)) {
- return null;
- }
- return Lyrics.parse(song, data);
- }
-
- @Override
- protected void onPostExecute(Lyrics l) {
- lyrics = l;
- playerAlbumCoverFragment.setLyrics(lyrics);
- if (lyrics == null) {
- if (toolbar != null) {
- toolbar.getMenu().removeItem(R.id.action_show_lyrics);
- }
- } else {
- Activity activity = getActivity();
- if (toolbar != null && activity != null)
- if (toolbar.getMenu().findItem(R.id.action_show_lyrics) == null) {
- int color = ToolbarContentTintHelper.toolbarContentColor(activity, Color.TRANSPARENT);
- Drawable drawable = ImageUtil.getTintedVectorDrawable(activity, R.drawable.ic_comment_text_outline_white_24dp, color);
- toolbar.getMenu()
- .add(Menu.NONE, R.id.action_show_lyrics, Menu.NONE, R.string.action_show_lyrics)
- .setIcon(drawable)
- .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
- }
- }
- }
-
- @Override
- protected void onCancelled(Lyrics s) {
- onPostExecute(null);
- }
- }.execute();
- }
-
@Override
@ColorInt
public int getPaletteColor() {
diff --git a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java
index 2b6aa498..82d9d897 100644
--- a/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java
+++ b/app/src/main/java/com/kabouzeid/gramophone/util/MusicUtil.java
@@ -10,7 +10,7 @@ import android.net.Uri;
import android.os.Environment;
import android.provider.BaseColumns;
import android.provider.MediaStore;
-import android.provider.Settings;
+
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.FileProvider;
@@ -27,17 +27,11 @@ import com.kabouzeid.gramophone.model.Artist;
import com.kabouzeid.gramophone.model.Genre;
import com.kabouzeid.gramophone.model.Playlist;
import com.kabouzeid.gramophone.model.Song;
-import com.kabouzeid.gramophone.model.lyrics.AbsSynchronizedLyrics;
-
-import org.jaudiotagger.audio.AudioFileIO;
-import org.jaudiotagger.tag.FieldKey;
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
-import java.util.regex.Pattern;
/**
* @author Karim Abou Zeid (kabouzeid)
@@ -323,56 +317,4 @@ public class MusicUtil {
if (musicMediaTitle.isEmpty()) return "";
return String.valueOf(musicMediaTitle.charAt(0)).toUpperCase();
}
-
- @Nullable
- public static String getLyrics(Song song) {
- String lyrics = null;
-
- File file = new File(song.data);
-
- try {
- lyrics = AudioFileIO.read(file).getTagOrCreateDefault().getFirst(FieldKey.LYRICS);
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- if (lyrics == null || lyrics.trim().isEmpty() || !AbsSynchronizedLyrics.isSynchronized(lyrics)) {
- File dir = file.getAbsoluteFile().getParentFile();
-
- if (dir != null && dir.exists() && dir.isDirectory()) {
- String format = ".*%s.*\\.(lrc|txt)";
- String filename = Pattern.quote(FileUtil.stripExtension(file.getName()));
- String songtitle = Pattern.quote(song.title);
-
- final List patterns = new ArrayList<>();
- patterns.add(Pattern.compile(String.format(format, filename), Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE));
- patterns.add(Pattern.compile(String.format(format, songtitle), Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE));
-
- File[] files = dir.listFiles(f -> {
- for (Pattern pattern : patterns) {
- if (pattern.matcher(f.getName()).matches()) return true;
- }
- return false;
- });
-
- if (files != null && files.length > 0) {
- for (File f : files) {
- try {
- String newLyrics = FileUtil.read(f);
- if (newLyrics != null && !newLyrics.trim().isEmpty()) {
- if (AbsSynchronizedLyrics.isSynchronized(newLyrics)) {
- return newLyrics;
- }
- lyrics = newLyrics;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
-
- return lyrics;
- }
}
diff --git a/app/src/main/res/layout/card_special_thanks.xml b/app/src/main/res/layout/card_special_thanks.xml
index 7e597f97..963d4453 100644
--- a/app/src/main/res/layout/card_special_thanks.xml
+++ b/app/src/main/res/layout/card_special_thanks.xml
@@ -105,7 +105,7 @@
-
-
-
-
-
-
-
-
فنان الألبوم
السنة
"المقطع (2 للمقطع 2 أو 3004 لـCD3 للمقطع 4)"
- كلمات الأغاني
التفاصيل
اسم الملف
مسار الملف
@@ -85,7 +84,6 @@
خلط قائمة التشغيل
مسح قائمة التشغيل
حفظ قائمة التشغيل
- عرض كلمات الأغاني
فاتح
غامق
دائماً
@@ -117,7 +115,6 @@
تشغيل بدون فواصل
خفض الصوت عند فقدان التركيز
فترة قائمة تشغيل المضافة مؤخراً
- عرض كلمات الأغاني المتزامنة
تذكر آخر لسان
"شغل أغنية أولاً، ثم حاول مرة أخرى."
حذف
@@ -149,7 +146,6 @@
تلوين شريط التنقل باللون الأساسي.
تلوين اختصارات التطبيق باللون الأساسي.
الإشعارات، التنقل، إلخ.
- حالياً كلمات الأغاني المتزامنة بصيغة LRC هي المدعومة فقط. سواء كانت مدمجة أو كملف منفصل.
الذهاب إلى آخر لسان مفتوح عند التشغيل
البحث في مكتبتك...
المفضلة
diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml
index debcfa56..4290bc8d 100644
--- a/app/src/main/res/values-bg/strings.xml
+++ b/app/src/main/res/values-bg/strings.xml
@@ -37,7 +37,6 @@
Изпълнител
Година
"Трак (2 за трак 2 или 3004 за CD3 трак 4)"
- Текст на песента
Детайли
Име на файл
Местоположение на файла
@@ -81,7 +80,6 @@
Разбъркай артист
Разбъркай този плейлист
Изчисти списъкът с възпроизвеждащи се песни
- Покажи текст
Светъл изглед
Тъмен изглед
Винаги
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index c7547d39..c4d42a03 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -38,7 +38,6 @@
Interpret alba
Rok
"Stopa (2 pro stopu 2; 3004 pro stopu 4 na CD3)"
- Text
Podrobnosti
Název souboru
Umístění souboru
@@ -85,7 +84,6 @@
Přehrát playlist náhodně
Vyčistit frontu přehrávání
Uložit frontu přehrávání
- Zobrazit text
Světlý
Tmavý
Vždy
@@ -117,7 +115,6 @@
Přehrávání bez mezer
Snížit hlasitost při ztrátě priority zvuku
Poslední přidaný interval playlistu
- Zobrazit synchronizovaný text
Pamatovat poslední kartu
"Nejdříve přehrajte píseň, poté zkuste znovu. "
Smazat
@@ -149,7 +146,6 @@
Barvy navigačního panelu v primární barvě
Zbarví zkratky aplikace primární barvou
Oznámení, navigace atd.
- V současné době jsou podporovány pouze synchronizované texty ve formátu LRC. Buď vestavěný nebo jako samostatný soubor.
Přejděte na poslední otevřenou kartu při spuštění
Vyhledat zvukové soubory...
Oblíbené
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 715882d1..0721553b 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -38,7 +38,6 @@
Album Interpret
Jahr
"Track (2 für Track 2 oder 3004 für CD 3 Track 4)"
- Songtext
Details
Dateiname
Dateipfad
@@ -86,7 +85,6 @@
Wiedergabeliste zufällig wiedergeben
Warteschlange leeren
Warteschlange speichern
- Songtext anzeigen
Hell
Dunkel
Immer
@@ -119,7 +117,6 @@
Lückenlose Wiedergabe
Lautstärke bei Fokusverlust verringern
Intervall der \"Zuletzt hinzugefügt\"-Wiedergabeliste
- Synchronisierten Songtext anzeigen
Letzten Tab merken
Shuffle-Einstellung merken
"Keine Audio ID, spiele etwas ab und versuche es erneut."
@@ -152,7 +149,6 @@
Färbt die Navigationsleiste mit der Hauptfarbe.
Färbt die App-Shortcuts mit der Hauptfarbe.
Benachrichtigungen, Navigation etc.
- Aktuell werden nur synchronisierte Songtexte im LRC-Format unterstützt, entweder eingebettet oder als separate Datei.
Zuletzt geöffneten Tab beim Start anzeigen
Shuffle bleibt aktiviert, wenn neue Songs ausgewählt werden
Durchsuche deine Mediathek
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 5e18caed..dc6d2aed 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -38,7 +38,6 @@
Καλλιτέχνης Άλμπουμ
Έτος
"Κομμάτι (2 για κομμάτι 2 ή 3004 από CD3 κομμάτι 4)"
- Στίχοι
Λεπτομέρειες
Όνομα αρχείου
Διαδρομή αρχείου
@@ -86,7 +85,6 @@
Τυχαία λίστα αναπαραγωγής
Εκκαθάριση της ουράς αναπαραγωγής
Αποθήκευση της σειράς αναπαραγωγής
- Εμφάνιση στίχων
Ανοιχτό
Σκούρο
Πάντα
diff --git a/app/src/main/res/values-en-rCA/strings.xml b/app/src/main/res/values-en-rCA/strings.xml
index b43a999a..15a13b0c 100644
--- a/app/src/main/res/values-en-rCA/strings.xml
+++ b/app/src/main/res/values-en-rCA/strings.xml
@@ -37,7 +37,6 @@
Album artist
Year
"Track (2 for track 2 or 3004 for CD3 track 4)"
- Lyrics
Details
File name
File path
@@ -83,7 +82,6 @@
Shuffle playlist
Clear playing queue
Save playing queue
- Show lyrics
Light
Dark
Always
@@ -114,7 +112,6 @@
Gapless playback
Reduce volume on focus loss
Last added playlist interval
- Show synchronised lyrics
"Play a song first, then try again."
Delete
Clear
@@ -143,7 +140,6 @@
Colors the navigation bar in the primary color.
Colors the app shortcuts in the primary color.
Notifications, navigation etc.
- Currently only synchronized lyrics in LRC format are supported. Either embedded or as a separate file.
Search your library…
Favorites
Last added
diff --git a/app/src/main/res/values-en-rGB/strings.xml b/app/src/main/res/values-en-rGB/strings.xml
index 009142dc..42c5154f 100644
--- a/app/src/main/res/values-en-rGB/strings.xml
+++ b/app/src/main/res/values-en-rGB/strings.xml
@@ -38,7 +38,6 @@
Album artist
Year
"Track (2 for track 2 or 3004 for CD3 track 4)"
- Lyrics
Details
File name
File path
@@ -84,7 +83,6 @@
Shuffle playlist
Clear playing queue
Save playing queue
- Show lyrics
Light
Dark
Always
@@ -116,7 +114,6 @@
Gapless playback
Reduce volume on focus loss
Last added playlist interval
- Show synchronised lyrics
Remember last tab
"Play a song first, then try again."
Delete
@@ -148,7 +145,6 @@
Colours the navigation bar in the primary colour.
Colours the app shortcuts in the primary colour.
Notifications, navigation etc.
- Currently only synchronised lyrics in LRC format are supported. Either embedded or as a separate file.
Go to the last opened tab on launch
Search your library…
Favourites
diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml
index 24d8fe55..0bf182a7 100644
--- a/app/src/main/res/values-es-rES/strings.xml
+++ b/app/src/main/res/values-es-rES/strings.xml
@@ -38,7 +38,6 @@
Artista del álbum
Año
"Pista (2 para pista 2 o 3004 para CD3 pista 4)"
- Letras
Detalles
Nombre del archivo
Ubicación del archivo
@@ -86,7 +85,6 @@
Reproducción aleatoria de la lista de reproducción
Vaciar cola de reproducción
Guardar cola de reproducción
- Mostrar letras
Claro
Oscuro
Siempre
@@ -119,7 +117,6 @@
Reproducción sin interrupciones
Reducir volumen en la pérdida del enfoque
Intervalo de la última lista de reproducción
- Mostrar letras sincronizadas
Recordar la última pestaña
Recordar aleatorio
"Reproduce una canción primero, luego intentalo otra vez."
@@ -152,7 +149,6 @@
Colorea la barra de navegación con el color principal.
Colorea los accesos directos con el color principal
Notificaciones, navegación etc.
- Actualmente sólo se admiten las letras sincronizadas en formato LRC. Tanto si están embebidas como si están en un archivo aparte.
Ir a la última pestaña abierta en el lanzamiento
Modo aleatorio estará activado cuando se seleccione una nueva lista de canciones
Buscar en la biblioteca...
diff --git a/app/src/main/res/values-es-rUS/strings.xml b/app/src/main/res/values-es-rUS/strings.xml
index 197d11ae..710c5b98 100644
--- a/app/src/main/res/values-es-rUS/strings.xml
+++ b/app/src/main/res/values-es-rUS/strings.xml
@@ -38,7 +38,6 @@
Artista del álbum
Año
"Pista (2 para pista 2 o 3004 para CD3 pista 4)"
- Letras
Detalles
Nombre del archivo
Ubicación del archivo
@@ -85,7 +84,6 @@
Reproducción aleatoria de la lista de reproducción
Limpiar cola de reproducción
Guardar cola de reproducción
- Mostrar letra
Claro
Oscuro
Siempre
@@ -117,7 +115,6 @@
Reproducción sin pausas
Reducir volumen al recibir notificaciones
Último intervalo de lista de reproducción añadido
- Mostrat letras sincronizadas
Recordar la última pestaña
"Reproduce una canción primero, e intenta de nuevo."
Eliminar
@@ -149,7 +146,6 @@
Colorea la barra de navegación con el color principal.
Colorea los accesos directos con el color principal.
Notificaciones, navegación, etc.
- Actualmente sólo se admiten las letras sincronizadas en formato LRC. Ya sea incorporado o como un archivo independiente.
Ir a la última pestaña abierta al iniciar
Buscar en la biblioteca...
Favoritos
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index 565d563f..487e8ed3 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -38,7 +38,6 @@
Albumin artisti
Vuosi
"Raita"
- Sanoitukset
Yksityiskohdat
Tiedostonimi
Tiedostopolku
@@ -86,7 +85,6 @@
Sekoita soittolistat
Tyhjennä toistojono
Tallenna toistojono
- Näytä lyriikat
Vaalea
Tumma
Aina
@@ -119,7 +117,6 @@
Tauoton toisto
Hiljennä ääntä, kun kohdistus menetetään
Viimeksi lisätyt -soittolistan aikaväli
- Näytä synkronoidut sanoitukset
Muista viimeisin välilehti
Muista sekoitus
"Toista jokin kappale ensin, koita sitten uudelleen."
@@ -152,7 +149,6 @@
Värittää navigaatiopalkin päävärillä.
Värittää sovelluksen pikavalinnat päävärillä.
Ilmoitukset, liikkuminen jne.
- Nykyiseltään sovellus tukee vain LRC-muodossa olevia sanoituksia, joko sulautettuna tai erillisinä tiedostoina.
Palauttaa käynnistyessään viimeksi avoinna olleen välilehden.
Sekoitus-tila pysyy päällä, kun valitset uuden listan kappaleita
Etsi kirjastostasi...
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 5d73756b..7971bbc8 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -38,7 +38,6 @@
Artiste de l\'album
Année
"Piste (2 pour piste 2 ou 3004 pour CD3 piste 4)"
- Paroles
Détails
Nom du fichier
Chemin du fichier
@@ -85,7 +84,6 @@
Lecture aléatoire
Effacer la file de lecture
Sauvegarder la file de lecture
- Afficher les paroles
Clair
Sombre
Toujours
@@ -117,7 +115,6 @@
Lecture sans coupure
Réduire le volume lorse que le focus est interrompu
Intervalle de la playlist \"Derniers ajouts\"
- Afficher les paroles synchronisées
Se souvenir de la dernière fenêtre
"Faire jouer un titre d'abord, puis réessayer."
Supprimer
@@ -149,7 +146,6 @@
Colore la barre de navigation en fonction de la couleur principale.
Colore les raccourcis de l\'application selon la couleur primaire.
Notifications, navigation, etc.
- Pour le moment seul les paroles synchronisées en format LRC sont supportées. Aussi bien en fichier intégré ou en fichier séparé.
Aller à la dernière catégorie ouverte lors du lancement
Recherche dans votre bibliothèque...
Favoris
diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml
index 15fbdcf5..20b27ad9 100644
--- a/app/src/main/res/values-he/strings.xml
+++ b/app/src/main/res/values-he/strings.xml
@@ -38,7 +38,6 @@
אמן האלבום
שנה
"שיר (2 בשביל שיר 2 או 3004 בשביל דיסק 3 שיר 4)"
- מילים
פרטים
שם הקובץ
מיקום הקובץ
@@ -85,7 +84,6 @@
ערבב רשימת השמעה
איפוס תור השמעה
שמור תור פעיל
- הצג מילים
בהיר
כהה
תמיד
@@ -117,7 +115,6 @@
ניגון ללא מרווחים בין השירים
הפחת את עוצמת הקול באובדן מיקוד
הפסקת רשימת השמעה אחרונה שהוספה
- הראה מילות שיר מסוכרנות
זכור את הכרטיסיה האחרונה
"נגן/י שיר ואז נסה/י שנית."
מחיקה
@@ -149,7 +146,6 @@
צובע את שורת הניווט בצבע הראשי.
צובע את קיצורי האפליקציה בצבע הראשי.
התראות, ניווט וכו\'
- כרגע מסכרן מילות שירים רק בפורמט LRC. מילות שרים מוטבעות או בקובץ נפרד.
עבור לכרטיסייה האחרונה שהייתה פתוחה בהפעלה
חפש בספרייה שלך...
מועדפים
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index 209fc7ce..6cf97204 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -38,7 +38,6 @@
Izvođač albuma
Godina
"Redni broj (2 za pjesmu broj 2 ili 3004 za CD3 pjesmu broj 4)"
- Stihovi
Detalji
Naziv datoteke
Odredište datoteke
@@ -85,7 +84,6 @@
Izmiješaj popis naslova
Očisti red čekanja
Spremi red čekanja
- Prikaži stihove
Svijetla
Tamna
Uvijek
@@ -117,7 +115,6 @@
Reprodukcija bez prekida
Smanji glasn. prilikom drugih zvukova
Interval nedavnog popisa
- Prikaži sinkronizirane stihove
Zapamti zadnju karticu
"Reproducirajte nešto i pokušajte opet."
Izbriši
@@ -149,7 +146,6 @@
Boja navigacijsku traku primarnom bojom.
Boja prečace aplikacije u primarnu boju.
Obavijesti, navigacija itd.
- Trenutno su samo sinkronizirani stihovi u LRC formatu podržani. Ili ugrađeni ili u zasebnoj datoteci.
Pri pokretanju otvori zadnje otvorenu karticu
Pretražite svoju biblioteku...
Favoriti
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index 7cfa0e82..7e4bc777 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -38,7 +38,6 @@
Album előadó
Év
"Dal sorszáma az albumban"
- Dalszöveg
Részletek
Fájlnév
Útvonal
@@ -85,7 +84,6 @@
Lejátszási lista keverése
Lejátszási lista törlése
Mentés a lejátszási sorba
- Dalszöveg
Világos
Sötét
Mindig
@@ -117,7 +115,6 @@
Áttűnéses lejátszás
Hangerő csökkentése
Utoljára hozzáadott lejátszási lista intervallum
- Szinkronizált dalszöveg
Emlékezz az utolsó fülre
"Először játsszon le egy dalt, majd próbálja újra."
Törlés
@@ -149,7 +146,6 @@
Navigációs sáv színezése az alapértelmezett színnel.
Az alkalmazás hivatkozások színezése az elsődleges szín szerint.
Beérkező értesítéskor a lejátszás hangereje lecsökken, majd az értesítés végén visszaáll az eredeti hangerőre.
- Jelenleg csak az LRC formátumban szinkronizált szövegeket támogatják. Beágyazott vagy külön fájlként.
Menjen az utolsó megnyitott fülre az indításkor
Keresés a könyvtárban...
Kedvencek
diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml
index d34b26e1..b3a2c0db 100644
--- a/app/src/main/res/values-id/strings.xml
+++ b/app/src/main/res/values-id/strings.xml
@@ -38,7 +38,6 @@
Artis album
Tahun
"Trek (2 untuk trek ke-2 atau 3004 untuk CD3 trek ke-4)"
- Lirik
Rincian
Nama berkas
Lokasi berkas
@@ -86,7 +85,6 @@
Putar daftar putar secara acak
Kosongkan antrean yang sedang diputar
Menyimpan antrian yang diputar
- Tampilkan lirik
Terang
Gelap
Selalu
@@ -119,7 +117,6 @@
Pemutaran tanpa jeda
Kurangi suara saat ada pemberitahuan
Sela daftar putar yang terakhir ditambahkan
- Tampilkan lirik yang tersinkronisasi
Ingat tab terakhir
Ingat putar acak
"Silahkan mainkan sebuah lagu dan coba lagi. "
@@ -152,7 +149,6 @@
"Mewarnai bilah navigasi dengan warna primer. "
Mewarnai pintasan-pintasan dengan warna utama.
Pemberitahuan, navigasi dll.
- Saat ini hanya mendukung lirik dalam format LRC yang disinkronkan. Antara tertanam atau sebagai file terpisah.
Pergi ke tab yang terakhir saat aplikasi dibuka
Mode putar acak akan tetap aktif saat memilih daftar lagu baru
Mencari pustaka Anda...
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index d34b26e1..b3a2c0db 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -38,7 +38,6 @@
Artis album
Tahun
"Trek (2 untuk trek ke-2 atau 3004 untuk CD3 trek ke-4)"
- Lirik
Rincian
Nama berkas
Lokasi berkas
@@ -86,7 +85,6 @@
Putar daftar putar secara acak
Kosongkan antrean yang sedang diputar
Menyimpan antrian yang diputar
- Tampilkan lirik
Terang
Gelap
Selalu
@@ -119,7 +117,6 @@
Pemutaran tanpa jeda
Kurangi suara saat ada pemberitahuan
Sela daftar putar yang terakhir ditambahkan
- Tampilkan lirik yang tersinkronisasi
Ingat tab terakhir
Ingat putar acak
"Silahkan mainkan sebuah lagu dan coba lagi. "
@@ -152,7 +149,6 @@
"Mewarnai bilah navigasi dengan warna primer. "
Mewarnai pintasan-pintasan dengan warna utama.
Pemberitahuan, navigasi dll.
- Saat ini hanya mendukung lirik dalam format LRC yang disinkronkan. Antara tertanam atau sebagai file terpisah.
Pergi ke tab yang terakhir saat aplikasi dibuka
Mode putar acak akan tetap aktif saat memilih daftar lagu baru
Mencari pustaka Anda...
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 7f19b811..2ec4d90d 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -38,7 +38,6 @@
Artista dell\'album
Anno
"Traccia (2 per traccia 2, o 3004 per CD3 traccia 4)"
- Testi
Dettagli
Nome file
Percorso file
@@ -86,7 +85,6 @@
Riproduzione casuale playlist
Svuota coda di riproduzione
Salva la coda di riproduzione
- Mostra testo
Chiaro
Scuro
Sempre
@@ -119,7 +117,6 @@
Riproduzione senza intervalli
Riduci volume in caso di perdita di focus audio
Ultimo intervallo di playlist aggiunto
- Mostra testi sincronizzati
Ricorda ultima scheda
Ricorda casuale
"Riproduci un brano e prova di nuovo."
@@ -152,7 +149,6 @@
Colora la barra di navigazione del colore principale.
Colora le scorciatoie dell\'app con il colore principale.
Notifiche, navigazione ecc.
- Attualmente solo i testi sincronizzati in formato LRC sono supportati. Sia integrati o come file separati.
All\'avvio vai all\'ultima scheda aperta
La modalità casuale rimarrà attiva quando si seleziona un nuovo elenco di brani
Cercando nella tua libreria...
diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml
index 15fbdcf5..20b27ad9 100644
--- a/app/src/main/res/values-iw/strings.xml
+++ b/app/src/main/res/values-iw/strings.xml
@@ -38,7 +38,6 @@
אמן האלבום
שנה
"שיר (2 בשביל שיר 2 או 3004 בשביל דיסק 3 שיר 4)"
- מילים
פרטים
שם הקובץ
מיקום הקובץ
@@ -85,7 +84,6 @@
ערבב רשימת השמעה
איפוס תור השמעה
שמור תור פעיל
- הצג מילים
בהיר
כהה
תמיד
@@ -117,7 +115,6 @@
ניגון ללא מרווחים בין השירים
הפחת את עוצמת הקול באובדן מיקוד
הפסקת רשימת השמעה אחרונה שהוספה
- הראה מילות שיר מסוכרנות
זכור את הכרטיסיה האחרונה
"נגן/י שיר ואז נסה/י שנית."
מחיקה
@@ -149,7 +146,6 @@
צובע את שורת הניווט בצבע הראשי.
צובע את קיצורי האפליקציה בצבע הראשי.
התראות, ניווט וכו\'
- כרגע מסכרן מילות שירים רק בפורמט LRC. מילות שרים מוטבעות או בקובץ נפרד.
עבור לכרטיסייה האחרונה שהייתה פתוחה בהפעלה
חפש בספרייה שלך...
מועדפים
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 7ca6c7b1..732ee34b 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -38,7 +38,6 @@
アルバムアーティスト
年
"トラック (例: '2'ならトラック2, '3004'ならCD3のトラック4)"
- 歌詞
詳細情報
ファイル名
パス
@@ -85,7 +84,6 @@
プレイリストをシャッフル
再生キューを消去
再生キューを保存
- 歌詞を表示
ライト
ダーク
いつでも
@@ -117,7 +115,6 @@
ギャップレス再生
音声フォーカス喪失時に音量を下げる
最近追加された曲に含まれる期間
- 同期された歌詞を表示
最後のタブの記憶
"何か曲を再生してもう一度お試しください"
削除
@@ -149,7 +146,6 @@
ナビゲーションバーの背景色をメインカラーに変更します。
アプリのショートカットの色をメインカラーに変更します。
通知やナビなどです。
- 現時点では LRC 形式の同期歌詞のみに対応しています。埋め込みと別ファイルのどちらにも対応しています。
アプリ起動時に最後に開いていたタブを開く
ライブラリ内を検索…
お気に入り
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 5de008ea..2bae2bf2 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -38,7 +38,6 @@
앨범 아티스트
연도
"트랙 (트랙 2는 2, CD 3의 트랙 4는 3004로 입력)"
- 가사
세부 정보
파일 이름
파일 경로
@@ -85,7 +84,6 @@
재생 목록 랜덤 재생
재생 대기열 비우기
재생 대기열 저장
- 가사 보기
밝은 테마
어두운 테마
항상
@@ -117,7 +115,6 @@
갭리스 재생
포커스 상실 시 볼륨 감소하기
최근 추가된 재생 목록 간격
- 동기화된 가사 보기
마지막 탭 기억
"먼저 노래를 재생한 후 다시 시도해 주세요."
삭제
@@ -151,7 +148,6 @@
하단바가 색깔을 주 색상으로 색칠합니다.
주 색상으로 앱 바로가기 색칠
알림 소리, 버튼음 등
- 현재는 임베딩 또는 별개로 저장된 LRC 형식의 동기화된 자막 파일만 지원합니다.
마지막으로 연 탭으로 시작
저장소 검색...
즐겨찾기
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 9aa9b83d..9a966449 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -38,7 +38,6 @@
Album artiest
Jaar
"Nummer (2 voor nr. 2, of 3004 voor CD3 nr. 4)"
- Songteksten
Details
Bestandsnaam
Bestandspad
@@ -85,7 +84,6 @@
Shuffle afspeellijst
Leeg afspeelwachtrij
Afspeelwachtrij opslaan
- Toon songtekst
Licht
Donker
Altijd
@@ -117,7 +115,6 @@
Afspelen zonder pauzes
Verminder volume bij focusverlies
Laatst toegevoegd afspeellijst tussenpoos
- Gesynchr. songtekst weergeven
Laatste tabblad onthouden
"Speel eerst iets af, probeer dan opnieuw."
Verwijderen
@@ -149,7 +146,6 @@
Kleurt de navigatiebalk in de primaire kleur.
Kleurt de app-snelkoppelingen in de primaire kleur.
Notificaties, navigatie, etc.
- Momenteel worden gesynchr. songteksten alleen ondersteund in LRC-formaat. Of ingebed, of als separaat bestand.
Ga naar het laatst geopende tabblad bij opstarten
Zoek in je bibliotheek…
Favorieten
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index e1be4dd6..7fd42fd5 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -38,7 +38,6 @@
Wykonawca albumu
Rok
"Numer utworu (2 dla utworu 2 lub 3004 dla CD3 utworu 4)"
- Tekst
Szczegóły
Nazwa pliku
Ścieżka pliku
@@ -85,7 +84,6 @@
Losowa lista odtwarzania
Wyczyść kolejkę odtwarzania
Zapisz obecnie odtwarzaną kolejkę
- Pokaż teksty
Jasny
Ciemny
Zawsze
@@ -117,7 +115,6 @@
Odtwarzanie bez przerw
Zmniejszaj głośność przy powiadomieniach
Okres ostatnio dodanych list odtwarzania
- Pokazuj zsynchronizowany tekst
"Zapamiętaj ostatnią zakładkę "
"Odegraj utwór, następnie ponów próbę"
Usuń
@@ -149,7 +146,6 @@
Kolory paska nawigacyjnego będą odpowiadały kolorowi podstawowemu
Kolory skrótów aplikacji w kolorze podstawowym
Notyfikacje, nawigacja, itp.
- Obecnie wspierane są tylko napisy w formacie LRC oraz te osadzone w osobnym pliku.
Idź do ostatniej otwartej zakładki przy starcie
Szukaj w bibliotece...
Ulubione
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index eaa8f7f4..ac09c5a2 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -38,7 +38,6 @@
Artista do álbum
Ano
"Música (2 para a música 2 ou 3004 para a música 4 do CD3)"
- Letra
Detalhes
Nome do arquivo
Endereço do arquivo
@@ -86,7 +85,6 @@
Misturar playlist
Limpar fila de reprodução
Salvar fila de reprodução
- Mostrar letras
Claro
Escuro
Sempre
@@ -119,7 +117,6 @@
Reprodução contínua
Reduzir o volume de perda de foco
Intervalo de adição das playlists mais recentes
- Exibir letras sincronizadas
Lembrar última aba
Memorizar aleatorização
"Sem identificação de áudio, reproduza algo e tente novamente."
@@ -152,7 +149,6 @@
Cores da barra de navegação na cor primária.
Colore os atalhos do app com a cor primária.
Notificações, navegação, etc.
- Atualmente damos suporte apenas a letras de música no formato LRC. Tanto as encorporadas quanto as anexadas por um arquivo separado.
Ir para a última aba aberta ao iniciar
Modo aleatório continuará ativo quando uma nova lista de músicas for selecionada
Pesquisar na sua biblioteca...
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index 0c667d08..42777677 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -77,7 +77,6 @@
Embaralhar Artista
Embaralhar lista de reprodução
Limpar fila de reprodução
- Mostrar letra
Claro
Escuro
Sempre
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index d73c1dc3..3a9e7f90 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -38,7 +38,6 @@
Artistul albumului
An
"Număr (2 pentru melodia a 2-a sau 3004 pentru CD3 melodia a 4-a)"
- Versuri
Detalii
Nume fișier
Cale fișier
@@ -85,7 +84,6 @@
Amestecare listă de redare
Golește lista de redare
Salvați lista de redare
- Arată versuri
Light (Alb)
Dark (Negru)
Mereu
@@ -117,7 +115,6 @@
Redare fără întreruperi
Se reduce volumul la pierderea focalizării
Ultimul interval al listei de redare adăugate
- Afişare versuri sincronizate
Rețineți ultima filă
"Redă o melodie mai întâi, apoi încearcă din nou."
Șterge
@@ -149,7 +146,6 @@
Colorare bară de navigare în culoarea primară.
Colorarea comenzilor rapide ale aplicației în culoarea primară.
Notificări, navigație etc.
- În prezent sunt acceptate numai versurile sincronizate în format LRC. Fie încorporate, fie ca fişier separat.
Accesați ultima filă deschisă la lansare
Căutați în bibliotecă.
Favorite
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index a7dc6475..2f4d7e68 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -38,7 +38,6 @@
Альбом исполнителя
Год
"Трек (2 для трека 2 или 3004 для трека 4 CD3)"
- Текст песни
Подробнее
Имя файла
Расположение
@@ -86,7 +85,6 @@
Перемешать плейлист
"Очистить очередь воспроизведения "
Сохранить очередь воспроизведения
- Показать текст песни
Светлая
Тёмная
Всегда
@@ -119,7 +117,6 @@
Воспроизведение без пауз
Уменьшить громкость при уведомлениях
Интервал последнего добавленного плейлиста
- Показать синхронизированные тексты
Запомнить последнюю вкладку
Запомнить перемешивание
"Сначала воспроизведите песню, а затем попробуйте снова."
@@ -152,7 +149,6 @@
Окрашивает панель навигации в основной цвет.
Окрашивает шорткаты в основной цвет.
Уведомления, навигация, т.д.
- В настоящее время поддерживаются только синхронизированные тексты в формате LRC. Либо встроенные, либо как отдельный файл.
Перейти на последнюю открытую вкладку при запуске
Режим перемешивания останется включенным при выборе нового списка песен
Поиск в библиотеке...
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index c08b7417..a1fe9518 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -38,7 +38,6 @@
Albüm sanatçısı
Yıl
"Parça (2. parça için 2 ya da CD3 4. parça için 3004)"
- Şarkı sözleri
Ayrıntılar
Dosya adı
Dosya yolu
@@ -85,7 +84,6 @@
Çalma listesini karıştır
Çalma sırasını temizle
Çalma sırasını kaydet
- Şarkı sözlerini göster
Açık
Koyu
Her zaman
@@ -117,7 +115,6 @@
Aralıksız çalma
Odak kaybına neden olacak sesi azalt
Son eklenen çalma listesi süresi
- Senkronize şarkı sözlerini göster
Son sekmeyi hatırla
"ilk şarkıyı çalın, daha sonra tekrar deneyin."
Sil
@@ -149,7 +146,6 @@
Gezinme çubuğunu ana renk ile renklendir.
Uygulama kısayollarını ana renk ile renklendir.
Bildirimler, gezinme vb.
- Şu anda yalnızca LRC formatında senkronize edilmiş sözler desteklenmektedir. Gömülü veya ayrı bir dosya olarak.
Başlatıldığında son açılan sekmeye git
Kitaplığınız taranıyor...
Favoriler
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 174a2bb1..f7da1659 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -38,7 +38,6 @@
Альбом виконавця
Рік
"Доріжка (2 для доріжки 2 або 3004 для CD3 доріжки 4)"
- Текст пісні
Подробиці
Назва файлу
Шлях до файлу
@@ -84,7 +83,6 @@
Перемішати список відтворення
Очистити чергу відтворення
Зберегти чергу відтворення
- Показати текст
Світла
Темна
Завжди
@@ -116,7 +114,6 @@
Безперервне відтворення
Зменшити гучнiсть при отриманнi повiдомлення
Інтервал останнього доданого списку відтворення
- Показати синхронізований текст пісні
Запам‘ятати останню вкладку
"Спочатку відтворіть пісню, потім спробуйте ще раз."
Видалити
@@ -148,7 +145,6 @@
Фарбує панель навігації у переважний колір.
Фарбує ярлики додатків у переважний колір.
Повiдомлення, навiгацiя, т.д.
- Наразі підтримується тільки синхронізований текст у форматі LCR як вбудований або окремий файл.
Перейдіть до останньої відкритої вкладки, щоб запустити
Пошук бібліотеки...
Улюблені
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index 1d13951f..38f3d180 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -37,7 +37,6 @@
Album của nghệ sĩ
Năm
"Số thứ tự (ghi 2 nếu là bài thứ 2 hoặc ghi 3004 nếu là CD 3, bài thứ 4)"
- Lời bài hát
Chi tiết
Tên tập tin
Đường dẫn tập tin
@@ -82,7 +81,6 @@
Trộn danh sách nhạc
Dọn hàng đợi phát
Lưu hàng đợi phát
- Hiện lời bài hát
Sáng
Tối
Luôn luôn
@@ -113,7 +111,6 @@
Phát lại quãng lặng
Giảm âm lượng khi mất tập trung
Thời gian danh sách nhạc được thêm vào sau cùng
- Hiển thị lời bài hát được đồng bộ
"Phát một bài hát đầu tiên, sau đó thử lại."
Xóa
Dọn
@@ -142,7 +139,6 @@
Màu sắc thanh điều hướng trong các màu cơ bản.
Màu sắc chủ đạo của biểu tượng ứng dụng.
Thông báo, điều hướng, vv.
- Hiện tại chỉ được đồng bộ lời bài hát ở định dạng LRC. Nhúng hoặc là một tập tin riêng biệt.
Tìm kiếm thư viện của bạn...
Yêu thích
Được thêm sau cùng
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 93e4627a..0808cfe8 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -38,7 +38,6 @@
专辑艺术家
年份
"音轨(如用 2 表示第 2 首歌或用 3004 表示 CD3 里的第 4 首歌)"
- 歌词
详情
文件名
文件路径
@@ -86,7 +85,6 @@
随机播放此播放列表
清空播放队列
保存播放队列
- 显示歌词
浅色
暗色
总是
@@ -119,7 +117,6 @@
无缝播放
音频焦点丢失时降低音量
最近添加播放列表间隔
- 显示同步歌词
记住最后打开页面
"请在播放歌曲后再次尝试此操作。"
删除
@@ -151,7 +148,6 @@
用主色调着色导航栏。
用主色调着色应用快捷方式。
通知、导航等
- 当前仅支持 LRC 格式同步歌词。内嵌或外置均可。
启动时跳转到最后打开页面
正在扫描
收藏夹
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 7707e9f7..ef11c943 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -39,7 +39,6 @@
專輯演出者
年代
"音軌(用2表示第2首歌或3004表示CD3的第4首歌)"
- 歌詞
詳細資訊
檔案名稱
檔案路徑
@@ -87,7 +86,6 @@
隨機播放清單
清空播放佇列
保存播放佇列
- 顯示歌詞
明亮
暗沉
永遠
@@ -120,7 +118,6 @@
無縫播放
在焦點音訊響起時降低音量
最後新增列表的時間範圍
- 同步顯示歌詞
記住最後開啟的頁面
記住隨機播放
"請先播放一首歌後再重試一遍。"
@@ -153,7 +150,6 @@
將專輯封面的主色調設為導航列的顏色。
將主色調設為應用快捷方式的顏色
通知鈴聲、導航語音等。
- 目前僅支援 LRC 格式歌詞。內嵌或外掛皆可。
開啟時顯示最後使用的頁面
當選擇新歌曲列表時維持隨機播放模式
搜尋音樂庫…
diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml
index b24f9c9f..90c0c902 100644
--- a/app/src/main/res/values/donottranslate.xml
+++ b/app/src/main/res/values/donottranslate.xml
@@ -5,7 +5,7 @@
Karim Abou Zeid
Aidan Follestad
Maarten Corpel
- Michael Cook (Cookicons)
+ Michael Cook
Aleksandar Tešić
Eugene Cheung
Adrian
diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml
index a5756383..5c5bcbfc 100644
--- a/app/src/main/res/values/ids.xml
+++ b/app/src/main/res/values/ids.xml
@@ -1,7 +1,6 @@
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 05030b22..66d76b8d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -39,7 +39,6 @@
Album artist
Year
"Track (2 for track 2 or 3004 for CD3 track 4)"
- Lyrics
Details
File name
File path
@@ -87,7 +86,6 @@
Shuffle playlist
Clear playing queue
Save playing queue
- Show lyrics
Light
Dark
Black
@@ -121,7 +119,6 @@
Gapless playback
Reduce volume on focus loss
Last added playlist interval
- Show synchronized lyrics
Remember last tab
Remember shuffle
"Play a song first, then try again."
@@ -154,7 +151,6 @@
Colors the navigation bar in the primary color.
Colors the app shortcuts in the primary color.
Notifications, navigation etc.
- Currently only synchronized lyrics in LRC format are supported. Either embedded or as a separate file.
Go to the last opened tab on launch
Shuffle mode will stay on when selecting a new list of songs
Search your library…
diff --git a/app/src/main/res/xml/pref_now_playing_screen.xml b/app/src/main/res/xml/pref_now_playing_screen.xml
index 78b993ea..df191ce7 100644
--- a/app/src/main/res/xml/pref_now_playing_screen.xml
+++ b/app/src/main/res/xml/pref_now_playing_screen.xml
@@ -9,13 +9,6 @@
android:key="now_playing_screen_id"
android:title="@string/pref_title_now_playing_screen_appearance" />
-
-
\ No newline at end of file