1635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKaypackage com.android.documentsui;
2635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
3635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKayimport android.graphics.Point;
4635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKayimport android.support.v7.widget.RecyclerView;
5635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
6f862155e3476f8d9644d57072a6d92375bde628eSteve McKaypublic class TestInputEvent implements Events.InputEvent {
7635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
8635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean mouseEvent;
9635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean primaryButtonPressed;
10635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean secondaryButtonPressed;
11635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean shiftKeyDow;
12635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean actionDown;
13635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean actionUp;
14635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public Point location;
15635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public int position = Integer.MIN_VALUE;
16635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
17635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public TestInputEvent() {}
18635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
19635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public TestInputEvent(int position) {
20635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        this.position = position;
21635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
22635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
23635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    @Override
24635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean isMouseEvent() {
25635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return mouseEvent;
26635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
27635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
28635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    @Override
29635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean isPrimaryButtonPressed() {
30635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return primaryButtonPressed;
31635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
32635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
33635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    @Override
34635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean isSecondaryButtonPressed() {
35635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return secondaryButtonPressed;
36635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
37635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
38635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    @Override
39635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean isShiftKeyDown() {
40635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return shiftKeyDow;
41635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
42635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
43635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    @Override
44635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean isActionDown() {
45635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return actionDown;
46635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
47635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
48635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    @Override
49635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean isActionUp() {
50635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return actionUp;
51635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
52635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
53635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    @Override
54635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public Point getOrigin() {
55635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return location;
56635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
57635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
58635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    @Override
59635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public boolean isOverItem() {
60635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return position != Integer.MIN_VALUE && position != RecyclerView.NO_POSITION;
61635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
62635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
63635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    @Override
64635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public int getItemPosition() {
65635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return position;
66635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
67635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
68635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public static TestInputEvent tap(int position) {
69635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return new TestInputEvent(position);
70635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
71635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
72635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public static TestInputEvent shiftTap(int position) {
73635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        TestInputEvent e = new TestInputEvent(position);
74635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        e.shiftKeyDow = true;
75635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return e;
76635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
77635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
78635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public static TestInputEvent click(int position) {
79635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        TestInputEvent e = new TestInputEvent(position);
80635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        e.mouseEvent = true;
81635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return e;
82635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
83635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay
84635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    public static TestInputEvent shiftClick(int position) {
85635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        TestInputEvent e = new TestInputEvent(position);
86635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        e.mouseEvent = true;
87635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        e.shiftKeyDow = true;
88635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay        return e;
89635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay    }
90635b09499749194b0db5bd09ef3aa07f2469ee2aSteve McKay}
91