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 <[email protected]>
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);
        }
 }

Reply via email to