@24i/bigscreen-sdk 1.0.54-alpha.2836 → 2.1.1-alpha.2133

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.
Files changed (278) hide show
  1. package/README.md +3 -2
  2. package/package.json +34 -53
  3. package/packages/adobe-heartbeat/src/AdobeHeartbeat.ts +9 -9
  4. package/packages/async-image/src/AsyncImage.tsx +10 -15
  5. package/packages/developer-tools/PlayerDebugWindow/README.md +1 -1
  6. package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolsList.tsx +0 -11
  7. package/packages/developer-tools/src/PlayerDebugWindow/PlayerDebugWindow.tsx +5 -5
  8. package/packages/developer-tools/src/PlayerDebugWindow/constants.ts +0 -15
  9. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoDetail.tsx +1 -2
  10. package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoProvider.ts +5 -57
  11. package/packages/developer-tools/src/TechnicalInfo/__mocks__/Device.ts +0 -12
  12. package/packages/developer-tools/src/TechnicalInfo/translations.ts +0 -8
  13. package/packages/device/src/getKeyDigit.ts +2 -2
  14. package/packages/device/src/resolver/resolver.ts +5 -18
  15. package/packages/digital-clock/src/DigitalClock.tsx +4 -15
  16. package/packages/driver-androidtv/src/DeviceAndroidTV.ts +9 -92
  17. package/packages/driver-androidtv/src/__mocks__/javaScriptBridge.ts +5 -38
  18. package/packages/driver-androidtv/src/index.ts +0 -1
  19. package/packages/driver-androidtv/src/keymap.ts +0 -18
  20. package/packages/driver-androidtv/src/types.ts +16 -144
  21. package/packages/driver-base/src/DeviceBase.ts +2 -80
  22. package/packages/driver-base/src/KeyMap/Key.ts +1 -8
  23. package/packages/driver-base/src/KeyMap/KeyMap.ts +0 -4
  24. package/packages/driver-base/src/KeyMap/interface.ts +0 -1
  25. package/packages/driver-base/src/KeyMap/overrideValues.ts +1 -2
  26. package/packages/driver-base/src/__mocks__/DeviceBase.ts +0 -24
  27. package/packages/driver-base/src/__mocks__/keyMap.ts +0 -1
  28. package/packages/driver-base/src/index.ts +0 -3
  29. package/packages/driver-base/src/types/DeviceEvent.ts +0 -2
  30. package/packages/driver-base/src/types/KeycodeKeyMap.ts +0 -1
  31. package/packages/driver-browser/src/DeviceBrowser.ts +0 -26
  32. package/packages/driver-browser/src/keymap.ts +0 -8
  33. package/packages/driver-entone/src/DeviceEntone.ts +1 -31
  34. package/packages/driver-entone/src/keymap.ts +0 -1
  35. package/packages/driver-hbbtv/src/DeviceHbbTV.ts +0 -26
  36. package/packages/driver-kreatv/src/DeviceKreaTV.ts +0 -26
  37. package/packages/driver-saphi/src/DeviceSaphi.ts +0 -26
  38. package/packages/driver-tizen/src/DeviceTizen.ts +7 -126
  39. package/packages/driver-tizen/src/ITizen.ts +202 -15116
  40. package/packages/driver-tizen/src/IWebapis.ts +87 -8643
  41. package/packages/driver-tizen/src/TizenKeys.ts +2 -4
  42. package/packages/driver-tizen/src/__mocks__/tizen.ts +8 -7
  43. package/packages/driver-tizen/src/constants.ts +195 -1
  44. package/packages/driver-tizen/src/types.ts +14 -0
  45. package/packages/driver-vidaa/src/DeviceVidaa.ts +2 -29
  46. package/packages/driver-vidaa/src/__mocks__/vidaa.ts +1 -1
  47. package/packages/driver-vidaa/src/keymap.ts +0 -2
  48. package/packages/driver-webos/src/DeviceWebos.ts +0 -55
  49. package/packages/driver-webos/src/__mocks__/webos.ts +0 -33
  50. package/packages/driver-webos/src/constants.ts +0 -1
  51. package/packages/driver-webos/src/keymap.ts +1 -2
  52. package/packages/driver-webos/src/types.ts +0 -30
  53. package/packages/driver-xbox/src/DeviceXbox.ts +1 -30
  54. package/packages/driver-xbox/src/keymap.ts +1 -1
  55. package/packages/epg/README.md +1 -3
  56. package/packages/epg/src/v2/Cell.tsx +2 -16
  57. package/packages/epg/src/v2/DataManager.ts +41 -112
  58. package/packages/epg/src/v2/DatePicker.tsx +3 -9
  59. package/packages/epg/src/v2/DateToast/DateToast.tsx +9 -12
  60. package/packages/epg/src/v2/Day.tsx +3 -6
  61. package/packages/epg/src/v2/Epg.tsx +5 -5
  62. package/packages/epg/src/v2/MockGenerator/generator.ts +2 -3
  63. package/packages/epg/src/v2/ProgramInfo/utils.ts +3 -4
  64. package/packages/epg/src/v2/Row.tsx +1 -3
  65. package/packages/epg/src/v2/TimelineSection.tsx +1 -4
  66. package/packages/epg/src/v2/basic/CellsManager.tsx +2 -7
  67. package/packages/epg/src/v2/basic/RowsManager.tsx +1 -3
  68. package/packages/epg/src/v2/interface.ts +0 -13
  69. package/packages/events-manager/src/EventsManager.ts +56 -1
  70. package/packages/focus/README.md +0 -33
  71. package/packages/focus/src/IFocusable.ts +0 -1
  72. package/packages/focus/src/Layout/Base.tsx +6 -41
  73. package/packages/focus/src/Layout/Matrix.tsx +19 -51
  74. package/packages/focus/src/Layout/__test__/Base.spec.ts +180 -0
  75. package/packages/focus/src/Layout/__test__/Horizontal.spec.ts +94 -0
  76. package/packages/focus/src/Layout/__test__/Matrix.spec.ts +261 -0
  77. package/packages/focus/src/Layout/__test__/Vertical.spec.ts +46 -0
  78. package/packages/focus/src/Layout/__test__/isRtl.spec.ts +23 -0
  79. package/packages/focus/src/Layout/__test__/shared.ts +19 -0
  80. package/packages/focus/src/focusFirstExisting.ts +1 -7
  81. package/packages/focus/src/index.ts +1 -2
  82. package/packages/gallup/src/Gallup.ts +3 -3
  83. package/packages/grid/src/Base/Base.tsx +10 -15
  84. package/packages/grid/src/FirstOnlyGrid/FirstOnlyGrid.tsx +2 -4
  85. package/packages/grid/src/UnifiedGridController/UnifiedGridController.ts +6 -6
  86. package/packages/icon/src/Icon.tsx +5 -27
  87. package/packages/input/README.md +1 -1
  88. package/packages/input/src/Input.tsx +10 -16
  89. package/packages/interactable/README.md +1 -2
  90. package/packages/interactable/src/Interactable.tsx +3 -9
  91. package/packages/interactable/src/interface.ts +0 -1
  92. package/packages/jsx/src/index.ts +1 -1
  93. package/packages/jsx/src/test-utils/index.ts +0 -1
  94. package/packages/keyboard/src/Backdrop/Backdrop.scss +0 -2
  95. package/packages/keyboard/src/KeyboardBase.tsx +4 -16
  96. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.scss +0 -4
  97. package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.tsx +20 -28
  98. package/packages/keyboard/src/WhitelabelKeyboard/_sizes.1080.scss +0 -1
  99. package/packages/keyboard/src/WhitelabelKeyboard/_sizes.scss +0 -1
  100. package/packages/keyboard/src/WhitelabelKeyboard/layouts/index.ts +0 -12
  101. package/packages/keyboard/src/WhitelabelKeyboard/types.ts +0 -1
  102. package/packages/keyboard/src/utils/caret.ts +8 -5
  103. package/packages/keyboard/src/utils/input.ts +6 -5
  104. package/packages/l10n/README.md +0 -18
  105. package/packages/l10n/src/date/common.ts +6 -18
  106. package/packages/l10n/src/date/cs.ts +8 -2
  107. package/packages/l10n/src/date/en-001.ts +3 -3
  108. package/packages/l10n/src/date/en-common.ts +4 -5
  109. package/packages/l10n/src/date/en-us.ts +3 -3
  110. package/packages/l10n/src/date/iso.ts +13 -12
  111. package/packages/l10n/src/date/types.ts +0 -9
  112. package/packages/l10n/src/l10n.ts +3 -61
  113. package/packages/list/src/Base/Base.tsx +9 -19
  114. package/packages/list/src/Base/interface.ts +2 -2
  115. package/packages/list/src/BasicList/BasicList.tsx +7 -7
  116. package/packages/list/src/CenteredList/CenteredList.tsx +2 -2
  117. package/packages/list/src/CenteredList/controller.ts +1 -0
  118. package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +10 -10
  119. package/packages/list/src/FirstOnlyList/FirstOnlyList.tsx +2 -2
  120. package/packages/list/src/FirstOnlyVariedList/FirstOnlyVariedList.tsx +2 -2
  121. package/packages/list/src/FixedToEndList/FixedToEndList.tsx +2 -2
  122. package/packages/list/src/UnifiedListController/UnifiedListController.ts +2 -6
  123. package/packages/list/src/interface.ts +2 -2
  124. package/packages/logger/src/loggers/ConsoleLogger/ConsoleLogger.ts +1 -7
  125. package/packages/logger/src/loggers/SentryLogger/Sentry.ts +0 -1
  126. package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +3 -5
  127. package/packages/menu/src/MenuAndContentContainer/MenuAndContentContainer.tsx +3 -31
  128. package/packages/menu/src/MenuAndContentContainer/interface.ts +0 -8
  129. package/packages/modal-service/README.md +1 -4
  130. package/packages/modal-service/src/ModalService.tsx +5 -29
  131. package/packages/perf-utils/README.md +120 -1
  132. package/packages/perf-utils/src/array/filter.ts +54 -1
  133. package/packages/perf-utils/src/array/find.ts +43 -1
  134. package/packages/perf-utils/src/array/findIndex.ts +43 -1
  135. package/packages/perf-utils/src/array/forEach.ts +48 -1
  136. package/packages/perf-utils/src/array/includes.ts +41 -1
  137. package/packages/perf-utils/src/array/includesNaN.ts +32 -1
  138. package/packages/perf-utils/src/array/index.ts +7 -1
  139. package/packages/perf-utils/src/array/map.ts +52 -1
  140. package/packages/player-ui/README.md +1 -1
  141. package/packages/player-ui/src/CurrentTime.tsx +2 -2
  142. package/packages/player-ui/src/Duration.tsx +2 -2
  143. package/packages/player-ui/src/PauseButton.tsx +0 -8
  144. package/packages/player-ui/src/PlayerInteractable.tsx +0 -1
  145. package/packages/player-ui/src/PlayerTime.tsx +1 -3
  146. package/packages/player-ui/src/PlayerUI.tsx +35 -68
  147. package/packages/player-ui/src/RemainingTime.tsx +2 -2
  148. package/packages/player-ui/src/Seekbar.tsx +18 -110
  149. package/packages/player-ui/src/Seeking.ts +16 -57
  150. package/packages/player-ui/src/Subtitles.tsx +2 -2
  151. package/packages/player-ui/src/index.ts +0 -1
  152. package/packages/player-ui/src/mocks.ts +8 -32
  153. package/packages/player-ui/src/timeUtils.ts +3 -3
  154. package/packages/player-ui/src/types.ts +3 -9
  155. package/packages/router/README.md +0 -1
  156. package/packages/router/src/Route.tsx +27 -61
  157. package/packages/router/src/Router.tsx +14 -63
  158. package/packages/router/src/history.ts +1 -8
  159. package/packages/router/src/index.ts +1 -1
  160. package/packages/router/src/utils.ts +4 -9
  161. package/packages/sass-utils/src/linear-gradient.scss +4 -9
  162. package/packages/sass-utils/src/scale.1080.scss +1 -3
  163. package/packages/sass-utils/src/scale.720.scss +1 -1
  164. package/packages/time/README.md +1 -4
  165. package/packages/time/src/Time.ts +13 -35
  166. package/packages/time/src/constants.ts +0 -1
  167. package/packages/toast/src/ToastService.tsx +5 -16
  168. package/packages/types-bigscreen-jsx/README.md +4 -5
  169. package/packages/types-bigscreen-jsx/index.d.ts +67 -72
  170. package/packages/utils/README.md +0 -27
  171. package/packages/utils/src/elementUtils.ts +0 -25
  172. package/packages/utils/src/index.ts +0 -8
  173. package/packages/utils/src/scaledImage.ts +3 -6
  174. package/packages/utils/src/textUtils.ts +14 -46
  175. package/packages/utils/src/wait.ts +1 -3
  176. package/packages/utils/src/xhr/xhrSend.ts +1 -3
  177. package/packages/utils/src/xhr/xhrSendRetry.ts +1 -3
  178. package/packages/zapping/src/ChannelZapping.ts +0 -9
  179. package/packages/zapping/src/Zapping.tsx +0 -10
  180. package/ci/is_ci_job_skippable.sh +0 -153
  181. package/packages/analytics/README.md +0 -8
  182. package/packages/analytics/src/A.ts +0 -1
  183. package/packages/analytics/src/Analytics.ts +0 -1
  184. package/packages/analytics/src/analyticsOnScroll.ts +0 -1
  185. package/packages/analytics/src/clients/ConsoleAnalytics/ConsoleAnalytics.ts +0 -1
  186. package/packages/analytics/src/clients/ConsoleAnalytics/index.ts +0 -1
  187. package/packages/analytics/src/clients/GoogleAnalytics/GoogleAnalytics.ts +0 -196
  188. package/packages/analytics/src/clients/GoogleAnalytics/constants.ts +0 -126
  189. package/packages/analytics/src/clients/GoogleAnalytics/getUrl.ts +0 -17
  190. package/packages/analytics/src/clients/GoogleAnalytics/index.ts +0 -2
  191. package/packages/analytics/src/clients/GoogleAnalytics/interface.ts +0 -82
  192. package/packages/analytics/src/clients/GoogleAnalytics/mapPayload.ts +0 -51
  193. package/packages/analytics/src/clients/GoogleAnalytics/prepareBody.ts +0 -14
  194. package/packages/analytics/src/clients/TealiumAnalytics/TealiumAnalytics.ts +0 -181
  195. package/packages/analytics/src/clients/TealiumAnalytics/constants.ts +0 -106
  196. package/packages/analytics/src/clients/TealiumAnalytics/findForLanguage.ts +0 -9
  197. package/packages/analytics/src/clients/TealiumAnalytics/index.ts +0 -4
  198. package/packages/analytics/src/clients/TealiumAnalytics/interface.ts +0 -35
  199. package/packages/analytics/src/clients/TealiumAnalytics/mappers/__mocks__/mediaPayload.ts +0 -72
  200. package/packages/analytics/src/clients/TealiumAnalytics/mappers/helper.ts +0 -36
  201. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapAppError.ts +0 -13
  202. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapAppOpen.ts +0 -13
  203. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapFavoriteAdd.ts +0 -11
  204. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapFavoriteRemove.ts +0 -11
  205. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapPlayerClose.ts +0 -15
  206. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapPlayerOpen.ts +0 -15
  207. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSceneView.ts +0 -18
  208. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearch.ts +0 -18
  209. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearchFailed.ts +0 -8
  210. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapSearchSuccess.ts +0 -8
  211. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoPause.ts +0 -15
  212. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoProgress.ts +0 -18
  213. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoResume.ts +0 -15
  214. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoStart.ts +0 -15
  215. package/packages/analytics/src/clients/TealiumAnalytics/mappers/mapVideoStop.ts +0 -15
  216. package/packages/analytics/src/clients/TealiumAnalytics/types.ts +0 -161
  217. package/packages/analytics/src/clients/TwentyFourIQ/TwentyFourIQClient.ts +0 -107
  218. package/packages/analytics/src/clients/TwentyFourIQ/constants.ts +0 -111
  219. package/packages/analytics/src/clients/TwentyFourIQ/helper.ts +0 -34
  220. package/packages/analytics/src/clients/TwentyFourIQ/index.ts +0 -2
  221. package/packages/analytics/src/clients/TwentyFourIQ/interface.ts +0 -34
  222. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapAdEvent.ts +0 -20
  223. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBase.ts +0 -24
  224. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapBuffering.ts +0 -15
  225. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerClose.ts +0 -25
  226. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapPlayerOpen.ts +0 -17
  227. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapSceneView.ts +0 -15
  228. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapScroll.ts +0 -17
  229. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoComplete.ts +0 -22
  230. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoPause.ts +0 -25
  231. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoProgress.ts +0 -25
  232. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStart.ts +0 -34
  233. package/packages/analytics/src/clients/TwentyFourIQ/mappers/mapVideoStop.ts +0 -32
  234. package/packages/analytics/src/clients/TwentyFourIQ/types.ts +0 -132
  235. package/packages/analytics/src/constants.ts +0 -1
  236. package/packages/analytics/src/index.ts +0 -3
  237. package/packages/analytics/src/interface.ts +0 -1
  238. package/packages/analytics/src/utils/generateSessionId.ts +0 -8
  239. package/packages/device/src/driver/index.firetv.ts +0 -1
  240. package/packages/device/src/driver/index.smartcast.tv.ts +0 -1
  241. package/packages/driver-base/src/types/AdInfo.ts +0 -5
  242. package/packages/driver-base/src/types/InAppPurchase.ts +0 -25
  243. package/packages/driver-firetv/src/DeviceFireTV.ts +0 -91
  244. package/packages/driver-firetv/src/__mocks__/javaScriptBridge.ts +0 -45
  245. package/packages/driver-firetv/src/index.ts +0 -1
  246. package/packages/driver-firetv/src/types.ts +0 -1
  247. package/packages/driver-smartcast/src/DeviceSmartCast.ts +0 -394
  248. package/packages/driver-smartcast/src/__mocks__/api.ts +0 -79
  249. package/packages/driver-smartcast/src/index.ts +0 -1
  250. package/packages/driver-smartcast/src/keymap.ts +0 -9
  251. package/packages/driver-smartcast/src/types.ts +0 -111
  252. package/packages/focus/src/hasFocus.ts +0 -36
  253. package/packages/jsx/src/test-utils/keyup.ts +0 -27
  254. package/packages/keyboard/src/WhitelabelKeyboard/layouts/arabic.ts +0 -27
  255. package/packages/keyboard/src/WhitelabelKeyboard/layouts/burmese.ts +0 -27
  256. package/packages/keyboard/src/WhitelabelKeyboard/layouts/dari.ts +0 -28
  257. package/packages/keyboard/src/WhitelabelKeyboard/layouts/korean.ts +0 -26
  258. package/packages/keyboard/src/WhitelabelKeyboard/layouts/pashto.ts +0 -27
  259. package/packages/keyboard/src/WhitelabelKeyboard/layouts/persian.ts +0 -27
  260. package/packages/keyboard/src/WhitelabelKeyboard/layouts/russian.ts +0 -27
  261. package/packages/keyboard/src/WhitelabelKeyboard/layouts/spanish.ts +0 -26
  262. package/packages/keyboard/src/WhitelabelKeyboard/layouts/tibetan.ts +0 -26
  263. package/packages/keyboard/src/WhitelabelKeyboard/layouts/turkish.ts +0 -26
  264. package/packages/keyboard/src/WhitelabelKeyboard/layouts/ukrainian.ts +0 -27
  265. package/packages/keyboard/src/WhitelabelKeyboard/layouts/urdu.ts +0 -26
  266. package/packages/keyboard/src/utils/setInputSelectionRange.ts +0 -10
  267. package/packages/l10n/src/date/de.ts +0 -97
  268. package/packages/l10n/src/date/es.ts +0 -71
  269. package/packages/l10n/src/date/fr.ts +0 -94
  270. package/packages/l10n/src/date/he.ts +0 -101
  271. package/packages/time/src/adapters/24iMediaTimeApi.ts +0 -47
  272. package/packages/time/src/services/24iMediaTimeApi/24iMediaTimeApi.ts +0 -43
  273. package/packages/time/src/services/24iMediaTimeApi/index.ts +0 -6
  274. package/packages/utils/src/forceReflow.ts +0 -14
  275. package/packages/utils/src/keyPress/index.ts +0 -6
  276. package/packages/utils/src/keyPress/keyPressSimulator.ts +0 -74
  277. package/packages/utils/src/keyPress/simulateKeyPress.ts +0 -25
  278. package/utils/release/release.ts +0 -156
