1331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogpackage com.xtremelabs.robolectric.shadows;
2331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
3331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport android.os.Vibrator;
4331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
5331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport com.xtremelabs.robolectric.internal.Implementation;
6331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogimport com.xtremelabs.robolectric.internal.Implements;
7331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
8331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog@Implements(Vibrator.class)
9331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdogpublic class ShadowVibrator {
10aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog    private boolean vibrating;
11331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    private boolean cancelled;
12331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    private long milliseconds;
13331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    private long[] pattern;
14331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    private int repeat;
15331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
16331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    @Implementation
17331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public void vibrate(long milliseconds) {
18aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog        vibrating = true;
19331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        this.milliseconds = milliseconds;
20331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
21331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
22331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    @Implementation
23331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public void vibrate(long[] pattern, int repeat) {
24aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog        vibrating = true;
25331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        this.pattern = pattern;
26331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        this.repeat = repeat;
27331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
28331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
29331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    @Implementation
30331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public void cancel() {
31331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        cancelled = true;
32aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog        vibrating = false;
33aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog    }
34aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog
35aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog    public boolean isVibrating() {
36aa1062defbe38956a7ff51abf077ab93b0911f0aLogdog        return vibrating;
37331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
38331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
39331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public boolean isCancelled() {
40331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        return cancelled;
41331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
42331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
43331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public long getMilliseconds() {
44331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        return milliseconds;
45331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
46331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
47331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public long[] getPattern() {
48331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        return pattern;
49331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
50331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog
51331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    public int getRepeat() {
52331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog        return repeat;
53331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog    }
54331338e02ace00dde6d82f9ee8ad6be0c5f5e6b5Logdog}