~thomas-voss/location-service/fix-service-path

« back to all changes in this revision

Viewing changes to src/location_service/com/ubuntu/location/service/implementation.cpp

Expose service::State to the bus. (LP: #1536774)

Show diffs side-by-side

added added

removed removed

Lines of Context:
98
98
          configuration.engine->configuration.engine_state.changed().connect(
99
99
              [this](Engine::Status status)
100
100
              {
101
 
                  is_online() =
102
 
                          status == Engine::Status::on ||
103
 
                          status == Engine::Status::active;
 
101
                  switch (status)
 
102
                  {
 
103
                      case Engine::Status::off:
 
104
                          is_online() = false;
 
105
                          mutable_state() = State::disabled;
 
106
                          break;
 
107
                      case Engine::Status::on:
 
108
                          is_online() = true;
 
109
                          mutable_state() = State::enabled;
 
110
                          break;
 
111
                      case Engine::Status::active:
 
112
                          is_online() = true;
 
113
                          mutable_state() = State::active;
 
114
                          break;
 
115
                  }
104
116
              }),
105
117
          configuration.engine->configuration.satellite_based_positioning_state.changed().connect(
106
118
              [this](cul::SatelliteBasedPositioningState state)
132
144
    if (!configuration.permission_manager)
133
145
        throw std::runtime_error("Cannot create service for null permission manager.");
134
146
 
135
 
    is_online() =
136
 
            configuration.engine->configuration.engine_state == Engine::Status::on ||
137
 
            configuration.engine->configuration.engine_state == Engine::Status::active;
 
147
    switch (configuration.engine->configuration.engine_state)
 
148
    {
 
149
        case Engine::Status::off:
 
150
            is_online() = false;
 
151
            mutable_state() = State::disabled;
 
152
            break;
 
153
        case Engine::Status::on:
 
154
            is_online() = true;
 
155
            mutable_state() = State::enabled;
 
156
            break;
 
157
          case Engine::Status::active:
 
158
            is_online() = true;
 
159
            mutable_state() = State::active;
 
160
            break;
 
161
    };
 
162
 
138
163
    does_report_cell_and_wifi_ids() =
139
164
            configuration.engine->configuration.wifi_and_cell_id_reporting_state ==
140
165
            cul::WifiAndCellIdReportingState::on;