From: masensio Date: Mon, 19 May 2014 08:50:26 +0000 (+0200) Subject: Merge pull request #494 from owncloud/fixed_restart_of_cancelled_download_after_chang... X-Git-Tag: oc-android-1.7.0_signed~309^2~12 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/fa97fe545febe566bf421c0a34b8b81e3918898a?hp=d4729a6a77ca98ea7c4b25e88962da2e370f8dc5 Merge pull request #494 from owncloud/fixed_restart_of_cancelled_download_after_changing_device_orientation Fixed restart of cancelled download after changing device orientation --- diff --git a/src/com/owncloud/android/files/FileOperationsHelper.java b/src/com/owncloud/android/files/FileOperationsHelper.java index 73d598cf..c473c0f0 100644 --- a/src/com/owncloud/android/files/FileOperationsHelper.java +++ b/src/com/owncloud/android/files/FileOperationsHelper.java @@ -19,6 +19,7 @@ package com.owncloud.android.files; import org.apache.http.protocol.HTTP; +import android.accounts.Account; import android.accounts.AccountManager; import android.content.Intent; import android.net.Uri; @@ -28,6 +29,8 @@ import android.widget.Toast; import com.owncloud.android.R; import com.owncloud.android.datamodel.OCFile; +import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; +import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; import com.owncloud.android.lib.common.accounts.AccountUtils.Constants; import com.owncloud.android.lib.common.network.WebdavUtils; @@ -244,6 +247,19 @@ public class FileOperationsHelper { mFileActivity.showLoadingDialog(); } + + public void cancelTransference(OCFile file) { + Account account = mFileActivity.getAccount(); + FileDownloaderBinder downloaderBinder = mFileActivity.getFileDownloaderBinder(); + FileUploaderBinder uploaderBinder = mFileActivity.getFileUploaderBinder(); + if (downloaderBinder != null && downloaderBinder.isDownloading(account, file)) { + downloaderBinder.cancel(account, file); + + } else if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) { + uploaderBinder.cancel(account, file); + } + } + public long getOpIdWaitingFor() { return mWaitingForOpId; @@ -253,4 +269,6 @@ public class FileOperationsHelper { public void setOpIdWaitingFor(long waitingForOpId) { mWaitingForOpId = waitingForOpId; } + + } diff --git a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java index 3984b080..da888599 100644 --- a/src/com/owncloud/android/ui/activity/FileDisplayActivity.java +++ b/src/com/owncloud/android/ui/activity/FileDisplayActivity.java @@ -1433,12 +1433,17 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener */ @Override public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading) { + refreshListOfFilesFragment(); FileFragment details = getSecondFragment(); if (details != null && details instanceof FileDetailFragment && file.equals(details.getFile()) ) { if (downloading || uploading) { ((FileDetailFragment)details).updateFileDetails(file, getAccount()); } else { - ((FileDetailFragment)details).updateFileDetails(false, true); + if (!file.fileExists()) { + cleanSecondFragment(); + } else { + ((FileDetailFragment)details).updateFileDetails(false, true); + } } } @@ -1576,22 +1581,16 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener public void cancelTransference(OCFile file) { - Account account = getAccount(); - if (mDownloaderBinder != null && mDownloaderBinder.isDownloading(account, file)) { - mDownloaderBinder.cancel(account, file); - refreshListOfFilesFragment(); - onTransferStateChanged(file, false, false); - - } else if (mUploaderBinder != null && mUploaderBinder.isUploading(account, file)) { - mUploaderBinder.cancel(account, file); - refreshListOfFilesFragment(); - if (!file.fileExists()) { - cleanSecondFragment(); - - } else { - onTransferStateChanged(file, false, false); - } + getFileOperationsHelper().cancelTransference(file); + if (mWaitingToPreview != null && + mWaitingToPreview.getRemotePath().equals(file.getRemotePath())) { + mWaitingToPreview = null; + } + if (mWaitingToSend != null && + mWaitingToSend.getRemotePath().equals(file.getRemotePath())) { + mWaitingToSend = null; } + onTransferStateChanged(file, false, false); } } diff --git a/src/com/owncloud/android/ui/preview/FileDownloadFragment.java b/src/com/owncloud/android/ui/preview/FileDownloadFragment.java index 65c5d872..849afaf2 100644 --- a/src/com/owncloud/android/ui/preview/FileDownloadFragment.java +++ b/src/com/owncloud/android/ui/preview/FileDownloadFragment.java @@ -187,19 +187,8 @@ public class FileDownloadFragment extends FileFragment implements OnClickListene public void onClick(View v) { switch (v.getId()) { case R.id.cancelBtn: { - FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder(); - if (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, getFile())) { - downloaderBinder.cancel(mAccount, getFile()); - getActivity().finish(); // :) - /* - leaveTransferProgress(); - if (mFile.isDown()) { - setButtonsForDown(); - } else { - setButtonsForRemote(); - } - */ - } + mContainerActivity.getFileOperationsHelper().cancelTransference(getFile()); + getActivity().finish(); break; } default: