From 9cff3868deaa35e5433bc39a392f8fd6d3e5a89e Mon Sep 17 00:00:00 2001 From: syuilo <syuilotan@yahoo.co.jp> Date: Sun, 4 Mar 2018 18:50:30 +0900 Subject: [PATCH] make sounds great again --- src/web/app/common/mios.ts | 7 +++++++ .../common/views/components/messaging-room.vue | 6 ++++++ .../app/desktop/views/components/settings.vue | 11 +++++++++++ .../app/desktop/views/components/timeline.vue | 6 ++++++ src/web/assets/message.mp3 | Bin 0 -> 4584 bytes src/web/assets/post.mp3 | Bin 0 -> 2506 bytes 6 files changed, 30 insertions(+) create mode 100644 src/web/assets/message.mp3 create mode 100644 src/web/assets/post.mp3 diff --git a/src/web/app/common/mios.ts b/src/web/app/common/mios.ts index bc83ec0bbb..c5f0d1d4dc 100644 --- a/src/web/app/common/mios.ts +++ b/src/web/app/common/mios.ts @@ -94,6 +94,13 @@ export default class MiOS extends EventEmitter { return localStorage.getItem('debug') == 'true'; } + /** + * Whether enable sounds + */ + public get isEnableSounds() { + return localStorage.getItem('enableSounds') == 'true'; + } + public apis: API; /** diff --git a/src/web/app/common/views/components/messaging-room.vue b/src/web/app/common/views/components/messaging-room.vue index 0a675ba03e..e15e10ec7d 100644 --- a/src/web/app/common/views/components/messaging-room.vue +++ b/src/web/app/common/views/components/messaging-room.vue @@ -29,6 +29,7 @@ import Vue from 'vue'; import MessagingStreamConnection from '../../scripts/streaming/messaging-stream'; import XMessage from './messaging-room.message.vue'; import XForm from './messaging-room.form.vue'; +import { url } from '../../../config'; export default Vue.extend({ components: { @@ -147,6 +148,11 @@ export default Vue.extend({ }, onMessage(message) { + // サウンドを再生する + if ((this as any).os.isEnableSounds) { + new Audio(`${url}/assets/message.mp3`).play(); + } + const isBottom = this.isBottom(); this.messages.push(message); diff --git a/src/web/app/desktop/views/components/settings.vue b/src/web/app/desktop/views/components/settings.vue index cba14f5f95..a0ffc4e0aa 100644 --- a/src/web/app/desktop/views/components/settings.vue +++ b/src/web/app/desktop/views/components/settings.vue @@ -26,6 +26,13 @@ <mk-switch v-model="os.i.client_settings.showPostFormOnTopOfTl" @change="onChangeShowPostFormOnTopOfTl" text="タイムライン上部に投稿フォームを表示する"/> </section> + <section class="web" v-show="page == 'web'"> + <h1>サウンド</h1> + <mk-switch v-model="enableSounds" text="サウンドを有効にする"> + <span>投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。</span> + </mk-switch> + </section> + <section class="web" v-show="page == 'web'"> <h1>モバイル</h1> <mk-switch v-model="os.i.client_settings.disableViaMobile" @change="onChangeDisableViaMobile" text="「モバイルからの投稿」フラグを付けない"/> @@ -166,6 +173,7 @@ export default Vue.extend({ version, latestVersion: undefined, checkingForUpdate: false, + enableSounds: localStorage.getItem('enableSounds') == 'true', lang: localStorage.getItem('lang') || '', preventUpdate: localStorage.getItem('preventUpdate') == 'true', debug: localStorage.getItem('debug') == 'true', @@ -173,6 +181,9 @@ export default Vue.extend({ }; }, watch: { + enableSounds() { + localStorage.setItem('enableSounds', this.enableSounds ? 'true' : 'false'); + }, lang() { localStorage.setItem('lang', this.lang); }, diff --git a/src/web/app/desktop/views/components/timeline.vue b/src/web/app/desktop/views/components/timeline.vue index 0d16d60df9..c35baa159e 100644 --- a/src/web/app/desktop/views/components/timeline.vue +++ b/src/web/app/desktop/views/components/timeline.vue @@ -18,6 +18,7 @@ <script lang="ts"> import Vue from 'vue'; +import { url } from '../../../config'; export default Vue.extend({ data() { @@ -93,6 +94,11 @@ export default Vue.extend({ }); }, onPost(post) { + // サウンドを再生する + if ((this as any).os.isEnableSounds) { + new Audio(`${url}/assets/post.mp3`).play(); + } + this.posts.unshift(post); }, onChangeFollowing() { diff --git a/src/web/assets/message.mp3 b/src/web/assets/message.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..64277444759d7d0be1c34574a2f13ca4a84a6e8b GIT binary patch literal 4584 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 literal 0 HcmV?d00001 diff --git a/src/web/assets/post.mp3 b/src/web/assets/post.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d3da88a933265ea66d24f31db01dbad15b92d932 GIT binary patch literal 2506 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 literal 0 HcmV?d00001