TizenRefApp-9609 Accept/Reject call logic broken in RTL 01/156101/1 submit/tizen_4.0/20171018.080056 tizen_4.0.IoT.p2_release tizen_4.0.m2_release
authorIgor Olshevskyi <i.olshevskyi@samsung.com>
Tue, 17 Oct 2017 06:55:35 +0000 (09:55 +0300)
committerIgor Olshevskyi <i.olshevskyi@samsung.com>
Tue, 17 Oct 2017 06:55:35 +0000 (09:55 +0300)
Change-Id: Ia225a67f23c6c9bc7fe42da547575c78b48e352f

call-ui/view/AcceptRejectWidget.cpp
call-ui/view/AcceptRejectWidget.h

index 29bb75cbd938187bd77c8c4d5be651b57f16b896..c514b292301c6f5b0f1822b738d6c2fb095722bc 100644 (file)
@@ -1251,25 +1251,37 @@ namespace callui {
 
        void AcceptRejectWidget::onAcceptExpandTimeout(Timeout *sender)
        {
-               if (m_rotaryClockwiseCount > 0) {
-                       m_rotaryClockwiseCount = 0;
+               int *counter = &m_rotaryClockwiseCount;
+               if (utils::getMirroredMode()) {
+                       counter = &m_rotaryCounterClockwiseCount;
+               }
+
+               if (*counter > 0) {
+                       *counter = 0;
                        m_isContracting = true;
                        setAcceptUnpressedState();
                } else {
                        DLOG("Ignored. Counter is 0");
                }
+
                m_expandTimeout.reset();
        }
 
        void AcceptRejectWidget::onRejectExpandTimeout(Timeout *sender)
        {
-               if (m_rotaryCounterClockwiseCount > 0) {
-                       m_rotaryCounterClockwiseCount = 0;
+               int *counter = &m_rotaryCounterClockwiseCount;
+               if (utils::getMirroredMode()) {
+                       counter = &m_rotaryClockwiseCount;
+               }
+
+               if (*counter > 0) {
+                       *counter = 0;
                        m_isContracting = true;
                        setRejectUnpressedState();
                } else {
                        DLOG("Ignored. Counter is 0");
                }
+
                m_expandTimeout.reset();
        }
 
@@ -1277,50 +1289,83 @@ namespace callui {
        {
                if (m_rotaryCounterClockwiseCount > 0) {
                        m_rotaryCounterClockwiseCount = 0;
-                       setRejectUnpressedState();
+                       if (utils::getMirroredMode()) {
+                               setRejectUnpressedState();
+                       } else {
+                               setAcceptUnpressedState();
+                       }
                        return EINA_TRUE;
                }
 
                m_rotaryClockwiseCount++;
 
                if (m_rotaryClockwiseCount == 1) {
-                       setAcceptPressedState();
-                       m_expandTimeout = Timeout::create(impl::EXPAND_WAITING_TIMEOUT,
-                                       WEAK_DELEGATE_THIS(onAcceptExpandTimeout));
+                       return processFirstRotaryEvent(true);
                } else if (m_rotaryClockwiseCount == 2) {
-                       m_expandTimeout.reset();
-                       impl::resizeImage(*m_accTracer, impl::FINGER_TRACER_DIM);
-                       setAcceptFullExpensionTransition();
-                       return EINA_TRUE;
-               } else {
-                       LOG_RETURN_VALUE(RES_FAIL, EINA_TRUE, "Illegal state");
+                       return processSecondRotaryEvent(true);
                }
-               return EINA_TRUE;
+
+               LOG_RETURN_VALUE(RES_FAIL, EINA_TRUE, "Illegal state");
        }
 
        Eina_Bool AcceptRejectWidget::processCounterClockwiseRotaryEvent()
        {
                if (m_rotaryClockwiseCount > 0) {
                        m_rotaryClockwiseCount = 0;
-                       setAcceptUnpressedState();
+                       if (utils::getMirroredMode()) {
+                               setAcceptUnpressedState();
+                       } else {
+                               setRejectUnpressedState();
+                       }
                        return EINA_TRUE;
                }
 
                m_rotaryCounterClockwiseCount++;
 
                if (m_rotaryCounterClockwiseCount == 1) {
+                       return processFirstRotaryEvent(false);
+               } else if (m_rotaryCounterClockwiseCount == 2) {
+                       return processSecondRotaryEvent(false);
+               }
+
+               LOG_RETURN_VALUE(RES_FAIL, EINA_TRUE, "Illegal state");
+       }
+
+       Eina_Bool AcceptRejectWidget::processFirstRotaryEvent(bool isClockwise)
+       {
+               bool isMirroredMode = utils::getMirroredMode();
+
+               if ((isClockwise && !isMirroredMode) ||
+                               (!isClockwise && isMirroredMode)) {
+                       setAcceptPressedState();
+                       m_expandTimeout = Timeout::create(impl::EXPAND_WAITING_TIMEOUT,
+                                       WEAK_DELEGATE_THIS(onAcceptExpandTimeout));
+               } else if ((!isClockwise && !isMirroredMode) ||
+                               (isClockwise && isMirroredMode)) {
                        setRejectPressedState();
                        m_expandTimeout = Timeout::create(impl::EXPAND_WAITING_TIMEOUT,
                                        WEAK_DELEGATE_THIS(onRejectExpandTimeout));
+               }
 
-               } else if (m_rotaryCounterClockwiseCount == 2) {
-                       m_expandTimeout.reset();
+               return EINA_TRUE;
+       }
+
+       Eina_Bool AcceptRejectWidget::processSecondRotaryEvent(bool isClockwise)
+       {
+               bool isMirroredMode = utils::getMirroredMode();
+
+               m_expandTimeout.reset();
+
+               if ((isClockwise && !isMirroredMode) ||
+                               (!isClockwise && isMirroredMode)) {
+                       impl::resizeImage(*m_accTracer, impl::FINGER_TRACER_DIM);
+                       setAcceptFullExpensionTransition();
+               } else if ((!isClockwise && !isMirroredMode) ||
+                               (isClockwise && isMirroredMode)) {
                        impl::resizeImage(*m_rejTracer, impl::FINGER_TRACER_DIM);
                        setRejectFullExpensionTransition();
-                       return EINA_TRUE;
-               } else {
-                       LOG_RETURN_VALUE(RES_FAIL, EINA_TRUE, "Illegal state");
                }
+
                return EINA_TRUE;
        }
 
index fd7887ea0a4f8ce0cc2aaa0827b696db7c092f03..76cbbe231eb6aa09ac865abf23b84f8692d8016a 100644 (file)
@@ -194,6 +194,8 @@ namespace callui {
                Eina_Bool onRotaryEvent(Evas_Object *obj, Eext_Rotary_Event_Info *info);
                Eina_Bool processClockwiseRotaryEvent();
                Eina_Bool processCounterClockwiseRotaryEvent();
+               Eina_Bool processFirstRotaryEvent(bool isClockwise);
+               Eina_Bool processSecondRotaryEvent(bool isClockwise);
 
                void setAcceptPressedState();
                void setRejectPressedState();