std::lock_guard<std::mutex> lock(mutex_);
+ PlatformResult first_error = PlatformResult{ErrorCode::NO_ERROR};
for (const auto& h : handles_) {
for (const auto& n : kNotifications) {
auto result = SysteminfoUtils::UnregisterTapiChangeCallback(h, n);
- if (!result) {
- return result;
+ if (!result && first_error) {
+ first_error = result;
}
}
}
- return PlatformResult{ErrorCode::NO_ERROR};
+ return first_error;
}
PlatformResult GetNetworkType(std::size_t index, int* network_type) {
UnregisterNetworkListener();
}
if (IsListenerRegistered(kPropertyIdWifiNetwork)) {
- registered_listeners_.erase(kPropertyIdWifiNetwork) /*HACK*/;
+ registered_listeners_.erase(kPropertyIdWifiNetwork);
UnregisterWifiNetworkListener();
}
if (IsListenerRegistered(kPropertyIdEthernetNetwork)) {
- registered_listeners_.erase(kPropertyIdEthernetNetwork) /*HACK*/;
+ registered_listeners_.erase(kPropertyIdEthernetNetwork);
UnregisterEthernetNetworkListener();
}
if (IsListenerRegistered(kPropertyIdCellularNetwork)) {
- registered_listeners_.erase(kPropertyIdCellularNetwork) /*HACK*/;
+ registered_listeners_.erase(kPropertyIdCellularNetwork);
UnregisterCellularNetworkListener();
}
if (IsListenerRegistered(kPropertyIdPeripheral)) {
PlatformResult ret = PlatformResult(ErrorCode::NO_ERROR);
CHECK_LISTENER_ERROR(SysteminfoUtils::RegisterVconfCallback(VCONFKEY_SYSMAN_BATTERY_CAPACITY,
OnBatteryChangedCb, this))
- CHECK_LISTENER_ERROR(SysteminfoUtils::RegisterVconfCallback(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW,
- OnBatteryChangedCb, this))
+ ret = SysteminfoUtils::RegisterVconfCallback(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW,
+ OnBatteryChangedCb, this);
+ if (ret.IsError()) {
+ SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_SYSMAN_BATTERY_CAPACITY, OnBatteryChangedCb);
+ return ret;
+ }
LoggerD("Added callback for BATTERY");
return PlatformResult(ErrorCode::NO_ERROR);
}
PlatformResult SysteminfoManager::UnregisterBatteryListener() {
LoggerD("Entered");
- PlatformResult ret = PlatformResult(ErrorCode::NO_ERROR);
- CHECK_LISTENER_ERROR(SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_SYSMAN_BATTERY_CAPACITY,
- OnBatteryChangedCb))
+ PlatformResult ret = SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_SYSMAN_BATTERY_CAPACITY,
+ OnBatteryChangedCb);
+ if (ret.IsError()) {
+ SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW,
+ OnBatteryChangedCb);
+ return ret;
+ }
CHECK_LISTENER_ERROR(SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW,
OnBatteryChangedCb))
LoggerD("Removed callback for BATTERY");
PlatformResult SysteminfoManager::UnregisterStorageListener() {
LoggerD("Entered");
+ g_source_remove(storage_event_id_);
+ storage_event_id_ = 0;
+
PlatformResult ret = PlatformResult(ErrorCode::NO_ERROR);
CHECK_LISTENER_ERROR(
SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_SYSMAN_MMC_STATUS, OnMmcChangedCb))
- g_source_remove(storage_event_id_);
- storage_event_id_ = 0;
LoggerD("Removed callback for STORAGE");
return PlatformResult(ErrorCode::NO_ERROR);
}
sensord_register_event(GetSensorHandle(), AUTO_ROTATION_EVENT_CHANGE_STATE,
BASE_GATHERING_INTERVAL, 0, OnDeviceOrientationChangedCb, this);
if (!sensor_ret) {
+ SysteminfoUtils::UnregisterVconfCallback(
+ VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, OnDeviceAutoRotationChangedCb);
return LogAndCreateResult(
ErrorCode::UNKNOWN_ERR, "Failed to register orientation change event listener",
("sensord_register_event returned false"));
PlatformResult SysteminfoManager::UnregisterDeviceOrientationListener() {
LoggerD("Entered");
- PlatformResult ret = PlatformResult(ErrorCode::NO_ERROR);
- CHECK_LISTENER_ERROR(SysteminfoUtils::UnregisterVconfCallback(
- VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, OnDeviceAutoRotationChangedCb))
bool sensor_ret = sensord_unregister_event(GetSensorHandle(), AUTO_ROTATION_EVENT_CHANGE_STATE);
if (!sensor_ret) {
+ SysteminfoUtils::UnregisterVconfCallback(
+ VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, OnDeviceAutoRotationChangedCb);
return LogAndCreateResult(
ErrorCode::UNKNOWN_ERR, "Failed to unregister orientation change event listener",
("sensord_unregister_event returned false"));
}
+ PlatformResult ret = PlatformResult(ErrorCode::NO_ERROR);
+ CHECK_LISTENER_ERROR(SysteminfoUtils::UnregisterVconfCallback(
+ VCONFKEY_SETAPPL_AUTO_ROTATE_SCREEN_BOOL, OnDeviceAutoRotationChangedCb))
LoggerD("Removed callback for DEVICE_ORIENTATION");
return PlatformResult(ErrorCode::NO_ERROR);
PlatformResult ret = PlatformResult(ErrorCode::NO_ERROR);
CHECK_LISTENER_ERROR(
SysteminfoUtils::RegisterVconfCallback(VCONFKEY_REGIONFORMAT, OnLocaleChangedCb, this))
- CHECK_LISTENER_ERROR(
- SysteminfoUtils::RegisterVconfCallback(VCONFKEY_LANGSET, OnLocaleChangedCb, this))
+ ret = SysteminfoUtils::RegisterVconfCallback(VCONFKEY_LANGSET, OnLocaleChangedCb, this);
+ if (ret.IsError()) {
+ SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_REGIONFORMAT, OnLocaleChangedCb);
+ return ret;
+ }
LoggerD("Added callback for LOCALE");
return PlatformResult(ErrorCode::NO_ERROR);
}
PlatformResult SysteminfoManager::UnregisterLocaleListener() {
LoggerD("Entered");
- PlatformResult ret = PlatformResult(ErrorCode::NO_ERROR);
- CHECK_LISTENER_ERROR(
- SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_REGIONFORMAT, OnLocaleChangedCb))
+ PlatformResult ret =
+ SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_REGIONFORMAT, OnLocaleChangedCb);
+ if (ret.IsError()) {
+ SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_LANGSET, OnLocaleChangedCb);
+ return ret;
+ }
CHECK_LISTENER_ERROR(
SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_LANGSET, OnLocaleChangedCb))
// if there is no other ip-relateded listeners left, unregister
if (!IsListenerRegistered(kPropertyIdCellularNetwork)) {
- PlatformResult ret = PlatformResult(ErrorCode::NO_ERROR);
- CHECK_LISTENER_ERROR(SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_TELEPHONY_FLIGHT_MODE,
- OnCellularNetworkValueChangedCb))
-
+ PlatformResult ret =
+ SysteminfoUtils::UnregisterVconfCallback(VCONFKEY_TELEPHONY_FLIGHT_MODE,
+ OnCellularNetworkValueChangedCb);
+ if (ret.IsError()) {
+ tapi_manager_->UnregisterCallbacks();
+ if (IsIpChangeCallbackNotRegistered()) {
+ UnregisterIpChangeCallback();
+ }
+ return ret;
+ }
CHECK_LISTENER_ERROR(tapi_manager_->UnregisterCallbacks());
}