MediaItem: subtitle CharSequence optimization

This commit is contained in:
Yuriy Liskov
2025-04-16 02:14:24 +03:00
parent 08009e12dd
commit d31ebda191
8 changed files with 21 additions and 14 deletions

View File

@ -12,7 +12,7 @@ public final class SampleMediaItem implements MediaItem {
private String mChannelId;
private String mCardImageUrl;
private String mParams;
private String mSecondTitle;
private CharSequence mSecondTitle;
private String mContentType;
private int mType;
private String mVideoUrl;
@ -164,7 +164,7 @@ public final class SampleMediaItem implements MediaItem {
}
@Override
public String getSecondTitle() {
public CharSequence getSecondTitle() {
return mSecondTitle;
}

View File

@ -41,9 +41,9 @@ public final class Video {
public int id;
public String title;
public String deArrowTitle;
public String secondTitle;
public CharSequence secondTitle;
private String metadataTitle;
private String metadataSecondTitle;
private CharSequence metadataSecondTitle;
public String description;
public String category;
public int itemType = -1;
@ -291,7 +291,7 @@ public final class Video {
return deArrowTitle != null ? deArrowTitle : title;
}
public String getSecondTitle() {
public CharSequence getSecondTitle() {
return secondTitle;
}
@ -299,7 +299,7 @@ public final class Video {
return deArrowTitle != null ? deArrowTitle : metadataTitle != null ? metadataTitle : title;
}
public String getPlayerSubtitle() {
public CharSequence getPlayerSubtitle() {
// Don't sync future translation because of not precise info
return metadataSecondTitle != null && !isUpcoming ? metadataSecondTitle : secondTitle;
}
@ -318,8 +318,8 @@ public final class Video {
}
String mainTitle = metadataTitle != null ? metadataTitle : title;
String subtitle = metadataSecondTitle != null ? metadataSecondTitle : secondTitle;
return hasVideo() ? extractAuthor(subtitle) : YouTubeHelper.createInfo(mainTitle, subtitle); // BAD idea
CharSequence subtitle = metadataSecondTitle != null ? metadataSecondTitle : secondTitle;
return hasVideo() ? extractAuthor(subtitle) : Helpers.toString(YouTubeHelper.createInfo(mainTitle, subtitle)); // BAD idea
}
public VideoGroup getGroup() {
@ -334,6 +334,10 @@ public final class Video {
return getGroup() != null && !getGroup().isEmpty() ? getGroup().getVideos().indexOf(this) : -1;
}
private static String extractAuthor(CharSequence secondTitle) {
return extractAuthor(Helpers.toString(secondTitle));
}
private static String extractAuthor(String secondTitle) {
String result = null;

View File

@ -216,7 +216,7 @@ public final class Playlist {
for (MediaItem v : videos) {
clips.add(new Clip(
v.getTitle(),
v.getSecondTitle(),
Helpers.toString(v.getSecondTitle()),
v.getDurationMs(),
v.getBackgroundImageUrl(),
v.getCardImageUrl(),

View File

@ -6,6 +6,9 @@ import android.app.NotificationManager;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import androidx.annotation.RequiresApi;
import com.liskovsoft.leanbackassistant.R;
import com.liskovsoft.leanbackassistant.media.Clip;
import com.liskovsoft.leanbackassistant.media.Playlist;
@ -14,7 +17,7 @@ import com.liskovsoft.sharedutils.mylogger.Log;
import com.liskovsoft.sharedutils.okhttp.OkHttpManager;
import okhttp3.Response;
@TargetApi(21)
@RequiresApi(21)
public class RecommendationsProvider {
private static final String TAG = RecommendationsProvider.class.getSimpleName();
private static final int MAX_RECOMMENDATIONS = 30;

View File

@ -55,7 +55,7 @@ public class ChannelFragment extends MultipleRowsFragment implements ChannelView
String title = mChannelPresenter.getChannel().getTitle();
String subs = mChannelPresenter.getChannel().subscriberCount;
return YouTubeHelper.createInfo(Helpers.firstNonNull(author, title), subs);
return Helpers.toString(YouTubeHelper.createInfo(Helpers.firstNonNull(author, title), subs));
}
});
}

View File

@ -572,7 +572,7 @@ public class PlaybackFragment extends SeekModePlaybackFragment implements Playba
metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_TITLE, getVideo().getPlayerTitle());
metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE, getVideo().getPlayerTitle());
metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ARTIST, getVideo().getAuthor());
metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, getVideo().getPlayerSubtitle());
metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_DISPLAY_SUBTITLE, Helpers.toString(getVideo().getPlayerSubtitle()));
metadataBuilder.putString(MediaMetadataCompat.METADATA_KEY_ALBUM_ART_URI, getVideo().getCardImageUrl());
metadataBuilder.putLong(MediaMetadataCompat.METADATA_KEY_DURATION, getDurationMs());

View File

@ -41,7 +41,7 @@ public class ChatItemMessage implements IMessage {
ChatItemMessage message = new ChatItemMessage();
message.mId = commentItem.getId();
if (commentItem.getMessage() != null && !commentItem.getMessage().trim().isEmpty()) {
String header = ServiceHelper.combineItems(
CharSequence header = ServiceHelper.combineItems(
" " + Video.TERTIARY_TEXT_DELIM + " ",
commentItem.getAuthorName(),
commentItem.getLikeCount() != null ? String.format("%s %s", commentItem.getLikeCount(), Helpers.THUMB_UP) : null,