Skip to content

Commit d14dd06

Browse files
committed
Add code snippets for haptics in Android docs
Provides a more robust and maintainable set of source code, compared to the manually-created snippets currently published on https://developer.android.com/develop/ui/views/haptics/custom-haptic-effects Also remove leftover test file
1 parent 029d06d commit d14dd06

File tree

1 file changed

+32
-32
lines changed

1 file changed

+32
-32
lines changed

misc/src/main/java/com/example/snippets/ui/haptics/CustomVibrationCompositions.kt

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,71 @@
1-
package com.example.snippets.ui.haptics;
1+
package com.example.snippets.ui.haptics
22

3-
import android.Manifest;
4-
import android.app.Activity;
5-
import android.os.Build;
6-
import android.os.VibrationEffect;
7-
import android.os.Vibrator;
3+
import android.Manifest
4+
import android.app.Activity
5+
import android.os.Build
6+
import android.os.VibrationEffect
7+
import android.os.Vibrator
88

9-
import androidx.annotation.RequiresApi;
10-
import androidx.annotation.RequiresPermission;
9+
import androidx.annotation.RequiresApi
10+
import androidx.annotation.RequiresPermission
1111

1212
@RequiresApi(api = Build.VERSION_CODES.M)
13-
public class CustomVibrationPatternsJava extends Activity {
14-
Vibrator vibrator = getApplicationContext().getSystemService(Vibrator.class);
13+
class CustomVibrationPatternsJava : Activity() {
14+
val vibrator = applicationContext.getSystemService(Vibrator::class.java) as Vibrator
1515

1616
// [START android_ui_haptics_ramp_up]
1717
@RequiresApi(Build.VERSION_CODES.O)
1818
@RequiresPermission(Manifest.permission.VIBRATE)
19-
private void rampUpPattern(Vibrator vibrator) {
20-
long[] timings = new long[] {
21-
50, 50, 50, 50, 50, 100, 350, 25, 25, 25, 25, 200 };
22-
int[] amplitudes = new int[] {
23-
33, 51, 75, 113, 170, 255, 0, 38, 62, 100, 160, 255 };
24-
int repeatIndex = -1; // Don't repeat.
19+
fun rampUpPattern() {
20+
val timings = longArrayOf(
21+
50, 50, 50, 50, 50, 100, 350, 25, 25, 25, 25, 200)
22+
val amplitudes = intArrayOf(
23+
33, 51, 75, 113, 170, 255, 0, 38, 62, 100, 160, 255)
24+
val repeatIndex = -1 // Don't repeat.
2525

2626
vibrator.vibrate(VibrationEffect.createWaveform(
27-
timings, amplitudes, repeatIndex));
27+
timings, amplitudes, repeatIndex))
2828
}
2929
// [END android_ui_haptics_ramp_up]
3030

3131
@RequiresApi(api = Build.VERSION_CODES.O)
3232
@RequiresPermission(Manifest.permission.VIBRATE)
3333
// [START android_ui_haptics_repeat]
34-
private void startVibrating() {
35-
long[] timings = new long[] { 50, 50, 100, 50, 50 };
36-
int[] amplitudes = new int[] { 64, 128, 255, 128, 64 };
37-
int repeat = 1; // Repeat from the second entry, index = 1.
34+
fun startVibrating() {
35+
val timings = longArrayOf(50, 50, 100, 50, 50)
36+
val amplitudes = intArrayOf(64, 128, 255, 128, 64)
37+
val repeat = 1 // Repeat from the second entry, index = 1.
3838
VibrationEffect repeatingEffect = VibrationEffect.createWaveform(
39-
timings, amplitudes, repeat);
39+
timings, amplitudes, repeat)
4040
// repeatingEffect can be used in multiple places.
4141

42-
vibrator.vibrate(repeatingEffect);
42+
vibrator.vibrate(repeatingEffect)
4343
}
4444

4545
// [START_EXCLUDE]
4646
@RequiresPermission(Manifest.permission.VIBRATE)
4747
// [END_EXCLUDE]
48-
private void stopVibrating() {
49-
vibrator.cancel();
48+
fun stopVibrating() {
49+
vibrator.cancel()
5050
}
5151
// [END android_ui_haptics_repeat]
5252

5353

5454
// [START android_ui_haptics_fallback]
5555
@RequiresApi(api = Build.VERSION_CODES.O)
5656
@RequiresPermission(Manifest.permission.VIBRATE)
57-
private void patternWithFallback() {
58-
long[] smoothTimings = new long[] { 50, 50, 100, 50, 50 };
59-
long[] onOffTimings = new long[] { 50, 100 };
60-
int[] amplitudes = new int[] { 64, 128, 255, 128, 64 };
61-
int repeatIndex = -1; // Don't repeat.
57+
fun patternWithFallback() {
58+
val smoothTimings = longArrayOf(50, 50, 100, 50, 50)
59+
val onOffTimings = longArrayOf(50, 100)
60+
val amplitudes = intArrayOf(64, 128, 255, 128, 64)
61+
val repeatIndex = -1 // Don't repeat.
6262

6363
if (vibrator.hasAmplitudeControl()) {
6464
vibrator.vibrate(VibrationEffect.createWaveform(
65-
smoothTimings, amplitudes, repeatIndex));
65+
smoothTimings, amplitudes, repeatIndex))
6666
} else {
6767
vibrator.vibrate(VibrationEffect.createWaveform(
68-
onOffTimings, repeatIndex));
68+
onOffTimings, repeatIndex))
6969
}
7070
}
7171
// [END android_ui_haptics_fallback]

0 commit comments

Comments
 (0)