diff --git a/src/main/java/org/olat/course/nodes/video/VideoRunController.java b/src/main/java/org/olat/course/nodes/video/VideoRunController.java index 392e118796b15a919c4b2791e2bf59f2e7744498..d83f31cffd2e11eb610ed3f042759bc0c538148a 100644 --- a/src/main/java/org/olat/course/nodes/video/VideoRunController.java +++ b/src/main/java/org/olat/course/nodes/video/VideoRunController.java @@ -41,6 +41,7 @@ import org.olat.course.nodes.cp.CPRunController; import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.modules.ModuleConfiguration; import org.olat.modules.video.ui.VideoDisplayController; +import org.olat.modules.video.ui.VideoEvent; import org.olat.repository.RepositoryEntry; import org.olat.util.logging.activity.LoggingResourceable; @@ -108,8 +109,12 @@ public class VideoRunController extends BasicController { @Override protected void event(UserRequest ureq, Controller source, Event event) { if(source == videoDispCtr){ - if(VideoDisplayController.ENDED_EVENT.equals(event)){ - //TODO: catch even fired when video ended + if (event instanceof VideoEvent ) { + VideoEvent videoEvent = (VideoEvent) event; + if (videoEvent.getCommand().equals(VideoEvent.ENDED)) { + //TODO: catch even fired when video ended + // increment attempt variable + } } } } diff --git a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java index a1552f74abcd6b0c43884a6c06a53ddc371b04b6..76391f3b773b82a25ae9a549c8b86a8ca35db939 100644 --- a/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java +++ b/src/main/java/org/olat/modules/video/manager/VideoManagerImpl.java @@ -131,8 +131,7 @@ public class VideoManagerImpl implements VideoManager { */ @Override public VFSLeaf getPosterframe(OLATResource videoResource) { - String posterframePath = readVideoMetadataFile(videoResource).getPosterframe(); - VFSLeaf posterFrame = resolveFromMasterContainer(videoResource,posterframePath); + VFSLeaf posterFrame = resolveFromMasterContainer(videoResource, FILENAME_POSTER_JPG); return posterFrame; } @@ -141,23 +140,9 @@ public class VideoManagerImpl implements VideoManager { */ @Override public void setPosterframe(OLATResource videoResource, VFSLeaf posterframe){ - VideoMetadata metaData = readVideoMetadataFile(videoResource); - String oldPath = metaData.getPosterframe(); - if(oldPath != null){ - VFSLeaf oldPoster = resolveFromMasterContainer(videoResource, metaData.getPosterframe()); - if(oldPoster != null){ - oldPoster.delete(); - } - } - VFSContainer masterContainer = getMasterContainer(videoResource); VFSLeaf newPoster = VFSManager.resolveOrCreateLeafFromPath(masterContainer, FILENAME_POSTER_JPG); - - if(!newPoster.isSame(posterframe)){ - VFSManager.copyContent(posterframe, newPoster); - } - metaData.setPosterframe(newPoster.getName()); - writeVideoMetadataFile(metaData, videoResource); + VFSManager.copyContent(posterframe, newPoster); // Update also repository entry image, use new posterframe VFSLeaf posterImage = (VFSLeaf)masterContainer.resolve(FILENAME_POSTER_JPG); @@ -165,7 +150,6 @@ public class VideoManagerImpl implements VideoManager { RepositoryEntry repoEntry = repositoryManager.lookupRepositoryEntry(videoResource, true); repositoryManager.setImage(posterImage, repoEntry); } - } /** @@ -495,7 +479,6 @@ public class VideoManagerImpl implements VideoManager { // generate a poster image, use 20th frame as a default VFSLeaf posterResource = VFSManager.resolveOrCreateLeafFromPath(masterContainer, FILENAME_POSTER_JPG); getFrame(videoResource, 20, posterResource); - metaData.setPosterframe(FILENAME_POSTER_JPG); // finally safe to disk writeVideoMetadataFile(metaData, videoResource); diff --git a/src/main/java/org/olat/modules/video/model/VideoMetadata.java b/src/main/java/org/olat/modules/video/model/VideoMetadata.java index 856ec755e3479a944a3e2755ea931e482a22f6fb..bed34d02f86433f44c73827007be947b71772009 100644 --- a/src/main/java/org/olat/modules/video/model/VideoMetadata.java +++ b/src/main/java/org/olat/modules/video/model/VideoMetadata.java @@ -44,10 +44,7 @@ public class VideoMetadata implements Serializable{ public static final int CURRENT_MODEL_VERSION = 1; private Size size; - private String posterframe; private HashMap<String, String> tracks; - private boolean commentsEnabled; - private boolean ratingEnabled; @SuppressWarnings("unused") private int modelVersion = 0; @@ -65,15 +62,7 @@ public class VideoMetadata implements Serializable{ public void setSize(Size size) { this.size = size; } - - public String getPosterframe() { - return posterframe; - } - - public void setPosterframe(String posterframe) { - this.posterframe = posterframe; - } - + public HashMap<String, String> getAllTracks(){ return tracks; } @@ -88,21 +77,5 @@ public class VideoMetadata implements Serializable{ public void removeTrack(String lang){ tracks.remove(lang); - } - - public void setCommentsEnabled(boolean isEnabled){ - this.commentsEnabled = isEnabled; - } - - public boolean getCommentsEnabled(){ - return this.commentsEnabled; - } - - public void setRatingEnabled(boolean isEnabled){ - this.ratingEnabled = isEnabled; - } - - public boolean getRatingEnabled(){ - return this.ratingEnabled; - } + } } diff --git a/src/main/java/org/olat/modules/video/ui/QualityTableRow.java b/src/main/java/org/olat/modules/video/ui/QualityTableRow.java index b908b9f9f5f71c410b69ccd6f1aca77b196f72f9..9ea66fcc3d15cb3ad965c7792eea8f6f4849957e 100644 --- a/src/main/java/org/olat/modules/video/ui/QualityTableRow.java +++ b/src/main/java/org/olat/modules/video/ui/QualityTableRow.java @@ -31,11 +31,11 @@ import org.olat.core.gui.components.form.flexible.elements.FormLink; */ public class QualityTableRow { - String resolution; - String dimension; - String size; - String format; - FormLink viewLink; + private String resolution; + private String dimension; + private String size; + private String format; + private FormLink viewLink; protected FormUIFactory uifactory = FormUIFactory.getInstance(); diff --git a/src/main/java/org/olat/modules/video/ui/TrackTableRow.java b/src/main/java/org/olat/modules/video/ui/TrackTableRow.java index 489017408101094f0550ff9c93ab3eddb4884069..a61129732e9fd2bcd4e9572cb889a5876b2b36b7 100644 --- a/src/main/java/org/olat/modules/video/ui/TrackTableRow.java +++ b/src/main/java/org/olat/modules/video/ui/TrackTableRow.java @@ -32,9 +32,9 @@ import org.olat.core.util.vfs.VFSLeaf; */ public class TrackTableRow { - String language; - VFSLeaf track; - FormLink deleteLink; + private String language; + private VFSLeaf track; + private FormLink deleteLink; protected FormUIFactory uifactory = FormUIFactory.getInstance(); diff --git a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java index aba2c6ffa62a21cfbded22e7db0cb847601a148f..3a56fda8947c253b9293c033cde5d7158b3f4b5a 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoDisplayController.java @@ -56,7 +56,7 @@ public class VideoDisplayController extends BasicController { private static final String GUIPREF_KEY_PREFERRED_RESOLUTION = "preferredResolution"; @Autowired - VideoManager videoManager; + private VideoManager videoManager; private UserCommentsAndRatingsController commentsAndRatingCtr; private VelocityContainer mainVC; @@ -66,8 +66,6 @@ public class VideoDisplayController extends BasicController { private RepositoryEntry entry; private String descriptionText; - - public static final Event ENDED_EVENT = new Event("videoEnded"); public VideoDisplayController(UserRequest ureq, WindowControl wControl, RepositoryEntry entry, boolean autoWidth) { diff --git a/src/main/java/org/olat/modules/video/ui/VideoEvent.java b/src/main/java/org/olat/modules/video/ui/VideoEvent.java index beda37280f8b4ec02e6a29c31348656734525a95..0c9d4dd31f87b89966938bc1d1ac2e45249b8c27 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoEvent.java +++ b/src/main/java/org/olat/modules/video/ui/VideoEvent.java @@ -28,6 +28,8 @@ import org.olat.core.gui.control.Event; * */ public class VideoEvent extends Event { + private static final long serialVersionUID = 5180562757687791093L; + public static final String PLAY = "play"; public static final String PAUSE = "pause"; public static final String SEEKED = "seeked"; diff --git a/src/main/java/org/olat/modules/video/ui/VideoMetaDataEditFormController.java b/src/main/java/org/olat/modules/video/ui/VideoMetaDataEditFormController.java index 762db3c31bff6e12492099b1cf91d50986d20a4c..f94d617bda4c025a8690fb66dfb102281859c3ab 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoMetaDataEditFormController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoMetaDataEditFormController.java @@ -22,7 +22,6 @@ package org.olat.modules.video.ui; import org.olat.core.commons.services.image.Size; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItemContainer; -import org.olat.core.gui.components.form.flexible.FormUIFactory; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; @@ -39,8 +38,6 @@ import org.springframework.beans.factory.annotation.Autowired; * */ public class VideoMetaDataEditFormController extends FormBasicController { - - protected FormUIFactory uifactory = FormUIFactory.getInstance(); @Autowired private VideoManager videoManager; private OLATResource videoResource; diff --git a/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java b/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java index 331c17ff85d53a604d2835b906ceb88d49ed5e21..f0f4ef365f5425b439205d51f83ce9170fa6afaf 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java +++ b/src/main/java/org/olat/modules/video/ui/VideoPosterSelectionForm.java @@ -31,7 +31,6 @@ import org.jcodec.containers.mp4.demuxer.MP4Demuxer; import org.olat.core.commons.modules.bc.FolderEvent; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.Component; -import org.olat.core.gui.components.form.flexible.FormUIFactory; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.components.link.LinkFactory; import org.olat.core.gui.components.velocity.VelocityContainer; @@ -57,13 +56,11 @@ public class VideoPosterSelectionForm extends BasicController { private static final String FILENAME_POSTFIX_JPG = ".jpg"; private static final String FILENAME_PREFIX_PROPOSAL_POSTER = "proposalPoster"; - protected FormUIFactory uifactory = FormUIFactory.getInstance(); - long remainingSpace; private VFSContainer tmpContainer; @Autowired private VideoManager videoManager; - VelocityContainer proposalLayout = createVelocityContainer("video_poster_proposal"); + private VelocityContainer proposalLayout = createVelocityContainer("video_poster_proposal"); private Map<String, String> generatedPosters = new HashMap<String, String>(); diff --git a/src/main/java/org/olat/modules/video/ui/VideoPosterUploadForm.java b/src/main/java/org/olat/modules/video/ui/VideoPosterUploadForm.java index b6a160fb3ecd5d285d51dc18e11515bfa8940458..68bde5897861eb29f436732168bca232cdc219c7 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoPosterUploadForm.java +++ b/src/main/java/org/olat/modules/video/ui/VideoPosterUploadForm.java @@ -46,7 +46,7 @@ import org.olat.resource.OLATResource; public class VideoPosterUploadForm extends FormBasicController { private OLATResource videoResource; - long remainingSpace; + private long remainingSpace; private VFSContainer videoResourceFileroot; private VFSContainer metaDataFolder; private FileElement posterField; diff --git a/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java b/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java index f8281846d197a38a4f3ad06da0ec230c05463685..a2344389f926fbe157f554c8d445480bd6c9b6db 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoQualityTableFormController.java @@ -42,7 +42,6 @@ import org.olat.core.gui.control.generic.closablewrapper.CloseableModalControlle import org.olat.core.util.Formatter; import org.olat.core.util.vfs.VFSContainer; import org.olat.modules.video.VideoManager; -import org.olat.modules.video.VideoModule; import org.olat.modules.video.manager.VideoMediaMapper; import org.olat.modules.video.model.VideoQualityVersion; import org.olat.modules.video.ui.VideoQualityTableModel.QualityTableCols; @@ -65,8 +64,6 @@ public class VideoQualityTableFormController extends FormBasicController { @Autowired private VideoManager videoManager; - @Autowired - private VideoModule videoModule; public VideoQualityTableFormController(UserRequest ureq, WindowControl wControl, RepositoryEntry videoEntry) { super(ureq, wControl, LAYOUT_VERTICAL); @@ -135,6 +132,7 @@ public class VideoQualityTableFormController extends FormBasicController { // initialize preview controller only once previewVC = createVelocityContainer("video_preview"); cmc = new CloseableModalController(getWindowControl(), "close", previewVC); + listenTo(cmc); } // Get the user object from the link to access version object FormLink link = (FormLink) source; diff --git a/src/main/java/org/olat/modules/video/ui/VideoTrackEditController.java b/src/main/java/org/olat/modules/video/ui/VideoTrackEditController.java index 83c22e53a34cb9a666faf17daaf9c0d25fc8fd00..96be11303b55b9bdadc74d308f41a193e3c35ec2 100644 --- a/src/main/java/org/olat/modules/video/ui/VideoTrackEditController.java +++ b/src/main/java/org/olat/modules/video/ui/VideoTrackEditController.java @@ -57,10 +57,8 @@ public class VideoTrackEditController extends FormBasicController { private FlexiTableElement tableEl; private VideoTracksTableModel tableModel; private FormLink addButton; - VideoTrackUploadForm trackUploadForm; - VideoPosterUploadForm posterUploadForm; - VideoPosterSelectionForm posterSelectionForm; - CloseableModalController cmc; + private VideoTrackUploadForm trackUploadForm; + private CloseableModalController cmc; private Map<String, TrackTableRow> rows; @@ -146,9 +144,14 @@ public class VideoTrackEditController extends FormBasicController { tableEl.setVisible(true); tableEl.setEnabled(true); cmc.deactivate(); - } - else if(event.getCommand() == "CLOSE_MODAL_EVENT"){ + // cleanup + removeAsListenerAndDispose(trackUploadForm); + removeAsListenerAndDispose(cmc); + } else if(event.getCommand() == "CLOSE_MODAL_EVENT"){ cmc.deactivate(); + // cleanup + removeAsListenerAndDispose(trackUploadForm); + removeAsListenerAndDispose(cmc); } }