GeneralData, PlayerData refactor

This commit is contained in:
Yuriy Liskov 2024-04-24 01:13:26 +03:00
parent ac4a79e632
commit 95fe8bb4de
3 changed files with 12 additions and 41 deletions

View File

@ -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();
}
}

View File

@ -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();
}

View File

@ -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.