package com.openfarmanager.android.filesystem.actions.network; import com.dropbox.client2.exception.DropboxException; import com.microsoft.live.LiveOperationException; import com.openfarmanager.android.core.network.NetworkApi; import com.openfarmanager.android.filesystem.FileProxy; import com.openfarmanager.android.fragments.BaseFileSystemPanel; import com.openfarmanager.android.model.TaskStatusEnum; import com.openfarmanager.android.model.exeptions.FtpDirectoryDeleteException; import com.openfarmanager.android.model.exeptions.NetworkException; import com.yandex.disk.client.exceptions.WebdavException; import java.util.ArrayList; import java.util.List; import jcifs.smb.SmbAuthException; import static com.openfarmanager.android.model.TaskStatusEnum.*; /** * @author Vlad Namashko */ public class DeleteFromNetworkTask extends NetworkActionTask { protected List<FileProxy> mItems; public DeleteFromNetworkTask(BaseFileSystemPanel panel, List<FileProxy> items) { super(panel, new ArrayList<>()); mItems = items; } @Override protected TaskStatusEnum doInBackground(Void... voids) { NetworkApi api = getApi(); mDoneSize = mItems.size(); for (FileProxy file : mItems) { if (isCancelled()) { break; } try { api.delete(file); mDoneSize++; updateProgress(); } catch (NullPointerException e) { return ERROR_FILE_NOT_EXISTS; } catch (DropboxException e) { return createNetworkError(NetworkException.handleNetworkException(e)); } catch (LiveOperationException e) { return ERROR_DELETE_FILE; } catch (SmbAuthException e) { return createNetworkError(NetworkException.handleNetworkException(e)); } catch (WebdavException e) { return createNetworkError(NetworkException.handleNetworkException(e)); } catch (FtpDirectoryDeleteException e) { // special case return ERROR_FTP_DELETE_DIRECTORY; } catch (Exception e) { return ERROR_DELETE_FILE; } } return OK; } }