mirror of
https://github.com/yuliskov/SmartTube.git
synced 2025-05-17 03:15:56 +08:00
GeneralData, PlayerData refactor
This commit is contained in:
@ -94,8 +94,8 @@ public class GeneralData implements ProfileChangeListener {
|
||||
private List<String> mChangelog;
|
||||
private Map<String, Integer> mPlaylistOrder;
|
||||
private final Map<Integer, Integer> mDefaultSections = new LinkedHashMap<>();
|
||||
private final List<Video> mPendingStreams = new CopyOnWriteArrayList<>();
|
||||
private final List<Video> mPinnedItems = new CopyOnWriteHashList<>();
|
||||
private List<Video> mPinnedItems;
|
||||
private List<Video> mPendingStreams;
|
||||
private boolean mIsFullscreenModeEnabled;
|
||||
private Map<Integer, Video> mSelectedItems;
|
||||
|
||||
@ -951,7 +951,8 @@ public class GeneralData implements ProfileChangeListener {
|
||||
mAppExitShortcut = Helpers.parseInt(split, 3, EXIT_DOUBLE_BACK);
|
||||
mIsPlayerOnlyModeEnabled = Helpers.parseBoolean(split, 4, false);
|
||||
mBackgroundShortcut = Helpers.parseInt(split, 5, BACKGROUND_PLAYBACK_SHORTCUT_HOME_BACK);
|
||||
String pinnedItems = Helpers.parseStr(split, 6);
|
||||
//String pinnedItems = Helpers.parseStr(split, 6);
|
||||
mPinnedItems = Helpers.parseList(split, 6, Video::fromString);
|
||||
mIsHideShortsFromSubscriptionsEnabled = Helpers.parseBoolean(split, 7, false);
|
||||
mIsRemapFastForwardToNextEnabled = Helpers.parseBoolean(split, 8, false);
|
||||
//mScreenDimmingTimeoutMs = Helpers.parseInt(split, 9, 1);
|
||||
@ -975,7 +976,8 @@ public class GeneralData implements ProfileChangeListener {
|
||||
mIsVPNEnabled = Helpers.parseBoolean(split, 27, false);
|
||||
mLastPlaylistTitle = Helpers.parseStr(split, 28);
|
||||
mPlaylistOrder = Helpers.parseMap(split, 29, Helpers::parseStr, Helpers::parseInt);
|
||||
String pendingStreams = Helpers.parseStr(split, 30);
|
||||
//String pendingStreams = Helpers.parseStr(split, 30);
|
||||
mPendingStreams = Helpers.parseList(split, 30, Video::fromString);
|
||||
mIsGlobalClockEnabled = Helpers.parseBoolean(split, 31, true);
|
||||
mTimeFormat = Helpers.parseInt(split, 32, -1);
|
||||
mSettingsPassword = Helpers.parseStr(split, 33);
|
||||
@ -1012,25 +1014,10 @@ public class GeneralData implements ProfileChangeListener {
|
||||
mRememberPinnedPosition = Helpers.parseBoolean(split, 62, false);
|
||||
mSelectedItems = Helpers.parseMap(split, 63, Helpers::parseInt, Video::fromString);
|
||||
|
||||
if (pinnedItems != null && !pinnedItems.isEmpty()) {
|
||||
mPinnedItems.clear();
|
||||
String[] pinnedItemsArr = Helpers.splitArray(pinnedItems);
|
||||
|
||||
for (String pinnedItem : pinnedItemsArr) {
|
||||
mPinnedItems.add(Video.fromString(pinnedItem));
|
||||
}
|
||||
} else {
|
||||
if (mPinnedItems == null) {
|
||||
initPinnedItems();
|
||||
}
|
||||
|
||||
if (pendingStreams != null && !pendingStreams.isEmpty()) {
|
||||
mPendingStreams.clear();
|
||||
String[] pendingStreamsArr = Helpers.splitArray(pendingStreams);
|
||||
for (String pendingStream : pendingStreamsArr) {
|
||||
mPendingStreams.add(Video.fromString(pendingStream));
|
||||
}
|
||||
}
|
||||
|
||||
// Backward compatibility
|
||||
enableSection(MediaGroup.TYPE_SETTINGS, true);
|
||||
|
||||
@ -1071,10 +1058,6 @@ public class GeneralData implements ProfileChangeListener {
|
||||
|
||||
@Override
|
||||
public void onProfileChanged() {
|
||||
// reset on profile change
|
||||
mPinnedItems.clear();
|
||||
mPendingStreams.clear();
|
||||
|
||||
restoreState();
|
||||
}
|
||||
}
|
||||
|
@ -92,7 +92,7 @@ public class PlayerData extends DataChangeBase implements PlayerEngineConstants,
|
||||
private boolean mIsSkipShortsEnabled;
|
||||
private boolean mIsLiveChatEnabled;
|
||||
private FormatItem mLastSubtitleFormat;
|
||||
private final Set<String> mEnabledSubtitlesPerChannel = new LinkedHashSet<>();
|
||||
private List<String> mEnabledSubtitlesPerChannel;
|
||||
private boolean mIsSubtitlesPerChannelEnabled;
|
||||
private boolean mIsSpeedPerChannelEnabled;
|
||||
private final Map<String, SpeedItem> mSpeeds = new HashMap<>();
|
||||
@ -784,7 +784,8 @@ public class PlayerData extends DataChangeBase implements PlayerEngineConstants,
|
||||
mRepeatMode = Helpers.parseInt(split, 51, PlayerUI.REPEAT_MODE_ALL);
|
||||
mAudioLanguage = Helpers.parseStr(split, 52, LocaleUtility.getCurrentLanguage(mPrefs.getContext()));
|
||||
mSubtitleLanguage = Helpers.parseStr(split, 53, LocaleUtility.getCurrentLanguage(mPrefs.getContext()));
|
||||
String enabledSubtitles = Helpers.parseStr(split, 54);
|
||||
//String enabledSubtitles = Helpers.parseStr(split, 54);
|
||||
mEnabledSubtitlesPerChannel = Helpers.parseStrList(split, 54);
|
||||
mIsSubtitlesPerChannelEnabled = Helpers.parseBoolean(split, 55, true);
|
||||
mIsSpeedPerChannelEnabled = Helpers.parseBoolean(split, 56, true);
|
||||
String[] speeds = Helpers.parseArray(split, 57);
|
||||
@ -798,16 +799,6 @@ public class PlayerData extends DataChangeBase implements PlayerEngineConstants,
|
||||
}
|
||||
}
|
||||
|
||||
if (enabledSubtitles != null) {
|
||||
String[] channelsArr = Helpers.splitArray(enabledSubtitles);
|
||||
|
||||
mEnabledSubtitlesPerChannel.clear();
|
||||
|
||||
mEnabledSubtitlesPerChannel.addAll(Arrays.asList(channelsArr));
|
||||
} else {
|
||||
mEnabledSubtitlesPerChannel.clear();
|
||||
}
|
||||
|
||||
if (!mIsAllSpeedEnabled) {
|
||||
mSpeed = 1.0f;
|
||||
}
|
||||
@ -815,8 +806,6 @@ public class PlayerData extends DataChangeBase implements PlayerEngineConstants,
|
||||
|
||||
@Override
|
||||
protected void persistState() {
|
||||
String enabledSubtitles = Helpers.mergeArray(mEnabledSubtitlesPerChannel.toArray());
|
||||
|
||||
mPrefs.setProfileData(VIDEO_PLAYER_DATA, Helpers.mergeData(mOKButtonBehavior, mUiHideTimeoutSec, null,
|
||||
mSeekPreviewMode, mIsSeekConfirmPauseEnabled,
|
||||
mIsClockEnabled, mIsRemainingTimeEnabled, mBackgroundMode, null, // afrData was there
|
||||
@ -828,7 +817,7 @@ public class PlayerData extends DataChangeBase implements PlayerEngineConstants,
|
||||
mIsGlobalEndingTimeEnabled, mIsEndingTimeEnabled, mIsDoubleRefreshRateEnabled, mIsSeekConfirmPlayEnabled,
|
||||
mStartSeekIncrementMs, null, mSubtitleScale, mPlayerVolume, mIsTooltipsEnabled, mSubtitlePosition, mIsNumberKeySeekEnabled,
|
||||
mIsSkip24RateEnabled, mAfrPauseMs, mIsLiveChatEnabled, Helpers.toString(mLastSubtitleFormat), mLastSpeed, mVideoRotation,
|
||||
mVideoZoom, mRepeatMode, mAudioLanguage, mSubtitleLanguage, enabledSubtitles, mIsSubtitlesPerChannelEnabled,
|
||||
mVideoZoom, mRepeatMode, mAudioLanguage, mSubtitleLanguage, mEnabledSubtitlesPerChannel, mIsSubtitlesPerChannelEnabled,
|
||||
mIsSpeedPerChannelEnabled, Helpers.mergeArray(mSpeeds.values().toArray()), mPitch, mIsSkipShortsEnabled
|
||||
));
|
||||
|
||||
@ -839,7 +828,6 @@ public class PlayerData extends DataChangeBase implements PlayerEngineConstants,
|
||||
public void onProfileChanged() {
|
||||
// reset on profile change
|
||||
mSpeeds.clear();
|
||||
mEnabledSubtitlesPerChannel.clear();
|
||||
|
||||
restoreState();
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
@echo off
|
||||
|
||||
echo Running %~n0...
|
||||
echo This script removes all apks from the repo.
|
||||
echo This script removes old apks from the repo.
|
||||
echo Existing tags and releases won't be touched.
|
||||
echo To skip specific tags add your patterns below.
|
||||
echo This could be helpful when you need to clean the repo after DMCA Notice.
|
||||
|
Reference in New Issue
Block a user