android: add vibrate compatibility with newer versions

This commit is contained in:
scribam 2023-01-17 22:36:11 +01:00 committed by flyinghead
parent 528f15f117
commit 458b233e16
2 changed files with 20 additions and 6 deletions

View File

@ -2,7 +2,9 @@ package com.reicast.emulator.emu;
import android.content.Context;
import android.content.res.Configuration;
import android.os.Build;
import android.os.Handler;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.view.InputDevice;
import android.view.MotionEvent;
@ -430,8 +432,13 @@ public class VirtualJoystickDelegate {
vibrate = false;
}
}
if (doVibrate)
vibrator.vibrate(Emulator.vibrationDuration);
if (doVibrate) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
vibrator.vibrate(VibrationEffect.createOneShot(Emulator.vibrationDuration, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
vibrator.vibrate(Emulator.vibrationDuration);
}
}
}
}

View File

@ -2,6 +2,8 @@ package com.reicast.emulator.periph;
import android.content.Context;
import android.hardware.input.InputManager;
import android.os.Build;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.view.InputDevice;
@ -92,11 +94,16 @@ public final class InputDeviceManager implements InputManager.InputDeviceListene
if (!vibrator.hasVibrator())
return false;
}
// TODO API >= 26 (Android 8.0)
if (power == 0)
if (power == 0) {
vibrator.cancel();
else
vibrator.vibrate(duration_ms);
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
vibrator.vibrate(VibrationEffect.createOneShot(duration_ms, VibrationEffect.DEFAULT_AMPLITUDE));
} else {
vibrator.vibrate(duration_ms);
}
}
return true;
}