use of com.nutomic.syncthingandroid.model.CompletionInfo in project syncthing-android by syncthing.
the class EventProcessor method onEvent.
/**
* Performs the actual event handling.
*/
@Override
public void onEvent(Event event) {
switch(event.type) {
case "ConfigSaved":
if (mApi != null) {
Log.v(TAG, "Forwarding ConfigSaved event to RestApi to get the updated config.");
mApi.reloadConfig();
}
break;
case "PendingDevicesChanged":
mapNullable((List<Map<String, String>>) event.data.get("added"), this::onPendingDevicesChanged);
break;
case "FolderCompletion":
CompletionInfo completionInfo = new CompletionInfo();
completionInfo.completion = (Double) event.data.get("completion");
mApi.setCompletionInfo(// deviceId
(String) event.data.get("device"), // folderId
(String) event.data.get("folder"), completionInfo);
break;
case "PendingFoldersChanged":
mapNullable((List<Map<String, String>>) event.data.get("added"), this::onPendingFoldersChanged);
break;
case "ItemFinished":
String folder = (String) event.data.get("folder");
String folderPath = null;
for (Folder f : mApi.getFolders()) {
if (f.id.equals(folder)) {
folderPath = f.path;
}
}
File updatedFile = new File(folderPath, (String) event.data.get("item"));
if (!"delete".equals(event.data.get("action"))) {
Log.i(TAG, "Rescanned file via MediaScanner: " + updatedFile.toString());
MediaScannerConnection.scanFile(mContext, new String[] { updatedFile.getPath() }, null, null);
} else {
// https://stackoverflow.com/a/29881556/1837158
Log.i(TAG, "Deleted file from MediaStore: " + updatedFile.toString());
Uri contentUri = MediaStore.Files.getContentUri("external");
ContentResolver resolver = mContext.getContentResolver();
resolver.delete(contentUri, MediaStore.Images.ImageColumns.DATA + " LIKE ?", new String[] { updatedFile.getPath() });
}
break;
case "Ping":
// Ignored.
break;
case "DeviceConnected":
case "DeviceDisconnected":
case "DeviceDiscovered":
case "DownloadProgress":
case "FolderPaused":
case "FolderScanProgress":
case "FolderSummary":
case "ItemStarted":
case "LocalIndexUpdated":
case "LoginAttempt":
case "RemoteDownloadProgress":
case "RemoteIndexUpdated":
case "Starting":
case "StartupComplete":
case "StateChanged":
if (BuildConfig.DEBUG) {
Log.v(TAG, "Ignored event " + event.type + ", data " + event.data);
}
break;
default:
Log.v(TAG, "Unhandled event " + event.type);
}
}
Aggregations