From: Denis Dolzhenko Date: Wed, 24 May 2017 13:44:00 +0000 (+0300) Subject: TizenRefApp-8554 Implement data roaming required case X-Git-Tag: submit/tizen/20170602.135848~10 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F57%2F130957%2F1;p=profile%2Fwearable%2Fapps%2Fnative%2Fmessage.git TizenRefApp-8554 Implement data roaming required case Change-Id: Ic0196e13aa3fd363760354b49a0c567be0a7ffde Signed-off-by: Denis Dolzhenko --- diff --git a/src/Common/SystemSettingsManager/inc/SystemSettingsManager.h b/src/Common/SystemSettingsManager/inc/SystemSettingsManager.h index 177771b..c012a78 100644 --- a/src/Common/SystemSettingsManager/inc/SystemSettingsManager.h +++ b/src/Common/SystemSettingsManager/inc/SystemSettingsManager.h @@ -72,6 +72,18 @@ namespace Msg */ bool isFlightModeEnabled() const; + /** + * @brief Checks roaming status + * @return true if roaming, false otherwise. + */ + bool isRoaming() const; + + /** + * @brief Checks whether roaming data is enabled or not + * @return true if enabled, false otherwise. + */ + bool isRoamingDataEnabled() const; + private: SystemSettingsManager(SystemSettingsManager&) = delete; SystemSettingsManager &operator =(const SystemSettingsManager&) = delete; diff --git a/src/Common/SystemSettingsManager/src/SystemSettingsManager.cpp b/src/Common/SystemSettingsManager/src/SystemSettingsManager.cpp index 7179cc8..c7dda86 100644 --- a/src/Common/SystemSettingsManager/src/SystemSettingsManager.cpp +++ b/src/Common/SystemSettingsManager/src/SystemSettingsManager.cpp @@ -20,6 +20,8 @@ #include #include #include +#include +#include using namespace Msg; @@ -113,18 +115,29 @@ bool SystemSettingsManager::isFlightModeEnabled() const return res; } +bool SystemSettingsManager::isRoaming() const +{ + bool status = false; + telephony_h telHandle = m_TelHandleList.handle[0]; + telephony_network_get_roaming_status(telHandle, &status); + return status; +} + +bool SystemSettingsManager::isRoamingDataEnabled() const +{ + int enabled = false; + vconf_get_bool(VCONFKEY_SETAPPL_STATE_DATA_ROAMING_BOOL, &enabled); + return enabled; +} + void SystemSettingsManager::onTimeFormatChanged() { for (ISystemSettingsManager *it : m_Listeners) - { it->onTimeFormatChanged(); - } } void SystemSettingsManager::onLanguageChanged() { for (ISystemSettingsManager *it : m_Listeners) - { it->onLanguageChanged(); - } } diff --git a/src/Composer/Controller/inc/MsgBodyFrame.h b/src/Composer/Controller/inc/MsgBodyFrame.h index add8fe8..c395abe 100644 --- a/src/Composer/Controller/inc/MsgBodyFrame.h +++ b/src/Composer/Controller/inc/MsgBodyFrame.h @@ -88,7 +88,7 @@ namespace Msg { void showSentWhenServiceBecomesAvailablePopup(); void showMobileNetworkSettingsPopup(); void showMmsTextLimitExceededPopup(); - void showUnableToSendMmsPopup(); + void showUnableDataRoamingPopup(); void showDiscardMsgPopup(); // Popup callback: diff --git a/src/Composer/Controller/src/MsgBodyFrame.cpp b/src/Composer/Controller/src/MsgBodyFrame.cpp index 4c1c873..450b0c6 100644 --- a/src/Composer/Controller/src/MsgBodyFrame.cpp +++ b/src/Composer/Controller/src/MsgBodyFrame.cpp @@ -138,19 +138,28 @@ void MsgBodyFrame::handleSendResult( MsgTransport::SendResult result) bool MsgBodyFrame::checkBeforeSend(Message::Type type) { - if (!App::getInst().getSysSettingsManager().isSimInserted()) { + auto &settings = App::getInst().getSysSettingsManager(); + + if (!settings.isSimInserted()) { // TODO: popup for No SIM card return false; } - if (App::getInst().getSysSettingsManager().isFlightModeEnabled()) { + if (settings.isFlightModeEnabled()) { showDisableFlightModePopup(); return false; } - if (MsgUtils::isMms(type) && !App::getInst().getSysSettingsManager().isMobileDataEnabled()) { - showMobileNetworkSettingsPopup(); - return false; + if (MsgUtils::isMms(type)) { + if (!settings.isMobileDataEnabled()) { + showMobileNetworkSettingsPopup(); + return false; + } + + if (settings.isRoaming() && !settings.isRoamingDataEnabled()) { + showUnableDataRoamingPopup(); + return false; + } } return true; @@ -351,7 +360,7 @@ void MsgBodyFrame::showMmsTextLimitExceededPopup() popup->show(); } -void MsgBodyFrame::showUnableToSendMmsPopup() +void MsgBodyFrame::showUnableDataRoamingPopup() { auto *popup = new StandardPopup(StandardPopup::buttons2Style); popup->setText(msgt("WDS_MSG_BODY_UNABLE_TO_SEND_MMS_ENABLE_DATA_ROAMING")); @@ -403,12 +412,14 @@ void MsgBodyFrame::onEnableDataRoamingClicked(Popup &popup) { MSG_LOG(""); popup.destroy(); + // TODO: run network settings } void MsgBodyFrame::onMobileNetworkSettingsClicked(Popup &popup) { MSG_LOG(""); popup.destroy(); + // TODO: run network settings } void MsgBodyFrame::onDiscardMsgClicked(Popup &popup)