diff --git a/src/main/java/com/nutomic/syncthingandroid/service/RestApi.java b/src/main/java/com/nutomic/syncthingandroid/service/RestApi.java index ccc06583..f9af0fa1 100644 --- a/src/main/java/com/nutomic/syncthingandroid/service/RestApi.java +++ b/src/main/java/com/nutomic/syncthingandroid/service/RestApi.java @@ -348,9 +348,10 @@ public class RestApi implements SyncthingService.OnWebGuiAvailableListener, for (Map.Entry e : connections.connections.entrySet()) { e.getValue().completion = getDeviceCompletion(e.getKey()); - Connections.Connection prev = mPreviousConnections - .transform(c -> c.connections.get(e.getKey())) - .or(new Connections.Connection()); + 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 = diff --git a/src/main/java/com/nutomic/syncthingandroid/views/DevicesAdapter.java b/src/main/java/com/nutomic/syncthingandroid/views/DevicesAdapter.java index d47a5132..1d42e9bc 100644 --- a/src/main/java/com/nutomic/syncthingandroid/views/DevicesAdapter.java +++ b/src/main/java/com/nutomic/syncthingandroid/views/DevicesAdapter.java @@ -43,21 +43,21 @@ public class DevicesAdapter extends ArrayAdapter { TextView upload = (TextView) convertView.findViewById(R.id.upload); String deviceId = getItem(position).deviceID; - Optional conn = mConnections.transform(a -> a.connections.get(deviceId)); name.setText(getItem(position).getDisplayName()); Resources r = getContext().getResources(); - if (conn.isPresent() && conn.get().connected) { - if (conn.get().completion == 100) { + if (mConnections.isPresent() && mConnections.get().connections.containsKey(deviceId)) { + Connections.Connection conn = mConnections.get().connections.get(deviceId); + if (conn.completion == 100) { status.setText(r.getString(R.string.device_up_to_date)); status.setTextColor(ContextCompat.getColor(getContext(), R.color.text_green)); } else { - status.setText(r.getString(R.string.device_syncing, conn.get().completion)); + status.setText(r.getString(R.string.device_syncing, conn.completion)); status.setTextColor(ContextCompat.getColor(getContext(), R.color.text_blue)); } - download.setText(Util.readableTransferRate(getContext(), conn.get().inBits)); - upload.setText(Util.readableTransferRate(getContext(), conn.get().outBits)); + download.setText(Util.readableTransferRate(getContext(), conn.inBits)); + upload.setText(Util.readableTransferRate(getContext(), conn.outBits)); } else { download.setText(Util.readableTransferRate(getContext(), 0));