@applicaster/zapp-react-native-ui-components 13.0.0-rc.14 → 13.0.0-rc.140
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Components/AppContainer/__tests__/AppContainer.test.js +4 -6
- package/Components/AppContainer/__tests__/__snapshots__/AppContainer.test.js.snap +1 -1
- package/Components/AudioPlayer/index.tsx +15 -0
- package/Components/AudioPlayer/mobile/Layout.tsx +63 -0
- package/Components/AudioPlayer/mobile/__tests__/__snapshots__/audioPlayerMobileLayout.test.js.snap +66 -0
- package/Components/AudioPlayer/mobile/__tests__/audioPlayerMobileLayout.test.js +18 -0
- package/Components/AudioPlayer/mobile/index.tsx +23 -0
- package/Components/AudioPlayer/tv/Artwork.tsx +40 -0
- package/Components/AudioPlayer/{AudioPlayerLayout.tsx → tv/Layout.tsx} +37 -79
- package/Components/AudioPlayer/{Runtime.tsx → tv/Runtime.tsx} +2 -1
- package/Components/AudioPlayer/{Summary.tsx → tv/Summary.tsx} +12 -9
- package/Components/AudioPlayer/{Title.tsx → tv/Title.tsx} +12 -9
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/Runtime.test.js +5 -8
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/Runtime.test.js.snap +6 -6
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/artWork.test.js.snap +11 -6
- package/Components/AudioPlayer/tv/__tests__/__snapshots__/audioPlayer.test.js.snap +170 -0
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/channel.test.js.snap +3 -3
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/summary.test.js.snap +3 -3
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/__snapshots__/title.test.js.snap +3 -3
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/artWork.test.js +3 -5
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/audioPlayer.test.js +5 -7
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/channel.test.js +3 -5
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/summary.test.js +3 -5
- package/Components/AudioPlayer/{__tests__ → tv/__tests__}/title.test.js +3 -5
- package/Components/AudioPlayer/{helpers.tsx → tv/helpers.tsx} +3 -5
- package/Components/AudioPlayer/{AudioPlayer.tsx → tv/index.tsx} +21 -62
- package/Components/AudioPlayer/types.ts +40 -0
- package/Components/BaseFocusable/index.ios.ts +1 -1
- package/Components/BaseFocusable/index.tsx +67 -31
- package/Components/Cell/Cell.tsx +14 -14
- package/Components/Cell/CellWithFocusable.tsx +50 -59
- package/Components/Cell/CellWrapper.tsx +18 -0
- package/Components/Cell/TvOSCellComponent.tsx +20 -26
- package/Components/Cell/__tests__/CellWIthFocusable.test.js +13 -6
- package/Components/Cell/index.js +3 -1
- package/Components/Cell/styles.ts +17 -0
- package/Components/CellRendererResolver/__tests__/cellRendererResolver.test.js +50 -50
- package/Components/CellRendererResolver/index.ts +2 -1
- package/Components/ComponentResolver/__tests__/__snapshots__/componentResolver.test.js.snap +1 -42
- package/Components/ComponentResolver/__tests__/componentResolver.test.js +26 -30
- package/Components/ContentScreen/__tests__/contentScreen.test.js +3 -3
- package/Components/DisplayState/__tests__/__snapshots__/displayState.test.js.snap +2 -2
- package/Components/ErrorScreen/index.tsx +14 -6
- package/Components/Focusable/Focusable.tsx +1 -54
- package/Components/Focusable/FocusableTvOS.tsx +6 -2
- package/Components/Focusable/Touchable.tsx +19 -20
- package/Components/Focusable/index.android.tsx +10 -3
- package/Components/FocusableCell/index.tsx +1 -1
- package/Components/FocusableGroup/FocusableTvOS.tsx +34 -86
- package/Components/FocusableGroup/index.tsx +0 -3
- package/Components/FocusableList/index.tsx +26 -10
- package/Components/FocusableScrollView/index.tsx +43 -13
- package/Components/GeneralContentScreen/GeneralContentScreen.tsx +3 -0
- package/Components/GeneralContentScreen/utils/__tests__/useCurationAPI.test.js +9 -0
- package/Components/GeneralContentScreen/utils/useCurationAPI.ts +5 -3
- package/Components/GeneralContentScreen/utils/useEventAlerts.ts +30 -0
- package/Components/HandlePlayable/HandlePlayable.tsx +21 -27
- package/Components/Layout/TV/LayoutBackground.tsx +28 -0
- package/Components/Layout/TV/NavBarContainer.tsx +19 -23
- package/Components/Layout/TV/ScreenContainer.tsx +8 -2
- package/Components/Layout/TV/ScreenLayoutContextProvider.tsx +5 -0
- package/Components/Layout/TV/__tests__/ScreenContainer.test.tsx +3 -1
- package/Components/Layout/TV/__tests__/__snapshots__/LayoutContainer.test.tsx.snap +1 -1
- package/Components/Layout/TV/__tests__/__snapshots__/NavBarContainer.test.tsx.snap +6 -5
- package/Components/Layout/TV/__tests__/__snapshots__/ScreenContainer.test.tsx.snap +12 -11
- package/Components/Layout/TV/__tests__/__snapshots__/index.test.tsx.snap +15 -10
- package/Components/Layout/TV/__tests__/index.test.tsx +14 -4
- package/Components/Layout/TV/index.tsx +6 -20
- package/Components/Layout/TV/index.web.tsx +4 -1
- package/Components/MasterCell/DefaultComponents/ActionButton.tsx +2 -3
- package/Components/MasterCell/DefaultComponents/BorderContainerView/__tests__/index.test.tsx +66 -0
- package/Components/MasterCell/DefaultComponents/BorderContainerView/index.tsx +4 -1
- package/Components/MasterCell/DefaultComponents/Image/Image.ios.tsx +10 -15
- package/Components/MasterCell/DefaultComponents/Image/hooks/useImage.ts +11 -7
- package/Components/MasterCell/DefaultComponents/ImageBorderContainer/__tests__/index.test.ts +93 -0
- package/Components/MasterCell/DefaultComponents/LiveImage/index.tsx +2 -2
- package/Components/MasterCell/DefaultComponents/SecondaryImage/__tests__/__snapshots__/Image.test.tsx.snap +3 -3
- package/Components/MasterCell/DefaultComponents/SecondaryImage/utils.ts +1 -1
- package/Components/MasterCell/DefaultComponents/__tests__/image.test.js +1 -1
- package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/const.ts +3 -0
- package/Components/MasterCell/DefaultComponents/tv/TvActionButtons/index.ts +6 -6
- package/Components/MasterCell/SharedUI/CollapsibleTextContainer/__tests__/__snapshots__/index.test.tsx.snap +1 -1
- package/Components/MasterCell/SharedUI/ProgressBar/hooks/useFillInPercent.ts +2 -8
- package/Components/MasterCell/__tests__/__snapshots__/dataAdapter.test.js.snap +180 -180
- package/Components/MasterCell/__tests__/__snapshots__/elementMapper.test.js.snap +11 -19
- package/Components/MasterCell/__tests__/__snapshots__/masterCell.test.js.snap +6 -235
- package/Components/MasterCell/__tests__/elementMapper.test.js +18 -5
- package/Components/MasterCell/__tests__/masterCell.test.js +26 -26
- package/Components/MasterCell/hooks/useAsyncRendering/MasterCellAsyncRenderManager.ts +2 -2
- package/Components/MasterCell/hooks/useAsyncRendering/index.ts +2 -2
- package/Components/MasterCell/utils/behaviorProvider.ts +136 -0
- package/Components/MasterCell/utils/index.ts +9 -135
- package/Components/ModalComponent/BottomSheetModalContent.tsx +66 -54
- package/Components/ModalComponent/Button/Item.tsx +6 -5
- package/Components/ModalComponent/Button/assets.ts +1 -1
- package/Components/ModalComponent/Button/index.tsx +45 -62
- package/Components/ModalComponent/Header/index.tsx +12 -11
- package/Components/ModalComponent/utils.ts +55 -7
- package/Components/OfflineHandler/NotificationView/NotificationView.lg.tsx +2 -2
- package/Components/OfflineHandler/NotificationView/NotificationView.samsung.tsx +2 -2
- package/Components/OfflineHandler/NotificationView/__tests__/index.test.tsx +0 -5
- package/Components/OfflineHandler/__tests__/__snapshots__/index.test.tsx.snap +7 -7
- package/Components/OfflineHandler/__tests__/index.test.tsx +28 -25
- package/Components/OfflineHandler/utils/index.ts +1 -1
- package/Components/PlayerContainer/PlayerContainer.tsx +76 -66
- package/Components/PlayerContainer/PlayerContainerContext.tsx +9 -0
- package/Components/PlayerContainer/ProgramInfo/index.tsx +2 -2
- package/Components/PlayerImageBackground/index.tsx +2 -2
- package/Components/River/ComponentsMap/ComponentsMap.tsx +49 -68
- package/Components/River/ComponentsMap/hooks/useLoadingState.ts +78 -51
- package/Components/River/RefreshControl.tsx +1 -1
- package/Components/River/RiverFooter.tsx +39 -9
- package/Components/River/RiverItem.tsx +44 -4
- package/Components/River/TV/index.tsx +6 -1
- package/Components/River/__tests__/__snapshots__/componentsMap.test.js.snap +115 -46
- package/Components/River/__tests__/__snapshots__/river.test.js.snap +21 -83
- package/Components/River/__tests__/componentsMap.test.js +64 -17
- package/Components/River/__tests__/river.test.js +75 -40
- package/Components/RouteManager/TestId.tsx +1 -5
- package/Components/RouteManager/__tests__/__snapshots__/routeManager.test.js.snap +11 -5
- package/Components/RouteManager/__tests__/routeManager.test.js +29 -14
- package/Components/RouteManager/__tests__/testId.test.js +4 -6
- package/Components/Screen/TV/__tests__/index.web.test.tsx +26 -0
- package/Components/Screen/TV/index.web.tsx +5 -6
- package/Components/Screen/__tests__/Screen.test.tsx +53 -31
- package/Components/Screen/__tests__/__snapshots__/Screen.test.tsx.snap +6 -6
- package/Components/Screen/hooks.ts +53 -0
- package/Components/Screen/index.tsx +16 -42
- package/Components/ScreenResolver/__tests__/screenResolver.test.js +95 -70
- package/Components/Tabs/Tab.tsx +12 -9
- package/Components/TextInputTv/__tests__/TextInputTv.test.js +42 -42
- package/Components/TextInputTv/__tests__/__snapshots__/TextInputTv.test.js.snap +7 -0
- package/Components/TextInputTv/index.tsx +6 -5
- package/Components/TopMarginApplicator/TopMarginApplicator.tsx +2 -3
- package/Components/Touchable/__tests__/__snapshots__/touchable.test.tsx.snap +2 -2
- package/Components/TrackedView/index.tsx +1 -0
- package/Components/Transitioner/AnimationManager.js +15 -15
- package/Components/Transitioner/Scene.tsx +53 -24
- package/Components/Transitioner/Transitioner.tsx +3 -3
- package/Components/Transitioner/__tests__/Scene.test.js +25 -14
- package/Components/Transitioner/__tests__/__snapshots__/AnimationManager.test.js.snap +26 -26
- package/Components/Transitioner/__tests__/__snapshots__/Scene.test.js.snap +10 -50
- package/Components/Transitioner/__tests__/__snapshots__/config.test.js.snap +20 -20
- package/Components/Transitioner/__tests__/__snapshots__/transitioner.test.js.snap +4 -4
- package/Components/Transitioner/__tests__/transitioner.test.js +13 -4
- package/Components/Transitioner/index.js +8 -4
- package/Components/VideoLive/LiveImageManager.ts +27 -1
- package/Components/VideoLive/PlayerLiveImageComponent.tsx +36 -24
- package/Components/VideoLive/__tests__/PlayerLiveImageComponent.test.tsx +63 -8
- package/Components/VideoLive/__tests__/__snapshots__/PlayerLiveImageComponent.test.tsx.snap +6 -10
- package/Components/VideoModal/ModalAnimation/AnimatedPlayerModalWrapper.tsx +1 -1
- package/Components/VideoModal/ModalAnimation/AnimatedScrollModal.tsx +51 -31
- package/Components/VideoModal/ModalAnimation/AnimatedVideoPlayerComponent.tsx +8 -4
- package/Components/VideoModal/ModalAnimation/AnimationComponent.tsx +48 -23
- package/Components/VideoModal/ModalAnimation/ModalAnimationContext.tsx +16 -15
- package/Components/VideoModal/ModalAnimation/__tests__/getMoveUpValue.test.ts +108 -0
- package/Components/VideoModal/ModalAnimation/const.ts +5 -0
- package/Components/VideoModal/ModalAnimation/index.ts +4 -1
- package/Components/VideoModal/ModalAnimation/useModalAnimationContext.ts +6 -0
- package/Components/VideoModal/ModalAnimation/utils.ts +32 -2
- package/Components/VideoModal/OpaqueLayer.tsx +33 -0
- package/Components/VideoModal/PlayerDetails.tsx +18 -10
- package/Components/VideoModal/PlayerWrapper.tsx +51 -57
- package/Components/VideoModal/VideoModal.tsx +17 -11
- package/Components/VideoModal/__tests__/PlayerDetails.test.tsx +5 -2
- package/Components/VideoModal/__tests__/PlayerWrapper.test.tsx +13 -10
- package/Components/VideoModal/__tests__/__snapshots__/PlayerDetails.test.tsx.snap +2 -40
- package/Components/VideoModal/__tests__/__snapshots__/PlayerWrapper.test.tsx.snap +74 -104
- package/Components/VideoModal/hooks/__tests__/useDelayedPlayerDetails.test.ts +51 -0
- package/Components/VideoModal/hooks/index.ts +7 -0
- package/Components/VideoModal/hooks/useDelayedPlayerDetails.ts +38 -0
- package/Components/VideoModal/hooks/utils/__tests__/showDetails.test.ts +91 -0
- package/Components/VideoModal/hooks/utils/index.ts +33 -0
- package/Components/VideoModal/utils.ts +6 -9
- package/Components/Viewport/ViewportAware/__tests__/__snapshots__/viewportAware.test.js.snap +24 -36
- package/Components/Viewport/ViewportAware/__tests__/viewportAware.test.js +12 -18
- package/Components/Viewport/ViewportTracker/__tests__/__snapshots__/viewportTracker.test.js.snap +1 -1
- package/Components/Viewport/__tests__/utils.test.js +5 -4
- package/Components/ZappUIComponent/Placeholder.tsx +3 -1
- package/Components/ZappUIComponent/__tests__/{ZappUIComponent.test.js → ZappUIComponent.test.tsx} +26 -10
- package/Components/ZappUIComponent/index.tsx +4 -17
- package/Components/default-cell-renderer/__tests__/defaultCellRenderer.test.tsx +20 -17
- package/Components/default-cell-renderer/viewTrees/tv/DefaultCell/__tests__/DefaultCell.test.tsx +15 -11
- package/Contexts/ComponentsMapOffsetContext/index.tsx +49 -0
- package/Contexts/ConfigutaionContext/__tests__/__snapshots__/ConfigurationProvider.test.tsx.snap +1 -1
- package/Contexts/FocusableGroupContext/withFocusableContext.tsx +4 -10
- package/Contexts/HeaderOffsetContext/index.tsx +4 -6
- package/Contexts/ScreenContext/index.tsx +6 -12
- package/Contexts/ScreenLayoutContext/index.tsx +5 -3
- package/Decorators/Navigator/__tests__/navigator.test.js +16 -16
- package/Decorators/Navigator/index.tsx +1 -1
- package/Decorators/RiverFeedLoader/__tests__/__snapshots__/riverFeedLoader.test.tsx.snap +77 -77
- package/Decorators/RiverFeedLoader/__tests__/riverFeedLoader.test.tsx +34 -39
- package/Decorators/RiverFeedLoader/__tests__/utils.test.ts +0 -9
- package/Decorators/RiverFeedLoader/index.tsx +1 -1
- package/Decorators/RiverFeedLoader/utils/getDatasourceUrl.ts +39 -0
- package/Decorators/RiverFeedLoader/utils/index.ts +29 -0
- package/Decorators/RiverFeedLoader/utils/usePipesContexts.ts +40 -0
- package/Decorators/RiverResolver/__tests__/riverResolver.test.tsx +27 -27
- package/Decorators/RiverResolver/index.tsx +6 -8
- package/Decorators/ZappPipesDataConnector/__tests__/Hero.js +1 -1
- package/Decorators/ZappPipesDataConnector/__tests__/zappPipesDataConnector.test.js +29 -22
- package/Decorators/ZappPipesDataConnector/index.tsx +7 -3
- package/package.json +13 -11
- package/tsconfig.json +2 -3
- package/.babelrc +0 -8
- package/Components/AudioPlayer/Artwork.tsx +0 -35
- package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayer.test.js.snap +0 -123
- package/Components/AudioPlayer/__tests__/__snapshots__/audioPlayerLayout.test.js.snap +0 -50
- package/Components/AudioPlayer/__tests__/audioPlayerLayout.test.js +0 -27
- package/Components/AudioPlayer/index.ts +0 -1
- package/Components/Cell/CellStyles/FallbackCellStyle/index.js +0 -157
- package/Components/Cell/CellStyles/Hero/index.js +0 -111
- package/Components/Cell/CellStyles/ScreenSelector/index.js +0 -68
- package/Components/Cell/CellStyles/cellStylesResolver.ts +0 -19
- package/Components/Cell/CellStyles/colors.js +0 -40
- package/Components/Cell/CellStyles/index.js +0 -15
- package/Components/CellRendererResolver/__tests__/__snapshots__/cellRendererResolver.test.js.snap +0 -53
- package/Components/RouteManager/__tests__/__snapshots__/testId.test.js.snap +0 -17
- package/Components/ScreenResolver/__tests__/__snapshots__/screenResolver.test.js.snap +0 -17
- package/Components/ZappUIComponent/__tests__/__snapshots__/ZappUIComponent.test.js.snap +0 -91
- package/Components/default-cell-renderer/__tests__/__snapshots__/defaultCellRenderer.test.tsx.snap +0 -338
- package/Decorators/Navigator/__tests__/__snapshots__/navigator.test.js.snap +0 -18
- package/Decorators/RiverFeedLoader/utils.ts +0 -100
- package/Decorators/RiverResolver/__tests__/__snapshots__/riverResolver.test.tsx.snap +0 -28
- /package/Components/AudioPlayer/{Channel.tsx → tv/Channel.tsx} +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// /// <reference types="@applicaster/applicaster-types" />
|
|
2
2
|
//
|
|
3
3
|
import * as React from "react";
|
|
4
|
+
import { useEffect } from "react";
|
|
4
5
|
|
|
5
6
|
import { AppState, AppStateStatus, View } from "react-native";
|
|
6
7
|
import { TrackedView } from "../TrackedView";
|
|
@@ -25,13 +26,15 @@ import { PlayerRole } from "@applicaster/zapp-react-native-utils/appUtils/player
|
|
|
25
26
|
import { getAutoplaySettings } from "./utils";
|
|
26
27
|
import { isString } from "@applicaster/zapp-react-native-utils/stringUtils";
|
|
27
28
|
import { BufferAnimation } from "../PlayerContainer/BufferAnimation";
|
|
28
|
-
import { useEffect } from "react";
|
|
29
29
|
|
|
30
30
|
const { log_error, log_debug } = loggerLiveImageComponent;
|
|
31
31
|
|
|
32
32
|
const isMeasurement = (item: ZappEntry) =>
|
|
33
33
|
isString(item.id) && item.id.startsWith("pre-measurement-");
|
|
34
34
|
|
|
35
|
+
// Pixels by which the view can slightly extend outside the viewport and still be considered fully visible.
|
|
36
|
+
const CLIP_THRESHOLD = 10;
|
|
37
|
+
|
|
35
38
|
type Props = {
|
|
36
39
|
item: ZappEntry;
|
|
37
40
|
style: Record<string, any>;
|
|
@@ -44,7 +47,10 @@ type Props = {
|
|
|
44
47
|
};
|
|
45
48
|
|
|
46
49
|
const PlayerLiveImageComponent = (props: Props) => {
|
|
47
|
-
const dimensions = useDimensions("screen", {
|
|
50
|
+
const dimensions = useDimensions("screen", {
|
|
51
|
+
fullDimensions: true,
|
|
52
|
+
updateForInactiveScreens: false,
|
|
53
|
+
});
|
|
48
54
|
|
|
49
55
|
const { item, style, playerId } = props;
|
|
50
56
|
|
|
@@ -135,13 +141,16 @@ const PlayerLiveImageComponent = (props: Props) => {
|
|
|
135
141
|
} else {
|
|
136
142
|
throw new Error("Player factory item is null");
|
|
137
143
|
}
|
|
138
|
-
}, [playerId, item, playerPluginId, screenConfig]);
|
|
144
|
+
}, [playerId, item.id, playerPluginId, screenConfig]);
|
|
139
145
|
|
|
140
146
|
React.useEffect(() => {
|
|
141
147
|
liveImageItem.setMode = setModeDebounced;
|
|
142
148
|
}, [setModeDebounced, liveImageItem]);
|
|
143
149
|
|
|
144
|
-
const { start, end } = React.useMemo(
|
|
150
|
+
const { start, end } = React.useMemo(
|
|
151
|
+
() => getAutoplaySettings(item),
|
|
152
|
+
[item.id]
|
|
153
|
+
);
|
|
145
154
|
|
|
146
155
|
const controller = liveImageItem.getPlayer();
|
|
147
156
|
const player = usePlayer(playerId);
|
|
@@ -174,7 +183,7 @@ const PlayerLiveImageComponent = (props: Props) => {
|
|
|
174
183
|
|
|
175
184
|
unregister();
|
|
176
185
|
};
|
|
177
|
-
}, [item, liveImageItem]);
|
|
186
|
+
}, [item.id, liveImageItem]);
|
|
178
187
|
|
|
179
188
|
React.useEffect(() => {
|
|
180
189
|
if (!player) {
|
|
@@ -244,25 +253,27 @@ const PlayerLiveImageComponent = (props: Props) => {
|
|
|
244
253
|
}, [item.id]);
|
|
245
254
|
|
|
246
255
|
React.useEffect(() => {
|
|
247
|
-
if (playerManager) {
|
|
248
|
-
|
|
256
|
+
if (isMeasurement(item) || !playerManager) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
249
259
|
|
|
250
|
-
|
|
251
|
-
log_error(
|
|
252
|
-
`PlayerLiveImageComponent: player ${playerId} already registered`
|
|
253
|
-
);
|
|
254
|
-
} else {
|
|
255
|
-
playerManager.registerPlayer({
|
|
256
|
-
id: playerId,
|
|
257
|
-
playerController: controller,
|
|
258
|
-
});
|
|
260
|
+
const isPlayerRegistered = playerManager.isPlayerRegistered(playerId);
|
|
259
261
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
263
|
-
|
|
262
|
+
if (isPlayerRegistered) {
|
|
263
|
+
log_error(
|
|
264
|
+
`PlayerLiveImageComponent: player ${playerId} already registered`
|
|
265
|
+
);
|
|
266
|
+
} else {
|
|
267
|
+
playerManager.registerPlayer({
|
|
268
|
+
id: playerId,
|
|
269
|
+
playerController: controller,
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
return () => {
|
|
273
|
+
playerManager.unregisterPlayer(playerId);
|
|
274
|
+
};
|
|
264
275
|
}
|
|
265
|
-
}, [liveImageItem, playerId, controller]);
|
|
276
|
+
}, [liveImageItem, playerId, controller, item.id]);
|
|
266
277
|
|
|
267
278
|
const onPositionUpdated = React.useCallback(
|
|
268
279
|
(data) => {
|
|
@@ -302,7 +313,7 @@ const PlayerLiveImageComponent = (props: Props) => {
|
|
|
302
313
|
LiveImageManager.instance.checkPlayerPosition(liveImageItem);
|
|
303
314
|
}
|
|
304
315
|
},
|
|
305
|
-
[liveImageItem, dimensions]
|
|
316
|
+
[liveImageItem, dimensions.height, dimensions.width]
|
|
306
317
|
);
|
|
307
318
|
|
|
308
319
|
const platformSpecificProps = isApplePlatform()
|
|
@@ -320,9 +331,10 @@ const PlayerLiveImageComponent = (props: Props) => {
|
|
|
320
331
|
<TrackedView
|
|
321
332
|
testId={`tracked-view-${playerId}-${item.title}`}
|
|
322
333
|
onPositionUpdated={onPositionUpdated}
|
|
334
|
+
clipThreshold={CLIP_THRESHOLD}
|
|
323
335
|
>
|
|
324
336
|
<View ref={trackViewRef}>
|
|
325
|
-
{isVideoMode
|
|
337
|
+
{isVideoMode ? (
|
|
326
338
|
<Player
|
|
327
339
|
autoplay={false}
|
|
328
340
|
ref={_assignRoot}
|
|
@@ -334,7 +346,7 @@ const PlayerLiveImageComponent = (props: Props) => {
|
|
|
334
346
|
resizeMode={"cover"}
|
|
335
347
|
{...platformSpecificProps}
|
|
336
348
|
/>
|
|
337
|
-
)}
|
|
349
|
+
) : null}
|
|
338
350
|
{
|
|
339
351
|
<AnimatedInOut
|
|
340
352
|
visible={isBackgroundImageVisible}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
import { render } from "@testing-library/react-native";
|
|
4
4
|
import * as PlayerFactory from "@applicaster/zapp-react-native-utils/appUtils/playerManager/playerFactory";
|
|
5
|
-
import { Player } from "@applicaster/zapp-react-native-utils/appUtils/playerManager/player";
|
|
6
5
|
import { ThemeContext } from "@applicaster/zapp-react-native-utils/theme";
|
|
7
6
|
import * as navigationHooks from "@applicaster/zapp-react-native-utils/reactHooks/navigation";
|
|
7
|
+
import { playerManager } from "@applicaster/zapp-react-native-utils/appUtils/playerManager";
|
|
8
8
|
|
|
9
9
|
import { PlayerLiveImage } from "../PlayerLiveImageComponent";
|
|
10
10
|
import * as useNavigationHooks from "@applicaster/zapp-react-native-utils/reactHooks/navigation/useNavigation";
|
|
@@ -12,13 +12,13 @@ import * as useNavigationHooks from "@applicaster/zapp-react-native-utils/reactH
|
|
|
12
12
|
import { Provider } from "react-redux";
|
|
13
13
|
import configureStore from "redux-mock-store";
|
|
14
14
|
|
|
15
|
-
const
|
|
15
|
+
const mock_seekTo = jest.fn();
|
|
16
16
|
|
|
17
17
|
jest.mock(
|
|
18
18
|
"@applicaster/zapp-react-native-utils/appUtils/playerManager/player",
|
|
19
19
|
() => ({
|
|
20
20
|
Player: {
|
|
21
|
-
seekTo,
|
|
21
|
+
seekTo: mock_seekTo,
|
|
22
22
|
},
|
|
23
23
|
})
|
|
24
24
|
);
|
|
@@ -33,7 +33,7 @@ const mockStore = configureStore();
|
|
|
33
33
|
|
|
34
34
|
const store = mockStore({ appData: {} });
|
|
35
35
|
|
|
36
|
-
const Wrapper = ({ children }: { children: React.
|
|
36
|
+
const Wrapper = ({ children }: { children: React.ReactNode }) => (
|
|
37
37
|
/* @ts-ignore */
|
|
38
38
|
<Provider store={store}>
|
|
39
39
|
<ThemeContext.Provider
|
|
@@ -60,10 +60,16 @@ describe("PlayerLiveImageComponent", () => {
|
|
|
60
60
|
};
|
|
61
61
|
|
|
62
62
|
beforeAll(() => {
|
|
63
|
-
jest.spyOn(PlayerFactory, "playerFactory").mockImplementation(() =>
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
jest.spyOn(PlayerFactory, "playerFactory").mockImplementation(() => {
|
|
64
|
+
const Player = jest.requireActual(
|
|
65
|
+
"@applicaster/zapp-react-native-utils/appUtils/playerManager/player"
|
|
66
|
+
).Player;
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
controller: new Player({}),
|
|
70
|
+
Component: () => null,
|
|
71
|
+
};
|
|
72
|
+
});
|
|
67
73
|
|
|
68
74
|
jest.spyOn(navigationHooks, "useIsScreenActive").mockReturnValue(true);
|
|
69
75
|
});
|
|
@@ -113,4 +119,53 @@ describe("PlayerLiveImageComponent", () => {
|
|
|
113
119
|
|
|
114
120
|
// TODO: implement this test
|
|
115
121
|
});
|
|
122
|
+
|
|
123
|
+
it("should register the player for normal item", () => {
|
|
124
|
+
render(
|
|
125
|
+
<Wrapper>
|
|
126
|
+
<PlayerLiveImage {...defaultProps} />
|
|
127
|
+
</Wrapper>
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
const isPlayerRegistered = playerManager.isPlayerRegistered(
|
|
131
|
+
defaultProps.playerId
|
|
132
|
+
);
|
|
133
|
+
|
|
134
|
+
expect(isPlayerRegistered).toBe(true);
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
it("should unregister the player for normal item", () => {
|
|
138
|
+
const component = render(
|
|
139
|
+
<Wrapper>
|
|
140
|
+
<PlayerLiveImage {...defaultProps} />
|
|
141
|
+
</Wrapper>
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
component.unmount();
|
|
145
|
+
|
|
146
|
+
const isPlayerRegistered = playerManager.isPlayerRegistered(
|
|
147
|
+
defaultProps.playerId
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
expect(isPlayerRegistered).toBe(false);
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
it("should not register the player for 'pre-measurement' item", () => {
|
|
154
|
+
const props = {
|
|
155
|
+
...defaultProps,
|
|
156
|
+
item: {
|
|
157
|
+
...defaultProps.item,
|
|
158
|
+
id: "pre-measurement-1",
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
render(
|
|
163
|
+
<Wrapper>
|
|
164
|
+
<PlayerLiveImage {...props} />
|
|
165
|
+
</Wrapper>
|
|
166
|
+
);
|
|
167
|
+
|
|
168
|
+
const isPlayerRegistered = playerManager.isPlayerRegistered(props.playerId);
|
|
169
|
+
expect(isPlayerRegistered).toBe(false);
|
|
170
|
+
});
|
|
116
171
|
});
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`PlayerLiveImageComponent should render correctly with default props 1`] = `
|
|
4
4
|
<TrackedView
|
|
5
|
+
clipThreshold={10}
|
|
5
6
|
onPositionUpdated={[Function]}
|
|
6
7
|
testId="tracked-view-player1-Test"
|
|
7
8
|
>
|
|
@@ -9,7 +10,7 @@ exports[`PlayerLiveImageComponent should render correctly with default props 1`]
|
|
|
9
10
|
<View
|
|
10
11
|
collapsable={false}
|
|
11
12
|
style={
|
|
12
|
-
|
|
13
|
+
{
|
|
13
14
|
"opacity": 1,
|
|
14
15
|
}
|
|
15
16
|
}
|
|
@@ -19,10 +20,10 @@ exports[`PlayerLiveImageComponent should render correctly with default props 1`]
|
|
|
19
20
|
audioMutedByDefault={false}
|
|
20
21
|
imageKey="image1"
|
|
21
22
|
item={
|
|
22
|
-
|
|
23
|
+
{
|
|
23
24
|
"id": "1",
|
|
24
25
|
"title": "Test",
|
|
25
|
-
"type":
|
|
26
|
+
"type": {
|
|
26
27
|
"value": "",
|
|
27
28
|
},
|
|
28
29
|
}
|
|
@@ -30,13 +31,8 @@ exports[`PlayerLiveImageComponent should render correctly with default props 1`]
|
|
|
30
31
|
onError={[Function]}
|
|
31
32
|
playerId="player1"
|
|
32
33
|
resizeMode="cover"
|
|
33
|
-
screenConfig={
|
|
34
|
-
|
|
35
|
-
Object {
|
|
36
|
-
"uri": "",
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
style={Object {}}
|
|
34
|
+
screenConfig={{}}
|
|
35
|
+
style={{}}
|
|
40
36
|
/>
|
|
41
37
|
</View>
|
|
42
38
|
</View>
|
|
@@ -46,7 +46,7 @@ export const AnimatedPlayerModalWrapper = (props: Props) => {
|
|
|
46
46
|
|
|
47
47
|
React.useEffect(() => {
|
|
48
48
|
(playerAnimationState === PlayerAnimationStateEnum.minimize ||
|
|
49
|
-
playerAnimationState === PlayerAnimationStateEnum.
|
|
49
|
+
playerAnimationState === PlayerAnimationStateEnum.maximize) &&
|
|
50
50
|
setStartComponentsAnimation(true);
|
|
51
51
|
}, [playerAnimationState]);
|
|
52
52
|
|
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { Animated, StyleSheet, View
|
|
2
|
+
import { Animated, Platform, StyleSheet, View } from "react-native";
|
|
3
3
|
|
|
4
4
|
import { useNavigation } from "@applicaster/zapp-react-native-utils/reactHooks";
|
|
5
5
|
import {
|
|
6
|
+
GestureHandlerRootView,
|
|
6
7
|
NativeViewGestureHandler,
|
|
7
8
|
PanGestureHandler,
|
|
8
9
|
State,
|
|
9
10
|
TapGestureHandler,
|
|
10
|
-
GestureHandlerRootView,
|
|
11
11
|
} from "react-native-gesture-handler";
|
|
12
12
|
|
|
13
13
|
import { PlayerContainerContext } from "@applicaster/zapp-react-native-ui-components/Components/PlayerContainer/PlayerContainerContext";
|
|
14
14
|
import {
|
|
15
|
-
useModalAnimationContext,
|
|
16
15
|
PlayerAnimationStateEnum,
|
|
16
|
+
useModalAnimationContext,
|
|
17
17
|
} from "@applicaster/zapp-react-native-ui-components/Components/VideoModal/ModalAnimation";
|
|
18
18
|
import { isTV } from "@applicaster/zapp-react-native-utils/reactUtils";
|
|
19
19
|
import { usePrevious } from "@applicaster/zapp-react-native-utils/reactHooks/utils";
|
|
20
20
|
|
|
21
21
|
import {
|
|
22
|
-
setScrollModalAnimatedValue,
|
|
23
22
|
resetScrollAnimatedValues,
|
|
23
|
+
setScrollModalAnimatedValue,
|
|
24
24
|
} from "./utils";
|
|
25
25
|
|
|
26
|
+
import { DURATION_TO_MINIMIZE } from "./const";
|
|
27
|
+
|
|
26
28
|
const getAnimatedConfig = (toValue) => {
|
|
27
29
|
return {
|
|
28
30
|
toValue,
|
|
29
|
-
duration:
|
|
31
|
+
duration: DURATION_TO_MINIMIZE,
|
|
30
32
|
useNativeDriver: true,
|
|
31
33
|
};
|
|
32
34
|
};
|
|
@@ -62,25 +64,34 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
62
64
|
} = useModalAnimationContext();
|
|
63
65
|
|
|
64
66
|
const [enableGesture, setIEnableGesture] = React.useState<boolean>(true);
|
|
65
|
-
|
|
67
|
+
|
|
68
|
+
const { isLanguageOverlayVisible, isSeekBarTouch } = React.useContext(
|
|
69
|
+
PlayerContainerContext
|
|
70
|
+
);
|
|
66
71
|
|
|
67
72
|
const { maximiseVideoModal, minimiseVideoModal, videoModalState } =
|
|
68
73
|
useNavigation();
|
|
69
74
|
|
|
70
|
-
const {
|
|
71
|
-
|
|
72
|
-
|
|
75
|
+
const {
|
|
76
|
+
mode: videoModalMode,
|
|
77
|
+
previousMode: previousVideoModalMode,
|
|
78
|
+
item: videoModalItem,
|
|
79
|
+
} = videoModalState;
|
|
80
|
+
|
|
81
|
+
const isMaximizedModal: boolean = videoModalMode === "MAXIMIZED";
|
|
82
|
+
const isMinimizedModal: boolean = videoModalMode === "MINIMIZED";
|
|
73
83
|
const previousItemId = usePrevious(videoModalItem?.id);
|
|
74
84
|
|
|
75
85
|
const isNotMinimizeMaximazeAnimation =
|
|
76
86
|
playerAnimationState !== PlayerAnimationStateEnum.minimize &&
|
|
77
|
-
playerAnimationState !== PlayerAnimationStateEnum.
|
|
87
|
+
playerAnimationState !== PlayerAnimationStateEnum.maximize;
|
|
78
88
|
|
|
79
89
|
const isEnablePanGesture =
|
|
80
90
|
enableGesture &&
|
|
81
91
|
!isLanguageOverlayVisible &&
|
|
82
92
|
isNotMinimizeMaximazeAnimation &&
|
|
83
|
-
|
|
93
|
+
!isSeekBarTouch &&
|
|
94
|
+
(isMaximizedModal || isMinimizedModal);
|
|
84
95
|
|
|
85
96
|
const isAudioItem = React.useMemo(
|
|
86
97
|
() =>
|
|
@@ -117,7 +128,7 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
117
128
|
const preparedTranslationY =
|
|
118
129
|
Math.abs(translationY) - lastScrollYValue.current;
|
|
119
130
|
|
|
120
|
-
if (
|
|
131
|
+
if (isMaximizedModal) {
|
|
121
132
|
const endOffsetY =
|
|
122
133
|
lastSnap + preparedTranslationY + dragToss * velocityY + 150;
|
|
123
134
|
|
|
@@ -139,8 +150,8 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
139
150
|
translateYOffset.flattenOffset();
|
|
140
151
|
dragScrollY.setValue(0);
|
|
141
152
|
|
|
142
|
-
setPlayerAnimationState(PlayerAnimationStateEnum.
|
|
143
|
-
} else {
|
|
153
|
+
setPlayerAnimationState(PlayerAnimationStateEnum.maximize);
|
|
154
|
+
} else if (destSnapPoint !== modalSnapPoints[0] && isMaximizedModal) {
|
|
144
155
|
setPlayerAnimationState(PlayerAnimationStateEnum.minimize);
|
|
145
156
|
}
|
|
146
157
|
} else {
|
|
@@ -154,7 +165,7 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
154
165
|
|
|
155
166
|
dragScrollY.setValue(0);
|
|
156
167
|
|
|
157
|
-
setPlayerAnimationState(PlayerAnimationStateEnum.
|
|
168
|
+
setPlayerAnimationState(PlayerAnimationStateEnum.maximize);
|
|
158
169
|
} else {
|
|
159
170
|
resetPlayerAnimationState();
|
|
160
171
|
}
|
|
@@ -164,7 +175,13 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
164
175
|
resetPlayerAnimationState();
|
|
165
176
|
}
|
|
166
177
|
},
|
|
167
|
-
[
|
|
178
|
+
[
|
|
179
|
+
lastSnap,
|
|
180
|
+
modalSnapPoints,
|
|
181
|
+
playerAnimationState,
|
|
182
|
+
isMinimizedModal,
|
|
183
|
+
isMaximizedModal,
|
|
184
|
+
]
|
|
168
185
|
);
|
|
169
186
|
|
|
170
187
|
const onScroll = React.useCallback(({ nativeEvent }) => {
|
|
@@ -215,17 +232,18 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
215
232
|
}, []);
|
|
216
233
|
|
|
217
234
|
React.useEffect(() => {
|
|
218
|
-
const { mode, previousMode, item } = videoModalState;
|
|
219
|
-
|
|
220
235
|
if (
|
|
221
|
-
|
|
236
|
+
videoModalMode === "MAXIMIZED" &&
|
|
222
237
|
!enableGesture &&
|
|
223
238
|
scrollPosition.current === 0
|
|
224
239
|
) {
|
|
225
240
|
setIEnableGesture(true);
|
|
226
241
|
}
|
|
227
242
|
|
|
228
|
-
if (
|
|
243
|
+
if (
|
|
244
|
+
videoModalMode === "MINIMIZED" &&
|
|
245
|
+
previousVideoModalMode === "MAXIMIZED"
|
|
246
|
+
) {
|
|
229
247
|
// set animation to the minimize values if moving from the player to another screen
|
|
230
248
|
if (playerAnimationState === null) {
|
|
231
249
|
setScrollModalAnimatedValue(
|
|
@@ -243,14 +261,16 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
243
261
|
}
|
|
244
262
|
} else if (
|
|
245
263
|
playerAnimationState === null &&
|
|
246
|
-
((previousItemId ===
|
|
247
|
-
|
|
248
|
-
(
|
|
249
|
-
|
|
264
|
+
((previousItemId === videoModalItem?.id &&
|
|
265
|
+
videoModalMode === "MAXIMIZED" &&
|
|
266
|
+
(previousVideoModalMode === "MINIMIZED" ||
|
|
267
|
+
previousVideoModalMode === "MAXIMIZED")) ||
|
|
268
|
+
(previousItemId !== videoModalItem?.id &&
|
|
269
|
+
videoModalMode !== "FULLSCREEN"))
|
|
250
270
|
) {
|
|
251
|
-
setPlayerAnimationState(PlayerAnimationStateEnum.
|
|
271
|
+
setPlayerAnimationState(PlayerAnimationStateEnum.maximize);
|
|
252
272
|
}
|
|
253
|
-
}, [
|
|
273
|
+
}, [videoModalMode, previousVideoModalMode, videoModalItem]);
|
|
254
274
|
|
|
255
275
|
React.useEffect(() => {
|
|
256
276
|
if (playerAnimationState === PlayerAnimationStateEnum.minimize) {
|
|
@@ -292,7 +312,7 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
292
312
|
|
|
293
313
|
resetPlayerAnimationState();
|
|
294
314
|
});
|
|
295
|
-
} else if (playerAnimationState === PlayerAnimationStateEnum.
|
|
315
|
+
} else if (playerAnimationState === PlayerAnimationStateEnum.maximize) {
|
|
296
316
|
Animated.timing(translateYOffset, getAnimatedConfig(0)).start(() => {
|
|
297
317
|
maximiseVideoModal();
|
|
298
318
|
setScrollModalAnimatedValue(translateYOffset, 0, setLastSnap);
|
|
@@ -342,6 +362,8 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
342
362
|
[]
|
|
343
363
|
);
|
|
344
364
|
|
|
365
|
+
const scrollEnabled = isMaximizedModal && isNotMinimizeMaximazeAnimation;
|
|
366
|
+
|
|
345
367
|
return (
|
|
346
368
|
<Wrapper style={generalStyles.container}>
|
|
347
369
|
<TapGestureHandler
|
|
@@ -355,7 +377,7 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
355
377
|
enabled={isEnablePanGesture}
|
|
356
378
|
ref={panHandlerRef}
|
|
357
379
|
simultaneousHandlers={[scrollRef, tapHandlerRef]}
|
|
358
|
-
shouldCancelWhenOutside={
|
|
380
|
+
shouldCancelWhenOutside={isMaximizedModal}
|
|
359
381
|
onGestureEvent={onGestureEvent}
|
|
360
382
|
onHandlerStateChange={onHandlerStateChange}
|
|
361
383
|
activeOffsetY={[-5, 5]}
|
|
@@ -367,9 +389,7 @@ export const AnimatedScrollModalComponent = ({ children }: Props) => {
|
|
|
367
389
|
simultaneousHandlers={panHandlerRef}
|
|
368
390
|
>
|
|
369
391
|
<Animated.ScrollView
|
|
370
|
-
scrollEnabled={
|
|
371
|
-
isMaximazedModal && isNotMinimizeMaximazeAnimation
|
|
372
|
-
}
|
|
392
|
+
scrollEnabled={scrollEnabled}
|
|
373
393
|
bounces={false}
|
|
374
394
|
onScrollBeginDrag={onRegisterLastScroll}
|
|
375
395
|
onScroll={onScroll}
|
|
@@ -41,17 +41,21 @@ export const AnimatedVideoPlayer = ({ children }: Props) => {
|
|
|
41
41
|
videoModalState: { mode: videoModalMode },
|
|
42
42
|
} = useNavigation();
|
|
43
43
|
|
|
44
|
-
const { isLanguageOverlayVisible } = React.useContext(
|
|
44
|
+
const { isLanguageOverlayVisible, isSeekBarTouch } = React.useContext(
|
|
45
|
+
PlayerContainerContext
|
|
46
|
+
);
|
|
47
|
+
|
|
45
48
|
const isMaximazedModal = videoModalMode === "MAXIMIZED";
|
|
46
49
|
const isMinimizedModal = videoModalMode === "MINIMIZED";
|
|
47
50
|
|
|
48
51
|
const isNotMinimizeMaximazeAnimation =
|
|
49
52
|
playerAnimationState !== PlayerAnimationStateEnum.minimize &&
|
|
50
|
-
playerAnimationState !== PlayerAnimationStateEnum.
|
|
53
|
+
playerAnimationState !== PlayerAnimationStateEnum.maximize;
|
|
51
54
|
|
|
52
55
|
const isEnablePanGesture =
|
|
53
56
|
!isLanguageOverlayVisible &&
|
|
54
57
|
isNotMinimizeMaximazeAnimation &&
|
|
58
|
+
!isSeekBarTouch &&
|
|
55
59
|
(isMaximazedModal || isMinimizedModal);
|
|
56
60
|
|
|
57
61
|
const onGestureEvent = Animated.event(
|
|
@@ -85,7 +89,7 @@ export const AnimatedVideoPlayer = ({ children }: Props) => {
|
|
|
85
89
|
setLastSnap(destSnapPoint);
|
|
86
90
|
|
|
87
91
|
if (destSnapPoint === modalSnapPoints[0]) {
|
|
88
|
-
setPlayerAnimationState(PlayerAnimationStateEnum.
|
|
92
|
+
setPlayerAnimationState(PlayerAnimationStateEnum.maximize);
|
|
89
93
|
} else {
|
|
90
94
|
lastScrollY.setValue(0);
|
|
91
95
|
lastScrollYValue.current = 0;
|
|
@@ -101,7 +105,7 @@ export const AnimatedVideoPlayer = ({ children }: Props) => {
|
|
|
101
105
|
modalSnapPoints[1] - preparedTranslationY
|
|
102
106
|
);
|
|
103
107
|
|
|
104
|
-
setPlayerAnimationState(PlayerAnimationStateEnum.
|
|
108
|
+
setPlayerAnimationState(PlayerAnimationStateEnum.maximize);
|
|
105
109
|
} else {
|
|
106
110
|
resetPlayerAnimationState();
|
|
107
111
|
}
|