|
@@ -36,19 +36,48 @@
|
|
|
|
|
|
+ (CGSize)preferredSize
|
|
|
{
|
|
|
- return CGSizeMake(384, 240);
|
|
|
+ return CGSizeMake(384, 243);
|
|
|
+}
|
|
|
+
|
|
|
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
|
|
|
+{
|
|
|
+ [self _updatedDisplayedInformation];
|
|
|
}
|
|
|
|
|
|
- (void)setMediaObject:(MLFile *)mediaObject
|
|
|
{
|
|
|
- [mediaObject willDisplay];
|
|
|
+ if (_mediaObject != mediaObject) {
|
|
|
+ [_mediaObject removeObserver:self forKeyPath:@"computedThumbnail"];
|
|
|
+ [_mediaObject removeObserver:self forKeyPath:@"lastPosition"];
|
|
|
+ [_mediaObject removeObserver:self forKeyPath:@"duration"];
|
|
|
+ [_mediaObject removeObserver:self forKeyPath:@"fileSizeInBytes"];
|
|
|
+ [_mediaObject removeObserver:self forKeyPath:@"title"];
|
|
|
+ [_mediaObject removeObserver:self forKeyPath:@"thumbnailTimeouted"];
|
|
|
+ [_mediaObject didHide];
|
|
|
+
|
|
|
+ _mediaObject = mediaObject;
|
|
|
|
|
|
- self.titleLabel.text = mediaObject.title;
|
|
|
- self.subtitleLabel.text = [NSString stringWithFormat:@"%@ — %.2f MB", [VLCTime timeWithNumber:[mediaObject duration]], [mediaObject fileSizeInBytes] / 2e6];
|
|
|
- self.thumbnailView.image = mediaObject.computedThumbnail;
|
|
|
- self.progressView.progress = mediaObject.lastPosition.floatValue;
|
|
|
+ [_mediaObject addObserver:self forKeyPath:@"computedThumbnail" options:0 context:nil];
|
|
|
+ [_mediaObject addObserver:self forKeyPath:@"lastPosition" options:0 context:nil];
|
|
|
+ [_mediaObject addObserver:self forKeyPath:@"duration" options:0 context:nil];
|
|
|
+ [_mediaObject addObserver:self forKeyPath:@"fileSizeInBytes" options:0 context:nil];
|
|
|
+ [_mediaObject addObserver:self forKeyPath:@"title" options:0 context:nil];
|
|
|
+ [_mediaObject addObserver:self forKeyPath:@"thumbnailTimeouted" options:0 context:nil];
|
|
|
+ [_mediaObject willDisplay];
|
|
|
+ }
|
|
|
+
|
|
|
+ [self _updatedDisplayedInformation];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)_updatedDisplayedInformation
|
|
|
+{
|
|
|
+ self.titleLabel.text = self.mediaObject.title;
|
|
|
+ self.subtitleLabel.text = [NSString stringWithFormat:@"%@ — %.2f MB", [VLCTime timeWithNumber:[self.mediaObject duration]], [self.mediaObject fileSizeInBytes] / 2e6];
|
|
|
+ self.thumbnailView.image = self.mediaObject.computedThumbnail;
|
|
|
+ self.progressView.progress = self.mediaObject.lastPosition.floatValue;
|
|
|
|
|
|
- _mediaObject = mediaObject;
|
|
|
+ if (self.progressView.progress < 0.1f)
|
|
|
+ self.progressView.hidden = YES;
|
|
|
|
|
|
[self setNeedsDisplay];
|
|
|
}
|