#include "ui/accessibility/android/accessibility_state.h"
#include "base/android/jni_android.h"
#include "base/android/jni_array.h"
#include "ui/accessibility/ax_jni_headers/AccessibilityState_jni.h"
using base::android::AppendJavaStringArrayToStringVector;
using base::android::AttachCurrentThread;
namespace ui {
void JNI_AccessibilityState_OnAnimatorDurationScaleChanged(JNIEnv* env) {
AccessibilityState::NotifyAnimatorDurationScaleObservers();
}
void AccessibilityState::RegisterAnimatorDurationScaleDelegate(
Delegate* delegate) {
GetDelegates().push_back(delegate);
}
void AccessibilityState::UnregisterAnimatorDurationScaleDelegate(
Delegate* delegate) {
std::vector<Delegate*> delegates = GetDelegates();
auto it = std::find(delegates.begin(), delegates.end(), delegate);
delegates.erase(it);
}
void AccessibilityState::NotifyAnimatorDurationScaleObservers() {
for (Delegate* delegate : GetDelegates()) {
delegate->OnAnimatorDurationScaleChanged();
}
}
void AccessibilityState::RegisterObservers() {
JNIEnv* env = AttachCurrentThread();
ui::Java_AccessibilityState_registerObservers(env);
}
int AccessibilityState::GetAccessibilityServiceEventTypeMask() {
JNIEnv* env = AttachCurrentThread();
return ui::Java_AccessibilityState_getAccessibilityServiceEventTypeMask(env);
}
int AccessibilityState::GetAccessibilityServiceFeedbackTypeMask() {
JNIEnv* env = AttachCurrentThread();
return ui::Java_AccessibilityState_getAccessibilityServiceFeedbackTypeMask(
env);
}
int AccessibilityState::GetAccessibilityServiceFlagsMask() {
JNIEnv* env = AttachCurrentThread();
return ui::Java_AccessibilityState_getAccessibilityServiceFlagsMask(env);
}
int AccessibilityState::GetAccessibilityServiceCapabilitiesMask() {
JNIEnv* env = AttachCurrentThread();
return ui::Java_AccessibilityState_getAccessibilityServiceCapabilitiesMask(
env);
}
std::vector<std::string> AccessibilityState::GetAccessibilityServiceIds() {
JNIEnv* env = AttachCurrentThread();
auto j_service_ids =
ui::Java_AccessibilityState_getAccessibilityServiceIds(env);
std::vector<std::string> service_ids;
AppendJavaStringArrayToStringVector(env, j_service_ids, &service_ids);
return service_ids;
}
}