#ifndef UI_EVENTS_ANDROID_MOTION_EVENT_ANDROID_JAVA_H_
#define UI_EVENTS_ANDROID_MOTION_EVENT_ANDROID_JAVA_H_
#include <jni.h>
#include <stddef.h>
#include <stdint.h>
#include <memory>
#include "base/android/scoped_java_ref.h"
#include "base/time/time.h"
#include "ui/events/android/motion_event_android.h"
#include "ui/events/android/motion_event_android_source.h"
#include "ui/events/events_export.h"
#include "ui/events/velocity_tracker/motion_event.h"
#include "ui/gfx/geometry/point_f.h"
namespace ui {
class MotionEventAndroidFactory;
class EVENTS_EXPORT MotionEventAndroidJava : public MotionEventAndroid {
public:
~MotionEventAndroidJava() override;
friend class MotionEventAndroidFactory;
MotionEventAndroidJava(const MotionEventAndroidJava& e) = delete;
void operator=(const MotionEventAndroidJava&) = delete;
bool IsLatestEventTimeResampled() const override;
std::unique_ptr<MotionEventAndroid> CreateFor(
const gfx::PointF& point) const override;
base::android::ScopedJavaLocalRef<jobject> GetJavaObject() const override;
private:
MotionEventAndroidJava(jfloat pix_to_dip,
jfloat ticks_x,
jfloat ticks_y,
jfloat tick_multiplier,
base::TimeTicks oldest_event_time,
base::TimeTicks latest_event_time,
base::TimeTicks down_time_ms,
jint android_action,
jint pointer_count,
jint history_size,
jint action_index,
jint android_action_button,
jint android_gesture_classification,
jint android_button_state,
jint meta_state,
jfloat raw_offset_x_pixels,
jfloat raw_offset_y_pixels,
jboolean for_touch_handle,
const Pointer* const pointer0,
const Pointer* const pointer1,
std::unique_ptr<MotionEventAndroidSource> source);
MotionEventAndroidJava(const MotionEventAndroidJava& e,
const gfx::PointF& point);
};
}
#endif