diff --git a/android/app/build.gradle b/android/app/build.gradle index 70f0a50e..7204016e 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "olcxja.miarven" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 7 - versionName "0.2.1" + versionCode 6 + versionName "0.2.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" aaptOptions { // Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps. diff --git a/android/app/src/main/assets/public/blah/en-cat.json b/android/app/src/main/assets/public/blah/en-cat.json index 0ba77833..d3ffa2ed 100644 --- a/android/app/src/main/assets/public/blah/en-cat.json +++ b/android/app/src/main/assets/public/blah/en-cat.json @@ -325,31 +325,5 @@ "error.call.microphone": "microphone error :c", "error.voice.reconnect.failed": "voice connection lost :c", "error.voice.ticket.rejected": "voice auth failed :c check VOICE_KEY/server version", - "error.voice.not.configured": "voice server not configured :c missing VOICE_KEY", - "title.group.name": "clowder name", - "title.group.history.visible": "history visible to newcomers", - "desc.group.history.visible": "new clowder meowmbers will be able to see older meowsages (disables key purrotation)", - "history.visible": "enabled, meow", - "history.hidden": "disabled, meow", - "group.history.changed.by": "{0} changed history visibility to: {1}", - "group.name.changed.by": "{0} changed the clowder name to {1}", - "group.pfp.changed.by": "{0} changed the clowder picture", - "group.pfp.removed.by": "{0} removed the clowder picture", - "action.call.init": "starting call... :3", - "already.in.call": "ur already in a call meow", - "call.connect.failed": "failed to connect to the call :c", - "call.microphone": "microphone error :c", - "voice.reconnect.failed": "voice connection lost :c", - "voice.ticket.rejected": "voice auth failed :c check VOICE_KEY/server version", - "kdf.salt.missing": "missing encryption salt :c try pawging in again", - "group-avatar.updated": "clowder picture updated successfully :3", - "error.unknown.error": "unknown error :o", - "federation.disabled": "federation is disabled :c", - "invalid.name": "invalid name meow", - "invalid.keys": "invalid nametags meow", - "history.hidden.keys.provided": "no nametags allowed when history is hissed away, meow", - "cannot.kick.self": "you can't scratch yourself", - "invalid.attachment": "invalid meowttachment :c", - "no.voice.servers": "no voice servers available :c", - "voice.not.configured": "voice server not configured :c missing VOICE_KEY" + "error.voice.not.configured": "voice server not configured :c missing VOICE_KEY" } diff --git a/android/app/src/main/assets/public/blah/en-us.json b/android/app/src/main/assets/public/blah/en-us.json index 0690b68e..fc6eaaf1 100644 --- a/android/app/src/main/assets/public/blah/en-us.json +++ b/android/app/src/main/assets/public/blah/en-us.json @@ -334,22 +334,5 @@ "error.call.microphone": "Microphone error", "error.voice.reconnect.failed": "Voice connection lost", "error.voice.ticket.rejected": "Voice authentication failed - check VOICE_KEY/server version", - "error.voice.not.configured": "Voice server is not configured (missing VOICE_KEY)", - "action.call.init": "Initializing call...", - "already.in.call": "You are already in a call", - "call.connect.failed": "Failed to connect to the call", - "call.microphone": "Microphone error", - "voice.reconnect.failed": "Voice connection lost", - "voice.ticket.rejected": "Voice authentication failed - check VOICE_KEY/server version", - "kdf.salt.missing": "Encryption salt is missing. Please log in again.", - "group-avatar.updated": "Group icon updated successfully", - "error.unknown.error": "Unknown error", - "federation.disabled": "Federation is disabled", - "invalid.name": "Invalid name", - "invalid.keys": "Invalid keys", - "history.hidden.keys.provided": "Keys cannot be provided when group history is hidden", - "cannot.kick.self": "You cannot kick yourself", - "invalid.attachment": "Invalid attachment", - "no.voice.servers": "No voice servers available", - "voice.not.configured": "Voice server is not configured (missing VOICE_KEY)" + "error.voice.not.configured": "Voice server is not configured (missing VOICE_KEY)" } diff --git a/android/app/src/main/assets/public/blah/pl-pl.json b/android/app/src/main/assets/public/blah/pl-pl.json index f9176566..d8af39cc 100644 --- a/android/app/src/main/assets/public/blah/pl-pl.json +++ b/android/app/src/main/assets/public/blah/pl-pl.json @@ -334,22 +334,5 @@ "error.call.microphone": "Błąd mikrofonu", "error.voice.reconnect.failed": "Utracono połączenie głosowe", "error.voice.ticket.rejected": "Autoryzacja głosu nieudana - sprawdź VOICE_KEY/wersję serwera", - "error.voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)", - "action.call.init": "Nawiązywanie połączenia...", - "already.in.call": "Jesteś już w rozmowie", - "call.connect.failed": "Nie udało się połączyć z rozmową", - "call.microphone": "Błąd mikrofonu", - "voice.reconnect.failed": "Utracono połączenie głosowe", - "voice.ticket.rejected": "Autoryzacja głosu nieudana - sprawdź VOICE_KEY/wersję serwera", - "kdf.salt.missing": "Brak soli szyfrowania. Zaloguj się ponownie.", - "group-avatar.updated": "Ikona grupy została pomyślnie zaktualizowana", - "error.unknown.error": "Nieznany błąd", - "federation.disabled": "Federacja jest wyłączona", - "invalid.name": "Nieprawidłowa nazwa", - "invalid.keys": "Nieprawidłowe klucze", - "history.hidden.keys.provided": "Nie można podać kluczy, gdy historia grupy jest ukryta", - "cannot.kick.self": "Nie możesz wyrzucić samego siebie", - "invalid.attachment": "Nieprawidłowy załącznik", - "no.voice.servers": "Brak dostępnych serwerów głosowych", - "voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)" + "error.voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)" } diff --git a/android/app/src/main/assets/public/icons.js b/android/app/src/main/assets/public/icons.js index 5f006339..e43b10bf 100644 --- a/android/app/src/main/assets/public/icons.js +++ b/android/app/src/main/assets/public/icons.js @@ -1,11 +1,5 @@ // icons.js - Centralized SVG definitions -//Subset czcionki Nunito (A-Z, 0-9, kropka, spacja) w base64. -//SVG wczytany przez nie ma dostępu do fontów strony (@font-face), -//więc bez osadzenia czcionki inicjały na fallback awatarach renderują się -//systemową czcionką zamiast Nunito. -const AVATAR_FONT_B64 = "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"; - const ICONS = { _create: function(content, defaultProps, customProps = {}) { let p = { ...defaultProps, ...customProps }; @@ -61,6 +55,6 @@ const ICONS = { inbox: (props) => ICONS._material(``, props), avatar: function(initials, color, size) { - return `${initials}`; + return `${initials}`; } }; diff --git a/android/app/src/main/assets/public/style.css b/android/app/src/main/assets/public/style.css index 02cae905..f4b1f83e 100644 --- a/android/app/src/main/assets/public/style.css +++ b/android/app/src/main/assets/public/style.css @@ -1963,4 +1963,17 @@ input:checked + .toggle-slider:before { .voice-call-btn { padding: 0 0.75rem; } + + #voice-users { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(5.5rem, 100%), 1fr)); + grid-auto-rows: minmax(6.25rem, 1fr); + align-content: stretch; + justify-items: stretch; + } + .voice-tile { + width: auto !important; + height: auto !important; + min-width: 0; + } } diff --git a/android/app/src/main/assets/public/version.js b/android/app/src/main/assets/public/version.js index cfb04077..98bb1f57 100644 --- a/android/app/src/main/assets/public/version.js +++ b/android/app/src/main/assets/public/version.js @@ -1 +1 @@ -const CLIENT_VERSION = "0.2.1"; +const CLIENT_VERSION = "0.2.0"; diff --git a/android/app/src/main/assets/public/voice.js b/android/app/src/main/assets/public/voice.js index 3235b5ed..09dd8f0f 100644 --- a/android/app/src/main/assets/public/voice.js +++ b/android/app/src/main/assets/public/voice.js @@ -2212,6 +2212,7 @@ function relayoutVoiceTiles() { } const gap = 0.75 * rootFs; + const maxSize = 18 * rootFs; // jedna osoba nie dostanie gigantycznego kafelka const minSize = 4.5 * rootFs; // poniżej tego wolimy scrollować niż spłaszczać //Największy kwadrat, przy którym n kafelków mieści się w dostępnej powierzchni: @@ -2227,7 +2228,7 @@ function relayoutVoiceTiles() { if (s > best) best = s; } - const size = Math.max(minSize, Math.floor(best)); + const size = Math.min(maxSize, Math.max(minSize, Math.floor(best))); const sig = `${n}:${size}`; if (container.dataset.layoutSig === sig) return; container.dataset.layoutSig = sig; diff --git a/electron/package.json b/electron/package.json index 04efa12b..5d883df0 100644 --- a/electron/package.json +++ b/electron/package.json @@ -1,6 +1,6 @@ { "name": "Miarven", - "version": "0.2.1", + "version": "0.2.0", "description": "An Amazing Capacitor App", "author": { "name": "", diff --git a/package.json b/package.json index a677a57b..53c7193b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "olcxja.miarven", - "version": "0.2.1", + "version": "0.2.0", "description": "Larpix client", "license": "AGPL-3.0", "author": "olcxja's softworks", diff --git a/version.json b/version.json index 93785f34..756f31ec 100644 --- a/version.json +++ b/version.json @@ -1,5 +1,5 @@ { - "versionCode": 7, - "versionName": "0.2.1", - "npmVersion": "0.2.1" + "versionCode": 6, + "versionName": "0.2.0", + "npmVersion": "0.2.0" } diff --git a/webroot/blah/en-cat.json b/webroot/blah/en-cat.json index 0ba77833..d3ffa2ed 100644 --- a/webroot/blah/en-cat.json +++ b/webroot/blah/en-cat.json @@ -325,31 +325,5 @@ "error.call.microphone": "microphone error :c", "error.voice.reconnect.failed": "voice connection lost :c", "error.voice.ticket.rejected": "voice auth failed :c check VOICE_KEY/server version", - "error.voice.not.configured": "voice server not configured :c missing VOICE_KEY", - "title.group.name": "clowder name", - "title.group.history.visible": "history visible to newcomers", - "desc.group.history.visible": "new clowder meowmbers will be able to see older meowsages (disables key purrotation)", - "history.visible": "enabled, meow", - "history.hidden": "disabled, meow", - "group.history.changed.by": "{0} changed history visibility to: {1}", - "group.name.changed.by": "{0} changed the clowder name to {1}", - "group.pfp.changed.by": "{0} changed the clowder picture", - "group.pfp.removed.by": "{0} removed the clowder picture", - "action.call.init": "starting call... :3", - "already.in.call": "ur already in a call meow", - "call.connect.failed": "failed to connect to the call :c", - "call.microphone": "microphone error :c", - "voice.reconnect.failed": "voice connection lost :c", - "voice.ticket.rejected": "voice auth failed :c check VOICE_KEY/server version", - "kdf.salt.missing": "missing encryption salt :c try pawging in again", - "group-avatar.updated": "clowder picture updated successfully :3", - "error.unknown.error": "unknown error :o", - "federation.disabled": "federation is disabled :c", - "invalid.name": "invalid name meow", - "invalid.keys": "invalid nametags meow", - "history.hidden.keys.provided": "no nametags allowed when history is hissed away, meow", - "cannot.kick.self": "you can't scratch yourself", - "invalid.attachment": "invalid meowttachment :c", - "no.voice.servers": "no voice servers available :c", - "voice.not.configured": "voice server not configured :c missing VOICE_KEY" + "error.voice.not.configured": "voice server not configured :c missing VOICE_KEY" } diff --git a/webroot/blah/en-us.json b/webroot/blah/en-us.json index 0690b68e..fc6eaaf1 100644 --- a/webroot/blah/en-us.json +++ b/webroot/blah/en-us.json @@ -334,22 +334,5 @@ "error.call.microphone": "Microphone error", "error.voice.reconnect.failed": "Voice connection lost", "error.voice.ticket.rejected": "Voice authentication failed - check VOICE_KEY/server version", - "error.voice.not.configured": "Voice server is not configured (missing VOICE_KEY)", - "action.call.init": "Initializing call...", - "already.in.call": "You are already in a call", - "call.connect.failed": "Failed to connect to the call", - "call.microphone": "Microphone error", - "voice.reconnect.failed": "Voice connection lost", - "voice.ticket.rejected": "Voice authentication failed - check VOICE_KEY/server version", - "kdf.salt.missing": "Encryption salt is missing. Please log in again.", - "group-avatar.updated": "Group icon updated successfully", - "error.unknown.error": "Unknown error", - "federation.disabled": "Federation is disabled", - "invalid.name": "Invalid name", - "invalid.keys": "Invalid keys", - "history.hidden.keys.provided": "Keys cannot be provided when group history is hidden", - "cannot.kick.self": "You cannot kick yourself", - "invalid.attachment": "Invalid attachment", - "no.voice.servers": "No voice servers available", - "voice.not.configured": "Voice server is not configured (missing VOICE_KEY)" + "error.voice.not.configured": "Voice server is not configured (missing VOICE_KEY)" } diff --git a/webroot/blah/pl-pl.json b/webroot/blah/pl-pl.json index f9176566..d8af39cc 100644 --- a/webroot/blah/pl-pl.json +++ b/webroot/blah/pl-pl.json @@ -334,22 +334,5 @@ "error.call.microphone": "Błąd mikrofonu", "error.voice.reconnect.failed": "Utracono połączenie głosowe", "error.voice.ticket.rejected": "Autoryzacja głosu nieudana - sprawdź VOICE_KEY/wersję serwera", - "error.voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)", - "action.call.init": "Nawiązywanie połączenia...", - "already.in.call": "Jesteś już w rozmowie", - "call.connect.failed": "Nie udało się połączyć z rozmową", - "call.microphone": "Błąd mikrofonu", - "voice.reconnect.failed": "Utracono połączenie głosowe", - "voice.ticket.rejected": "Autoryzacja głosu nieudana - sprawdź VOICE_KEY/wersję serwera", - "kdf.salt.missing": "Brak soli szyfrowania. Zaloguj się ponownie.", - "group-avatar.updated": "Ikona grupy została pomyślnie zaktualizowana", - "error.unknown.error": "Nieznany błąd", - "federation.disabled": "Federacja jest wyłączona", - "invalid.name": "Nieprawidłowa nazwa", - "invalid.keys": "Nieprawidłowe klucze", - "history.hidden.keys.provided": "Nie można podać kluczy, gdy historia grupy jest ukryta", - "cannot.kick.self": "Nie możesz wyrzucić samego siebie", - "invalid.attachment": "Nieprawidłowy załącznik", - "no.voice.servers": "Brak dostępnych serwerów głosowych", - "voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)" + "error.voice.not.configured": "Serwer głosowy nieskonfigurowany (brak VOICE_KEY)" } diff --git a/webroot/icons.js b/webroot/icons.js index 5f006339..e43b10bf 100644 --- a/webroot/icons.js +++ b/webroot/icons.js @@ -1,11 +1,5 @@ // icons.js - Centralized SVG definitions -//Subset czcionki Nunito (A-Z, 0-9, kropka, spacja) w base64. -//SVG wczytany przez nie ma dostępu do fontów strony (@font-face), -//więc bez osadzenia czcionki inicjały na fallback awatarach renderują się -//systemową czcionką zamiast Nunito. -const AVATAR_FONT_B64 = "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"; - const ICONS = { _create: function(content, defaultProps, customProps = {}) { let p = { ...defaultProps, ...customProps }; @@ -61,6 +55,6 @@ const ICONS = { inbox: (props) => ICONS._material(``, props), avatar: function(initials, color, size) { - return `${initials}`; + return `${initials}`; } }; diff --git a/webroot/style.css b/webroot/style.css index 02cae905..f4b1f83e 100644 --- a/webroot/style.css +++ b/webroot/style.css @@ -1963,4 +1963,17 @@ input:checked + .toggle-slider:before { .voice-call-btn { padding: 0 0.75rem; } + + #voice-users { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(5.5rem, 100%), 1fr)); + grid-auto-rows: minmax(6.25rem, 1fr); + align-content: stretch; + justify-items: stretch; + } + .voice-tile { + width: auto !important; + height: auto !important; + min-width: 0; + } } diff --git a/webroot/version.js b/webroot/version.js index cfb04077..98bb1f57 100644 --- a/webroot/version.js +++ b/webroot/version.js @@ -1 +1 @@ -const CLIENT_VERSION = "0.2.1"; +const CLIENT_VERSION = "0.2.0"; diff --git a/webroot/voice.js b/webroot/voice.js index 3235b5ed..09dd8f0f 100644 --- a/webroot/voice.js +++ b/webroot/voice.js @@ -2212,6 +2212,7 @@ function relayoutVoiceTiles() { } const gap = 0.75 * rootFs; + const maxSize = 18 * rootFs; // jedna osoba nie dostanie gigantycznego kafelka const minSize = 4.5 * rootFs; // poniżej tego wolimy scrollować niż spłaszczać //Największy kwadrat, przy którym n kafelków mieści się w dostępnej powierzchni: @@ -2227,7 +2228,7 @@ function relayoutVoiceTiles() { if (s > best) best = s; } - const size = Math.max(minSize, Math.floor(best)); + const size = Math.min(maxSize, Math.max(minSize, Math.floor(best))); const sig = `${n}:${size}`; if (container.dataset.layoutSig === sig) return; container.dataset.layoutSig = sig;