@@ -2,13 +2,11 @@ import { KeycodeKeyMap, DeviceEventMap } from '@24i/bigscreen-sdk/driver-base';
2
2
  import { DeviceAndroidTV } from '@24i/bigscreen-sdk/driver-androidtv';
3
3
  import { DeviceBrowser } from '@24i/bigscreen-sdk/driver-browser';
4
4
  import { DeviceEntone } from '@24i/bigscreen-sdk/driver-entone';
5
- import { DeviceFireTV } from '@24i/bigscreen-sdk/driver-firetv';
6
5
  import { DeviceHbbTV } from '@24i/bigscreen-sdk/driver-hbbtv';
7
6
  import { DeviceKreaTV } from '@24i/bigscreen-sdk/driver-kreatv';
8
7
  import { DeviceSaphi } from '@24i/bigscreen-sdk/driver-saphi';
9
8
  import { DeviceTizen } from '@24i/bigscreen-sdk/driver-tizen';
10
9
  import { DeviceVidaa } from '@24i/bigscreen-sdk/driver-vidaa';
11
- import { DeviceSmartCast } from '@24i/bigscreen-sdk/driver-smartcast';
12
10
  import { DeviceWebos } from '@24i/bigscreen-sdk/driver-webos';
13
11
  import { DeviceXbox } from '@24i/bigscreen-sdk/driver-xbox';
