[Merge] lp:~mardy/location-service/last-known-position-15.04 into lp:location-service/15.04
Thomas Voß
thomas.voss at canonical.com
Tue Nov 24 07:28:06 UTC 2015
Review: Needs Fixing
Thanks for the changes, final remark inline.
Diff comments:
>
> === modified file 'src/location_service/com/ubuntu/location/service/implementation.cpp'
> --- src/location_service/com/ubuntu/location/service/implementation.cpp 2014-08-13 13:08:22 +0000
> +++ src/location_service/com/ubuntu/location/service/implementation.cpp 2015-11-19 10:20:03 +0000
> @@ -149,5 +152,21 @@
> new ProxyProvider{provider_selection}
> };
>
> - return session::Interface::Ptr{new culs::session::Implementation(proxy_provider)};
> + session::Interface::Ptr session_iface{new session::Implementation(proxy_provider)};
> + std::weak_ptr<session::Interface> session_weak{session_iface};
> + session_iface->updates().position_status.changed().connect([this, session_weak](const session::Interface::Updates::Status& status)
> + {
> + cul::Optional<cul::Update<cul::Position>> last_known_position =
> + configuration.engine->updates.last_known_location.get();
.get() might very well throw here. I think you want to do if (auto loc = configuration.engine->updates.last_known_location.get() && status == culs::session::Interface::Updates::Status::enabled) { if (auto session_iface = session_weak.lock()) session_iface->updates().position = loc; }
> + if (last_known_position &&
> + status == culs::session::Interface::Updates::Status::enabled)
> + {
> + // Immediately send the last known position to the client
> + if (auto session_iface = session_weak.lock())
> + {
> + session_iface->updates().position = last_known_position.get();
> + }
> + }
> + });
> + return session_iface;
> }
--
https://code.launchpad.net/~mardy/location-service/last-known-position-15.04/+merge/277960
Your team Ubuntu Phablet Team is subscribed to branch lp:location-service/15.04.
More information about the Ubuntu-reviews
mailing list