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