From 80d9c08996b150fce83dfaad85ddd63c23bb29b6 Mon Sep 17 00:00:00 2001 From: Igor Olshevskyi Date: Tue, 17 Oct 2017 09:55:35 +0300 Subject: [PATCH] TizenRefApp-9609 Accept/Reject call logic broken in RTL Change-Id: Ia225a67f23c6c9bc7fe42da547575c78b48e352f --- call-ui/view/AcceptRejectWidget.cpp | 87 ++++++++++++++++++++++------- call-ui/view/AcceptRejectWidget.h | 2 + 2 files changed, 68 insertions(+), 21 deletions(-) diff --git a/call-ui/view/AcceptRejectWidget.cpp b/call-ui/view/AcceptRejectWidget.cpp index 29bb75c..c514b29 100644 --- a/call-ui/view/AcceptRejectWidget.cpp +++ b/call-ui/view/AcceptRejectWidget.cpp @@ -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; } diff --git a/call-ui/view/AcceptRejectWidget.h b/call-ui/view/AcceptRejectWidget.h index fd7887e..76cbbe2 100644 --- a/call-ui/view/AcceptRejectWidget.h +++ b/call-ui/view/AcceptRejectWidget.h @@ -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(); -- 2.34.1