mirror of
https://github.com/nextcloud/android.git
synced 2024-11-23 21:55:48 +03:00
remove local copy
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
This commit is contained in:
parent
075b0f52b8
commit
74b832c958
4 changed files with 39 additions and 13 deletions
|
@ -95,7 +95,7 @@ implements ConfirmationDialogFragmentListener {
|
|||
if (storageManager.getFileById(mTargetFile.getFileId()) != null) {
|
||||
ArrayList<OCFile> list = new ArrayList<>();
|
||||
list.add(mTargetFile);
|
||||
cg.getFileOperationsHelper().removeFiles(list, false);
|
||||
cg.getFileOperationsHelper().removeFiles(list, false, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -107,7 +107,7 @@ implements ConfirmationDialogFragmentListener {
|
|||
ComponentsGetter cg = (ComponentsGetter)getActivity();
|
||||
ArrayList<OCFile> list = new ArrayList<>();
|
||||
list.add(mTargetFile);
|
||||
cg.getFileOperationsHelper().removeFiles(list, true);
|
||||
cg.getFileOperationsHelper().removeFiles(list, true, false);
|
||||
|
||||
FileDataStorageManager storageManager = cg.getStorageManager();
|
||||
|
||||
|
|
|
@ -141,7 +141,7 @@ implements ConfirmationDialogFragmentListener {
|
|||
@Override
|
||||
public void onConfirmation(String callerTag) {
|
||||
ComponentsGetter cg = (ComponentsGetter) getActivity();
|
||||
cg.getFileOperationsHelper().removeFiles(mTargetFiles, false);
|
||||
cg.getFileOperationsHelper().removeFiles(mTargetFiles, false, false);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -150,7 +150,7 @@ implements ConfirmationDialogFragmentListener {
|
|||
@Override
|
||||
public void onCancel(String callerTag) {
|
||||
ComponentsGetter cg = (ComponentsGetter) getActivity();
|
||||
cg.getFileOperationsHelper().removeFiles(mTargetFiles, true);
|
||||
cg.getFileOperationsHelper().removeFiles(mTargetFiles, true, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -60,14 +60,17 @@ import com.owncloud.android.lib.resources.files.ReadFileVersionsOperation;
|
|||
import com.owncloud.android.lib.resources.status.OCCapability;
|
||||
import com.owncloud.android.lib.resources.status.OwnCloudVersion;
|
||||
import com.owncloud.android.operations.RestoreFileVersionOperation;
|
||||
import com.owncloud.android.ui.activity.ComponentsGetter;
|
||||
import com.owncloud.android.ui.activity.FileActivity;
|
||||
import com.owncloud.android.ui.adapter.ActivityAndVersionListAdapter;
|
||||
import com.owncloud.android.ui.helpers.FileOperationsHelper;
|
||||
import com.owncloud.android.ui.interfaces.ActivityListInterface;
|
||||
import com.owncloud.android.ui.interfaces.VersionListInterface;
|
||||
import com.owncloud.android.utils.ThemeUtils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindString;
|
||||
import butterknife.BindView;
|
||||
|
@ -121,6 +124,8 @@ public class FileDetailActivitiesFragment extends Fragment implements ActivityLi
|
|||
public String noResultsMessage;
|
||||
private boolean restoreFileVersionSupported;
|
||||
private String userId;
|
||||
private FileOperationsHelper operationsHelper;
|
||||
private FileDataStorageManager storageManager;
|
||||
|
||||
public static FileDetailActivitiesFragment newInstance(OCFile file, Account account) {
|
||||
FileDetailActivitiesFragment fragment = new FileDetailActivitiesFragment();
|
||||
|
@ -189,7 +194,8 @@ public class FileDetailActivitiesFragment extends Fragment implements ActivityLi
|
|||
}
|
||||
|
||||
private void setupView() {
|
||||
FileDataStorageManager storageManager = new FileDataStorageManager(account, getActivity().getContentResolver());
|
||||
storageManager = new FileDataStorageManager(account, getActivity().getContentResolver());
|
||||
operationsHelper = ((ComponentsGetter) getActivity()).getFileOperationsHelper();
|
||||
|
||||
OCCapability capability = storageManager.getCapability(account.name);
|
||||
OwnCloudVersion serverVersion = AccountUtils.getServerVersion(account);
|
||||
|
@ -388,22 +394,31 @@ public class FileDetailActivitiesFragment extends Fragment implements ActivityLi
|
|||
|
||||
@Override
|
||||
public void onRestoreClicked(FileVersion fileVersion, VersionListInterface.Callback callback) {
|
||||
new RestoreFileVersionTask(fileVersion, userId, ownCloudClient, callback).execute();
|
||||
new RestoreFileVersionTask(fileVersion, userId, ownCloudClient, storageManager, operationsHelper, file,
|
||||
callback).execute();
|
||||
}
|
||||
|
||||
// TODO extract according to MVP, will be in following PR
|
||||
private static class RestoreFileVersionTask extends AsyncTask<Void, Void, Boolean> {
|
||||
|
||||
private FileVersion file;
|
||||
private FileVersion fileVersion;
|
||||
private String userId;
|
||||
private OwnCloudClient client;
|
||||
private FileOperationsHelper operationsHelper;
|
||||
private FileDataStorageManager storageManager;
|
||||
private OCFile ocFile;
|
||||
private VersionListInterface.Callback callback;
|
||||
|
||||
private RestoreFileVersionTask(FileVersion file, String userId, OwnCloudClient client,
|
||||
private RestoreFileVersionTask(FileVersion fileVersion, String userId, OwnCloudClient client,
|
||||
FileDataStorageManager storageManager, FileOperationsHelper operationsHelper,
|
||||
OCFile ocFile,
|
||||
VersionListInterface.Callback callback) {
|
||||
this.file = file;
|
||||
this.fileVersion = fileVersion;
|
||||
this.userId = userId;
|
||||
this.client = client;
|
||||
this.storageManager = storageManager;
|
||||
this.operationsHelper = operationsHelper;
|
||||
this.ocFile = ocFile;
|
||||
this.callback = callback;
|
||||
}
|
||||
|
||||
|
@ -411,10 +426,18 @@ public class FileDetailActivitiesFragment extends Fragment implements ActivityLi
|
|||
protected Boolean doInBackground(Void... voids) {
|
||||
|
||||
RestoreFileVersionOperation restoreFileVersionOperation = new RestoreFileVersionOperation(
|
||||
file.getRemoteId(), file.getFileName(), userId);
|
||||
fileVersion.getRemoteId(), fileVersion.getFileName(), userId);
|
||||
|
||||
RemoteOperationResult result = restoreFileVersionOperation.execute(client);
|
||||
|
||||
if (result.isSuccess()) {
|
||||
if (ocFile.isDown()) {
|
||||
List<OCFile> list = new ArrayList<>();
|
||||
list.add(ocFile);
|
||||
operationsHelper.removeFiles(list, true, true);
|
||||
}
|
||||
}
|
||||
|
||||
return result.isSuccess();
|
||||
}
|
||||
|
||||
|
@ -423,7 +446,7 @@ public class FileDetailActivitiesFragment extends Fragment implements ActivityLi
|
|||
super.onPostExecute(success);
|
||||
|
||||
if (success) {
|
||||
callback.onSuccess(file);
|
||||
callback.onSuccess(fileVersion);
|
||||
} else {
|
||||
callback.onError("error");
|
||||
|
||||
|
|
|
@ -836,8 +836,9 @@ public class FileOperationsHelper {
|
|||
* @param files Files to delete
|
||||
* @param onlyLocalCopy When 'true' only local copy of the files is removed; otherwise files are also deleted
|
||||
* in the server.
|
||||
* @param inBackground When 'true', do not show any loading dialog
|
||||
*/
|
||||
public void removeFiles(Collection<OCFile> files, boolean onlyLocalCopy) {
|
||||
public void removeFiles(Collection<OCFile> files, boolean onlyLocalCopy, boolean inBackground) {
|
||||
for (OCFile file : files) {
|
||||
// RemoveFile
|
||||
Intent service = new Intent(mFileActivity, OperationsService.class);
|
||||
|
@ -848,7 +849,9 @@ public class FileOperationsHelper {
|
|||
mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
|
||||
}
|
||||
|
||||
mFileActivity.showLoadingDialog(mFileActivity.getString(R.string.wait_a_moment));
|
||||
if (!inBackground) {
|
||||
mFileActivity.showLoadingDialog(mFileActivity.getString(R.string.wait_a_moment));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue