X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/491780ad1db3917aef6763fd2b0420ec9921dcdd..288c148b51b951017a3a9b333797a7e8eeede38a:/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 c2bfb5b8..6a19957b 100644 --- a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java +++ b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java @@ -1,6 +1,10 @@ -/* ownCloud Android client application +/** + * ownCloud Android client application + * + * @author Bartek Przybylski + * @author David A. Velasco * Copyright (C) 2011 Bartek Przybylski - * Copyright (C) 2012-2013 ownCloud Inc. + * Copyright (C) 2015 ownCloud Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -38,27 +42,22 @@ import com.owncloud.android.R; import com.owncloud.android.datamodel.FileDataStorageManager; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.files.FileMenuFilter; -import com.owncloud.android.files.services.FileObserverService; import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; import com.owncloud.android.lib.common.network.OnDatatransferProgressListener; +import com.owncloud.android.lib.common.utils.Log_OC; +import com.owncloud.android.services.observer.FileObserverService; 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.RemoveFileDialogFragment; -import com.owncloud.android.ui.dialog.EditNameDialog.EditNameDialogListener; +import com.owncloud.android.ui.dialog.RenameFileDialogFragment; import com.owncloud.android.utils.DisplayUtils; -import com.owncloud.android.utils.Log_OC; /** * This Fragment is used to display the details about a file. - * - * @author Bartek Przybylski - * @author David A. Velasco */ -public class FileDetailFragment extends FileFragment implements - OnClickListener, EditNameDialogListener { +public class FileDetailFragment extends FileFragment implements OnClickListener { private int mLayout; private View mView; @@ -149,8 +148,8 @@ public class FileDetailFragment extends FileFragment implements @Override public void onStop() { - super.onStop(); leaveTransferProgress(); + super.onStop(); } @@ -193,6 +192,13 @@ public class FileDetailFragment extends FileFragment implements item.setVisible(false); item.setEnabled(false); } + + // additional restriction for this fragment + item = menu.findItem(R.id.action_move); + if (item != null) { + item.setVisible(false); + item.setEnabled(false); + } } @@ -220,7 +226,8 @@ public class FileDetailFragment extends FileFragment implements return true; } case R.id.action_rename_file: { - showDialogToRenameFile(); + RenameFileDialogFragment dialog = RenameFileDialogFragment.newInstance(getFile()); + dialog.show(getFragmentManager(), FTAG_RENAME_FILE); return true; } case R.id.action_cancel_download: @@ -272,32 +279,20 @@ public class FileDetailFragment extends FileFragment implements file.setKeepInSync(cb.isChecked()); mContainerActivity.getStorageManager().saveFile(file); - /// register the OCFile instance in the observer service to monitor local updates; - /// if necessary, the file is download - Intent intent = new Intent(getActivity().getApplicationContext(), - FileObserverService.class); - intent.putExtra(FileObserverService.KEY_FILE_CMD, - (cb.isChecked()? - FileObserverService.CMD_ADD_OBSERVED_FILE: - FileObserverService.CMD_DEL_OBSERVED_FILE)); - intent.putExtra(FileObserverService.KEY_CMD_ARG_FILE, file); - intent.putExtra(FileObserverService.KEY_CMD_ARG_ACCOUNT, mAccount); - getActivity().startService(intent); + /// register the OCFile instance in the observer service to monitor local updates + Intent observedFileIntent = FileObserverService.makeObservedFileIntent( + getActivity(), + file, + mAccount, + cb.isChecked()); + getActivity().startService(observedFileIntent); + /// immediate content synchronization if (file.keepInSync()) { mContainerActivity.getFileOperationsHelper().syncFile(getFile()); } } - private void showDialogToRenameFile() { - OCFile file = getFile(); - String fileName = file.getFileName(); - 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(), FTAG_RENAME_FILE); - } - /** * Check if the fragment was created with an empty layout. An empty fragment can't show file details, must be replaced. * @@ -340,7 +335,7 @@ public class FileDetailFragment extends FileFragment implements // set file details setFilename(file.getFileName()); - setFiletype(file.getMimetype()); + setFiletype(file.getMimetype(), file.getFileName()); setFilesize(file.getFileLength()); if(ocVersionSupportsTimeCreated()){ setTimeCreated(file.getCreationTimestamp()); @@ -354,7 +349,10 @@ public class FileDetailFragment extends FileFragment implements // configure UI for depending upon local state of the file FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder(); FileUploaderBinder uploaderBinder = mContainerActivity.getFileUploaderBinder(); - if (transferring || (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, file)) || (uploaderBinder != null && uploaderBinder.isUploading(mAccount, file))) { + if (transferring || + (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, file)) || + (uploaderBinder != null && uploaderBinder.isUploading(mAccount, file)) + ) { setButtonsForTransferring(); } else if (file.isDown()) { @@ -392,8 +390,9 @@ public class FileDetailFragment extends FileFragment implements /** * Updates the MIME type in view * @param mimetype to set + * @param filename */ - private void setFiletype(String mimetype) { + private void setFiletype(String mimetype, String filename) { TextView tv = (TextView) getView().findViewById(R.id.fdType); if (tv != null) { String printableMimetype = DisplayUtils.convertMIMEtoPrettyPrint(mimetype);; @@ -401,7 +400,7 @@ public class FileDetailFragment extends FileFragment implements } ImageView iv = (ImageView) getView().findViewById(R.id.fdIcon); if (iv != null) { - iv.setImageResource(DisplayUtils.getResourceId(mimetype)); + iv.setImageResource(DisplayUtils.getFileTypeIconId(mimetype, filename)); } } @@ -454,6 +453,7 @@ public class FileDetailFragment extends FileFragment implements progressText.setVisibility(View.VISIBLE); FileDownloaderBinder downloaderBinder = mContainerActivity.getFileDownloaderBinder(); FileUploaderBinder uploaderBinder = mContainerActivity.getFileUploaderBinder(); + //if (getFile().isDownloading()) { if (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, getFile())) { progressText.setText(R.string.downloader_download_in_progress_ticker); } else if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, getFile())) { @@ -511,15 +511,6 @@ public class FileDetailFragment extends FileFragment implements } - public void onDismiss(EditNameDialog dialog) { - if (dialog.getResult()) { - String newFilename = dialog.getNewFilename(); - Log_OC.d(TAG, "name edit dialog dismissed with new name " + newFilename); - mContainerActivity.getFileOperationsHelper().renameFile(getFile(), newFilename); - } - } - - public void listenForTransferProgress() { if (mProgressListener != null) { if (mContainerActivity.getFileDownloaderBinder() != null) { @@ -546,9 +537,7 @@ public class FileDetailFragment extends FileFragment implements /** - * Helper class responsible for updating the progress bar shown for file uploading or downloading - * - * @author David A. Velasco + * Helper class responsible for updating the progress bar shown for file uploading or downloading */ private class ProgressListener implements OnDatatransferProgressListener { int mLastPercent = 0;