1
0
Fork 0
mirror of https://github.com/TeamNewPipe/NewPipe.git synced 2025-10-05 19:42:19 +02:00
Added FEEDGROUP Tab Code to
 - ChooseTabsFragment
 - Tab

Added strings:
- feed_group_page_summary
This commit is contained in:
Diana Victoria Furrer 2025-05-30 20:47:37 +02:00
parent 436626fa83
commit f8ed8e575e
3 changed files with 111 additions and 1 deletions

View file

@ -34,6 +34,7 @@ import org.schabi.newpipe.error.UserAction;
import org.schabi.newpipe.settings.SelectChannelFragment;
import org.schabi.newpipe.settings.SelectKioskFragment;
import org.schabi.newpipe.settings.SelectPlaylistFragment;
import org.schabi.newpipe.settings.SelectFeedGroupFragment;
import org.schabi.newpipe.settings.tabs.AddTabDialog.ChooseTabListItem;
import org.schabi.newpipe.util.ThemeHelper;
@ -203,6 +204,14 @@ public class ChooseTabsFragment extends Fragment {
});
selectPlaylistFragment.show(getParentFragmentManager(), "select_playlist");
return;
case FEEDGROUP:
final SelectFeedGroupFragment selectFeedGroupFragment =
new SelectFeedGroupFragment();
selectFeedGroupFragment.setOnSelectedListener(
(groupId, name, iconId) ->
addTab(new Tab.FeedGroupTab(groupId, name, iconId)));
selectFeedGroupFragment.show(getParentFragmentManager(), "select_feed_group");
return;
default:
addTab(type.getTab());
break;
@ -244,6 +253,11 @@ public class ChooseTabsFragment extends Fragment {
getString(R.string.playlist_page_summary),
tab.getTabIconRes(context)));
break;
case FEEDGROUP:
returnList.add(new ChooseTabListItem(tab.getTabId(),
getString(R.string.feed_group_page_summary),
tab.getTabIconRes(context)));
break;
default:
if (!tabList.contains(tab)) {
returnList.add(new ChooseTabListItem(context, tab));
@ -396,6 +410,9 @@ public class ChooseTabsFragment extends Fragment {
? getString(R.string.local)
: getNameOfServiceById(serviceId);
return serviceName + "/" + tab.getTabName(requireContext());
case FEEDGROUP:
return getString(R.string.feed_groups_header_title)
+ "/" + tab.getTabName(requireContext());
default:
return tab.getTabName(requireContext());
}

View file

@ -93,6 +93,8 @@ public abstract class Tab {
return new ChannelTab(jsonObject);
case PLAYLIST:
return new PlaylistTab(jsonObject);
case FEEDGROUP:
return new FeedGroupTab(jsonObject);
}
}
@ -162,7 +164,8 @@ public abstract class Tab {
HISTORY(new HistoryTab()),
KIOSK(new KioskTab()),
CHANNEL(new ChannelTab()),
PLAYLIST(new PlaylistTab());
PLAYLIST(new PlaylistTab()),
FEEDGROUP(new FeedGroupTab());
private final Tab tab;
@ -652,4 +655,93 @@ public abstract class Tab {
return playlistType;
}
}
public static class FeedGroupTab extends Tab {
public static final int ID = 9;
private static final String JSON_FEED_GROUP_ID_KEY = "feed_group_id";
private static final String JSON_FEED_GROUP_NAME_KEY = "feed_group_name";
private static final String JSON_FEED_GROUP_ICON_KEY = "feed_group_icon";
private Long feedGroupId;
private String feedGroupName;
private int iconId;
private FeedGroupTab() {
this((long) -1, NO_NAME, R.drawable.ic_asterisk);
}
public FeedGroupTab(final Long feedGroupId, final String feedGroupName,
final int iconId) {
this.feedGroupId = feedGroupId;
this.feedGroupName = feedGroupName;
this.iconId = iconId;
}
public FeedGroupTab(final JsonObject jsonObject) {
super(jsonObject);
}
@Override
public int getTabId() {
return ID;
}
@Override
public String getTabName(final Context context) {
return feedGroupName;
}
@DrawableRes
@Override
public int getTabIconRes(final Context context) {
return this.iconId;
}
@Override
public FeedFragment getFragment(final Context context) {
return FeedFragment.newInstance(feedGroupId, feedGroupName);
}
@Override
protected void writeDataToJson(final JsonStringWriter writerSink) {
writerSink.value(JSON_FEED_GROUP_ID_KEY, feedGroupId)
.value(JSON_FEED_GROUP_NAME_KEY, feedGroupName)
.value(JSON_FEED_GROUP_ICON_KEY, iconId);
}
@Override
protected void readDataFromJson(final JsonObject jsonObject) {
feedGroupId = jsonObject.getLong(JSON_FEED_GROUP_ID_KEY, -1);
feedGroupName = jsonObject.getString(JSON_FEED_GROUP_NAME_KEY, NO_NAME);
iconId = jsonObject.getInt(JSON_FEED_GROUP_ICON_KEY, R.drawable.ic_asterisk);
}
@Override
public boolean equals(final Object obj) {
if (!(obj instanceof FeedGroupTab)) {
return false;
}
final FeedGroupTab other = (FeedGroupTab) obj;
return super.equals(obj)
&& feedGroupId.equals(other.feedGroupId)
&& feedGroupName.equals(other.feedGroupName)
&& iconId == other.iconId;
}
@Override
public int hashCode() {
return Objects.hash(getTabId(), feedGroupId, feedGroupName, iconId);
}
public Long getFeedGroupId() {
return feedGroupId;
}
public String getFeedGroupName() {
return feedGroupName;
}
public int getIconId() {
return iconId;
}
}
}

View file

@ -689,6 +689,7 @@
</plurals>
<!-- Feed -->
<string name="fragment_feed_title">What\'s New</string>
<string name="feed_group_page_summary">Channel group page</string>
<string name="feed_groups_header_title">Channel groups</string>
<string name="feed_oldest_subscription_update">Feed last updated: %s</string>
<string name="feed_subscription_not_loaded_count">Not loaded: %d</string>