- add sources.
[platform/framework/web/crosswalk.git] / src / content / public / android / java / src / org / chromium / content / browser / VibrationProvider.java
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.content.browser;
6
7 import android.content.Context;
8 import android.media.AudioManager;
9 import android.os.Vibrator;
10
11 import org.chromium.base.CalledByNative;
12 import org.chromium.base.JNINamespace;
13
14 /**
15  * This is the implementation of the C++ counterpart VibrationProvider.
16  */
17 @JNINamespace("content")
18 class VibrationProvider {
19
20     private final AudioManager mAudioManager;
21     private final Vibrator mVibrator;
22
23     @CalledByNative
24     private static VibrationProvider create(Context context) {
25         return new VibrationProvider(context);
26     }
27
28     @CalledByNative
29     private void vibrate(long milliseconds) {
30         if (mAudioManager.getRingerMode() != AudioManager.RINGER_MODE_SILENT)
31             mVibrator.vibrate(milliseconds);
32     }
33
34     @CalledByNative
35     private void cancelVibration() {
36         mVibrator.cancel();
37     }
38
39     private VibrationProvider(Context context) {
40         mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
41         mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
42     }
43 }