use of com.nutomic.syncthingandroid.model.Connections in project syncthing-android by syncthing.
the class RestApi method getConnections.
/**
* Returns connection info for the local device and all connected devices.
*/
public void getConnections(final OnResultListener1<Connections> listener) {
new GetRequest(mContext, mUrl, GetRequest.URI_CONNECTIONS, mApiKey, null, result -> {
Long now = System.currentTimeMillis();
Long msElapsed = now - mPreviousConnectionTime;
if (msElapsed < Constants.GUI_UPDATE_INTERVAL) {
listener.onResult(deepCopy(mPreviousConnections.get(), Connections.class));
return;
}
mPreviousConnectionTime = now;
Connections connections = new Gson().fromJson(result, Connections.class);
for (Map.Entry<String, Connections.Connection> e : connections.connections.entrySet()) {
e.getValue().completion = mCompletion.getDeviceCompletion(e.getKey());
Connections.Connection prev = (mPreviousConnections.isPresent() && mPreviousConnections.get().connections.containsKey(e.getKey())) ? mPreviousConnections.get().connections.get(e.getKey()) : new Connections.Connection();
e.getValue().setTransferRate(prev, msElapsed);
}
Connections.Connection prev = mPreviousConnections.transform(c -> c.total).or(new Connections.Connection());
connections.total.setTransferRate(prev, msElapsed);
mPreviousConnections = Optional.of(connections);
listener.onResult(deepCopy(connections, Connections.class));
});
}
Aggregations