use of com.owncloud.android.lib.resources.files.ReadFileVersionsRemoteOperation in project android by nextcloud.
the class FileDetailActivitiesFragment method fetchAndSetData.
/**
* @param lastGiven int; -1 to disable
*/
private void fetchAndSetData(int lastGiven) {
final FragmentActivity activity = getActivity();
if (activity == null) {
Log_OC.e(this, "Activity is null, aborting!");
return;
}
final User user = accountManager.getUser();
if (user.isAnonymous()) {
activity.runOnUiThread(() -> {
setEmptyContent(getString(R.string.common_error), getString(R.string.file_detail_activity_error));
});
return;
}
Thread t = new Thread(() -> {
try {
ownCloudClient = clientFactory.create(user);
nextcloudClient = clientFactory.createNextcloudClient(user);
isLoadingActivities = true;
GetActivitiesRemoteOperation getRemoteNotificationOperation;
if (lastGiven > 0) {
getRemoteNotificationOperation = new GetActivitiesRemoteOperation(file.getLocalId(), lastGiven);
} else {
getRemoteNotificationOperation = new GetActivitiesRemoteOperation(file.getLocalId());
}
Log_OC.d(TAG, "BEFORE getRemoteActivitiesOperation.execute");
RemoteOperationResult result = nextcloudClient.execute(getRemoteNotificationOperation);
ArrayList<Object> versions = null;
if (restoreFileVersionSupported) {
ReadFileVersionsRemoteOperation readFileVersionsOperation = new ReadFileVersionsRemoteOperation(file.getLocalId());
RemoteOperationResult result1 = readFileVersionsOperation.execute(ownCloudClient);
if (result1.isSuccess()) {
versions = result1.getData();
}
}
if (result.isSuccess() && result.getData() != null) {
final List<Object> data = result.getData();
final List<Object> activitiesAndVersions = (ArrayList) data.get(0);
this.lastGiven = (int) data.get(1);
if (activitiesAndVersions.isEmpty()) {
this.lastGiven = END_REACHED;
}
if (restoreFileVersionSupported && versions != null) {
activitiesAndVersions.addAll(versions);
}
activity.runOnUiThread(() -> {
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)) {
populateList(activitiesAndVersions, lastGiven == -1);
}
});
} else {
Log_OC.d(TAG, result.getLogMessage());
// show error
String logMessage = result.getLogMessage();
if (result.getHttpCode() == HttpStatus.SC_NOT_MODIFIED) {
logMessage = getString(R.string.activities_no_results_message);
}
final String finalLogMessage = logMessage;
activity.runOnUiThread(() -> {
if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)) {
setErrorContent(finalLogMessage);
isLoadingActivities = false;
}
});
}
hideRefreshLayoutLoader(activity);
} catch (ClientFactory.CreationException e) {
Log_OC.e(TAG, "Error fetching file details activities", e);
}
});
t.start();
}
Aggregations