incyclist-services 1.7.81 → 1.7.82
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/lib/cjs/routes/list/cards/RouteCard.js +24 -0
- package/lib/cjs/workouts/list/service.js +4 -0
- package/lib/cjs/workouts/page/service.js +15 -2
- package/lib/cjs/workouts/ride/page/service.js +4 -13
- package/lib/esm/routes/list/cards/RouteCard.js +25 -1
- package/lib/esm/workouts/list/service.js +4 -0
- package/lib/esm/workouts/page/service.js +15 -2
- package/lib/esm/workouts/ride/page/service.js +4 -13
- package/lib/types/appstate/types.d.ts +1 -1
- package/lib/types/routes/list/cards/RouteCard.d.ts +1 -0
- package/lib/types/workouts/page/service.d.ts +1 -0
- package/lib/types/workouts/ride/page/service.d.ts +0 -1
- package/package.json +1 -1
|
@@ -389,6 +389,13 @@ let RouteCard = (() => {
|
|
|
389
389
|
showNextOverwrite = false;
|
|
390
390
|
}
|
|
391
391
|
}
|
|
392
|
+
if (showNextOverwrite) {
|
|
393
|
+
const nextVideoEnabled = this.isMobile() ? this.getAppState().hasFeature('MOBILE_NEXT_VIDEO') : true;
|
|
394
|
+
if (!nextVideoEnabled) {
|
|
395
|
+
showNextOverwrite = false;
|
|
396
|
+
uiSettings.nextOverwrite = true;
|
|
397
|
+
}
|
|
398
|
+
}
|
|
392
399
|
}
|
|
393
400
|
catch (err) {
|
|
394
401
|
this.logError(err, 'openSettings');
|
|
@@ -540,6 +547,7 @@ let RouteCard = (() => {
|
|
|
540
547
|
start() {
|
|
541
548
|
try {
|
|
542
549
|
const service = (0, service_1.getRouteList)();
|
|
550
|
+
this.enforceNextVideoOverrideOnMobile();
|
|
543
551
|
service.select(this.route);
|
|
544
552
|
service.setStartSettings({ type: this.getCardType(), ...this.startSettings });
|
|
545
553
|
this.route.description.tsLastStart = Date.now();
|
|
@@ -556,6 +564,7 @@ let RouteCard = (() => {
|
|
|
556
564
|
addWorkout() {
|
|
557
565
|
try {
|
|
558
566
|
const service = (0, service_1.getRouteList)();
|
|
567
|
+
this.enforceNextVideoOverrideOnMobile();
|
|
559
568
|
service.select(this.route);
|
|
560
569
|
service.setStartSettings({ type: this.getCardType(), ...this.startSettings });
|
|
561
570
|
this.route.description.tsLastStart = Date.now();
|
|
@@ -565,6 +574,21 @@ let RouteCard = (() => {
|
|
|
565
574
|
this.logError(err, 'addWorkout');
|
|
566
575
|
}
|
|
567
576
|
}
|
|
577
|
+
enforceNextVideoOverrideOnMobile() {
|
|
578
|
+
try {
|
|
579
|
+
if (!this.isMobile())
|
|
580
|
+
return;
|
|
581
|
+
if (!this.startSettings || !(0, route_1.hasNextVideo)(this.route))
|
|
582
|
+
return;
|
|
583
|
+
const nextVideoEnabled = this.getAppState().hasFeature('MOBILE_NEXT_VIDEO');
|
|
584
|
+
if (!nextVideoEnabled) {
|
|
585
|
+
this.startSettings.nextOverwrite = true;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
catch (err) {
|
|
589
|
+
this.logError(err, 'enforceNextVideoOverrideOnMobile');
|
|
590
|
+
}
|
|
591
|
+
}
|
|
568
592
|
getCurrentDownload() {
|
|
569
593
|
return this.downloadObserver;
|
|
570
594
|
}
|
|
@@ -145,6 +145,10 @@ let WorkoutListService = (() => {
|
|
|
145
145
|
}
|
|
146
146
|
close() {
|
|
147
147
|
this.getWorkoutCalendar().setActive(false);
|
|
148
|
+
this.logEvent({ message: 'close workout list' });
|
|
149
|
+
this.emit('closed', this.observer);
|
|
150
|
+
this.observer?.emit('stopped');
|
|
151
|
+
this.observer?.reset();
|
|
148
152
|
}
|
|
149
153
|
openSettings() {
|
|
150
154
|
let workouts;
|
|
@@ -43,6 +43,7 @@ const observer_1 = require("../../base/types/observer");
|
|
|
43
43
|
const settings_1 = require("../../settings");
|
|
44
44
|
const calendar_1 = require("../calendar");
|
|
45
45
|
const service_1 = require("../list/service");
|
|
46
|
+
const devices_1 = require("../../devices");
|
|
46
47
|
const DEFAULT_IMPORT_GROUP = 'My Workouts';
|
|
47
48
|
const UPCOMING_COLLAPSED_COUNT = 3;
|
|
48
49
|
let WorkoutListPageService = (() => {
|
|
@@ -52,6 +53,7 @@ let WorkoutListPageService = (() => {
|
|
|
52
53
|
let _classThis;
|
|
53
54
|
let _classSuper = pages_1.IncyclistPageService;
|
|
54
55
|
let _instanceExtraInitializers = [];
|
|
56
|
+
let _getDevicePairing_decorators;
|
|
55
57
|
let _getWorkoutList_decorators;
|
|
56
58
|
let _getWorkoutCalendar_decorators;
|
|
57
59
|
let _getUserSettings_decorators;
|
|
@@ -60,10 +62,12 @@ let WorkoutListPageService = (() => {
|
|
|
60
62
|
static { _classThis = this; }
|
|
61
63
|
static {
|
|
62
64
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
65
|
+
_getDevicePairing_decorators = [decorators_1.Injectable];
|
|
63
66
|
_getWorkoutList_decorators = [decorators_1.Injectable];
|
|
64
67
|
_getWorkoutCalendar_decorators = [decorators_1.Injectable];
|
|
65
68
|
_getUserSettings_decorators = [decorators_1.Injectable];
|
|
66
69
|
_getAppState_decorators = [decorators_1.Injectable];
|
|
70
|
+
__esDecorate(this, null, _getDevicePairing_decorators, { kind: "method", name: "getDevicePairing", static: false, private: false, access: { has: obj => "getDevicePairing" in obj, get: obj => obj.getDevicePairing }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
67
71
|
__esDecorate(this, null, _getWorkoutList_decorators, { kind: "method", name: "getWorkoutList", static: false, private: false, access: { has: obj => "getWorkoutList" in obj, get: obj => obj.getWorkoutList }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
68
72
|
__esDecorate(this, null, _getWorkoutCalendar_decorators, { kind: "method", name: "getWorkoutCalendar", static: false, private: false, access: { has: obj => "getWorkoutCalendar" in obj, get: obj => obj.getWorkoutCalendar }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
69
73
|
__esDecorate(this, null, _getUserSettings_decorators, { kind: "method", name: "getUserSettings", static: false, private: false, access: { has: obj => "getUserSettings" in obj, get: obj => obj.getUserSettings }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -264,9 +268,15 @@ let WorkoutListPageService = (() => {
|
|
|
264
268
|
const card = this.findWorkoutCard(id);
|
|
265
269
|
if (!card)
|
|
266
270
|
return;
|
|
267
|
-
const
|
|
271
|
+
const service = this.getWorkoutList();
|
|
272
|
+
const pairing = this.getDevicePairing();
|
|
273
|
+
const settings = service.getStartSettings() ?? {};
|
|
268
274
|
card.select({ ...settings, noRoute: opts?.noRoute });
|
|
269
|
-
this.
|
|
275
|
+
this.logEvent({ message: 'Attempting to start a ride', id, ...settings, noRoute: opts?.noRoute, readyToStart: pairing.isReadyToStart(), });
|
|
276
|
+
this.detailWorkoutId = null;
|
|
277
|
+
service.close();
|
|
278
|
+
const next = pairing.isReadyToStart() ? '/rideDeviceOK' : '/pairingStart';
|
|
279
|
+
this.moveTo(next);
|
|
270
280
|
}
|
|
271
281
|
catch (err) {
|
|
272
282
|
this.logError(err, 'onStart');
|
|
@@ -455,6 +465,9 @@ let WorkoutListPageService = (() => {
|
|
|
455
465
|
this.logError(err, 'emitImportUpdate');
|
|
456
466
|
}
|
|
457
467
|
}
|
|
468
|
+
getDevicePairing() {
|
|
469
|
+
return (0, devices_1.useDevicePairing)();
|
|
470
|
+
}
|
|
458
471
|
getWorkoutList() {
|
|
459
472
|
return (0, service_1.useWorkoutList)();
|
|
460
473
|
}
|
|
@@ -77,7 +77,6 @@ let WorkoutRidePageService = (() => {
|
|
|
77
77
|
backgroundTimer;
|
|
78
78
|
backgroundPausedByService = false;
|
|
79
79
|
menuProps = null;
|
|
80
|
-
isInitialized = false;
|
|
81
80
|
constructor() {
|
|
82
81
|
super('WorkoutRidePage');
|
|
83
82
|
this.rideEventHandler['state-update'] = this.onRideStateUpdate.bind(this);
|
|
@@ -95,10 +94,6 @@ let WorkoutRidePageService = (() => {
|
|
|
95
94
|
super.openPage();
|
|
96
95
|
try {
|
|
97
96
|
const service = this.getRideDisplay();
|
|
98
|
-
if (!this.isInitialized) {
|
|
99
|
-
service.init();
|
|
100
|
-
this.isInitialized = true;
|
|
101
|
-
}
|
|
102
97
|
this.registerRideEventHandlers();
|
|
103
98
|
this.subscribeToWorkoutObserver();
|
|
104
99
|
service.start(simulate);
|
|
@@ -120,7 +115,6 @@ let WorkoutRidePageService = (() => {
|
|
|
120
115
|
this.unregisterRideEventHandlers();
|
|
121
116
|
this.unsubscribeFromWorkoutObserver();
|
|
122
117
|
this.menuProps = null;
|
|
123
|
-
this.isInitialized = false;
|
|
124
118
|
super.closePage();
|
|
125
119
|
}
|
|
126
120
|
catch (err) {
|
|
@@ -314,19 +308,15 @@ let WorkoutRidePageService = (() => {
|
|
|
314
308
|
switch (state) {
|
|
315
309
|
case 'Paused':
|
|
316
310
|
this.menuProps = { showResume: true, ...this.getStepFlags() };
|
|
317
|
-
this.updatePageDisplay();
|
|
318
311
|
break;
|
|
319
312
|
case 'Active':
|
|
320
313
|
this.menuProps = null;
|
|
321
|
-
this.updatePageDisplay();
|
|
322
314
|
break;
|
|
323
315
|
case 'Finished':
|
|
324
316
|
this.emitNavigateBack();
|
|
325
|
-
|
|
326
|
-
case 'Error':
|
|
327
|
-
this.updatePageDisplay();
|
|
328
|
-
break;
|
|
317
|
+
return;
|
|
329
318
|
}
|
|
319
|
+
this.updatePageDisplay();
|
|
330
320
|
}
|
|
331
321
|
onWorkoutUpdate() {
|
|
332
322
|
this.updatePageDisplay();
|
|
@@ -373,7 +363,8 @@ let WorkoutRidePageService = (() => {
|
|
|
373
363
|
}
|
|
374
364
|
const bars = (0, graph_1.getWorkoutGraphSeries)(current, { ftp, absValues: true });
|
|
375
365
|
const lastBarX = bars.length ? bars.at(-1).x : 0;
|
|
376
|
-
const
|
|
366
|
+
const maxXCandidates = [this.getLastLogTime(), lastBarX, current.duration ?? 0].filter(Number.isFinite);
|
|
367
|
+
const maxX = maxXCandidates.length ? Math.max(...maxXCandidates) : 0;
|
|
377
368
|
const maxBarPower = bars.length ? Math.max(...bars.map(b => b.y)) : 0;
|
|
378
369
|
return {
|
|
379
370
|
bars,
|
|
@@ -43,7 +43,7 @@ import { valid } from "../../../utils/valid";
|
|
|
43
43
|
import { waitNextTick } from "../../../utils";
|
|
44
44
|
import { useRouteDownload } from "../../download/service";
|
|
45
45
|
import { EventLogger } from "gd-eventlog";
|
|
46
|
-
import { checkIsLoop, getNextVideoId, getPosition, updateSlopes } from "../../base/utils/route";
|
|
46
|
+
import { checkIsLoop, getNextVideoId, hasNextVideo, getPosition, updateSlopes } from "../../base/utils/route";
|
|
47
47
|
import { getWorkoutList } from "../../../workouts";
|
|
48
48
|
import { checkIsNew } from "../utils";
|
|
49
49
|
import { useOnlineStatusMonitoring } from "../../../monitoring";
|
|
@@ -386,6 +386,13 @@ let RouteCard = (() => {
|
|
|
386
386
|
showNextOverwrite = false;
|
|
387
387
|
}
|
|
388
388
|
}
|
|
389
|
+
if (showNextOverwrite) {
|
|
390
|
+
const nextVideoEnabled = this.isMobile() ? this.getAppState().hasFeature('MOBILE_NEXT_VIDEO') : true;
|
|
391
|
+
if (!nextVideoEnabled) {
|
|
392
|
+
showNextOverwrite = false;
|
|
393
|
+
uiSettings.nextOverwrite = true;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
389
396
|
}
|
|
390
397
|
catch (err) {
|
|
391
398
|
this.logError(err, 'openSettings');
|
|
@@ -537,6 +544,7 @@ let RouteCard = (() => {
|
|
|
537
544
|
start() {
|
|
538
545
|
try {
|
|
539
546
|
const service = getRouteList();
|
|
547
|
+
this.enforceNextVideoOverrideOnMobile();
|
|
540
548
|
service.select(this.route);
|
|
541
549
|
service.setStartSettings({ type: this.getCardType(), ...this.startSettings });
|
|
542
550
|
this.route.description.tsLastStart = Date.now();
|
|
@@ -553,6 +561,7 @@ let RouteCard = (() => {
|
|
|
553
561
|
addWorkout() {
|
|
554
562
|
try {
|
|
555
563
|
const service = getRouteList();
|
|
564
|
+
this.enforceNextVideoOverrideOnMobile();
|
|
556
565
|
service.select(this.route);
|
|
557
566
|
service.setStartSettings({ type: this.getCardType(), ...this.startSettings });
|
|
558
567
|
this.route.description.tsLastStart = Date.now();
|
|
@@ -562,6 +571,21 @@ let RouteCard = (() => {
|
|
|
562
571
|
this.logError(err, 'addWorkout');
|
|
563
572
|
}
|
|
564
573
|
}
|
|
574
|
+
enforceNextVideoOverrideOnMobile() {
|
|
575
|
+
try {
|
|
576
|
+
if (!this.isMobile())
|
|
577
|
+
return;
|
|
578
|
+
if (!this.startSettings || !hasNextVideo(this.route))
|
|
579
|
+
return;
|
|
580
|
+
const nextVideoEnabled = this.getAppState().hasFeature('MOBILE_NEXT_VIDEO');
|
|
581
|
+
if (!nextVideoEnabled) {
|
|
582
|
+
this.startSettings.nextOverwrite = true;
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
catch (err) {
|
|
586
|
+
this.logError(err, 'enforceNextVideoOverrideOnMobile');
|
|
587
|
+
}
|
|
588
|
+
}
|
|
565
589
|
getCurrentDownload() {
|
|
566
590
|
return this.downloadObserver;
|
|
567
591
|
}
|
|
@@ -142,6 +142,10 @@ let WorkoutListService = (() => {
|
|
|
142
142
|
}
|
|
143
143
|
close() {
|
|
144
144
|
this.getWorkoutCalendar().setActive(false);
|
|
145
|
+
this.logEvent({ message: 'close workout list' });
|
|
146
|
+
this.emit('closed', this.observer);
|
|
147
|
+
this.observer?.emit('stopped');
|
|
148
|
+
this.observer?.reset();
|
|
145
149
|
}
|
|
146
150
|
openSettings() {
|
|
147
151
|
let workouts;
|
|
@@ -40,6 +40,7 @@ import { Observer } from "../../base/types/observer";
|
|
|
40
40
|
import { useUserSettings } from "../../settings";
|
|
41
41
|
import { useWorkoutCalendar } from "../calendar";
|
|
42
42
|
import { useWorkoutList } from "../list/service";
|
|
43
|
+
import { useDevicePairing } from "../../devices";
|
|
43
44
|
const DEFAULT_IMPORT_GROUP = 'My Workouts';
|
|
44
45
|
const UPCOMING_COLLAPSED_COUNT = 3;
|
|
45
46
|
let WorkoutListPageService = (() => {
|
|
@@ -49,6 +50,7 @@ let WorkoutListPageService = (() => {
|
|
|
49
50
|
let _classThis;
|
|
50
51
|
let _classSuper = IncyclistPageService;
|
|
51
52
|
let _instanceExtraInitializers = [];
|
|
53
|
+
let _getDevicePairing_decorators;
|
|
52
54
|
let _getWorkoutList_decorators;
|
|
53
55
|
let _getWorkoutCalendar_decorators;
|
|
54
56
|
let _getUserSettings_decorators;
|
|
@@ -57,10 +59,12 @@ let WorkoutListPageService = (() => {
|
|
|
57
59
|
static { _classThis = this; }
|
|
58
60
|
static {
|
|
59
61
|
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
62
|
+
_getDevicePairing_decorators = [Injectable];
|
|
60
63
|
_getWorkoutList_decorators = [Injectable];
|
|
61
64
|
_getWorkoutCalendar_decorators = [Injectable];
|
|
62
65
|
_getUserSettings_decorators = [Injectable];
|
|
63
66
|
_getAppState_decorators = [Injectable];
|
|
67
|
+
__esDecorate(this, null, _getDevicePairing_decorators, { kind: "method", name: "getDevicePairing", static: false, private: false, access: { has: obj => "getDevicePairing" in obj, get: obj => obj.getDevicePairing }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
64
68
|
__esDecorate(this, null, _getWorkoutList_decorators, { kind: "method", name: "getWorkoutList", static: false, private: false, access: { has: obj => "getWorkoutList" in obj, get: obj => obj.getWorkoutList }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
65
69
|
__esDecorate(this, null, _getWorkoutCalendar_decorators, { kind: "method", name: "getWorkoutCalendar", static: false, private: false, access: { has: obj => "getWorkoutCalendar" in obj, get: obj => obj.getWorkoutCalendar }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
66
70
|
__esDecorate(this, null, _getUserSettings_decorators, { kind: "method", name: "getUserSettings", static: false, private: false, access: { has: obj => "getUserSettings" in obj, get: obj => obj.getUserSettings }, metadata: _metadata }, null, _instanceExtraInitializers);
|
|
@@ -261,9 +265,15 @@ let WorkoutListPageService = (() => {
|
|
|
261
265
|
const card = this.findWorkoutCard(id);
|
|
262
266
|
if (!card)
|
|
263
267
|
return;
|
|
264
|
-
const
|
|
268
|
+
const service = this.getWorkoutList();
|
|
269
|
+
const pairing = this.getDevicePairing();
|
|
270
|
+
const settings = service.getStartSettings() ?? {};
|
|
265
271
|
card.select({ ...settings, noRoute: opts?.noRoute });
|
|
266
|
-
this.
|
|
272
|
+
this.logEvent({ message: 'Attempting to start a ride', id, ...settings, noRoute: opts?.noRoute, readyToStart: pairing.isReadyToStart(), });
|
|
273
|
+
this.detailWorkoutId = null;
|
|
274
|
+
service.close();
|
|
275
|
+
const next = pairing.isReadyToStart() ? '/rideDeviceOK' : '/pairingStart';
|
|
276
|
+
this.moveTo(next);
|
|
267
277
|
}
|
|
268
278
|
catch (err) {
|
|
269
279
|
this.logError(err, 'onStart');
|
|
@@ -452,6 +462,9 @@ let WorkoutListPageService = (() => {
|
|
|
452
462
|
this.logError(err, 'emitImportUpdate');
|
|
453
463
|
}
|
|
454
464
|
}
|
|
465
|
+
getDevicePairing() {
|
|
466
|
+
return useDevicePairing();
|
|
467
|
+
}
|
|
455
468
|
getWorkoutList() {
|
|
456
469
|
return useWorkoutList();
|
|
457
470
|
}
|
|
@@ -74,7 +74,6 @@ let WorkoutRidePageService = (() => {
|
|
|
74
74
|
backgroundTimer;
|
|
75
75
|
backgroundPausedByService = false;
|
|
76
76
|
menuProps = null;
|
|
77
|
-
isInitialized = false;
|
|
78
77
|
constructor() {
|
|
79
78
|
super('WorkoutRidePage');
|
|
80
79
|
this.rideEventHandler['state-update'] = this.onRideStateUpdate.bind(this);
|
|
@@ -92,10 +91,6 @@ let WorkoutRidePageService = (() => {
|
|
|
92
91
|
super.openPage();
|
|
93
92
|
try {
|
|
94
93
|
const service = this.getRideDisplay();
|
|
95
|
-
if (!this.isInitialized) {
|
|
96
|
-
service.init();
|
|
97
|
-
this.isInitialized = true;
|
|
98
|
-
}
|
|
99
94
|
this.registerRideEventHandlers();
|
|
100
95
|
this.subscribeToWorkoutObserver();
|
|
101
96
|
service.start(simulate);
|
|
@@ -117,7 +112,6 @@ let WorkoutRidePageService = (() => {
|
|
|
117
112
|
this.unregisterRideEventHandlers();
|
|
118
113
|
this.unsubscribeFromWorkoutObserver();
|
|
119
114
|
this.menuProps = null;
|
|
120
|
-
this.isInitialized = false;
|
|
121
115
|
super.closePage();
|
|
122
116
|
}
|
|
123
117
|
catch (err) {
|
|
@@ -311,19 +305,15 @@ let WorkoutRidePageService = (() => {
|
|
|
311
305
|
switch (state) {
|
|
312
306
|
case 'Paused':
|
|
313
307
|
this.menuProps = { showResume: true, ...this.getStepFlags() };
|
|
314
|
-
this.updatePageDisplay();
|
|
315
308
|
break;
|
|
316
309
|
case 'Active':
|
|
317
310
|
this.menuProps = null;
|
|
318
|
-
this.updatePageDisplay();
|
|
319
311
|
break;
|
|
320
312
|
case 'Finished':
|
|
321
313
|
this.emitNavigateBack();
|
|
322
|
-
|
|
323
|
-
case 'Error':
|
|
324
|
-
this.updatePageDisplay();
|
|
325
|
-
break;
|
|
314
|
+
return;
|
|
326
315
|
}
|
|
316
|
+
this.updatePageDisplay();
|
|
327
317
|
}
|
|
328
318
|
onWorkoutUpdate() {
|
|
329
319
|
this.updatePageDisplay();
|
|
@@ -370,7 +360,8 @@ let WorkoutRidePageService = (() => {
|
|
|
370
360
|
}
|
|
371
361
|
const bars = getWorkoutGraphSeries(current, { ftp, absValues: true });
|
|
372
362
|
const lastBarX = bars.length ? bars.at(-1).x : 0;
|
|
373
|
-
const
|
|
363
|
+
const maxXCandidates = [this.getLastLogTime(), lastBarX, current.duration ?? 0].filter(Number.isFinite);
|
|
364
|
+
const maxX = maxXCandidates.length ? Math.max(...maxXCandidates) : 0;
|
|
374
365
|
const maxBarPower = bars.length ? Math.max(...bars.map(b => b.y)) : 0;
|
|
375
366
|
return {
|
|
376
367
|
bars,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type FeatureToggle = 'NEW_SEARCH_UI' | 'CONTROLLERS' | 'MOBILE_WORKOUTS' | 'WEBBLE_WINDOWS';
|
|
1
|
+
export type FeatureToggle = 'NEW_SEARCH_UI' | 'CONTROLLERS' | 'MOBILE_WORKOUTS' | 'WEBBLE_WINDOWS' | 'MOBILE_NEXT_VIDEO';
|
|
2
2
|
export type Interfaces = 'ant' | 'ble' | 'serial' | 'wifi' | 'tcpip';
|
|
3
3
|
export type BLEFeatures = {
|
|
4
4
|
services: Array<string>;
|
|
@@ -78,6 +78,7 @@ export declare class RouteCard extends BaseCard implements Card<Route> {
|
|
|
78
78
|
start(): void;
|
|
79
79
|
cancel(): void;
|
|
80
80
|
addWorkout(): void;
|
|
81
|
+
protected enforceNextVideoOverrideOnMobile(): void;
|
|
81
82
|
getCurrentDownload(): Observer;
|
|
82
83
|
getVideoDir(): string;
|
|
83
84
|
setVideoDir(dir: string): void;
|
|
@@ -50,6 +50,7 @@ export declare class WorkoutListPageService extends IncyclistPageService impleme
|
|
|
50
50
|
protected formatDuration(duration: number): string;
|
|
51
51
|
protected emitPageUpdate(): void;
|
|
52
52
|
protected emitImportUpdate(): void;
|
|
53
|
+
protected getDevicePairing(): import("../../devices").DevicePairingService;
|
|
53
54
|
protected getWorkoutList(): WorkoutListService;
|
|
54
55
|
protected getWorkoutCalendar(): import("../calendar").WorkoutCalendarService;
|
|
55
56
|
protected getUserSettings(): import("../../settings").UserSettingsService;
|
|
@@ -12,7 +12,6 @@ export declare class WorkoutRidePageService extends IncyclistPageService impleme
|
|
|
12
12
|
protected backgroundTimer: NodeJS.Timeout | undefined;
|
|
13
13
|
protected backgroundPausedByService: boolean;
|
|
14
14
|
protected menuProps: WorkoutRideMenuProps | null;
|
|
15
|
-
protected isInitialized: boolean;
|
|
16
15
|
constructor();
|
|
17
16
|
openPage(simulate?: boolean): IObserver;
|
|
18
17
|
closePage(): void;
|