예제 #1
0
  private OCFile obtainNewOCFileToUpload(
      String remotePath, String localPath, String mimeType, FileDataStorageManager storageManager) {
    OCFile newFile = new OCFile(remotePath);
    newFile.setStoragePath(localPath);
    newFile.setLastSyncDateForProperties(0);
    newFile.setLastSyncDateForData(0);

    // size
    if (localPath != null && localPath.length() > 0) {
      File localFile = new File(localPath);
      newFile.setFileLength(localFile.length());
      newFile.setLastSyncDateForData(localFile.lastModified());
    } // don't worry about not assigning size, the problems with localPath
    // are checked when the UploadFileOperation instance is created

    // MIME type
    if (mimeType == null || mimeType.length() <= 0) {
      try {
        mimeType =
            MimeTypeMap.getSingleton()
                .getMimeTypeFromExtension(remotePath.substring(remotePath.lastIndexOf('.') + 1));
      } catch (IndexOutOfBoundsException e) {
        Log_OC.e(TAG, "Trying to find out MIME type of a file without extension: " + remotePath);
      }
    }
    if (mimeType == null) {
      mimeType = "application/octet-stream";
    }
    newFile.setMimetype(mimeType);

    return newFile;
  }
예제 #2
0
 private void updateOCFile(OCFile file, RemoteFile remoteFile) {
   file.setCreationTimestamp(remoteFile.getCreationTimestamp());
   file.setFileLength(remoteFile.getLength());
   file.setMimetype(remoteFile.getMimeType());
   file.setModificationTimestamp(remoteFile.getModifiedTimestamp());
   file.setModificationTimestampAtLastSyncForData(remoteFile.getModifiedTimestamp());
   // file.setEtag(remoteFile.getEtag());    // TODO Etag, where available
 }
 /**
  * Creates and populates a new {@link OCFile} object with the data read from the server.
  *
  * @param we WebDAV entry read from the server for a WebDAV resource (remote file or folder).
  * @return New OCFile instance representing the remote resource described by we.
  */
 private OCFile fillOCFile(WebdavEntry we) {
   OCFile file = new OCFile(we.decodedPath());
   file.setCreationTimestamp(we.createTimestamp());
   file.setFileLength(we.contentLength());
   file.setMimetype(we.contentType());
   file.setModificationTimestamp(we.modifiedTimesamp());
   file.setLastSyncDate(mCurrentSyncTime);
   return file;
 }
예제 #4
0
  public void onDismiss(EditNameFragment dialog) {
    if (dialog instanceof EditNameFragment) {
      if (((EditNameFragment) dialog).getResult()) {
        String newFilename = ((EditNameFragment) dialog).getNewFilename();
        Log.d(TAG, "name edit dialog dismissed with new name " + newFilename);
        if (!newFilename.equals(mFile.getFileName())) {
          FileDataStorageManager fdsm =
              new FileDataStorageManager(mAccount, getActivity().getContentResolver());
          if (fdsm.getFileById(mFile.getFileId()) != null) {
            OCFile newFile =
                new OCFile(fdsm.getFileById(mFile.getParentId()).getRemotePath() + newFilename);
            newFile.setCreationTimestamp(mFile.getCreationTimestamp());
            newFile.setFileId(mFile.getFileId());
            newFile.setFileLength(mFile.getFileLength());
            newFile.setKeepInSync(mFile.keepInSync());
            newFile.setLastSyncDate(mFile.getLastSyncDate());
            newFile.setMimetype(mFile.getMimetype());
            newFile.setModificationTimestamp(mFile.getModificationTimestamp());
            newFile.setParentId(mFile.getParentId());
            boolean localRenameFails = false;
            if (mFile.isDown()) {
              File f = new File(mFile.getStoragePath());
              Log.e(TAG, f.getAbsolutePath());
              localRenameFails =
                  !(f.renameTo(new File(f.getParent() + File.separator + newFilename)));
              Log.e(TAG, f.getParent() + File.separator + newFilename);
              newFile.setStoragePath(f.getParent() + File.separator + newFilename);
            }

            if (localRenameFails) {
              Toast msg =
                  Toast.makeText(getActivity(), R.string.rename_local_fail_msg, Toast.LENGTH_LONG);
              msg.show();

            } else {
              new Thread(new RenameRunnable(mFile, newFile, mAccount, new Handler())).start();
              boolean inDisplayActivity = getActivity() instanceof FileDisplayActivity;
              getActivity()
                  .showDialog(
                      (inDisplayActivity)
                          ? FileDisplayActivity.DIALOG_SHORT_WAIT
                          : FileDetailActivity.DIALOG_SHORT_WAIT);
            }
          }
        }
      }
    } else {
      Log.e(
          TAG,
          "Unknown dialog instance passed to onDismissDalog: "
              + dialog.getClass().getCanonicalName());
    }
  }