Merge pull request #14699 from JosJuice/android-vibrator-id-index

Android: Fix mixup between Vibrator id and index
This commit is contained in:
Dentomologist 2026-07-01 13:07:25 -07:00 committed by GitHub
commit d8d37fdbc4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -584,14 +584,14 @@ private:
class AndroidMotor : public Core::Device::Output
{
public:
AndroidMotor(JNIEnv* env, jobject vibrator, jint id)
: m_vibrator(env->NewGlobalRef(vibrator)), m_id(id)
AndroidMotor(JNIEnv* env, jobject vibrator, jint index)
: m_vibrator(env->NewGlobalRef(vibrator)), m_index(index)
{
}
~AndroidMotor() { IDCache::GetEnvForThread()->DeleteGlobalRef(m_vibrator); }
std::string GetName() const override { return "Motor " + std::to_string(m_id); }
std::string GetName() const override { return "Motor " + std::to_string(m_index); }
void SetState(ControlState state) override
{
@ -606,7 +606,7 @@ public:
private:
const jobject m_vibrator;
const jint m_id;
const jint m_index;
std::atomic<ControlState> m_state = 0;
};
@ -793,8 +793,8 @@ private:
jint size = env->GetArrayLength(j_vibrator_ids);
for (jint i = 0; i < size; ++i)
{
jobject vibrator =
env->CallObjectMethod(vibrator_manager, s_dolphin_vibrator_manager_get_vibrator, i);
jobject vibrator = env->CallObjectMethod(
vibrator_manager, s_dolphin_vibrator_manager_get_vibrator, vibrator_ids[i]);
AddOutput(new AndroidMotor(env, vibrator, i));
env->DeleteLocalRef(vibrator);
}