Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/main/java/top/gregtao/concerto/api/WithMetaData.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@
public interface WithMetaData {

MetaData getMeta();

boolean isMetaLoaded();
}
4 changes: 4 additions & 0 deletions src/main/java/top/gregtao/concerto/music/Music.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ public boolean isLoaded() {
return this.isMetaLoaded;
}

public boolean isMetaLoaded() {
return this.isMetaLoaded;
}

public abstract InputStream getMusicSource() throws MusicSourceNotFoundException;

public abstract String getLink();
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/top/gregtao/concerto/music/list/Playlist.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,10 @@ public boolean isLoaded() {
return this.loaded;
}

public boolean isMetaLoaded() {
return this.loaded;
}

public boolean isAlbum() {
return this.isAlbum;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ protected void init() {
this.playlistList = this.initWidget();

this.onPageTurned(0);
this.addDrawableChild(this.playlistList);
this.addSelectableChild(this.playlistList);

this.addDrawableChild(ButtonWidget.builder(Text.translatable("concerto.screen.daily_recommendation"),
Expand Down Expand Up @@ -84,9 +85,7 @@ protected void init() {
@Override
public void render(DrawContext matrices, int mouseX, int mouseY, float delta) {
super.render(matrices, mouseX, mouseY, delta);
if (this.loggedIn()) {
this.playlistList.render(matrices, mouseX, mouseY, delta);
} else {
if (!this.loggedIn()) {
matrices.drawCenteredTextWithShadow(this.textRenderer, Text.translatable("concerto.screen.163.not_login"),
this.width / 2, this.height / 2, 0xffffffff);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
import top.gregtao.concerto.screen.widget.ConcertoListWidget;
import top.gregtao.concerto.screen.widget.MetadataListWidget;

import java.util.ListIterator;

public class QQMusicUserScreen extends PageScreen {
private MetadataListWidget<QQMusicPlaylist> playlistList;

Expand Down Expand Up @@ -54,6 +52,7 @@ protected void init() {
this.playlistList = this.initWidget();

this.onPageTurned(0);
this.addDrawableChild(this.playlistList);
this.addSelectableChild(this.playlistList);

this.addDrawableChild(ButtonWidget.builder(Text.translatable("concerto.screen.play"), button -> {
Expand All @@ -72,12 +71,7 @@ protected void init() {
@Override
public void render(DrawContext matrices, int mouseX, int mouseY, float delta) {
super.render(matrices, mouseX, mouseY, delta);
if (this.loggedIn()) {
ListIterator<ConcertoListWidget<QQMusicPlaylist>.Entry> iterator = this.playlistList.children().listIterator();
while (iterator.hasNext() && iterator.next().item.isLoaded()) {
if (!iterator.hasNext()) this.playlistList.render(matrices, mouseX, mouseY, delta);
}
} else {
if (!this.loggedIn()) {
matrices.drawCenteredTextWithShadow(this.textRenderer, Text.translatable("concerto.screen.qq.not_login"),
this.width / 2, this.height / 2, 0xffffffff);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,11 @@ public MetadataListWidget(int width, int height, int top, int itemHeight, int co

@Override
public Text getNarration(int index, T t) {
MetaData meta = t.getMeta();
return Text.literal(meta.title()).append(" ").append(Text.literal(meta.author()).formatted(Formatting.BOLD, Formatting.GRAY));
if (t.isMetaLoaded()) {
MetaData meta = t.getMeta();
return Text.literal(meta.title()).append(" ").append(Text.literal(meta.author()).formatted(Formatting.BOLD, Formatting.GRAY));
} else {
return Text.translatable("concerto.loading");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,12 @@ public MusicWithUUIDListWidget(int width, int height, int top, int itemHeight) {

@Override
public Text getNarration(int index, Pair<Music, UUID> t) {
MusicMetaData meta = t.getFirst().getMeta();
return Text.literal(meta.title() + " - " + meta.getSource());
if (t.getFirst().isMetaLoaded()) {
MusicMetaData meta = t.getFirst().getMeta();
return Text.literal(meta.title() + " - " + meta.getSource());
} else {
return Text.translatable("concerto.loading");
}
}

public MusicWithUUIDListWidget(int width, int height, int top, int itemHeight, int color) {
Expand Down