From b48bf076ad5a4b21bbbe1f2c9795fbe033d5ea02 Mon Sep 17 00:00:00 2001 From: schmelczerandras Date: Tue, 3 Nov 2020 23:13:52 +0100 Subject: [PATCH] Fix vibration --- frontend/src/index.html | 18 +++++++++--------- frontend/src/index.ts | 5 +++++ frontend/src/scripts/vibration-handler.ts | 12 ++++++++++-- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/frontend/src/index.html b/frontend/src/index.html index ace21fc..a5a0983 100644 --- a/frontend/src/index.html +++ b/frontend/src/index.html @@ -63,15 +63,6 @@
- - + + { }; document.addEventListener('click', firstClickListener); + if (!VibrationHandler.isVibrationEnabledHeuristics) { + hide(document.querySelector("label[for='enable-vibration']") as HTMLElement, true); + } + handleFullScreen(minimize, maximize); toggleSettingsButton.addEventListener('click', toggleSettings); diff --git a/frontend/src/scripts/vibration-handler.ts b/frontend/src/scripts/vibration-handler.ts index 7873ff7..951efaa 100644 --- a/frontend/src/scripts/vibration-handler.ts +++ b/frontend/src/scripts/vibration-handler.ts @@ -2,8 +2,16 @@ import { OptionsHandler } from './options-handler'; export abstract class VibrationHandler { public static vibrate(time: number): void { - if (OptionsHandler.options.vibrationEnabled) { - navigator?.vibrate(time); + if (OptionsHandler.options.vibrationEnabled && this.isVibrationEnabled) { + navigator.vibrate(time); } } + + public static get isVibrationEnabled(): boolean { + return 'vibrate' in navigator; + } + + public static get isVibrationEnabledHeuristics(): boolean { + return this.isVibrationEnabled && 'ontouchstart' in window; + } }