You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2022/12/11 09:08:00 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2253] video-pod size/position is preserved; code clean-up
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new 9e05fa506 [OPENMEETINGS-2253] video-pod size/position is preserved; code clean-up
9e05fa506 is described below
commit 9e05fa506be52ad1c78f6e2b844ebf2d6f009af7
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sun Dec 11 16:07:51 2022 +0700
[OPENMEETINGS-2253] video-pod size/position is preserved; code clean-up
---
.../openmeetings/core/documents/LibraryChartLoader.java | 8 +++-----
.../org/apache/openmeetings/db/dao/server/OAuth2Dao.java | 3 +--
.../apache/openmeetings/backup/converter/WbConverter.java | 3 +--
.../src/main/front/room/src/video-manager-util.js | 15 +++++++++++++++
openmeetings-web/src/main/front/room/src/video.js | 15 ++++++++++++++-
.../openmeetings/web/admin/AdminUserChoiceProvider.java | 2 +-
6 files changed, 35 insertions(+), 11 deletions(-)
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java
index 8379c2542..bb9a6bbfc 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/documents/LibraryChartLoader.java
@@ -25,7 +25,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
@@ -40,8 +39,7 @@ public class LibraryChartLoader {
private LibraryChartLoader() {}
- @SuppressWarnings("rawtypes")
- public static List loadChart(File dir, String fileName) {
+ public static List<?> loadChart(File dir, String fileName) {
try {
File file = new File(dir, fileName + CHART_EXT);
@@ -53,11 +51,11 @@ public class LibraryChartLoader {
try (InputStream is = new FileInputStream(file);
BufferedReader reader = new BufferedReader(new InputStreamReader(is, UTF_8)))
{
- return (List) xStream.fromXML(reader);
+ return (List<?>) xStream.fromXML(reader);
}
} catch (Exception err) {
log.error("Unexpected error while loading chart", err);
}
- return new ArrayList<>();
+ return List.of();
}
}
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
index c22823bb4..a81d76bea 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
@@ -21,7 +21,6 @@ package org.apache.openmeetings.db.dao.server;
import static org.apache.openmeetings.db.util.DaoHelper.setLimits;
import static org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegisterOauth;
-import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
@@ -49,7 +48,7 @@ public class OAuth2Dao implements IDataProviderDao<OAuthServer> {
public List<OAuthServer> getActive() {
if (!isAllowRegisterOauth()) {
- return new ArrayList<>();
+ return List.of();
}
TypedQuery<OAuthServer> query = em.createNamedQuery("getEnabledOAuthServers", OAuthServer.class);
return query.getResultList();
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/converter/WbConverter.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/converter/WbConverter.java
index ed7c8fbd2..57bcaea09 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/converter/WbConverter.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/converter/WbConverter.java
@@ -33,7 +33,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
-import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -322,6 +321,6 @@ public class WbConverter {
} catch (Exception err) {
log.error("loadWmlFile", err);
}
- return new ArrayList<>();
+ return List.of();
}
}
diff --git a/openmeetings-web/src/main/front/room/src/video-manager-util.js b/openmeetings-web/src/main/front/room/src/video-manager-util.js
index 15c4abb4d..e3d7c4fd2 100644
--- a/openmeetings-web/src/main/front/room/src/video-manager-util.js
+++ b/openmeetings-web/src/main/front/room/src/video-manager-util.js
@@ -1,10 +1,24 @@
/* Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 */
let share;
+function __savePod(v) {
+ const opts = Room.getOptions();
+ if (!opts.interview && v && v.find('video').length > 0 && v.data('clientType') === 'WEBCAM' && v.dialog('instance')) {
+ const userUI = $(`#user${v.data('clientUid')}`)
+ , widget = v.dialog('widget');
+ userUI.data('video-pod', {
+ x: widget.css('left')
+ , y: widget.css('top')
+ , w: widget.css('width')
+ , h: widget.css('height')
+ });
+ }
+}
function _closeV(v) {
if (!v || v.length < 1) {
return;
}
+ __savePod(v);
if (v.dialog('instance') !== undefined) {
v.dialog('destroy');
}
@@ -48,6 +62,7 @@ module.exports = {
, sendMessage: (_m) => {
OmUtil.sendMessage(_m, {type: 'kurento'});
}
+ , savePod: __savePod
, closeV: _closeV
, close: (uid, showShareBtn) => {
const v = $('#' + VideoUtil.getVid(uid));
diff --git a/openmeetings-web/src/main/front/room/src/video.js b/openmeetings-web/src/main/front/room/src/video.js
index da71ed5c2..55375c44f 100644
--- a/openmeetings-web/src/main/front/room/src/video.js
+++ b/openmeetings-web/src/main/front/room/src/video.js
@@ -383,6 +383,7 @@ module.exports = class Video {
sd.camEnabled = _c.camEnabled;
const state = __getState();
if (camChanged) {
+ VideoMgrUtil.savePod(v);
v.off();
if (v.dialog('instance')) {
v.dialog('destroy');
@@ -409,7 +410,18 @@ module.exports = class Video {
const _id = VideoUtil.getVid(sd.uid);
_resizeDlgArea(size.width, size.height);
if (hasVideo && !isSharing && !isRecording) {
- VideoUtil.setPos(v, VideoUtil.getPos(VideoUtil.getRects(VIDWIN_SEL, _id), sd.width, sd.height + 25));
+ // let's try to restore size+position
+ const opts = Room.getOptions()
+ , stored = $(`#user${sd.cuid}`).data('video-pod');
+ if (!opts.interview && stored) {
+ const widget = v.dialog('widget');
+ widget.css('left', stored.x);
+ widget.css('top', stored.y)
+ widget.css('width', stored.w);
+ widget.css('height', stored.h)
+ } else {
+ VideoUtil.setPos(v, VideoUtil.getPos(VideoUtil.getRects(VIDWIN_SEL, _id), sd.width, sd.height + 25));
+ }
}
state.video = $(hasVideo ? '<video>' : '<audio>').attr('id', 'vid' + _id)
.attr('playsinline', 'playsinline')
@@ -515,6 +527,7 @@ module.exports = class Video {
data.rtcPeer = null;
}
function _cleanup(evt) {
+ VideoMgrUtil.savePod(v);
delete vidSize.width;
delete vidSize.height;
OmUtil.log('!!Disposing participant ' + sd.uid);
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java
index 6fd2da498..d17449eba 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java
@@ -57,6 +57,6 @@ public abstract class AdminUserChoiceProvider extends ChoiceProvider<User> {
for (String id : inIds) {
ids.add(Long.valueOf(id));
}
- return new ArrayList<>(userDao.get(ids));
+ return userDao.get(ids);
}
}