@applicaster/zapp-react-native-utils 12.0.0-rc.90 → 12.0.0-rc.91
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.
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { BehaviorSubject } from "rxjs";
|
|
2
2
|
|
|
3
3
|
import { sessionStorage } from "@applicaster/zapp-react-native-bridge/ZappStorage/SessionStorage";
|
|
4
|
-
import { localStorage } from "@applicaster/zapp-react-native-bridge/ZappStorage/LocalStorage";
|
|
5
|
-
import { PlayerWebController } from "@applicaster/zapp-react-native-default-player/src/playerFactory/players/playerWebController";
|
|
6
4
|
|
|
7
5
|
import { PLATFORM_KEYS, PLATFORMS } from "./const";
|
|
8
6
|
import { createLogger, utilsLogger } from "../../logger";
|
|
@@ -21,7 +19,7 @@ declare global {
|
|
|
21
19
|
}
|
|
22
20
|
}
|
|
23
21
|
|
|
24
|
-
const { log_debug
|
|
22
|
+
const { log_debug } = createLogger({
|
|
25
23
|
category: "General",
|
|
26
24
|
subsystem: "PlatformUtils",
|
|
27
25
|
parent: utilsLogger,
|
|
@@ -131,100 +129,6 @@ export const getClosedCaptionState = () => {
|
|
|
131
129
|
return ccManager.getStateAsObservable();
|
|
132
130
|
};
|
|
133
131
|
|
|
134
|
-
export class TextTrackManager {
|
|
135
|
-
private controller?: PlayerWebController;
|
|
136
|
-
private static instance: TextTrackManager;
|
|
137
|
-
|
|
138
|
-
private constructor() {}
|
|
139
|
-
|
|
140
|
-
static getInstance(): TextTrackManager {
|
|
141
|
-
if (!TextTrackManager.instance) {
|
|
142
|
-
TextTrackManager.instance = new TextTrackManager();
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
return TextTrackManager.instance;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
initialize(controller: PlayerWebController) {
|
|
149
|
-
if (!controller) {
|
|
150
|
-
throw new Error(
|
|
151
|
-
"Controller is required for TextTrackManager initialization"
|
|
152
|
-
);
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
this.controller = controller;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
async setTextTrackBasedOnCaptions(closedCaptionsState: boolean) {
|
|
159
|
-
if (!this.controller) {
|
|
160
|
-
log_error("Controller is not initialized");
|
|
161
|
-
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
if (closedCaptionsState) {
|
|
166
|
-
const textTracks = this.controller.getTracksState().textTracks;
|
|
167
|
-
const preferredTextTrack = await this.getPreferredTextTrack(textTracks);
|
|
168
|
-
|
|
169
|
-
if (preferredTextTrack) {
|
|
170
|
-
this.controller.selectTrack(preferredTextTrack);
|
|
171
|
-
}
|
|
172
|
-
} else {
|
|
173
|
-
this.controller.selectTrack(null);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
async getPreferredTextTrack(
|
|
178
|
-
textTracks: QuickBrickPlayer.TextTrack[]
|
|
179
|
-
): Promise<QuickBrickPlayer.TextTrack | undefined> {
|
|
180
|
-
if (!this.controller) return;
|
|
181
|
-
|
|
182
|
-
const userPreferredTextLanguageLocalStorage = await localStorage.getItem(
|
|
183
|
-
"preferred_text_language",
|
|
184
|
-
"user_preferences"
|
|
185
|
-
);
|
|
186
|
-
|
|
187
|
-
let userPreferredTextLanguage;
|
|
188
|
-
|
|
189
|
-
if (userPreferredTextLanguageLocalStorage) {
|
|
190
|
-
userPreferredTextLanguage = textTracks.find(
|
|
191
|
-
(track) => track.language === userPreferredTextLanguageLocalStorage
|
|
192
|
-
);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (userPreferredTextLanguage?.id) {
|
|
196
|
-
return userPreferredTextLanguage;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
const enableAutoTextTrackSelection =
|
|
200
|
-
this.controller.getPluginConfiguration()
|
|
201
|
-
?.enable_auto_text_track_selection ||
|
|
202
|
-
this.controller.getTracksState().textTracks.length > 0;
|
|
203
|
-
|
|
204
|
-
if (enableAutoTextTrackSelection) {
|
|
205
|
-
const languageCode = await sessionStorage.getItem("languageCode");
|
|
206
|
-
|
|
207
|
-
if (languageCode) {
|
|
208
|
-
const chosenTextTrackBySystemLanguage = textTracks.find(
|
|
209
|
-
(track) => track.language === languageCode
|
|
210
|
-
);
|
|
211
|
-
|
|
212
|
-
if (chosenTextTrackBySystemLanguage?.id) {
|
|
213
|
-
return chosenTextTrackBySystemLanguage;
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
return textTracks?.[0];
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
isTextTrackEnabled(): boolean {
|
|
222
|
-
if (!this.controller) return false;
|
|
223
|
-
|
|
224
|
-
return this.controller.getTracksState().textTrackId !== null;
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
|
|
228
132
|
/**
|
|
229
133
|
* Manages device based closed captioning state
|
|
230
134
|
* Returns an observable that emits the current state and updates whenever it changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@applicaster/zapp-react-native-utils",
|
|
3
|
-
"version": "12.0.0-rc.
|
|
3
|
+
"version": "12.0.0-rc.91",
|
|
4
4
|
"description": "Applicaster Zapp React Native utilities package",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"homepage": "https://github.com/applicaster/quickbrick#readme",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@applicaster/applicaster-types": "12.0.0-rc.
|
|
31
|
+
"@applicaster/applicaster-types": "12.0.0-rc.91",
|
|
32
32
|
"buffer": "^5.2.1",
|
|
33
33
|
"camelize": "^1.0.0",
|
|
34
34
|
"create-react-context": "^0.2.3",
|