From 9812476b895e65d77e992f94d4402d035f875c59 Mon Sep 17 00:00:00 2001 From: N-Pex Date: Thu, 16 Feb 2023 15:20:12 +0100 Subject: [PATCH 1/5] Fix wording and layout of voice mode settings --- src/assets/css/chat.scss | 20 ++++++++++++++++++++ src/assets/translations/en.json | 5 +++-- src/components/Chat.vue | 2 +- src/components/RoomInfo.vue | 14 +++++++++----- 4 files changed, 33 insertions(+), 8 deletions(-) diff --git a/src/assets/css/chat.scss b/src/assets/css/chat.scss index 175cd41..f01f3bb 100644 --- a/src/assets/css/chat.scss +++ b/src/assets/css/chat.scss @@ -906,6 +906,26 @@ body { text-decoration: underline; } + + .with-right-label { + display: flex; + flex-wrap: nowrap; + flex-direction: row; + text-align: start; + & > * { + flex: 1 1 auto; + } + & > *:last-child { + flex: 0 0 auto; + } + .option-title { + color: #000; + font-size: 16 * $chat-text-size; + } + .option-text { + font-size: 13 * $chat-text-size; + } + } } .header-button-left { diff --git a/src/assets/translations/en.json b/src/assets/translations/en.json index fa3116e..249a3c2 100644 --- a/src/assets/translations/en.json +++ b/src/assets/translations/en.json @@ -243,8 +243,9 @@ "export_room": "Export chat", "user_admin": "Administrator", "user_moderator": "Moderator", - "ui_options": "UI Options", - "audio_layout": "Use audio layout" + "experimental_features": "Experimental Features", + "voice_mode": "Voice mode", + "voice_mode_info": "Switches the chat interface to a 'listen and record' mode" }, "room_info_sheet": { "this_room": "This room", diff --git a/src/components/Chat.vue b/src/components/Chat.vue index e3e48c2..36378d7 100644 --- a/src/components/Chat.vue +++ b/src/components/Chat.vue @@ -527,7 +527,7 @@ export default { if (this.room) { const tags = this.room.tags; if (tags && tags["ui_options"]) { - return tags["ui_options"]["audio_layout"] === 1; + return tags["ui_options"]["voice_mode"] === 1; } } return false; diff --git a/src/components/RoomInfo.vue b/src/components/RoomInfo.vue index 9dad7e1..1b58c03 100644 --- a/src/components/RoomInfo.vue +++ b/src/components/RoomInfo.vue @@ -166,11 +166,14 @@ - {{ $t("room_info.ui_options") }} - +
{{ $t("room_info.experimental_features") }}
+ +
+
{{ $t('room_info.voice_mode') }}
+
{{ $t('room_info.voice_mode_info') }}
+
@@ -378,7 +381,7 @@ export default { if (this.room) { const tags = this.room.tags; if (tags && tags["ui_options"]) { - return tags["ui_options"]["audio_layout"] === 1; + return tags["ui_options"]["voice_mode"] === 1; } } return false; @@ -386,7 +389,7 @@ export default { set: function (audioLayout) { if (this.room && this.room.tags) { let options = this.room.tags["ui_options"] || {} - options["audio_layout"] = (audioLayout ? 1 : 0); + options["voice_mode"] = (audioLayout ? 1 : 0); this.room.tags["ui_options"] = options; this.$matrix.matrixClient.setRoomTag(this.room.roomId, "ui_options", options); } @@ -668,4 +671,5 @@ export default { \ No newline at end of file From b61714fccfda52bc9dc96cc830052dd4e604c426 Mon Sep 17 00:00:00 2001 From: N-Pex Date: Thu, 16 Feb 2023 15:20:30 +0100 Subject: [PATCH 2/5] Add import functionality to voice recorder --- src/assets/icons/audio_import.vue | 9 ++++ src/assets/icons/audio_import_play.vue | 7 +++ src/components/VoiceRecorder.vue | 62 ++++++++++++++++++++++++-- 3 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 src/assets/icons/audio_import.vue create mode 100644 src/assets/icons/audio_import_play.vue diff --git a/src/assets/icons/audio_import.vue b/src/assets/icons/audio_import.vue new file mode 100644 index 0000000..d43e655 --- /dev/null +++ b/src/assets/icons/audio_import.vue @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/src/assets/icons/audio_import_play.vue b/src/assets/icons/audio_import_play.vue new file mode 100644 index 0000000..b940826 --- /dev/null +++ b/src/assets/icons/audio_import_play.vue @@ -0,0 +1,7 @@ + \ No newline at end of file diff --git a/src/components/VoiceRecorder.vue b/src/components/VoiceRecorder.vue index d1debf6..48879ba 100644 --- a/src/components/VoiceRecorder.vue +++ b/src/components/VoiceRecorder.vue @@ -11,6 +11,20 @@ undo + + $vuetify.icons.audio_import + + + + $vuetify.icons.audio_import_play + stop { + this.previewPlayer.src = e.target.result; + this.previewPlayer.play(); + }; + reader.readAsDataURL(this.recordedFile); + } + } }, }; From 832a9676447d480f359fcfb6119a4d44ec46652c Mon Sep 17 00:00:00 2001 From: N-Pex Date: Fri, 17 Feb 2023 17:20:26 +0100 Subject: [PATCH 3/5] Fix playback bug on first load Also, don't replay our own messages when just sent. --- src/components/AudioLayout.vue | 47 ++++++++++++++++++++++------------ 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/src/components/AudioLayout.vue b/src/components/AudioLayout.vue index ff47abd..a3f145c 100644 --- a/src/components/AudioLayout.vue +++ b/src/components/AudioLayout.vue @@ -1,5 +1,5 @@ diff --git a/src/components/Chat.vue b/src/components/Chat.vue index 645d316..bf26cf4 100644 --- a/src/components/Chat.vue +++ b/src/components/Chat.vue @@ -8,6 +8,7 @@ :events="events" :autoplay="!showRecorder" :timelineSet="timelineSet" :readMarker="readMarker" + :recordingMembers="typingMembers" v-on:start-recording="showRecorder = true" v-on:loadnext="handleScrolledToBottom(false)" v-on:loadprevious="handleScrolledToTop()"