Search in sources :

Example 1 with Connections

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));
    });
}
Also used : Connections(com.nutomic.syncthingandroid.model.Connections) Context(android.content.Context) JsonObject(com.google.gson.JsonObject) RemoteIgnoredDevice(com.nutomic.syncthingandroid.model.RemoteIgnoredDevice) URL(java.net.URL) Date(java.util.Date) SimpleDateFormat(java.text.SimpleDateFormat) Intent(android.content.Intent) Completion(com.nutomic.syncthingandroid.model.Completion) HashMap(java.util.HashMap) TypeToken(com.google.common.reflect.TypeToken) JsonParser(com.google.gson.JsonParser) Options(com.nutomic.syncthingandroid.model.Options) GsonBuilder(com.google.gson.GsonBuilder) IgnoredFolder(com.nutomic.syncthingandroid.model.IgnoredFolder) JsonElement(com.google.gson.JsonElement) ShareActivity(com.nutomic.syncthingandroid.activities.ShareActivity) HashSet(java.util.HashSet) Inject(javax.inject.Inject) Folder(com.nutomic.syncthingandroid.model.Folder) Optional(com.google.common.base.Optional) Gson(com.google.gson.Gson) BuildConfig(com.nutomic.syncthingandroid.BuildConfig) Map(java.util.Map) SyncthingApp(com.nutomic.syncthingandroid.SyncthingApp) SystemInfo(com.nutomic.syncthingandroid.model.SystemInfo) FolderStatus(com.nutomic.syncthingandroid.model.FolderStatus) Connections(com.nutomic.syncthingandroid.model.Connections) PreferenceManager(android.preference.PreferenceManager) Objects(com.google.common.base.Objects) Config(com.nutomic.syncthingandroid.model.Config) Device(com.nutomic.syncthingandroid.model.Device) Log(android.util.Log) Event(com.nutomic.syncthingandroid.model.Event) CompletionInfo(com.nutomic.syncthingandroid.model.CompletionInfo) Iterator(java.util.Iterator) ImmutableMap(com.google.common.collect.ImmutableMap) PostConfigRequest(com.nutomic.syncthingandroid.http.PostConfigRequest) Set(java.util.Set) PostRequest(com.nutomic.syncthingandroid.http.PostRequest) JsonArray(com.google.gson.JsonArray) List(java.util.List) Type(java.lang.reflect.Type) SystemVersion(com.nutomic.syncthingandroid.model.SystemVersion) GetRequest(com.nutomic.syncthingandroid.http.GetRequest) Comparator(java.util.Comparator) Collections(java.util.Collections) GetRequest(com.nutomic.syncthingandroid.http.GetRequest) Gson(com.google.gson.Gson) HashMap(java.util.HashMap) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap)

Aggregations

Context (android.content.Context)1 Intent (android.content.Intent)1 PreferenceManager (android.preference.PreferenceManager)1 Log (android.util.Log)1 Objects (com.google.common.base.Objects)1 Optional (com.google.common.base.Optional)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 TypeToken (com.google.common.reflect.TypeToken)1 Gson (com.google.gson.Gson)1 GsonBuilder (com.google.gson.GsonBuilder)1 JsonArray (com.google.gson.JsonArray)1 JsonElement (com.google.gson.JsonElement)1 JsonObject (com.google.gson.JsonObject)1 JsonParser (com.google.gson.JsonParser)1 BuildConfig (com.nutomic.syncthingandroid.BuildConfig)1 SyncthingApp (com.nutomic.syncthingandroid.SyncthingApp)1 ShareActivity (com.nutomic.syncthingandroid.activities.ShareActivity)1 GetRequest (com.nutomic.syncthingandroid.http.GetRequest)1 PostConfigRequest (com.nutomic.syncthingandroid.http.PostConfigRequest)1 PostRequest (com.nutomic.syncthingandroid.http.PostRequest)1