fix for dimensions on smartwatch in batch mode 92/208192/2
authorRadoslaw Cybulski <r.cybulski@partner.samsung.com>
Wed, 19 Jun 2019 11:21:36 +0000 (13:21 +0200)
committerRadoslaw Cybulski <r.cybulski@partner.samsung.com>
Tue, 9 Jul 2019 08:57:32 +0000 (10:57 +0200)
Change-Id: I1a2d376b7f3d458a0ccac9548fa1c996ae5889a4

src/batch/BatchRunner.cpp

index e4c4408..3df5afe 100644 (file)
@@ -1003,7 +1003,7 @@ void BatchExecutor::insertMethods()
                                if (fingerCount <= 0 || fingerCount > 3)
                                        throw EvaluationFailure{} << "invalid finger count (must be between 1 and 3)";
 
-                               auto coord = Point{ 300, 300 };
+                               auto coord = Point{ 200, 200 };
                                if (!target.isEmpty())
                                {
                                        if (target.isString()) {
@@ -1035,8 +1035,8 @@ void BatchExecutor::insertMethods()
        variables["DOUBLE_TAP"] = generateTapFunction(2);
        variables["TRIPLE_TAP"] = generateTapFunction(3);
 
-       auto generateFlickFunction = [&](int x0, int y0, int x1, int y1) {
-               return EvaluationValueFunction{ [ &, x0, y0, x1, y1](EvaluationValue fingers) -> EvaluationValue {
+       auto generateFlickFunction = [&](int dx, int dy) {
+               return EvaluationValueFunction{ [ &, dx, dy](EvaluationValue fingers) -> EvaluationValue {
                                auto root = getVisibleRoot();
                                if (!root) throw EvaluationFailure{} << "no visible root (context changed didn't happen)";
                                ASSERT(root->getObject());
@@ -1047,16 +1047,22 @@ void BatchExecutor::insertMethods()
 
                                executeOnMainThread([&]()
                                {
+                                       auto dims = Singleton<UniversalSwitch>::instance().getMainWindow()->getDimensions();
+                                       auto mx = dims.getCenterPoint();
+                                       auto x0 = mx.x - dx / 2;
+                                       auto x1 = x0 + dx;
+                                       auto y0 = mx.y - dy / 2;
+                                       auto y1 = y0 + dy;
                                        utils::generateDragGesture(x0, y0, x1, y1, 20, 0.0, fingerCount);
                                });
                                std::this_thread::sleep_for(std::chrono::milliseconds{ 600 });
                                return EvaluationValue{};
                        }, { { "fingers", 1 } } };
        };
-       variables["FLICK_RIGHT"] = generateFlickFunction(200, 200, 400, 200);
-       variables["FLICK_LEFT"] = generateFlickFunction(400, 200, 200, 200);
-       variables["FLICK_UP"] = generateFlickFunction(300, 600, 300, 200);
-       variables["FLICK_DOWN"] = generateFlickFunction(300, 200, 300, 600);
+       variables["FLICK_RIGHT"] = generateFlickFunction(300, 0);
+       variables["FLICK_LEFT"] = generateFlickFunction(-300, 0);
+       variables["FLICK_UP"] = generateFlickFunction(0, -300);
+       variables["FLICK_DOWN"] = generateFlickFunction(0, 300);
 
        auto generateWheelTurnFunction = [&]() {
                return EvaluationValueFunction{ [&](bool clockwise, int multiplicity) -> EvaluationValue {