Set comment replies fragment title

This commit is contained in:
Stypox 2023-04-12 08:54:58 +02:00
parent 94ea329b50
commit 4b6392df54
No known key found for this signature in database
GPG Key ID: 4BDF1B40A49FDD23
2 changed files with 13 additions and 12 deletions

View File

@ -2,8 +2,6 @@ package org.schabi.newpipe.fragments.list.comments;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -18,6 +16,7 @@ import org.schabi.newpipe.extractor.comments.CommentsInfoItem;
import org.schabi.newpipe.fragments.list.BaseListInfoFragment; import org.schabi.newpipe.fragments.list.BaseListInfoFragment;
import org.schabi.newpipe.info_list.ItemViewMode; import org.schabi.newpipe.info_list.ItemViewMode;
import org.schabi.newpipe.util.ExtractorHelper; import org.schabi.newpipe.util.ExtractorHelper;
import org.schabi.newpipe.util.Localization;
import java.util.Queue; import java.util.Queue;
@ -26,10 +25,10 @@ import io.reactivex.rxjava3.core.Single;
public final class CommentRepliesFragment public final class CommentRepliesFragment
extends BaseListInfoFragment<CommentsInfoItem, CommentRepliesInfo> { extends BaseListInfoFragment<CommentsInfoItem, CommentRepliesInfo> {
// has the same content as super.currentInfo, except that it's never null // the original comments info loaded alongside the stream
private CommentRepliesInfo commentRepliesInfo;
// the original comments info loaded alongside stream
private CommentsInfo commentsInfo; private CommentsInfo commentsInfo;
// the comment to show replies of
private CommentsInfoItem commentsInfoItem;
/*////////////////////////////////////////////////////////////////////////// /*//////////////////////////////////////////////////////////////////////////
@ -43,8 +42,8 @@ public final class CommentRepliesFragment
public CommentRepliesFragment(final CommentsInfo commentsInfo, public CommentRepliesFragment(final CommentsInfo commentsInfo,
final CommentsInfoItem commentsInfoItem) { final CommentsInfoItem commentsInfoItem) {
this(); this();
this.commentRepliesInfo = CommentRepliesInfo.getInfo(commentsInfoItem);
this.commentsInfo = commentsInfo; this.commentsInfo = commentsInfo;
this.commentsInfoItem = commentsInfoItem;
setInitialData(commentsInfo.getServiceId(), commentsInfo.getUrl(), commentsInfo.getName()); setInitialData(commentsInfo.getServiceId(), commentsInfo.getUrl(), commentsInfo.getName());
} }
@ -58,21 +57,21 @@ public final class CommentRepliesFragment
/*////////////////////////////////////////////////////////////////////////// /*//////////////////////////////////////////////////////////////////////////
// State Saving // State saving
//////////////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////////////*/
@Override @Override
public void writeTo(final Queue<Object> objectsToSave) { public void writeTo(final Queue<Object> objectsToSave) {
super.writeTo(objectsToSave); super.writeTo(objectsToSave);
objectsToSave.add(commentRepliesInfo);
objectsToSave.add(commentsInfo); objectsToSave.add(commentsInfo);
objectsToSave.add(commentsInfoItem);
} }
@Override @Override
public void readFrom(@NonNull final Queue<Object> savedObjects) throws Exception { public void readFrom(@NonNull final Queue<Object> savedObjects) throws Exception {
super.readFrom(savedObjects); super.readFrom(savedObjects);
commentRepliesInfo = (CommentRepliesInfo) savedObjects.poll();
commentsInfo = (CommentsInfo) savedObjects.poll(); commentsInfo = (CommentsInfo) savedObjects.poll();
commentsInfoItem = (CommentsInfoItem) savedObjects.poll();
} }
@ -82,7 +81,9 @@ public final class CommentRepliesFragment
@Override @Override
protected Single<CommentRepliesInfo> loadResult(final boolean forceLoad) { protected Single<CommentRepliesInfo> loadResult(final boolean forceLoad) {
return Single.just(this.commentRepliesInfo); return Single.fromCallable(() -> CommentRepliesInfo.getInfo(commentsInfoItem,
// the reply count string will be shown as the activity title
Localization.replyCount(requireContext(), commentsInfoItem.getReplyCount())));
} }
@Override @Override

View File

@ -13,11 +13,11 @@ public final class CommentRepliesInfo extends ListInfo<CommentsInfoItem> {
super(serviceId, listUrlIdHandler, name); super(serviceId, listUrlIdHandler, name);
} }
public static CommentRepliesInfo getInfo(final CommentsInfoItem comment) { public static CommentRepliesInfo getInfo(final CommentsInfoItem comment, final String name) {
final ListLinkHandler handler = final ListLinkHandler handler =
new ListLinkHandler("", "", "", Collections.emptyList(), null); new ListLinkHandler("", "", "", Collections.emptyList(), null);
final CommentRepliesInfo relatedItemInfo = new CommentRepliesInfo( final CommentRepliesInfo relatedItemInfo = new CommentRepliesInfo(
comment.getServiceId(), handler, comment.getName()); comment.getServiceId(), handler, name); // the name will be shown as fragment title
relatedItemInfo.setNextPage(comment.getReplies()); relatedItemInfo.setNextPage(comment.getReplies());
relatedItemInfo.setRelatedItems(Collections.emptyList()); // since it must be non-null relatedItemInfo.setRelatedItems(Collections.emptyList()); // since it must be non-null
return relatedItemInfo; return relatedItemInfo;