diff options
author | 2024-12-16 21:45:41 -0500 | |
---|---|---|
committer | 2025-01-11 14:17:35 -0500 | |
commit | e9a0e66716dab4dd3184d009d8920de1961efdfa (patch) | |
tree | 02dcc096643d74645bf28459c2834c3d4a2ad7f2 /java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java | |
parent | fb3b9360d70596d7e921de8bf7d3ca99564a077e (diff) | |
download | latinime-e9a0e66716dab4dd3184d009d8920de1961efdfa.tar.gz latinime-e9a0e66716dab4dd3184d009d8920de1961efdfa.tar.xz latinime-e9a0e66716dab4dd3184d009d8920de1961efdfa.zip |
Rename to Kelar Keyboard (org.kelar.inputmethod.latin)
Diffstat (limited to 'java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java b/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java deleted file mode 100644 index 5e6e4ab25..000000000 --- a/java/src/com/android/inputmethod/latin/AudioAndHapticFeedbackManager.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (C) 2012 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.android.inputmethod.latin; - -import android.content.Context; -import android.media.AudioManager; -import android.os.Vibrator; -import android.view.HapticFeedbackConstants; -import android.view.View; - -import com.android.inputmethod.latin.common.Constants; -import com.android.inputmethod.latin.settings.SettingsValues; - -/** - * This class gathers audio feedback and haptic feedback functions. - * - * It offers a consistent and simple interface that allows LatinIME to forget about the - * complexity of settings and the like. - */ -public final class AudioAndHapticFeedbackManager { - private AudioManager mAudioManager; - private Vibrator mVibrator; - - private SettingsValues mSettingsValues; - private boolean mSoundOn; - - private static final AudioAndHapticFeedbackManager sInstance = - new AudioAndHapticFeedbackManager(); - - public static AudioAndHapticFeedbackManager getInstance() { - return sInstance; - } - - private AudioAndHapticFeedbackManager() { - // Intentional empty constructor for singleton. - } - - public static void init(final Context context) { - sInstance.initInternal(context); - } - - private void initInternal(final Context context) { - mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE); - mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); - } - - public void performHapticAndAudioFeedback(final int code, - final View viewToPerformHapticFeedbackOn) { - performHapticFeedback(viewToPerformHapticFeedbackOn); - performAudioFeedback(code); - } - - public boolean hasVibrator() { - return mVibrator != null && mVibrator.hasVibrator(); - } - - public void vibrate(final long milliseconds) { - if (mVibrator == null) { - return; - } - mVibrator.vibrate(milliseconds); - } - - private boolean reevaluateIfSoundIsOn() { - if (mSettingsValues == null || !mSettingsValues.mSoundOn || mAudioManager == null) { - return false; - } - return mAudioManager.getRingerMode() == AudioManager.RINGER_MODE_NORMAL; - } - - public void performAudioFeedback(final int code) { - // if mAudioManager is null, we can't play a sound anyway, so return - if (mAudioManager == null) { - return; - } - if (!mSoundOn) { - return; - } - final int sound; - switch (code) { - case Constants.CODE_DELETE: - sound = AudioManager.FX_KEYPRESS_DELETE; - break; - case Constants.CODE_ENTER: - sound = AudioManager.FX_KEYPRESS_RETURN; - break; - case Constants.CODE_SPACE: - sound = AudioManager.FX_KEYPRESS_SPACEBAR; - break; - default: - sound = AudioManager.FX_KEYPRESS_STANDARD; - break; - } - mAudioManager.playSoundEffect(sound, mSettingsValues.mKeypressSoundVolume); - } - - public void performHapticFeedback(final View viewToPerformHapticFeedbackOn) { - if (!mSettingsValues.mVibrateOn) { - return; - } - if (mSettingsValues.mKeypressVibrationDuration >= 0) { - vibrate(mSettingsValues.mKeypressVibrationDuration); - return; - } - // Go ahead with the system default - if (viewToPerformHapticFeedbackOn != null) { - viewToPerformHapticFeedbackOn.performHapticFeedback( - HapticFeedbackConstants.KEYBOARD_TAP); - } - } - - public void onSettingsChanged(final SettingsValues settingsValues) { - mSettingsValues = settingsValues; - mSoundOn = reevaluateIfSoundIsOn(); - } - - public void onRingerModeChanged() { - mSoundOn = reevaluateIfSoundIsOn(); - } -} |