X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/2f2570bbc5cb22fd10f6d052277ce557f0eb7c69..b2e14a93df4370ecbc98d1c272f0216f6c2cc95d:/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 41956fdd..c2bfb5b8 100644 --- a/src/com/owncloud/android/ui/fragment/FileDetailFragment.java +++ b/src/com/owncloud/android/ui/fragment/FileDetailFragment.java @@ -44,8 +44,8 @@ import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; import com.owncloud.android.lib.common.network.OnDatatransferProgressListener; import com.owncloud.android.ui.activity.FileActivity; import com.owncloud.android.ui.activity.FileDisplayActivity; -import com.owncloud.android.ui.dialog.ConfirmationDialogFragment; 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.utils.DisplayUtils; import com.owncloud.android.utils.Log_OC; @@ -58,8 +58,7 @@ import com.owncloud.android.utils.Log_OC; * @author David A. Velasco */ public class FileDetailFragment extends FileFragment implements - OnClickListener, - ConfirmationDialogFragment.ConfirmationDialogFragmentListener, EditNameDialogListener { + OnClickListener, EditNameDialogListener { private int mLayout; private View mView; @@ -69,6 +68,7 @@ public class FileDetailFragment extends FileFragment implements private static final String TAG = FileDetailFragment.class.getSimpleName(); public static final String FTAG_CONFIRMATION = "REMOVE_CONFIRMATION_FRAGMENT"; + public static final String FTAG_RENAME_FILE = "RENAME_FILE_FRAGMENT"; /** @@ -100,7 +100,7 @@ public class FileDetailFragment extends FileFragment implements @Override - public void onCreate(Bundle savedInstanceState) { + public void onActivityCreated(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } @@ -109,7 +109,6 @@ public class FileDetailFragment extends FileFragment implements @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - //super.onCreateView(inflater, container, savedInstanceState); if (savedInstanceState != null) { setFile((OCFile)savedInstanceState.getParcelable(FileActivity.EXTRA_FILE)); @@ -168,31 +167,7 @@ public class FileDetailFragment extends FileFragment implements public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { super.onCreateOptionsMenu(menu, inflater); inflater.inflate(R.menu.file_actions_menu, menu); - - /* - TODO Maybe should stay here? It's context (fragment) specific - - MenuItem item = menu.findItem(R.id.action_see_details); - if (item != null) { - item.setVisible(false); - item.setEnabled(false); - } - - // Send file - item = menu.findItem(R.id.action_send_file); - boolean sendEnabled = getString(R.string.send_files_to_other_apps).equalsIgnoreCase("on"); - if (item != null) { - if (sendEnabled) { - item.setVisible(true); - item.setEnabled(true); - } else { - item.setVisible(false); - item.setEnabled(false); - - } - } - */ - } + } /** @@ -202,13 +177,22 @@ public class FileDetailFragment extends FileFragment implements public void onPrepareOptionsMenu (Menu menu) { super.onPrepareOptionsMenu(menu); - FileMenuFilter mf = new FileMenuFilter(); - mf.setFile(getFile()); - mf.setComponentGetter(mContainerActivity); - mf.setAccount(mContainerActivity.getStorageManager().getAccount()); - mf.setContext(getSherlockActivity()); - mf.setFragment(this); - mf.filter(menu); + if (mContainerActivity.getStorageManager() != null) { + FileMenuFilter mf = new FileMenuFilter( + getFile(), + mContainerActivity.getStorageManager().getAccount(), + mContainerActivity, + getSherlockActivity() + ); + mf.filter(menu); + } + + // additional restriction for this fragment + MenuItem item = menu.findItem(R.id.action_see_details); + if (item != null) { + item.setVisible(false); + item.setEnabled(false); + } } @@ -231,7 +215,8 @@ public class FileDetailFragment extends FileFragment implements return true; } case R.id.action_remove_file: { - showDialogToRemoveFile(); + RemoveFileDialogFragment dialog = RemoveFileDialogFragment.newInstance(getFile()); + dialog.show(getFragmentManager(), FTAG_CONFIRMATION); return true; } case R.id.action_rename_file: { @@ -255,7 +240,7 @@ public class FileDetailFragment extends FileFragment implements ((FileDisplayActivity)mContainerActivity).startDownloadForSending(getFile()); } else { - ((FileDisplayActivity)mContainerActivity).getFileOperationsHelper().sendDownloadedFile(getFile()); + mContainerActivity.getFileOperationsHelper().sendDownloadedFile(getFile()); } return true; } @@ -304,55 +289,15 @@ public class FileDetailFragment extends FileFragment implements } } - private void showDialogToRemoveFile() { - OCFile file = getFile(); - ConfirmationDialogFragment confDialog = ConfirmationDialogFragment.newInstance( - R.string.confirmation_remove_alert, - new String[]{file.getFileName()}, - file.isDown() ? R.string.confirmation_remove_remote_and_local : R.string.confirmation_remove_remote, - file.isDown() ? R.string.confirmation_remove_local : -1, - R.string.common_cancel); - confDialog.setOnConfirmationListener(this); - confDialog.show(getFragmentManager(), FTAG_CONFIRMATION); - } - - 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(), "nameeditdialog"); - } - - - @Override - public void onConfirmation(String callerTag) { - OCFile file = getFile(); - if (callerTag.equals(FTAG_CONFIRMATION)) { - if (mContainerActivity.getStorageManager().getFileById(file.getFileId()) != null) { - mContainerActivity.getFileOperationsHelper().removeFile(file, true); - } - } - } - - @Override - public void onNeutral(String callerTag) { - OCFile file = getFile(); - mContainerActivity.getStorageManager().removeFile(file, false, true); // TODO perform in background task / new thread - if (file.getStoragePath() != null) { - file.setStoragePath(null); - updateFileDetails(file, mAccount); - } + dialog.show(getFragmentManager(), FTAG_RENAME_FILE); } - @Override - public void onCancel(String callerTag) { - Log_OC.d(TAG, "REMOVAL CANCELED"); - } - - /** * Check if the fragment was created with an empty layout. An empty fragment can't show file details, must be replaced. *