Remove the MediaQuery wrapper from the camera manager.

This commit is contained in:
Dermot Duffy
2023-01-29 20:00:45 -08:00
parent 767d4ee7a0
commit 01c3a79ff1
9 changed files with 69 additions and 69 deletions
-1
View File
@@ -239,7 +239,6 @@ export class FrigateCardThumbnail extends LitElement {
@property({ attribute: false })
public hass?: ExtendedHomeAssistant;
// CameraManager used for marking media as favorite.
@property({ attribute: false })
public cameraManager?: CameraManager;
+13 -11
View File
@@ -59,6 +59,7 @@ import { ViewMedia } from '../view/media';
import { ViewMediaClassifier } from '../view/media-classifier';
import { rangesOverlap } from '../camera-manager/range';
import { View } from '../view/view';
import { MediaQuery } from '../camera-manager/types';
interface FrigateCardGroupData {
id: string;
@@ -501,11 +502,9 @@ export class FrigateCardTimelineCore extends LitElement {
targetTime: properties.time,
},
);
} else if (
properties.item &&
properties.what === 'item'
) {
const newResults = this.view.queryResults?.clone()
} else if (properties.item && properties.what === 'item') {
const newResults = this.view.queryResults
?.clone()
.resetSelectedResult()
.selectResultIfFound(
(media) => !!this.cameras && media.getID() === properties.item,
@@ -972,14 +971,17 @@ export class FrigateCardTimelineCore extends LitElement {
}
protected _alreadyHasAcceptableMediaQuery(freshMediaQuery: MediaQueries): boolean {
const currentQueries = this.view?.query?.getQueries();
const currentResultTimestamp = this.view?.queryResults?.getResultsTimestamp();
return (
!!this.cameraManager &&
!!this.view?.query &&
!!this.view.queryResults &&
freshMediaQuery.isEqual(this.view.query) &&
this.cameraManager.areMediaQueriesResultsFresh(
this.view.query,
this.view.queryResults,
!!currentQueries &&
!!currentResultTimestamp &&
isEqual(currentQueries, freshMediaQuery.getQueries()) &&
this.cameraManager.areMediaQueriesResultsFresh<MediaQuery>(
currentQueries,
currentResultTimestamp,
)
);
}
+1
View File
@@ -42,6 +42,7 @@ export class FrigateCardTimeline extends LitElement {
.hass=${this.hass}
.view=${this.view}
.thumbnailConfig=${this.timelineConfig.controls.thumbnails}
.cameraManager=${this.cameraManager}
.cameras=${this.cameras}
>
<frigate-card-timeline-core
+9 -4
View File
@@ -380,18 +380,23 @@ export class FrigateCardViewerCarousel extends LitElement {
const clipQuery = this.view.query.clone();
clipQuery.convertToClipsQueries();
let results: MediaQueriesResults | null;
const queries = clipQuery.getQueries();
if (!queries) {
return;
}
let mediaArray: ViewMedia[] | null;
try {
results = await this.cameraManager.executeMediaQueries(this.hass, clipQuery);
mediaArray = await this.cameraManager.executeMediaQueries(this.hass, queries);
} catch (e) {
errorToConsole(e as Error);
return;
}
if (!results) {
if (!mediaArray) {
return;
}
const results = new MediaQueriesResults(mediaArray);
results.selectResultIfFound((clipMedia) => clipMedia.getID() === media.getID());
if (!results.hasSelectedResult()) {
return;