feat: add option to hide channel tabs

This commit is contained in:
ThetaDev 2022-10-23 21:13:43 +02:00 committed by Stypox
parent c3d1e75a8f
commit bb062f07f9
No known key found for this signature in database
GPG key ID: 4BDF1B40A49FDD23
7 changed files with 127 additions and 4 deletions

View file

@ -0,0 +1,65 @@
package org.schabi.newpipe.util;
import android.content.Context;
import android.content.SharedPreferences;
import androidx.annotation.StringRes;
import org.schabi.newpipe.R;
import org.schabi.newpipe.extractor.linkhandler.ChannelTabHandler.Tab;
import java.util.Set;
public class ChannelTabs {
@StringRes
private static int getShowTabKey(final Tab tab) {
switch (tab) {
case Playlists:
return R.string.show_channel_tabs_playlists;
case Livestreams:
return R.string.show_channel_tabs_livestreams;
case Shorts:
return R.string.show_channel_tabs_shorts;
case Channels:
return R.string.show_channel_tabs_channels;
}
return -1;
}
@StringRes
public static int getTranslationKey(final Tab tab) {
switch (tab) {
case Playlists:
return R.string.channel_tab_playlists;
case Livestreams:
return R.string.channel_tab_livestreams;
case Shorts:
return R.string.channel_tab_shorts;
case Channels:
return R.string.channel_tab_channels;
}
return R.string.unknown_content;
}
public static boolean showChannelTab(final Context context,
final SharedPreferences sharedPreferences,
@StringRes final int key) {
final Set<String> enabledTabs = sharedPreferences.getStringSet(
context.getString(R.string.show_channel_tabs_key), null);
if (enabledTabs == null) {
return true; // default to true
} else {
return enabledTabs.contains(context.getString(key));
}
}
public static boolean showChannelTab(final Context context,
final SharedPreferences sharedPreferences,
final Tab tab) {
final int key = ChannelTabs.getShowTabKey(tab);
if (key == -1) {
return false;
}
return showChannelTab(context, sharedPreferences, key);
}
}