From 90202a44530c98a1baf303a4d1a7e4e50adffe54 Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Mon, 6 Jul 2020 09:44:04 +0200 Subject: [PATCH 01/27] v1.38: Workaround for bug (isPinned) --- build.sh | 0 grid.user.js | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) mode change 100644 => 100755 build.sh diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 diff --git a/grid.user.js b/grid.user.js index 4e8db1b..d8cea90 100644 --- a/grid.user.js +++ b/grid.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Google Meet Grid View // @namespace https://fugi.tech/ -// @version 1.37 +// @version 1.38 // @description Adds a toggle to use a grid layout in Google Meets // @author Chris Gamble // @include https://meet.google.com/* @@ -1358,7 +1358,7 @@ ordering.sort((a, b) => a.name.localeCompare(b.name) || a.id.localeCompare(b.id)) // Set Pinned Index for use in CSS loop. If there is no pin, use the presenter if available - let pinnedIndex = ret.findIndex(v => v[magicKey].isPinned()) + let pinnedIndex = -1 if (pinnedIndex < 0) { pinnedIndex = ret.findIndex(v => v.__gmgvIsPresentation) } From f8ef426dcf027835784e5908d42deb482a1b4b88 Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Fri, 10 Jul 2020 23:27:28 +0200 Subject: [PATCH 02/27] v1.39: Bugfix --- extension/icon128.png | Bin 704 -> 604 bytes extension/icon24.png | Bin 233 -> 391 bytes extension/icon36.png | Bin 307 -> 494 bytes extension/icon48.png | Bin 348 -> 557 bytes extension/manifest.json | 8 ++++---- grid.user.js | 4 ++-- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/extension/icon128.png b/extension/icon128.png index a555c0901593ef7fdfade2d76d5ed04d53b824cc..cb065b0da8a3d6979a7bd50b152f9418ef2df395 100644 GIT binary patch literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSEX7WqAsj$Z!;#X#z`!Kz>Eakt zG3V_aM?Yyp28Y1qSyximpP3rDNN3sXCV@p$Z5dT({=a9{to-!&yq*omfhI68^u6Em zc~^XL&-C2e+t$|@zbUqw`>n3;@$+-9#ZTeAH!Eo8TVda0rJ#~JYjSqe)Nqki=qwRh0 zl+Xc2P6a=PLZ*(}zg0f$Usr4ORe!Vj!ml60YrGkfW4_n?GG1-({QB|vO)N*C3WXi! zFg#)rP;anc#3^+Dn|b4;GMW{5f`u7e6)w z^*fwnPndsp-1G{YfG@$+yKN)?!{f8e_P4-NbLRbktgL^3^^W^Pb7hf#-p``1GCPp^13{89Pvmtk7- z?}D>_Pxgw>J1!y4c&B|oIjZ`NG{@jYGrT-G@yGywn% CPxqk! literal 704 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qt-3{0V(E{-7;ac^&5^g8Sy!uBvs;Qs%@qujQ) z-8lCC@_)5U)mVPYs+{uHxoR7abgOty0-=W2-|l=3>_7j$=zo}Y?CEc*w;zi0DL1HJ zyCyI3{$M@tgO9QK4B56h?$&MF-&%g$XM5l5@ArjU=iTl0V~D@K*-zzMTK$XfbN|o! zw!Hb);*7~w?hVWNOlQ46@ox*$g`W}(a~KauGQ_-I-|&Sgx!&~G^ceg2{m0yzH%of^ z-r`dD%Nn%KKE2kTv4D*soq=fLV{P``>Pu+_e{23qN%Njd(=pAIX}I=^<$)%{Ife&3 z=tSNr^~T4OS4bk+U3KbzzyI9Q;bn6aV^4SY#|zn3o9y47{uOm#KU>_D8-KpM`agX+ z!wzTnhPS7s``JKo`J3azm3O@oJPB(B9m+3%@7wobuUx!x!|&};ncNSysc)C}0H+Pl eOXr?`Vt(Sn{fy7+H88a?FnGH9xvXO diff --git a/extension/icon24.png b/extension/icon24.png index 9bf8ef84409b9d29af6433a98110f01e2980d91a..3154279eec6c16027ddcf6d6263ce21e6c133728 100644 GIT binary patch delta 364 zcmV-y0h9je0fz&SB!2{RLP=Bz2nYy#2xN!=00BNpL_t(YiS3oKO2a@H$NvqzE0Swb zaY-%yhs;?hMB9Nfeg=nMD=zJm_VMa0#~N$?GHy>fD7Q7g6$?GA3w zuTQnsx&Z)T7>1L+GklHTz$nWFkCQO~l+rt`Ha0KFwh%%z?SX*-qYS%uJ9|<}2>_gP z{&XlG^n6xYw>0q!DWw!b2mmm~n5w$PDQw~r`BMSsoZFWKK@dFSrIK#RhWy#b@I4-3 zV{JVbFp58rB4sV5yVS+jCCv}n@^e4{kRq+5TXG3%7Zp*vsCLof{C^iY!1o{8n|24C zRvUUg%Pp6>V3d{85A^pFen~_@R7gwhl0gc0=BXko@M0-|Be>9Drm;_OcJhM>Gv+?M4}r9ofr1SX&%A9d1J& zW6LcvWDh>%7P*ke*m8>u*@F+cMK0tqw*R)sR50Gd2U5xdF2O00000NkvXX Hu0mjf!nRN2 diff --git a/extension/icon36.png b/extension/icon36.png index 6bdc480fbe2382bfab7da0b5e732890d6319670d..05193455c8ac3b587359f155e75dccf48dc43eae 100644 GIT binary patch delta 468 zcmV;_0W1Eq0`3ElB!2{RLP=Bz2nYy#2xN!=00E^*L_t(oh3%LzOT$1IhQE|9-bsVB zRgq31WROa+6*@W9A{_-Mr-FZ?;4Uuy0S8y1;O0<^jygy&R8f;aaI#ff3vDGQ9HdT> z7?ai^jYaO+^5y07aNNB^02ssJoC84+1cVR@;^Tx6qU*ZuDSwpP$QP#yGke#)`dkn~ z>Bv&+gJFXu75E2AISS+nvo;+0ok+CQ&kgR%6Wp%kI5JLLg@P=`UkR~dv@vnlo(YYD6{9o5 zijfr~E5@LiI3ZSy&WvX<5<*BivfOI)oADrvF~g_Yk4?tCVLgBQ*^u8{-wx-|ZmnCN z9lDB7WcXCuJSRKVa^=8P2mnBmBne}To%3;E7>1#$sv5+%{turVvIl|*aZ+>u0000< KMNUMnLSTZrh0{?0 delta 280 zcmV+z0q6ei1G55pF$Vo&&R9Hvtl+g;sFbG4p`~UyE8;ja19X?g|kOO5+W?87Rixk}Y z96Ug`t=vGjGmwQ@-nC$NV4;3PDcxa&{LK*P3xt-fY3(XAr+;dory;Oe;gXQ+ZhZR8s0 zVYmyEKgJ!LAtTp7PeXtyCw-|7bkuN$Dmc_eu7MtgyD<4<+z|r3UGGWqH$#u4ZMtp6 e+C^%v>kkFL4H3Gf8F+F400004s_Z8 diff --git a/extension/icon48.png b/extension/icon48.png index 80f22f488bbb1eaca72c00480cc8e6abc0417618..88751fcbc97690eb8f6cf02f89af3cc7ee81c3c6 100644 GIT binary patch delta 532 zcmV+v0_*+U0<8p)B!2{RLP=Bz2nYy#2xN!=00HDlL_t(&f$f>SOT$1I#xJd_1u223 zAP!L|p?^U9KyY-aUsy-0;3U}MtoR2A3U<(?3cBe~P;ruIi-J?;LmHuCNgTuv&_HeL zq@2l-Dz$f|yuU5)`*6GuN$wsvgaDu>1X@uPMNyVzne{MU7=MOgSe9iu>n;OopE?ko zn~rb2?M)QRMK;s@f`vdVeV97fxXfN&ko6YwK@>%CYBstU&o57~9j`ix$Cc5w*s74b z$zjtp&9AzT6v?tIZ@=$PvLEkvB%f1}P$(24Yb{O@`PujdACg)n&qd8w3zaG*Ci-Ie z!_{{gAdy-n6o0)RS<-b~r}Y&@QBHfZo4LnZCVCp41`t9>*L7XfG>z7?ZQDjYZ1qlj z-tEQ*4DbdF@TTf6q$rAF+qO;Xg~Q?S8Mp~A-hct#Ko){5 z1X;)f$U^_D|FZ#vAPdzUFu)ryz#GUykcIv;3mJxCECgcdnpUhMiQxPR#u$?|*EMVZ zVE@qA%y=UCvJ;`*N%0~coIg3*O|NIpGiPL-deJROlH|M%T^`;}bkl W4(2e@qYa$^0000a))VxNGZx^prw85kH?(j9#r85lP9bN@+X1@buyJR*x382Ao@Fyrz3 z6)8Z$kDe}$AsNnZr#<94Y{1cSd+&eieD#bOow@ZQRbua&C%l{TV6D_H&cgn?-;ap@ zNY*ZU(BJIZ@u)jS>*M@$YM1)g9c7=|+5f(I-BIb#-1_du?HjjTcw-cITd=1lBa%m8 z%jHW&YnM3xdmZh;cH;!Y>=N0VEynAP8n3F!aP|pg5of+TgExciMn;F^&kLI*6f%}C zeH!K2UUQZ~S~6jA_LPbIxgDBa3--0nb7Q*^bFSg*9Z3{(_oX%T@@%+hdg?^G*%1*} ztAP7X{+lIsR4w&cb!%GPMzc+OqqSW>{(qZ1CA6(G@61u|!r8gM8QsIw4?OG6O#phI N!PC{xWt~$(69Cw^kZAw_ diff --git a/extension/manifest.json b/extension/manifest.json index 9747379..5de168a 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,10 +1,10 @@ { "manifest_version": 2, - "name": "Google Meet Grid View", + "name": "Google Meet Grid View (fix)", "description": "Adds a toggle to use a grid layout in Google Meets", - "version": "1.37.0", - "author": "Chris Gamble", - "homepage_url": "https://github.com/Fugiman/google-meet-grid-view", + "version": "1.39.0", + "author": "Simone Marullo", + "homepage_url": "https://github.com/icysapphire/google-meet-grid-view", "icons": { "24": "icon24.png", "36": "icon36.png", diff --git a/grid.user.js b/grid.user.js index d8cea90..9f4f0b4 100644 --- a/grid.user.js +++ b/grid.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Google Meet Grid View // @namespace https://fugi.tech/ -// @version 1.38 +// @version 1.39 // @description Adds a toggle to use a grid layout in Google Meets // @author Chris Gamble // @include https://meet.google.com/* @@ -983,7 +983,7 @@ return { set: function (obj, prop, value) { if (value && typeof value === 'function') { - const m = /\.([A-Za-z]+)\([a-zA-Z,.]+\{[^\x05]*?this\.([A-Za-z]+)=[A-Za-z]+\(this\)/.exec(value.toString()) + const m = /\.([A-Za-z]+)\([a-zA-Z,.]+\{[^\x05]*?this\.([A-Za-z]+)=[A-Za-z0-9]+\(this\)/.exec(value.toString()) if (m) { console.log('[google-meet-grid-view] Successfully hooked into rendering pipeline v3', value) value = new Proxy(value, RefreshVideoProxyHandlerV3(m[2], m[1])) From 42f65c45e8df72da254579c6fc21eaa7048f12b7 Mon Sep 17 00:00:00 2001 From: Antonio Bueno Date: Mon, 7 Sep 2020 13:02:53 +0200 Subject: [PATCH 03/27] Improved Spanish and Catalan localizations --- grid.user.js | 91 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 65 insertions(+), 26 deletions(-) diff --git a/grid.user.js b/grid.user.js index 9f4f0b4..6d1acc4 100644 --- a/grid.user.js +++ b/grid.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Google Meet Grid View // @namespace https://fugi.tech/ -// @version 1.39 +// @version 1.39.1 // @description Adds a toggle to use a grid layout in Google Meets // @author Chris Gamble // @include https://meet.google.com/* @@ -10,6 +10,9 @@ // @inject-into content // ==/UserScript== +// v1.39 Summer 2020 bug fix by https://github.com/icysapphire +// v1.39.1 Improved Spanish and Catalan localizations by https://github.com/buenoudg + ;(function () { // If included by our extension's icon page, export translation factory if (document.currentScript && document.currentScript.src === window.location.href.replace('popup.html', 'grid.user.js')) { @@ -47,6 +50,7 @@ screenCaptureMode: 'Activa el mode captura de pantalla', screenCaptureModeDescription: 'Força 16:9, desactiva els noms, bloqueja els vídeos al seu lloc', unauthorizedWarning: "ATENCIÓ: es tracta d'una extensió no autoritzada. Instal·leu l'extensió oficial fent clic aquí.", + duplicateWarning: 'Multiples extensiones Grid View detectadas. Si us plau, desinstal·leu els duplicats.', hideParticipant: 'Amaga el participant', showParticipant: 'Mostra el participant', advancedSettingsLink: 'Mostra la configuració avançada', @@ -69,6 +73,12 @@ mnNative: 'Sense canvis ("Marta Vila Puig")', mnFirstSpace: 'Mou la primera paraula al final ("Vila Puig, Marta")', mnLastSpace: 'Mou l\'última paraula al principi ("Puig, Marta Vila")', + forceQuality: 'Qualitat del vídeo', + fqAuto: 'Automàtica segons la mida del vídeo i el nombre de participants', + fqGood: 'Bona', + fqMediocre: 'Mediocre', + fqBad: 'Dolenta', + fqWorst: 'La pitjor' }, da: { showOnlyVideo: 'Vis kun deltagere med video', @@ -81,7 +91,7 @@ sourceCode: 'Kildekoden er tilgængelig på GitHub', screenCaptureMode: 'Aktiver skærmoptager', screenCaptureModeDescription: 'Gennemtvinger 16:9, Deaktiverer navne, Låser video-positioner', - unauthorizedWarning: 'Advarsel: Dette er ikke en autoriseret tilføjelse. Installer venligst den officielle, ved at klikke her.', + unauthorizedWarning: 'Advarsel: Dette er ikke en autoriseret tilføjelse. Installer venligst den officielle, ved at klikke her.' }, de: { showOnlyVideo: 'Nur Teilnehmer mit Video anzeigen', @@ -96,7 +106,7 @@ screenCaptureModeDescription: 'Erzwingt 16:9, entfernt Namen, fixiert Videoposition', unauthorizedWarning: 'WARNUNG: Dies ist keine autorisierte Erweiterung. Bitte installieren Sie die offizielle Version. Klicken Sie dafür hier.', hideParticipant: 'Teilnehmer verbergen', - showParticipant: 'Teilnehmer anzeigen', + showParticipant: 'Teilnehmer anzeigen' }, en: { showOnlyVideo: 'Only show participants with video', @@ -138,20 +148,49 @@ fqGood: 'Good', fqMediocre: 'Mediocre', fqBad: 'Bad', - fqWorst: 'Worst', + fqWorst: 'Worst' }, es: { - showOnlyVideo: 'Mostrar solo participantes con vídeo', - highlightSpeaker: 'Resaltar los que hablan', - includeOwnVideo: 'Incluir mi vídeo en la cuadrícula', - autoEnable: 'Habilitar vista en cuadrícula por defecto', + showOnlyVideo: 'Muestra solo participantes con vídeo', + highlightSpeaker: 'Resalta los que hablan', + includeOwnVideo: 'Incluye mi vídeo en la cuadrícula', + autoEnable: 'Habilita vista en cuadrícula por defecto', notRunning: 'La vista en cuadrícula no funciona en esta página', noMeeting: 'La vista en cuadrícula no funciona hasta que no estés en una llamada', - enabled: 'Habilitar vista en cuadrícula', + enabled: 'Habilita vista en cuadrícula', sourceCode: 'Código fuente disponible en GitHub', - screenCaptureMode: 'Habilitar modo captura de pantalla', - screenCaptureModeDescription: 'Forzar 16:9, deshabilita nombres, fija el vídeo en su lugar', + screenCaptureMode: 'Habilita modo captura de pantalla', + screenCaptureModeDescription: 'Fuerza 16:9, deshabilita nombres, fija el vídeo en su lugar', unauthorizedWarning: 'ATENCIÓN: Esta es una extensión no autorizada. Por favor, instale la versión oficial haciendo clic aquí.', + duplicateWarning: 'Multiples extensiones Grid View detectadas. Por favor, desinstale los duplicados.', + hideParticipant: 'Oculta el participante', + showParticipant: 'Muestra el participante', + advancedSettingsLink: 'Muestra la configuración avanzada', + advancedSettingsTitle: 'Configuración avanzada de Google Meet Grid View', + bottomToolbarBehavior: "Comportamiento de la barra de herramientas inferior", + btbNative: "Tapa la cuadrícula cuando se muestre la barra de herramientas", + btbResize: "Cambia el tamaño de la cuadrícula cuando se muestre la barra de herramientas", + btbForce: "Muestra siempre la barra de herramientas y cambia el tamaño de la cuadrícula", + rightToolbarBehavior: 'Comportamiento del chat y el listado de personas', + rtbNative: 'Tapa la cuadrícula cuando se muestre el chat', + rtbResize: 'Cambia el tamaño de la cuadrícula cuando se muestre el chat', + ownVideoBehavior: 'Comportamiento del propio vídeo', + ovbNative: "Mantén el efecto espejo", + ovbFlip: 'Muestra el vídeo tal y como te ven los demás', + presentationBehavior: 'Comportamiento de la propia presentación', + pbNever: 'No muestres nunca la presentación en la cuadrícula', + pbOwnVideo: 'Muestra la presentación en la cuadrícula cuando se haya seleccionado "Incluye mi vídeo en la cuadrícula"', + pbAlways: 'Muestra siempre la presentación en la cuadrícula', + modifyNames: 'Cambio de los nombres de los participantes', + mnNative: 'Sin cambios ("Marta Villa Pérez")', + mnFirstSpace: 'Mueve la primera palabra al final ("Villa Pérez, Marta")', + mnLastSpace: 'Mueve la última palabra al principio ("Pérez, Marta Villa")', + forceQuality: 'Calidad de video', + fqAuto: 'Automático según el tamaño del video y el número de participantes', + fqGood: 'Buena', + fqMediocre: 'Mediocre', + fqBad: 'Mala', + fqWorst: 'La peor' }, fr: { showOnlyVideo: 'Ne montrer que les participants avec caméra', @@ -166,12 +205,12 @@ screenCaptureModeDescription: "Force l'affichage 16:9, désactive les noms, vérrouille les positions des vidéos", unauthorizedWarning: "ATTENTION : Il s'agit d'une extension non autorisée. Installez la version officielle en cliquant ici.", hideParticipant: 'Cacher le participant', - showParticipant: 'Afficher le participant', + showParticipant: 'Afficher le participant' }, hr: { showOnlyVideo: 'Prikaži samo sudionike sa kamerom', highlightSpeaker: 'Naglasi govornike', - includeOwnVideo: 'Uključi sebe u mrežnom prikazu', + includeOwnVideo: 'Uključi sebe u mrežnom prikazu' }, id: { showOnlyVideo: 'Hanya tampilkan peserta dengan video', @@ -186,7 +225,7 @@ screenCaptureModeDescription: 'Paksa 16:9, Nonaktifkan nama, kunci video pada tempatnya', unauthorizedWarning: 'PERINGATAN: Ini adalah ekstensi yang tidak resmi. Silakan pasang rilis resmi dengan mengklik di sini.', hideParticipant: 'Sembunyikan Peserta', - showParticipant: 'Tampilkan Peserta', + showParticipant: 'Tampilkan Peserta' }, it: { showOnlyVideo: 'Mostra solo i partecipanti con videocamera', @@ -222,7 +261,7 @@ modifyNames: 'Modifica il nome dei partecipanti', mnNative: 'Nessuna modifica ("Alfa Bravo Charlie")', mnFirstSpace: 'Sposta la prima parola alla fine ("Bravo Charlie, Alfa")', - mnLastSpace: 'Sposta l\'ultima parola all\'inizio ("Charlie, Alfa Bravo")', + mnLastSpace: 'Sposta l\'ultima parola all\'inizio ("Charlie, Alfa Bravo")' }, ja: { showOnlyVideo: 'カメラをオンにしている参加者のみ', @@ -230,7 +269,7 @@ includeOwnVideo: '自分を含める', autoEnable: '初期状態でグリッド表示を有効化', screenCaptureMode: '画面キャプチャモードを有効化', - screenCaptureModeDescription: '画面比率を16:9, 名前を非表示, ビデオの位置を固定にします。', + screenCaptureModeDescription: '画面比率を16:9, 名前を非表示, ビデオの位置を固定にします。' }, nl: { showOnlyVideo: 'Toon alleen deelnemers met video', @@ -261,12 +300,12 @@ modifyNames: 'Deelnemersnamen aanpassen', mnNative: 'Niet aanpassen ("Jantje van de Berg")', mnFirstSpace: 'Eerste woord als laatste ("van de Berg, Jantje")', - mnLastSpace: 'Laatste woord als eerste ("Berg, Jantje van de")', + mnLastSpace: 'Laatste woord als eerste ("Berg, Jantje van de")' }, pl: { showOnlyVideo: 'Pokaż tylko uczestników z wideo', highlightSpeaker: 'Wyróżnij osobę prezentującą', - includeOwnVideo: 'Uwzględnij siebie', + includeOwnVideo: 'Uwzględnij siebie' }, pt: { showOnlyVideo: 'Mostrar apenas participantes com vídeo', @@ -279,7 +318,7 @@ sourceCode: 'Código fonte disponível no GitHub', screenCaptureMode: 'Ativar captura de ecrã', screenCaptureModeDescription: 'Forçar aspeto 16:9, Remover nomes, Parar posição dos vídeos', - unauthorizedWarning: 'ATENÇÃO: Esta é uma extensão não autorizada. Por favor, clique aqui para instalar a versão oficial.', + unauthorizedWarning: 'ATENÇÃO: Esta é uma extensão não autorizada. Por favor, clique aqui para instalar a versão oficial.' }, 'pt-BR': { showOnlyVideo: 'Mostrar somente participantes com vídeo', @@ -315,7 +354,7 @@ modifyNames: 'Modificar nomes de participantes', mnNative: 'Nenhuma modificação ("Alpha Bravo Charlie")', mnFirstSpace: 'Mover o primeiro nome para o final ("Bravo Charlie, Alpha")', - mnLastSpace: 'Mover o último nome para o início ("Charlie, Alpha Bravo")', + mnLastSpace: 'Mover o último nome para o início ("Charlie, Alpha Bravo")' }, ru: { showOnlyVideo: 'Показывать участников только с видео', @@ -328,7 +367,7 @@ sourceCode: 'Исходный код доступен на GitHub', unauthorizedWarning: 'ВНИМАНИЕ: Это не авторизированное расширение. Пожалуйста, установите оффициальную версию тут.', hideParticipant: 'Скрыть участника', - showParticipant: 'Показать участника', + showParticipant: 'Показать участника' }, sv: { showOnlyVideo: 'Visa endast deltagare med video', @@ -341,23 +380,23 @@ sourceCode: 'Källkod tillgänglig på GitHub', screenCaptureMode: 'Slå på skärminspelnings läge', screenCaptureModeDescription: 'Tvingar 16:9, Inaktiverar namn, Låser videor på plats', - unauthorizedWarning: 'VARNING: Detta är inte ett auktoriserat tillägg. Installera det officiella tillägget genom att klicka här.', + unauthorizedWarning: 'VARNING: Detta är inte ett auktoriserat tillägg. Installera det officiella tillägget genom att klicka här.' }, uk: { showOnlyVideo: 'Показати лише учасників з відео', highlightSpeaker: 'Виділити ведучого', - includeOwnVideo: 'Включити себе', + includeOwnVideo: 'Включити себе' }, zh: { showOnlyVideo: '仅显示有视讯的与会者', highlightSpeaker: '强调发言者', - includeOwnVideo: '将自己的视讯显示于网格中', + includeOwnVideo: '将自己的视讯显示于网格中' }, 'zh-TW': { showOnlyVideo: '僅顯示有視訊的與會者', highlightSpeaker: '強調發言者', - includeOwnVideo: '將自己的視訊顯示於網格中', - }, + includeOwnVideo: '將自己的視訊顯示於網格中' + } } const T = key => From 050c51ee57e6cd06da27905e49083892d1a6572e Mon Sep 17 00:00:00 2001 From: Antonio Bueno Date: Mon, 7 Sep 2020 13:14:17 +0200 Subject: [PATCH 04/27] Fixed typo in the Spanish localization --- grid.user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grid.user.js b/grid.user.js index 6d1acc4..279a23e 100644 --- a/grid.user.js +++ b/grid.user.js @@ -186,7 +186,7 @@ mnFirstSpace: 'Mueve la primera palabra al final ("Villa Pérez, Marta")', mnLastSpace: 'Mueve la última palabra al principio ("Pérez, Marta Villa")', forceQuality: 'Calidad de video', - fqAuto: 'Automático según el tamaño del video y el número de participantes', + fqAuto: 'Automática según el tamaño del video y el número de participantes', fqGood: 'Buena', fqMediocre: 'Mediocre', fqBad: 'Mala', From 285ff553c99872ca19c49b73b89a20cc6bd9173a Mon Sep 17 00:00:00 2001 From: Antonio Bueno Date: Mon, 7 Sep 2020 13:31:08 +0200 Subject: [PATCH 05/27] Fixed typo in Catalan localization --- grid.user.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grid.user.js b/grid.user.js index 279a23e..efd4be1 100644 --- a/grid.user.js +++ b/grid.user.js @@ -50,7 +50,7 @@ screenCaptureMode: 'Activa el mode captura de pantalla', screenCaptureModeDescription: 'Força 16:9, desactiva els noms, bloqueja els vídeos al seu lloc', unauthorizedWarning: "ATENCIÓ: es tracta d'una extensió no autoritzada. Instal·leu l'extensió oficial fent clic aquí.", - duplicateWarning: 'Multiples extensiones Grid View detectadas. Si us plau, desinstal·leu els duplicats.', + duplicateWarning: 'Multiples extensions Grid View detectades. Si us plau, desinstal·leu els duplicats.', hideParticipant: 'Amaga el participant', showParticipant: 'Mostra el participant', advancedSettingsLink: 'Mostra la configuració avançada', From b7c3d75eee4b6c555b5c560ee90e2564c5e441aa Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Mon, 7 Sep 2020 16:20:10 +0200 Subject: [PATCH 06/27] y --- .github/funding.yml | 2 +- .github/pull_request_template.md | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 .github/pull_request_template.md diff --git a/.github/funding.yml b/.github/funding.yml index a76450e..765411d 100644 --- a/.github/funding.yml +++ b/.github/funding.yml @@ -1 +1 @@ -custom: ["https://paypal.me/fugiman"] +custom: ["https://paypal.me/SimoneMarullo"] diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index 9b08153..0000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,4 +0,0 @@ - - - -*By submitting this Contribution you hereby grant to Chris Gamble a worldwide, royalty-free, non-exclusive, perpetual and irrevocable license, with the right to transfer an unlimited number of non-exclusive licenses or to grant sublicenses to third parties, under the Copyright covering the Contribution to use the Contribution by all means, including, but not limited to: publish the Contribution, modify the Contribution, prepare derivative works based upon or containing the Contribution and/or to combine the Contribution with other Materials, reproduce the Contribution in original or modified form, distribute, to make the Contribution available to the public, display and publicly perform the Contribution in original or modified form.* From 041c6a5927a15f9e64000dadac55e49e0ffcf846 Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Mon, 7 Sep 2020 16:23:23 +0200 Subject: [PATCH 07/27] y --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 2d2c537..0173664 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,10 @@ This extension forcibly loads every participant's video when grid view is enable Includes a variety of options to enhance your meeting: include your own video, highlight who is speaking, and hide participants without video! -## Official Releases +## Unofficial Release +Chrome Extension: https://chrome.google.com/webstore/detail/google-meet-grid-view-fix/dakebdbeofhmlnmjlmhjdmmjmfohiicn + +## Official Releases (Broken) Chrome Extension: https://chrome.google.com/webstore/detail/kklailfgofogmmdlhgmjgenehkjoioip @@ -26,7 +29,7 @@ Your data can not be stored, as it does not exist. Your data can not be shared, as it does not exist. Your data can not be sold, as it does not exist. -If this is insufficient please email fugiman47+grid-view-extension@gmail.com . Please note that I do not have a scanner and therefore can't sign physical documents. +If this is insufficient please email webber975+grid-view-extension@gmail.com . Please note that I do not have a scanner and therefore can't sign physical documents. ## License From 1e35e2fd90326d805b1523c8f7495668c270dc6b Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Mon, 7 Sep 2020 16:47:26 +0200 Subject: [PATCH 08/27] y --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 0173664..b65f2d4 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,9 @@ Userscript: https://greasyfork.org/en/scripts/397862-google-meet-grid-view - Chromium browsers *may* work. They are not explicitly tested, but probably work. Please file an issue with your browser & userscript extension if you encounter issues. - **Safari does NOT work!** Safari does not respect the Content-Security-Policy spec in regards to extensions, so Tampermonkey can not inject scripts into Google Meets ([citation](https://github.com/Tampermonkey/tampermonkey/issues/296#issuecomment-222356524)). There is nothing I can do about this, please do not try to use the script on Safari. +## Donation: Support Grid View! +The extension continues working due to continuous maintenance work (in order to keep up with changes from Google). If it is useful for your daily life and you're happy about it, consider making a small donation at paypal.me/SimoneMarullo 🙃 + ## Privacy Policy This extension does not track any user data. From f26af2c9505acd4cfe5800b698e60d23036646d7 Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Mon, 7 Sep 2020 16:48:50 +0200 Subject: [PATCH 09/27] y --- README.md | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index b65f2d4..3c186b5 100644 --- a/README.md +++ b/README.md @@ -5,24 +5,13 @@ This extension forcibly loads every participant's video when grid view is enable Includes a variety of options to enhance your meeting: include your own video, highlight who is speaking, and hide participants without video! ## Unofficial Release -Chrome Extension: https://chrome.google.com/webstore/detail/google-meet-grid-view-fix/dakebdbeofhmlnmjlmhjdmmjmfohiicn +Chrome Extension: https://chrome.google.com/webstore/detail/dakebdbeofhmlnmjlmhjdmmjmfohiicn ## Official Releases (Broken) - Chrome Extension: https://chrome.google.com/webstore/detail/kklailfgofogmmdlhgmjgenehkjoioip -Firefox Add-on: https://addons.mozilla.org/en-US/firefox/addon/google-meet-gridview - -Microsoft Edge Extension: https://microsoftedge.microsoft.com/addons/detail/ogbbehbkcmdciebilbkpjgopohnpfolj - -Userscript: https://greasyfork.org/en/scripts/397862-google-meet-grid-view - - **Chrome and Firefox supported.** Every update is tested on both Chrome and Firefox before release. - - **TamperMonkey, GreaseMonkey, and ViolentMonkey supported.** All these extensions have been tested and verified working on Chrome & Firefox. - - Chromium browsers *may* work. They are not explicitly tested, but probably work. Please file an issue with your browser & userscript extension if you encounter issues. - - **Safari does NOT work!** Safari does not respect the Content-Security-Policy spec in regards to extensions, so Tampermonkey can not inject scripts into Google Meets ([citation](https://github.com/Tampermonkey/tampermonkey/issues/296#issuecomment-222356524)). There is nothing I can do about this, please do not try to use the script on Safari. - ## Donation: Support Grid View! -The extension continues working due to continuous maintenance work (in order to keep up with changes from Google). If it is useful for your daily life and you're happy about it, consider making a small donation at paypal.me/SimoneMarullo 🙃 +The extension continues working due to continuous maintenance work (in order to keep up with changes from Google). If it is useful for your daily life and you're happy about it, consider making a small donation at https://paypal.me/SimoneMarullo 🙃 ## Privacy Policy From d3127e251df9260803192d145d066d4ca534ffc6 Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Thu, 10 Sep 2020 15:56:10 +0200 Subject: [PATCH 10/27] v1.40: fixes --- grid.user.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/grid.user.js b/grid.user.js index 9f4f0b4..036cd8f 100644 --- a/grid.user.js +++ b/grid.user.js @@ -1,9 +1,9 @@ // ==UserScript== // @name Google Meet Grid View // @namespace https://fugi.tech/ -// @version 1.39 +// @version 1.40 // @description Adds a toggle to use a grid layout in Google Meets -// @author Chris Gamble +// @author Chris Gamble (original author), Simone Marullo // @include https://meet.google.com/* // @grant none // @run-at document-idle @@ -391,7 +391,6 @@ display: grid; grid-auto-rows: 1fr; top: 50px !important; - right: 2px !important; left: 2px !important; bottom: 2px !important; } @@ -471,6 +470,15 @@ .__gmgv-button { display: flex; overflow: visible !important; + line-height:24px; + -webkit-box-align:center; + box-align:center; + align-items:center; + box-pack:center; + -webkit-box-pack:center; + justify-content:center; + height:100%; + min-width: 66px; } .__gmgv-button > svg { height: 24px; @@ -833,14 +841,14 @@
${ authorized ? '' : `
- ${T('unauthorizedWarning')} + Original release here (discontinued) ` } From aa8cd3c921bfa8a21da753cc4b44ac2b5ecd3491 Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Thu, 10 Sep 2020 16:12:38 +0200 Subject: [PATCH 11/27] Y --- grid.user.js | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/grid.user.js b/grid.user.js index 036cd8f..930296c 100644 --- a/grid.user.js +++ b/grid.user.js @@ -3,7 +3,7 @@ // @namespace https://fugi.tech/ // @version 1.40 // @description Adds a toggle to use a grid layout in Google Meets -// @author Chris Gamble (original author), Simone Marullo +// @author Chris Gamble (original author), Simone Marullo (mantainer) // @include https://meet.google.com/* // @grant none // @run-at document-idle @@ -470,26 +470,18 @@ .__gmgv-button { display: flex; overflow: visible !important; - line-height:24px; - -webkit-box-align:center; - box-align:center; - align-items:center; - box-pack:center; - -webkit-box-pack:center; - justify-content:center; - height:100%; - min-width: 66px; } .__gmgv-button > svg { height: 24px; width: 24px; + padding: 1em 2em; } .__gmgv-button > div { box-sizing: border-box; display: none; position: absolute; top: 40px; - left: 0; + right: 0; width: 300px; padding: 12px; background: white; From fc2db45b28a426b974fafcb61bedaa947ee9a55a Mon Sep 17 00:00:00 2001 From: Antonio Bueno Date: Fri, 11 Sep 2020 19:59:48 +0200 Subject: [PATCH 12/27] Some localizations (en, es, ca) for new strings Two new strings were added in version 1.40: 'Current release' and 'Original release here (discontinued)' This changes them to localized strings, with versions in English, Spanish, and Catalan --- grid.user.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/grid.user.js b/grid.user.js index 961c7df..5748d7a 100644 --- a/grid.user.js +++ b/grid.user.js @@ -51,6 +51,8 @@ screenCaptureModeDescription: 'Força 16:9, desactiva els noms, bloqueja els vídeos al seu lloc', unauthorizedWarning: "ATENCIÓ: es tracta d'una extensió no autoritzada. Instal·leu l'extensió oficial fent clic aquí.", duplicateWarning: 'Multiples extensions Grid View detectades. Si us plau, desinstal·leu els duplicats.', + currentRelease: 'Versió actual', + originalRelease: 'Versió original aquí (discontinuada)', hideParticipant: 'Amaga el participant', showParticipant: 'Mostra el participant', advancedSettingsLink: 'Mostra la configuració avançada', @@ -121,6 +123,8 @@ screenCaptureModeDescription: 'Forces 16:9, Disables names, Locks videos in place', unauthorizedWarning: 'WARNING: This is an unauthorized extension. Please install the official release by clicking here.', duplicateWarning: 'Multiple Grid View extensions detected. Please uninstall duplicates.', + currentRelease: 'Current release', + originalRelease: 'Original release here (discontinued)', hideParticipant: 'Hide Participant', showParticipant: 'Show Participant', advancedSettingsLink: 'View Advanced Settings', @@ -163,6 +167,8 @@ screenCaptureModeDescription: 'Fuerza 16:9, deshabilita nombres, fija el vídeo en su lugar', unauthorizedWarning: 'ATENCIÓN: Esta es una extensión no autorizada. Por favor, instale la versión oficial haciendo clic aquí.', duplicateWarning: 'Multiples extensiones Grid View detectadas. Por favor, desinstale los duplicados.', + currentRelease: 'Versión actual', + originalRelease: 'Versión original aquí (descontinuada)', hideParticipant: 'Oculta el participante', showParticipant: 'Muestra el participante', advancedSettingsLink: 'Muestra la configuración avanzada', @@ -872,14 +878,14 @@
${ authorized ? '' : `
- Original release here (discontinued) + ${T('originalRelease')} ` } From 9d26aeaa1695f5fe2483d36f371b5fa51522280c Mon Sep 17 00:00:00 2001 From: Antonio Bueno Date: Sun, 13 Sep 2020 22:06:34 +0200 Subject: [PATCH 13/27] Some spanish localization fixes As proposed by JCSUCoder/google-meet-grid-view@6331f6f --- grid.user.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/grid.user.js b/grid.user.js index 5748d7a..eedd2cb 100644 --- a/grid.user.js +++ b/grid.user.js @@ -156,15 +156,15 @@ }, es: { showOnlyVideo: 'Muestra solo participantes con vídeo', - highlightSpeaker: 'Resalta los que hablan', + highlightSpeaker: 'Resalta a los que hablan', includeOwnVideo: 'Incluye mi vídeo en la cuadrícula', - autoEnable: 'Habilita vista en cuadrícula por defecto', + autoEnable: 'Habilita la vista en cuadrícula por defecto', notRunning: 'La vista en cuadrícula no funciona en esta página', noMeeting: 'La vista en cuadrícula no funciona hasta que no estés en una llamada', - enabled: 'Habilita vista en cuadrícula', + enabled: 'Habilita la vista en cuadrícula', sourceCode: 'Código fuente disponible en GitHub', - screenCaptureMode: 'Habilita modo captura de pantalla', - screenCaptureModeDescription: 'Fuerza 16:9, deshabilita nombres, fija el vídeo en su lugar', + screenCaptureMode: 'Habilita el modo de captura de pantalla', + screenCaptureModeDescription: 'Fuerza 16:9, deshabilita nombres y fija el vídeo en su lugar', unauthorizedWarning: 'ATENCIÓN: Esta es una extensión no autorizada. Por favor, instale la versión oficial haciendo clic aquí.', duplicateWarning: 'Multiples extensiones Grid View detectadas. Por favor, desinstale los duplicados.', currentRelease: 'Versión actual', From a4f929819c16ffc43e036556092b89d016ea747a Mon Sep 17 00:00:00 2001 From: icysapphire Date: Thu, 11 Feb 2021 16:14:11 +0100 Subject: [PATCH 14/27] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 3c186b5..cd4cd1e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ + +## UPDATE 02/11/2021: +It turns out that Google is testing an update of Meet that disables the Grid View extension. This is why sometimes it works and sometimes not (you see the boxes in a vertical bar). If you seriously need Grid View right now, you might consider refreshing a few times the browser tab (you should end up loading the old compatible version at a certain point). + +I am really sorry but I have to temporarily remove the extension from Chrome Web Store. In fact, updating Grid View would require a huge amount of work or may not be feasible at all. Please, remember that Google Meet introduced native grid view (up to 49 tiles). + +=================== + This extension adds a button to the top right bar (next to chat & participant list) to enable grid-view in Google Meets. Grid view gives every participant an equal sized video for use in meetings without a primary speaker (such as working from home silent meetings). This extension forcibly loads every participant's video when grid view is enabled and may cause performance issues in extremely large meetings. From 74136281354081a8c52fbc38451f7545b2db847c Mon Sep 17 00:00:00 2001 From: icysapphire Date: Mon, 15 Feb 2021 09:01:51 +0100 Subject: [PATCH 15/27] Update README.md --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index cd4cd1e..a6c1d27 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,15 @@ It turns out that Google is testing an update of Meet that disables the Grid Vie I am really sorry but I have to temporarily remove the extension from Chrome Web Store. In fact, updating Grid View would require a huge amount of work or may not be feasible at all. Please, remember that Google Meet introduced native grid view (up to 49 tiles). +### Offline installation +[Here](https://github.com/icysapphire/google-meet-grid-view/releases/download/1.41/grid-view.zip) you can find a ZIP archive containing the extension. Please uncompress it, then: + +1. Navigate to "chrome://extensions/" in the url bar... +2. Click "Developer mode" in the top right hand corner. +3. Click "Load unpacked" and select the folder you have just unzipped + +It should work. + =================== This extension adds a button to the top right bar (next to chat & participant list) to enable grid-view in Google Meets. Grid view gives every participant an equal sized video for use in meetings without a primary speaker (such as working from home silent meetings). From a6bffbbc1d4d7eefe028993fdc0cd88009d9561a Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Sun, 21 Feb 2021 19:07:42 +0100 Subject: [PATCH 16/27] y --- README.md | 7 +++++++ extension/manifest.json | 2 +- grid.user.js | 23 ++++++++++++++++++++--- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a6c1d27..6b930d7 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,10 @@ +## UPDATE 02/21/2021 +The extension has been published again with a workaround (thanks Kelly Gonzalez for the suggestion!). +We temporarily fallback to a clean grid view layout, no advanced features at the moment.. +(set grid tiles slider to the maximum) + +We plan to work on some of the features that millions of users loved.. +stay tuned! / any contribution is welcome! ## UPDATE 02/11/2021: It turns out that Google is testing an update of Meet that disables the Grid View extension. This is why sometimes it works and sometimes not (you see the boxes in a vertical bar). If you seriously need Grid View right now, you might consider refreshing a few times the browser tab (you should end up loading the old compatible version at a certain point). diff --git a/extension/manifest.json b/extension/manifest.json index 5de168a..35b102d 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "Google Meet Grid View (fix)", "description": "Adds a toggle to use a grid layout in Google Meets", - "version": "1.39.0", + "version": "1.42.0", "author": "Simone Marullo", "homepage_url": "https://github.com/icysapphire/google-meet-grid-view", "icons": { diff --git a/grid.user.js b/grid.user.js index eedd2cb..3f3bdc8 100644 --- a/grid.user.js +++ b/grid.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Google Meet Grid View // @namespace https://fugi.tech/ -// @version 1.40 +// @version 1.42 // @description Adds a toggle to use a grid layout in Google Meets // @author Chris Gamble (original author), Simone Marullo (mantainer) // @include https://meet.google.com/* @@ -13,6 +13,8 @@ // v1.39 Summer 2020 bug fix by https://github.com/icysapphire // v1.39.1 Improved Spanish and Catalan localizations by https://github.com/buenoudg // v1.40 Fixes +// v1.41 Fix disappearing names +// V1.42 CSS workaround for stacked tiles ;(function () { // If included by our extension's icon page, export translation factory if (document.currentScript && document.currentScript.src === window.location.href.replace('popup.html', 'grid.user.js')) { @@ -434,10 +436,16 @@ s.innerHTML = ` .__gmgv-vid-container { display: grid; - grid-auto-rows: 1fr; + grid-template-columns: repeat(auto-fit, minmax($bp,1fr)); + grid-template-rows: repeat(auto-fit, minmax($bp,1fr)); + gap: 0px 0px; + grid-template-areas: + ". . . ." + ". . . ." + ". . . ."; top: 50px !important; left: 2px !important; - bottom: 2px !important; + bottom: 90px !important; } .__gmgv-vid-container.__gmgv-rtb-resize.__gmgv-chat-enabled { right: 325px !important; @@ -643,6 +651,7 @@ align-items: center; font-size: 16px; font-weight: 500; + opacity:0.3; } .__gmgv-settings > div > div > span:first-child { flex: 1 1 auto; @@ -674,6 +683,7 @@ .__gmgv-settings label { display: block; margin-top: 24px; + opacity:0.3; } .__gmgv-settings label > span { display: block; @@ -700,6 +710,12 @@ line-height: 20px; font-weight: 500; } + + /* Fix disappearing names */ + .__gmgv-vid-container .sqgFe { + opacity: 1 !important; + display: flex !important; + } ` document.body.append(s) @@ -757,6 +773,7 @@ document.body.appendChild(settingsOverlay) settingsOverlay.innerHTML = `
+ Sorry, advanced features are temporarily broken. Some features may come back in the future.
${T('advancedSettingsTitle')} ${close} From d76e3d7a3d03228d311898f8a2973592dd5d0d63 Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Tue, 23 Feb 2021 10:14:22 +0100 Subject: [PATCH 17/27] y --- extension/manifest.json | 2 +- grid.user.js | 172 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 164 insertions(+), 10 deletions(-) diff --git a/extension/manifest.json b/extension/manifest.json index 35b102d..6f731e4 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "Google Meet Grid View (fix)", "description": "Adds a toggle to use a grid layout in Google Meets", - "version": "1.42.0", + "version": "1.43.0", "author": "Simone Marullo", "homepage_url": "https://github.com/icysapphire/google-meet-grid-view", "icons": { diff --git a/grid.user.js b/grid.user.js index 3f3bdc8..222c70a 100644 --- a/grid.user.js +++ b/grid.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @name Google Meet Grid View // @namespace https://fugi.tech/ -// @version 1.42 +// @version 1.43 // @description Adds a toggle to use a grid layout in Google Meets // @author Chris Gamble (original author), Simone Marullo (mantainer) // @include https://meet.google.com/* @@ -14,7 +14,8 @@ // v1.39.1 Improved Spanish and Catalan localizations by https://github.com/buenoudg // v1.40 Fixes // v1.41 Fix disappearing names -// V1.42 CSS workaround for stacked tiles +// v1.42 CSS workaround for stacked tiles +// v1.43 Restored name modification ;(function () { // If included by our extension's icon page, export translation factory if (document.currentScript && document.currentScript.src === window.location.href.replace('popup.html', 'grid.user.js')) { @@ -126,6 +127,8 @@ unauthorizedWarning: 'WARNING: This is an unauthorized extension. Please install the official release by clicking here.', duplicateWarning: 'Multiple Grid View extensions detected. Please uninstall duplicates.', currentRelease: 'Current release', + donate: 'Support this extension (make a small donation!)', + donateAdvancedSettings: 'Please, show your interest for Grid View by making a small donation here.', originalRelease: 'Original release here (discontinued)', hideParticipant: 'Hide Participant', showParticipant: 'Show Participant', @@ -475,7 +478,7 @@ width: 100% !important; background: 0 0 !important; } - .__gmgv-vid-container > div:after { + .__gmgv-vid-container > div[__gmgv-tile-type="user"]:after { content: ""; display: block; position: absolute; @@ -491,13 +494,52 @@ z-index: 1; pointer-events: none; } + + .__gmgv-sidebar-transformed .__gmgv-speaking-icon{ + display:none + } + + .__gmgv-old-list{ + display:block; + } + .__gmgv-new-list{ + display:none; + } + + .__gmgv-sidebar-transformed [role="list"]{ + display:none; + } + .__gmgv-sidebar-transformed .__gmgv-old-list{ + display:none + } + + .__gmgv-sidebar-transformed .__gmgv-new-list{ + display:block + } + .__gmgv-vid-container > div > div:first-child { z-index: -2; } - .__gmgv-vid-container > div > div { + .__gmgv-vid-container > div[__gmgv-tile-type="user"] > div { display: flex !important; opacity: 1 !important; } + + .__gmgv-vid-container > div[__gmgv-tile-type="you-are-presenting"] > div > div { + height: auto !important; + margin-top: -40px; + padding: 0px !important; + width: auto !important; + } + .__gmgv-vid-container > div[__gmgv-tile-type="you-are-presenting"]{ + height:240px !important; + width: 210px !important; + } + .__gmgv-vid-container > div[__gmgv-tile-type="you-are-presenting"] > div { + width: min-content !important; + height: min-content !important; + } + .__gmgv-vid-container:not(.__gmgv-screen-capture-mode) > div.__gmgv-speaking:after { transition: opacity 60ms linear; opacity: 1; @@ -710,9 +752,9 @@ line-height: 20px; font-weight: 500; } - + /* Fix disappearing names */ - .__gmgv-vid-container .sqgFe { + .__gmgv-vid-container .sqgFe { opacity: 1 !important; display: flex !important; } @@ -808,11 +850,11 @@ - + ${T('donateAdvancedSettings')}
` settingsOverlay.onclick = () => updateSetting('show-settings-overlay', false) @@ -895,7 +938,7 @@
${ authorized @@ -1601,6 +1644,99 @@ } el.insertBefore(b, el.lastChild) } + var observer; + var timerNames = -1; + var observerNames = -1; + function setObserverNames(participants_list){ + var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; + observerNames = new MutationObserver(function(mutations) { + updateNames(true); + }); + + observerNames.observe(participants_list, { + attributes: false, + childList: true, + characterData: false + }); + } + + function transformname(n){let p = n.split(' ') + p[p.length - 1] += ',' + p.push(p.shift()) + return p.join(' ') + } + + function checkTiles(){ + document.querySelectorAll('.__gmgv-vid-container > div').forEach(d => { + console.log(d, d.childNodes.length) + if(d.childNodes.length == 2 && d.children[0].childNodes.length == 1) d.setAttribute('__gmgv-tile-type','you-are-presenting') + else d.setAttribute('__gmgv-tile-type','user') + }) + } + + function updateNames(forceUpdate = false){ + let original_listitems = document.querySelectorAll('[role="listitem"]') + document.querySelector('[role="list"]:not(.__gmgv-transformed)').parentNode.parentNode.classList.add('__gmgv-sidebar-transformed') + let transformedNames = false + original_listitems.forEach(d => { + let sp = d.children[0].querySelector('div:first-child > span:first-child'); + d.children[1].children[0].classList.add('__gmgv-speaking-icon') + if(!d.hasAttribute('__gmgv-name') || d.getAttribute('__gmgv-name') != sp.innerText){ + if(!d.classList.contains('__gmgv-transformed')) transformedNames = true + let oldname = sp.innerText + let newname = transformname(oldname) + sp.innerText= newname + sp.classList.toggle('__gmgv-transformed', true) + d.setAttribute('__gmgv-name', newname) + d.setAttribute('__gmgv-old-name', oldname) + d.setAttribute('__gmgv-transformed','yes') + d.classList.toggle('__gmgv-transformed', true) + } + + }) + if(forceUpdate || transformedNames){ + document.querySelectorAll('.__gmgv-transformed[role="list"]').forEach(d => {d.remove();}); + let oldlist = document.querySelector('[role="list"]:not(.__gmgv-transformed)') + oldlist.classList.toggle('__gmgv-old-list') + let newlist = document.createElement("div") + newlist.classList = oldlist.classList + newlist.classList.toggle('__gmgv-old-list', false) + newlist.classList.toggle('__gmgv-new-list', true) + + newlist.innerHTML = ''; + newlist.classList.toggle('__gmgv-transformed',true) + var categoryItems = oldlist.querySelectorAll('[role="listitem"]'); + var categoryItemsArray = Array.from(categoryItems).map(d => d.cloneNode(true)); + + let sorted = categoryItemsArray.sort(sorter); + + function sorter(a,b) { + return a.getAttribute('__gmgv-name').localeCompare(b.getAttribute('__gmgv-name')); + } + + sorted.forEach(e => {e.classList.toggle('__gmgv-transformed',true); newlist.appendChild(e)}); + oldlist.parentNode.insertBefore(newlist, oldlist.sibling); + oldlist.classList.add('.__gmgv-transformed') + } + + if(observerNames==-1 && original_listitems.length > 0){ + setObserverNames(document.querySelector('[role="list"]:not(.__gmgv-transformed)')); + } + } + + function startUpdatingNames(){ + if(timerNames==-1) timerNames = setInterval(updateNames, 3000); + } + + function stopUpdatingNames(){ + if(timerNames!=-1) clearInterval(timerNames); + if(observerNames!=-1) observerNames.disconnect(); + observerNames = -1; + timerNames = -1; + let d = document.querySelector('.__gmgv-sidebar-transformed') + if(d != null) + d.toggle('__gmgv-sidebar-transformed', false) + } function updateSetting(name, value) { settings[name] = value @@ -1633,6 +1769,24 @@ if (!settings['enabled']) { container.style.marginLeft = '' container.style.marginTop = '' + stopUpdatingNames(); + } else { + checkTiles(); + if(settings['names'] == 'last-space') startUpdatingNames(); else {stopUpdatingNames();} + var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; + var list = document.querySelector('.__gmgv-vid-container'); + + observer = new MutationObserver(function(mutations) { + mutations.forEach(function(mutation) { + checkTiles(); + }); + }); + + observer.observe(list, { + attributes: false, + childList: true, + characterData: false + }); } const bottomBar = Array.from(container.parentElement.parentElement.children).find(el => el.clientHeight === 88) From afeb90e32331b24658f391d6239259c79365af38 Mon Sep 17 00:00:00 2001 From: Simone Marullo Date: Tue, 23 Feb 2021 12:19:10 +0100 Subject: [PATCH 18/27] y --- grid.user.js | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/grid.user.js b/grid.user.js index 222c70a..7ca3d68 100644 --- a/grid.user.js +++ b/grid.user.js @@ -127,7 +127,7 @@ unauthorizedWarning: 'WARNING: This is an unauthorized extension. Please install the official release by clicking here.', duplicateWarning: 'Multiple Grid View extensions detected. Please uninstall duplicates.', currentRelease: 'Current release', - donate: 'Support this extension (make a small donation!)', + donate: 'Support this extension!
(make a small donation)', donateAdvancedSettings: 'Please, show your interest for Grid View by making a small donation here.', originalRelease: 'Original release here (discontinued)', hideParticipant: 'Hide Participant', @@ -478,6 +478,9 @@ width: 100% !important; background: 0 0 !important; } + .__gmgv-vid-container div[__gmgv-tile-type="you-are-presenting"][__gmgv-hidden="yes"], .__gmgv-vid-container.__gmgv-only-video div[__gmgv-has-video="false"] { + display:none; + } .__gmgv-vid-container > div[__gmgv-tile-type="user"]:after { content: ""; display: block; @@ -842,11 +845,11 @@ -