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