14
12
 
@@ -22,26 +20,10 @@ const getDevice = () => {
22
20
  info('HbbTV');
23
21
  return new DeviceHbbTV();
24
22
  }
25
- // any because JavaScriptBridge property is defined on Android TV Bridge platform
26
- if (typeof (window as any).JavaScriptBridge !== 'undefined'
27
- && (userAgent.match(/AFT/) || userAgent.match('AmazonWebAppPlatform'))
28
- ) {
29
- info('FireTV');
30
- return new DeviceFireTV();
31
- }
32
- // any because JavaScriptBridge property is defined on Android TV Bridge platform
33
- if (typeof (window as any).JavaScriptBridge !== 'undefined') {
34
- info('AndroidTV');
35
- return new DeviceAndroidTV();
36
- }
37
23
  if (userAgent.match(/Tizen/)) {
38
24
  info('Tizen');
39
25
  return new DeviceTizen();
40
26
  }
41
- if (userAgent.match(/Vizio/i)) {
42
- info('SmartCast');
43
- return new DeviceSmartCast();
44
- }
45
27
  if (userAgent.match(/Web0S/)) { // Yes, it is Web ZERO S
46
28
  info('WebOS');
47
29
  return new DeviceWebos();
@@ -58,6 +40,11 @@ const getDevice = () => {
58
40
  info('KreaTV');
59
41
  return new DeviceKreaTV();
60
42
  }
43
+ // any because JavaScriptBridge property is defined on Android TV Bridge platform
44
+ if (typeof (window as any).JavaScriptBridge !== 'undefined') {
45
+ info('AndroidTV');
46
+ return new DeviceAndroidTV();
47
+ }
61
48
  // any because ENTONE property is defined on Entone platform
62
49
  if (typeof (window as any).ENTONE !== 'undefined') {
63
50
  info('Entone');
@@ -8,14 +8,9 @@ export type Props = {
8
8
  withSeconds?: boolean,
9
9
  domRef?: Reference<HTMLDivElement>,
10
10
  className?: string,
11
- isHiddenForAria?: boolean,
12
11
  };
13
12
 
14
- const WITHOUT_SECONDS_OPTIONS = {
15
- hour: 'numeric',
16
- minute: '2-digit',
17
- formatType: 'timeFormat',
18
- } as const;
13
+ const WITHOUT_SECONDS_OPTIONS = { hour: 'numeric', minute: '2-digit' } as const;
19
14
  const WITH_SECONDS_OPTIONS = { ...WITHOUT_SECONDS_OPTIONS, second: '2-digit' } as const;
20
15
 
21
16
  export class DigitalClock extends Component<Props> {
@@ -45,7 +40,7 @@ export class DigitalClock extends Component<Props> {
45
40
 
46
41
  setTime() {
47
42
  const { withSeconds } = this.props;
48
- const currentTimestampMs = time.getCurrentTime().getTime();
43
+ const currentTimestampMs = time.getCurrentUnixTime();
49
44
  if (this.oldUnixTimestampMs !== currentTimestampMs) {
50
45
  const options = withSeconds ? WITH_SECONDS_OPTIONS : WITHOUT_SECONDS_OPTIONS;
51
46
  this.clearMount((
@@ -66,13 +61,7 @@ export class DigitalClock extends Component<Props> {
66
61
  }
67
62
 
68
63
  render() {
69
- const { className, isHiddenForAria } = this.props;
70
- return (
71
- <div
72
- ref={this.clockRef}
73
- className={className}
74
- {...isHiddenForAria && { 'aria-hidden': true }}
75
- />
76
- );
64
+ const { className } = this.props;
65
+ return <div ref={this.clockRef} className={className} />;
77
66
  }
78
67
  }
@@ -3,12 +3,10 @@ import {
3
3
  ConnectionType,
4
4
  ScreenSaverStatus,
5
5
  VolumeRange,
6
- IAPSuccessPayload,
7
- IAPPurchaseProductData,
8
6
  } from '@24i/bigscreen-sdk/driver-base';
9
- import { IJavaScriptBridge, DeviceInfo } from './types';
7
+ import { IJavaScriptBridge } from './types';
10
8
  import { getFirmware } from './formatUserAgent';
11
- import { getKeyMap, AndroidKeyMap } from './keymap';
9
+ import { getKeyMap } from './keymap';
12
10
 
13
11
  interface CustomKeyboardEvent extends KeyboardEvent {
14
12
  /** Flag indicating that the driver has already re-emitted this event. */
@@ -27,9 +25,7 @@ declare global {
27
25
  export class DeviceAndroidTV extends DeviceBase {
28
26
  keyMap = getKeyMap();
29
27
 
30
- deviceInfo = window.JavaScriptBridge.bridgeJavaScriptToAndroid_GetDeviceInfo();
31
-
32
- platformInfo: DeviceInfo = this.deviceInfo ? JSON.parse(this.deviceInfo) : '';
28
+ platformInfo = window.JavaScriptBridge.bridgeJavaScriptToAndroid_GetDeviceInfo();
33
29
 
34
30
  firmware = getFirmware(navigator.userAgent);
35
31
 
@@ -48,54 +44,17 @@ export class DeviceAndroidTV extends DeviceBase {
48
44
  }
49
45
 
50
46
  /**
51
- * Handles keydown/up events for the BACK, FF, REW, STOP, PLAY key which are
52
- * dispatched on the document from the Android TV Bridge. We must catch them
53
- * and re-emit them properly on the active (focused) element in the DOM tree.
47
+ * Handles keydown/up events for the BACK key which are dispatched on the document
48
+ * from the Android TV Bridge. We must catch them and re-emit them properly
49
+ * on the active (focused) element in the DOM tree.
54
50
  * @param event keyboard event
55
51
  */
56
- // eslint-disable-next-line complexity
57
52
  relaunchKeyEvent = (event: CustomKeyboardEvent) => {
58
53
  if (event.bigscreenSdkRelaunched) { // prevent to relaunch event in loop
59
54
  return;
60
55
  }
61
-
62
- const { key } = event;
63
- let { keyCode } = event;
64
-
65
- // KeyCodes collisions for some key sent from Android wrapper or JavaScript (webView)
66
- if (
67
- key === 'u' // keyCode 85, same like PLAYPAUSE
68
- || key === 'v' // keyCode 86, same like STOP
69
- || key === 'y' // keyCode 89, same like REW
70
- || key === 'z' // keyCode 90, same like FF
71
- ) {
72
- return;
73
- }
74
-
75
- /**
76
- * Remap KeyCode by its key value.
77
- * On Android all colors keys and some others coming with "0" keyCode.
78
- */
79
- if (key === 'ColorF0Red') keyCode = this.keyMap.RED;
80
- if (key === 'ColorF1Green') keyCode = this.keyMap.GREEN;
81
- if (key === 'ColorF2Yellow') keyCode = this.keyMap.YELLOW;
82
- if (key === 'ColorF3Blue') keyCode = this.keyMap.BLUE;
83
- if (key === 'ClosedCaptionToggle') keyCode = this.keyMap.SUBTITLES;
84
- if (keyCode === AndroidKeyMap.STOP) keyCode = this.keyMap.STOP;
85
- if (keyCode === AndroidKeyMap.PAUSE) keyCode = this.keyMap.PAUSE;
86
-
87
- if (keyCode === this.keyMap.BACK
88
- || keyCode === this.keyMap.STOP
89
- || keyCode === this.keyMap.FF
90
- || keyCode === this.keyMap.REW
91
- || keyCode === this.keyMap.PLAYPAUSE
92
- || keyCode === this.keyMap.PLAY
93
- || keyCode === this.keyMap.RED
94
- || keyCode === this.keyMap.GREEN
95
- || keyCode === this.keyMap.YELLOW
96
- || keyCode === this.keyMap.BLUE
97
- || keyCode === this.keyMap.SUBTITLES
98
- ) {
56
+ const { keyCode } = event;
57
+ if (keyCode === this.keyMap.BACK) {
99
58
  event.preventDefault();
100
59
  event.stopImmediatePropagation();
101
60
  const newEvent = new KeyboardEvent(event.type, {
@@ -164,38 +123,10 @@ export class DeviceAndroidTV extends DeviceBase {
164
123
  return this.getBaseUuid();
165
124
  }
166
125
 
167
- async getAdInfo() {
168
- let adId = null;
169
- let latEnabled = null;
170
- const type = 'gaid';
171
- try {
172
- adId = window.JavaScriptBridge.bridgeJavaScriptToAndroid_GetAdId() ?? null;
173
- latEnabled = window.JavaScriptBridge.bridgeJavaScriptToAndroid_GetLimitAdTracking()
174
- ?? true;
175
- } catch (e) {
176
- latEnabled = true;
177
- console.error('[DeviceAndroidTV] Failed to getAdInfo', e);
178
- }
179
- return { adId, type, latEnabled };
180
- }
181
-
182
- async getOsLanguage() {
183
- try {
184
- return window.JavaScriptBridge.bridgeJavaScriptToAndroid_GetOsLanguage() || '';
185
- } catch (e) {
186
- console.error('[DeviceAndroidTV] Failed to getOsLanguage', e);
187
- return '';
188
- }
189
- }
190
-
191
126
  async getVolume(): Promise<number> {
192
127
  return VolumeRange.UNSUPPORTED;
193
128
  }
194
129
 
195
- async getWrapperVersion(): Promise<string> {
196
- return this.platformInfo.appVersion;
197
- }
198
-
199
130
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
200
131
  async setVolume(volumePercentage: number): Promise<void> {
201
132
  // not supported on AndroidTV platform
@@ -237,9 +168,7 @@ export class DeviceAndroidTV extends DeviceBase {
237
168
  }
238
169
 
239
170
  async getLocalIP(): Promise<string> {
240
- const ipv4RegExp = /\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b/;
241
- const ip = this.platformInfo.ipLocal.toString().match(ipv4RegExp);
242
- if (ip) return ip.toString();
171
+ // not supported on AndroidTV platform
243
172
  return '';
244
173
  }
245
174
 
@@ -247,16 +176,4 @@ export class DeviceAndroidTV extends DeviceBase {
247
176
  // not supported on AndroidTV platform
248
177
  return '';
249
178
  }
250
-
251
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
252
- async purchaseProduct(data: IAPPurchaseProductData): Promise<IAPSuccessPayload> {
253
- // not supported
254
- throw new Error('Not supported');
255
- }
256
-
257
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
258
- async cancelSubscription(data: IAPPurchaseProductData): Promise<void> {
259
- // not supported
260
- throw new Error('Not supported');
261
- }
262
179
  }
@@ -2,44 +2,11 @@ import { IJavaScriptBridge } from '../types';
2
2
 
3
3
  export const mockJavaScriptBridge: IJavaScriptBridge = {
4
4
  JavaScriptBridge: {
5
- bridgeJavaScriptToAndroid_GetDeviceInfo: () => (
6
- JSON.stringify({
7
- deviceBrand: 'Sony',
8
- deviceModel: 'BRAVIA 4K 2015',
9
- osVersion: '8.0.0',
10
- appVersion: '0.0.1',
11
- appFlavor: 'appstage-bigscreen',
12
- drmKeySystems: '["W3C Clear Key", "Google Widevine"]',
13
- ipLocal: '127.0.0.1',
14
- })
15
- ),
16
- bridgeJavaScriptToAndroid_GetAdId: () => 'gaid-id',
17
- bridgeJavaScriptToAndroid_GetLimitAdTracking: () => false,
18
- bridgeJavaScriptToAndroid_GetOsLanguage: () => '',
19
- bridgeJavaScriptToAndroid_GetMediaInfo: () => '{}',
5
+ bridgeJavaScriptToAndroid_GetDeviceInfo: () => ({
6
+ deviceBrand: 'Sony',
7
+ deviceModel: 'BRAVIA 4K 2015',
8
+ osVersion: '8.0.0',
9
+ }),
20
10
  bridgeJavaScriptToAndroid_Back: () => {},
21
- bridgeJavaScriptToAndroid_ReloadPlayer: () => {},
22
- bridgeJavaScriptToAndroid_StopVideo: () => {},
23
- bridgeJavaScriptToAndroid_FullScreenVideo: () => {},
24
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
25
- bridgeJavaScriptToAndroid_SetVideoPath: (url: string) => {},
26
- bridgeJavaScriptToAndroid_IsPlaying: () => true,
27
- bridgeJavaScriptToAndroid_PauseVideo: () => {},
28
- bridgeJavaScriptToAndroid_PlayVideo: () => {},
29
- bridgeJavaScriptToAndroid_IsLive: () => false,
30
- bridgeJavaScriptToAndroid_GetCurrentTime: () => Date.now(),
31
- bridgeJavaScriptToAndroid_GetTotalTime: () => Date.now(),
32
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
33
- bridgeJavaScriptToAndroid_SeekTo: (milliseconds: number) => {},
34
- bridgeJavaScriptToAndroid_getCurrentSubtitleTrack: () => '{}',
35
- bridgeJavaScriptToAndroid_getCurrentAudioTrack: () => '{}',
36
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
37
- bridgeJavaScriptToAndroid_SetTrack: (track: string) => {},
38
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
39
- bridgeJavaScriptToAndroid_SetAudioTrack: (track: string) => {},
40
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
41
- bridgeReceiptAmazonIAPValidation: (sku: string) => {},
42
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
43
- bridgeReceiptAmazonIAPValidated: (receiptId: string) => {},
44
11
  },
45
12
  };
@@ -1,2 +1 @@
1
1
  export { DeviceAndroidTV } from './DeviceAndroidTV';
2
- export type { IAPErrorEvent, IAPSuccessEvent } from './types';
@@ -4,24 +4,6 @@ import { KeyMap } from '@24i/bigscreen-sdk/driver-base';
4
4
  export const getKeyMap = () => {
5
5
  KeyMap.overrideValues({
6
6
  BACK: { keyCode: 4 },
7
- STOP: { keyCode: 86 },
8
- FF: { keyCode: 90 },
9
- REW: { keyCode: 89 },
10
- PLAY: { keyCode: 126 },
11
- PAUSE: { keyCode: 127 },
12
- PLAYPAUSE: { keyCode: 85 },
13
- SUBTITLES: { keyCode: 175 },
14
7
  });
15
8
  return KeyMap.generateKeyCodeKeyMap();
16
9
  };
17
-
18
- /**
19
- * For the specific AndroidTV devices like Sony Bravia or Nvidia Shield
20
- * there are different KeyCodes for some buttons than on other platforms.
21
- * In that case we need to re-map this specific KeyCodes to the
22
- * same values as we using in generic KeyMap list for the AndroidTV.
23
- */
24
- export const AndroidKeyMap = {
25
- STOP: 178,
26
- PAUSE: 85,
27
- };
@@ -1,155 +1,27 @@
1
1
  interface JavaScriptBridge {
2
2
  /**
3
- * It returns a JSON string with device info.
4
- * @return JSON string with the information about the device brand, model and Android version.
5
- * Ex. '{"deviceBrand": "Sony", "deviceModel": "BRAVIA 4K 2015", "osVersion": "7.0",
6
- * "appFlavor": "appstage-bigscreen", "drmKeySystems": ["Widewine", "W3C ClearKey"],
7
- * "ipLocal": "fe80::475:3045:2928:3a32%wlan0127.0.0.1", "appVersion": '0.0.1' }'
8
- */
9
- bridgeJavaScriptToAndroid_GetDeviceInfo: () => string,
10
-
11
- /**
12
- * It returns advertising id.
13
- * @return Advertising id or null if not available.
14
- */
15
- bridgeJavaScriptToAndroid_GetAdId: () => string | null,
16
- /**
17
- * It returns limit ad tracking status
18
- * @return true if limit ad tracking is enabled, false if not and null if not available.
19
- */
20
- bridgeJavaScriptToAndroid_GetLimitAdTracking: () => boolean | null,
21
- /**
22
- * It returns the language of the OS.
23
- * @return Language of the OS. Ex. "en"
24
- */
25
- bridgeJavaScriptToAndroid_GetOsLanguage: () => string,
26
- /**
27
- * It returns media info including statistics
28
- */
29
- bridgeJavaScriptToAndroid_GetMediaInfo: () => string;
3
+ * It returns device info.
4
+ */
5
+ bridgeJavaScriptToAndroid_GetDeviceInfo: () => {
6
+ /**
7
+ * Device brand. Ex. "Sony"
8
+ */
9
+ deviceBrand: string,
10
+ /**
11
+ * Device model. Ex. "BRAVIA 4K 2015"
12
+ */
13
+ deviceModel: string,
14
+ /**
15
+ * Android version. Ex. "7.0"
16
+ */
17
+ osVersion: string,
18
+ },
30
19
  /**
31
20
  * It simulates a native Android back press.
32
21
  */
33
22
  bridgeJavaScriptToAndroid_Back: () => void,
34
- /**
35
- * It reloads the video player
36
- */
37
- bridgeJavaScriptToAndroid_ReloadPlayer: () => void;
38
- /**
39
- * It simulates a native Android stop button press.
40
- */
41
- bridgeJavaScriptToAndroid_StopVideo: () => void;
42
- /**
43
- * It sets the video to fullscreen mode
44
- */
45
- bridgeJavaScriptToAndroid_FullScreenVideo: () => void;
46
- /**
47
- * It sets the video url
48
- */
49
- bridgeJavaScriptToAndroid_SetVideoPath: (url: string) => void;
50
- /**
51
- * It returns whether the video is playing
52
- */
53
- bridgeJavaScriptToAndroid_IsPlaying: () => boolean;
54
- /**
55
- * It pauses the video
56
- */
57
- bridgeJavaScriptToAndroid_PauseVideo: () => void;
58
- /**
59
- * It plays the video
60
- */
61
- bridgeJavaScriptToAndroid_PlayVideo: () => void;
62
- /**
63
- * It returns whether the video is live
64
- */
65
- bridgeJavaScriptToAndroid_IsLive: () => boolean;
66
- /**
67
- * It returns current time of currently played video
68
- */
69
- bridgeJavaScriptToAndroid_GetCurrentTime: () => number;
70
- /**
71
- * It returns total duration of the video
72
- */
73
- bridgeJavaScriptToAndroid_GetTotalTime: () => number;
74
- /**
75
- * It seeks the video to specified milliseconds
76
- */
77
- bridgeJavaScriptToAndroid_SeekTo: (milliseconds: number) => void;
78
- /**
79
- * It returns current text track
80
- */
81
- bridgeJavaScriptToAndroid_getCurrentSubtitleTrack: () => string | undefined;
82
- /**
83
- * It returns current audio track
84
- */
85
- bridgeJavaScriptToAndroid_getCurrentAudioTrack: () => string | undefined;
86
- /**
87
- * It sets text track to be shown.
88
- */
89
- bridgeJavaScriptToAndroid_SetTrack: (track: string) => void;
90
- /**
91
- * It sets audio track to be used.
92
- */
93
- bridgeJavaScriptToAndroid_SetAudioTrack: (track: string) => void;
94
- /**
95
- * It launch in app purchase.
96
- */
97
- bridgeReceiptAmazonIAPValidation: (sku: string) => void;
98
- /**
99
- * It validate purchase.
100
- */
101
- bridgeReceiptAmazonIAPValidated: (receiptId: string) => void;
102
23
  }
103
24
 
104
- export type DeviceInfo = {
105
- /**
106
- * Device brand. Ex. "Sony"
107
- */
108
- deviceBrand: string,
109
- /**
110
- * Device model. Ex. "BRAVIA 4K 2015"
111
- */
112
- deviceModel: string,
113
- /**
114
- * Android version. Ex. "7.0"
115
- */
116
- osVersion: string,
117
- /**
118
- * Android wrapper version. Ex. "0.0.1"
119
- */
120
- appVersion: string,
121
- /**
122
- * Android flavor. Ex. "appstage-bigscreen"
123
- */
124
- appFlavor: string,
125
- /**
126
- * Underlying player engine name. Ex. "exoplayer"
127
- */
128
- engineName: string,
129
- /**
130
- * Version of player engine. Ex. "2.18.1"
131
- */
132
- engineVersion: string,
133
- /**
134
- * Android DRM key systems. Ex. ["Widewine", "W3C ClearKey"]
135
- */
136
- drmKeySystems: Array<string>,
137
- /**
138
- * Android local IP adress in array Ex. "fe80::475:3045:2928:3a32%wlan0127.0.0.1"
139
- */
140
- ipLocal: string,
141
- };
142
-
143
25
  export interface IJavaScriptBridge {
144
26
  JavaScriptBridge: JavaScriptBridge,
145
27
  }
146
-
147
- export type IAPSuccessEvent = {
148
- userId: string;
149
- receipt: string;
150
- sku: string;
151
- };
152
-
153
- export type IAPErrorEvent = {
154
- message: string;
155
- };
@@ -1,5 +1,4 @@
1
1
  import { Storage } from '@24i/bigscreen-sdk/storage';
2
- import { config } from '@24i/bigscreen-sdk/runtime-config';
3
2
  import { generateUuid } from '@24i/bigscreen-sdk/utils/generateUuid';
4
3
  import { EventsManager, IEvents, EventMapType } from '@24i/bigscreen-sdk/events-manager';
5
4
  import { isRtl } from '@24i/bigscreen-sdk/i18n';
@@ -8,26 +7,15 @@ import { ScreenSize } from './ScreenSize';
8
7
  import { VolumeRange } from './VolumeRange';
9
8
  import { KeycodeKeyMap } from './types/KeycodeKeyMap';
10
9
  import { DeviceEventMap } from './types/DeviceEvent';
11
- import { AdInfo } from './types/AdInfo';
12
10
  import { ScreenSaverStatus } from './types/ScreenSaverStatus';
13
- import {
14
- SubscriptionFeaturesConfiguration,
15
- IAPPurchaseProductData,
16
- IAPSuccessPayload,
17
- } from './types/InAppPurchase';
18
11
  import { ExitOptions } from './types/ExitOptions';
19
12
  import { inRange } from './utils';
20
13
  import { ErrorTemplate } from './errors';
21
14
  import { bindPreventDefaultEvent } from './bindPreventDefaultEvent';
22
- import { LEFT, RIGHT, UP, DOWN, ENTER, BACK, ESC } from './KeyMap';
15
+ import { LEFT, RIGHT, UP, DOWN, ENTER, BACK } from './KeyMap';
23
16
 
24
17
  export const STORAGE_UUID_KEY = '__UUID__';
25
18
 
26
- const DEFAULT_POLLING_INTERVAL = 15000;
27
- const DEFAULT_POLLING_TIMEOUT = 15000;
28
-
29
- const CHECKED_URL = '//www.google-analytics.com/__utm.gif';
30
-
31
19
  export abstract class DeviceBase<
32
20
  CustomEventMap extends EventMapType = {},
33
21
  EventMap extends EventMapType = DeviceEventMap & CustomEventMap,
@@ -53,19 +41,6 @@ export abstract class DeviceBase<
53
41
 
54
42
  screenSize: ScreenSize = 'unknown';
55
43
 
56
- pollingInterval: number = DEFAULT_POLLING_INTERVAL;
57
-
58
- pollingTimeout: number = DEFAULT_POLLING_TIMEOUT;
59
-
60
- imageTimeout: number = 0;
61
-
62
- isOffline: boolean = false;
63
-
64
- subscriptionFeaturesConfiguration: SubscriptionFeaturesConfiguration = {
65
- purchase: false,
66
- management: false,
67
- };
68
-
69
44
  // MARK: Initialization
70
45
 
71
46
  /**
@@ -77,7 +52,6 @@ export abstract class DeviceBase<
77
52
  if (!this.isInitialized) {
78
53
  this.bindPreventDefaultEvents(rootElement);
79
54
  const initializer = await this.internalInit();
80
- this.checkNetworkConnection();
81
55
  this.isInitialized = true;
82
56
  return initializer;
83
57
  }
@@ -97,46 +71,6 @@ export abstract class DeviceBase<
97
71
  return this.initializer;
98
72
  }
99
73
 
100
- doOnlineCheck = () => {
101
- const protocol = window.location.protocol === 'http:' ? 'http:' : 'https:';
102
- const tester = new Image();
103
- this.imageTimeout = window.setTimeout(() => {
104
- this.connectionNotFound();
105
- }, this.pollingTimeout || DEFAULT_POLLING_TIMEOUT);
106
- tester.onload = this.connectionFound;
107
- tester.onerror = this.connectionNotFound;
108
- tester.src = `${protocol}${CHECKED_URL}?ts=${Date.now()}`;
109
- };
110
-
111
- connectionFound = () => {
112
- window.clearTimeout(this.imageTimeout);
113
- if (!this.isOffline) return;
114
- this.triggerEvent('networkchange',
115
- { isConnected: true } as any);
116
- this.isOffline = false;
117
- };
118
-
119
- connectionNotFound = () => {
120
- window.clearTimeout(this.imageTimeout);
121
- if (this.isOffline) return;
122
- this.triggerEvent('networkchange',
123
- { isConnected: false } as any);
124
- this.isOffline = true;
125
- };
126
-
127
- checkNetworkConnection() {
128
- const networkConfig: any = config.get('network.checkConnection');
129
- this.pollingInterval = Number(networkConfig?.pollingInterval);
130
- this.pollingTimeout = Number(networkConfig?.pollingTimeout);
131
- const enableCheckNetwork: any = Boolean(networkConfig?.enableCheckNetwork) ?? false;
132
- if (enableCheckNetwork) {
133
- window.setInterval(
134
- this.doOnlineCheck,
135
- this.pollingInterval || DEFAULT_POLLING_INTERVAL,
136
- );
137
- }
138
- }
139
-
140
74
  // MARK: Interface implemented by individual platform-specific drivers
141
75
 
142
76
  abstract initDevice(): Promise<void>;
@@ -163,10 +97,6 @@ export abstract class DeviceBase<
163
97
 
164
98
  abstract getUuid(): Promise<string>;
165
99
 
166
- abstract getAdInfo(): Promise<AdInfo>;
167
-
168
- abstract getOsLanguage(): Promise<string>;
169
-
170
100
  abstract getVolume(): Promise<number>;
171
101
 
172
102
  abstract setVolume(volumePercentage: number): Promise<void>;
@@ -189,10 +119,6 @@ export abstract class DeviceBase<
189
119
 
190
120
  abstract getMacAddress(): Promise<string>;
191
121
 
192
- abstract purchaseProduct(data: IAPPurchaseProductData): Promise<IAPSuccessPayload>;
193
-
194
- abstract cancelSubscription(data: IAPPurchaseProductData): Promise<void>;
195
-
196
122
  // MARK: Private functions
197
123
 
198
124
  private bindPreventDefaultEvents(rootElement: HTMLElement) {
@@ -279,7 +205,7 @@ export abstract class DeviceBase<
279
205
  }
280
206
 
281
207
  isBackOrEscape(event: MouseEvent | KeyboardEvent) {
282
- return BACK.is(event as KeyboardEvent) || ESC.is(event as KeyboardEvent);
208
+ return BACK.is(event as KeyboardEvent);
283
209
  }
284
210
 
285
211
  getDeviceClass() : string {
@@ -291,8 +217,4 @@ export abstract class DeviceBase<
291
217
  isMouseUsed() {
292
218
  return this.isMouseActive;
293
219
  }
294
-
295
- getResolution() {
296
- return { width: window.screen?.width, height: window.screen?.height };
297
- }
298
220
  }
@@ -12,25 +12,21 @@ export class Key {
12
12
 
13
13
  alternativeKeyCodes: number[];
14
14
 
15
- key: string;
16
-
17
15
  constructor({
18
16
  id,
19
17
  code = '',
20
18
  keyCode = 0,
21
19
  alternativeCodes = [],
22
20
  alternativeKeyCodes = [],
23
- key = '',
24
21
  }: Partial<KeyConfig> = {}) {
25
22
  this.id = id!;
26
23
  this.code = code;
27
24
  this.keyCode = keyCode;
28
25
  this.alternativeCodes = alternativeCodes;
29
26
  this.alternativeKeyCodes = alternativeKeyCodes;
30
- this.key = key;
31
27
  }
32
28
 
33
- is({ keyCode, code, key }: KeyboardEvent) {
29
+ is({ keyCode, code }: KeyboardEvent) {
34
30
  return Boolean(
35
31
  code && ( // empty string code means unknown/invalid --> should not compare
36
32
  code === this.code
@@ -39,9 +35,6 @@ export class Key {
39
35
  || keyCode && ( // keyCode 0 means unknown/invalid --> should not compare
40
36
  keyCode === this.keyCode
41
37
  || this.alternativeKeyCodes.length && includes(this.alternativeKeyCodes, keyCode)
42
- )
43
- || key && ( // empty string code means unknown/invalid --> should not compare
44
- key === this.key
45
38
  ),
46
39
  );
47
40
  }