X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/c70f3333589bc582613f82e8790d8f17078cb3ce..bcc972d63d3ed1d76b51a8a03a27e809983dc756:/src/com/owncloud/android/ui/fragment/FileDetailFragment.java diff --git a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java index 4c3bf677..e024bc67 100644 --- a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java +++ b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java @@ -30,7 +30,6 @@ import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.os.Handler; -import android.support.v4.app.FragmentTransaction; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; @@ -44,18 +43,18 @@ import android.widget.Toast; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuInflater; import com.actionbarsherlock.view.MenuItem; -import com.owncloud.android.DisplayUtils; -import com.owncloud.android.Log_OC; +import com.owncloud.android.R; import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.services.FileObserverService; import com.owncloud.android.files.services.FileUploader; import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; -import com.owncloud.android.operations.OnRemoteOperationListener; -import com.owncloud.android.operations.RemoteOperation; -import com.owncloud.android.operations.RemoteOperationResult; -import com.owncloud.android.operations.RemoteOperationResult.ResultCode; +import com.owncloud.android.oc_framework.network.webdav.OnDatatransferProgressListener; +import com.owncloud.android.oc_framework.operations.OnRemoteOperationListener; +import com.owncloud.android.oc_framework.operations.RemoteOperation; +import com.owncloud.android.oc_framework.operations.RemoteOperationResult; +import com.owncloud.android.oc_framework.operations.RemoteOperationResult.ResultCode; import com.owncloud.android.operations.RemoveFileOperation; import com.owncloud.android.operations.RenameFileOperation; import com.owncloud.android.operations.SynchronizeFileOperation; @@ -64,10 +63,10 @@ import com.owncloud.android.ui.activity.FileActivity; import com.owncloud.android.ui.activity.FileDisplayActivity; import com.owncloud.android.ui.dialog.EditNameDialog; import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener; +import com.owncloud.android.ui.preview.PreviewImageFragment; +import com.owncloud.android.utils.DisplayUtils; +import com.owncloud.android.utils.Log_OC; -import com.owncloud.android.R; - -import eu.alefzero.webdav.OnDatatransferProgressListener; /** * This Fragment is used to display the details about a file. @@ -208,7 +207,7 @@ public class FileDetailFragment extends FileFragment implements public void onResume() { super.onResume(); mUploadFinishReceiver = new UploadFinishReceiver(); - IntentFilter filter = new IntentFilter(FileUploader.UPLOAD_FINISH_MESSAGE); + IntentFilter filter = new IntentFilter(FileUploader.getUploadFinishMessage()); getActivity().registerReceiver(mUploadFinishReceiver, filter); } @@ -417,7 +416,7 @@ public class FileDetailFragment extends FileFragment implements private void renameFile() { OCFile file = getFile(); String fileName = file.getFileName(); - int extensionStart = file.isDirectory() ? -1 : fileName.lastIndexOf("."); + int extensionStart = file.isFolder() ? -1 : fileName.lastIndexOf("."); int selectionEnd = (extensionStart >= 0) ? extensionStart : fileName.length(); EditNameDialog dialog = EditNameDialog.newInstance(getString(R.string.rename_dialog_title), fileName, 0, selectionEnd, this); dialog.show(getFragmentManager(), "nameeditdialog"); @@ -448,12 +447,11 @@ public class FileDetailFragment extends FileFragment implements } } else { - mLastRemoteOperation = new SynchronizeFileOperation(file, null, mStorageManager, mAccount, true, false, getActivity()); + mLastRemoteOperation = new SynchronizeFileOperation(file, null, mStorageManager, mAccount, true, getActivity()); mLastRemoteOperation.execute(mAccount, getSherlockActivity(), this, mHandler, getSherlockActivity()); // update ui - boolean inDisplayActivity = getActivity() instanceof FileDisplayActivity; - getActivity().showDialog(FileDisplayActivity.DIALOG_SHORT_WAIT); + ((FileDisplayActivity) getActivity()).showLoadingDialog(); } } @@ -467,21 +465,18 @@ public class FileDetailFragment extends FileFragment implements true, mStorageManager); mLastRemoteOperation.execute(mAccount, getSherlockActivity(), this, mHandler, getSherlockActivity()); - - boolean inDisplayActivity = getActivity() instanceof FileDisplayActivity; - getActivity().showDialog(FileDisplayActivity.DIALOG_SHORT_WAIT); + + ((FileDisplayActivity) getActivity()).showLoadingDialog(); } } } @Override public void onNeutral(String callerTag) { - File f = null; OCFile file = getFile(); - if (file.isDown() && (f = new File(file.getStoragePath())).exists()) { - f.delete(); + mStorageManager.removeFile(file, false, true); // TODO perform in background task / new thread + if (file.getStoragePath() != null) { file.setStoragePath(null); - mStorageManager.saveFile(file); updateFileDetails(file, mAccount); } } @@ -745,7 +740,13 @@ public class FileDetailFragment extends FileFragment implements msg.show(); } getSherlockActivity().removeStickyBroadcast(intent); // not the best place to do this; a small refactorization of BroadcastReceivers should be done + updateFileDetails(false, false); // it updates the buttons; must be called although !uploadWasFine; interrupted uploads still leave an incomplete file in the server + + // Force the preview if the file is an image + if (uploadWasFine && PreviewImageFragment.canBePreviewed(getFile())) { + ((FileDisplayActivity) mContainerActivity).startImagePreview(getFile()); + } } } } @@ -761,8 +762,7 @@ public class FileDetailFragment extends FileFragment implements newFilename, new FileDataStorageManager(mAccount, getActivity().getContentResolver())); mLastRemoteOperation.execute(mAccount, getSherlockActivity(), this, mHandler, getSherlockActivity()); - boolean inDisplayActivity = getActivity() instanceof FileDisplayActivity; - getActivity().showDialog(FileDisplayActivity.DIALOG_SHORT_WAIT); + ((FileDisplayActivity) getActivity()).showLoadingDialog(); } } @@ -787,8 +787,7 @@ public class FileDetailFragment extends FileFragment implements private void onRemoveFileOperationFinish(RemoveFileOperation operation, RemoteOperationResult result) { - getActivity().dismissDialog(FileDisplayActivity.DIALOG_SHORT_WAIT); - + ((FileDisplayActivity) getActivity()).dismissLoadingDialog(); if (result.isSuccess()) { Toast msg = Toast.makeText(getActivity().getApplicationContext(), R.string.remove_success_msg, Toast.LENGTH_LONG); msg.show(); @@ -804,7 +803,7 @@ public class FileDetailFragment extends FileFragment implements } private void onRenameFileOperationFinish(RenameFileOperation operation, RemoteOperationResult result) { - getActivity().dismissDialog(FileDisplayActivity.DIALOG_SHORT_WAIT); + ((FileDisplayActivity) getActivity()).dismissLoadingDialog(); if (result.isSuccess()) { updateFileDetails(((RenameFileOperation)operation).getFile(), mAccount); @@ -815,6 +814,9 @@ public class FileDetailFragment extends FileFragment implements Toast msg = Toast.makeText(getActivity(), R.string.rename_local_fail_msg, Toast.LENGTH_LONG); msg.show(); // TODO throw again the new rename dialog + } if (result.getCode().equals(ResultCode.INVALID_CHARACTER_IN_NAME)) { + Toast msg = Toast.makeText(getActivity(), R.string.filename_forbidden_characters, Toast.LENGTH_LONG); + msg.show(); } else { Toast msg = Toast.makeText(getActivity(), R.string.rename_server_fail_msg, Toast.LENGTH_LONG); msg.show(); @@ -826,7 +828,7 @@ public class FileDetailFragment extends FileFragment implements } private void onSynchronizeFileOperationFinish(SynchronizeFileOperation operation, RemoteOperationResult result) { - getActivity().dismissDialog(FileDisplayActivity.DIALOG_SHORT_WAIT); + ((FileDisplayActivity) getActivity()).dismissLoadingDialog(); OCFile file = getFile(); if (!result.isSuccess()) { if (result.getCode() == ResultCode.SYNC_CONFLICT) { @@ -835,10 +837,7 @@ public class FileDetailFragment extends FileFragment implements i.putExtra(ConflictsResolveActivity.EXTRA_ACCOUNT, mAccount); startActivity(i); - } else { - Toast msg = Toast.makeText(getActivity(), R.string.sync_file_fail_msg, Toast.LENGTH_LONG); - msg.show(); - } + } if (file.isDown()) { setButtonsForDown();