1a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown/*
2a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * Copyright (C) 2012 The Android Open Source Project
3a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown *
4a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License");
5a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * you may not use this file except in compliance with the License.
6a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * You may obtain a copy of the License at
7a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown *
8a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown *      http://www.apache.org/licenses/LICENSE-2.0
9a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown *
10a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * Unless required by applicable law or agreed to in writing, software
11a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS,
12a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * See the License for the specific language governing permissions and
14a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * limitations under the License.
15a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown */
16a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown
17a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brownpackage android.os;
18a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown
197b41467704f941b11af6aace3e40993afc7f6c6fJohn Spurlockimport android.media.AudioAttributes;
207b41467704f941b11af6aace3e40993afc7f6c6fJohn Spurlock
21a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown/**
22a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * Vibrator implementation that does nothing.
23a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown *
24a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown * @hide
25a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown */
26a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brownpublic class NullVibrator extends Vibrator {
27a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    private static final NullVibrator sInstance = new NullVibrator();
28a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown
29a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    private NullVibrator() {
30a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    }
31a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown
32a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    public static NullVibrator getInstance() {
33a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown        return sInstance;
34a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    }
35a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown
36a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    @Override
37a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    public boolean hasVibrator() {
38a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown        return false;
39a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    }
40a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown
41f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    /**
42f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn     * @hide
43f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn     */
44f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    @Override
457b41467704f941b11af6aace3e40993afc7f6c6fJohn Spurlock    public void vibrate(int uid, String opPkg, long milliseconds, AudioAttributes attributes) {
46f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn        vibrate(milliseconds);
47f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    }
48f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn
49f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    /**
50f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn     * @hide
51f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn     */
52f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    @Override
538fd7f1ed7c11d35b3f2a97878e68ee38a551dd15Christoph Studer    public void vibrate(int uid, String opPkg, long[] pattern, int repeat,
547b41467704f941b11af6aace3e40993afc7f6c6fJohn Spurlock            AudioAttributes attributes) {
551af30c7ac480e5d335f267a3ac3b2e6c748ce240John Spurlock        if (repeat >= pattern.length) {
561af30c7ac480e5d335f267a3ac3b2e6c748ce240John Spurlock            throw new ArrayIndexOutOfBoundsException();
571af30c7ac480e5d335f267a3ac3b2e6c748ce240John Spurlock        }
58f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn    }
59f265ea9d8307282ff1da3915978625a94fc2859eDianne Hackborn
60a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    @Override
61a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    public void cancel() {
62a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown    }
63a47425a13c19f95057df78b8bb65bb25657e8753Jeff Brown}
64