Exemple #1
0
  public void uploadFiles() {
    try {
      WebdavClient wdc =
          OwnCloudClientUtils.createOwnCloudClient(mAccount, getApplicationContext());

      // create last directory in path if necessary
      if (mCreateDir) {
        wdc.createDirectory(mUploadPath);
      }

      String[] local = new String[mStreamsToUpload.size()],
          remote = new String[mStreamsToUpload.size()];

      for (int i = 0; i < mStreamsToUpload.size(); ++i) {
        Uri uri = (Uri) mStreamsToUpload.get(i);
        if (uri.getScheme().equals("content")) {
          Cursor c =
              getContentResolver()
                  .query((Uri) mStreamsToUpload.get(i), CONTENT_PROJECTION, null, null, null);

          if (!c.moveToFirst()) continue;

          final String display_name = c.getString(c.getColumnIndex(Media.DISPLAY_NAME)),
              data = c.getString(c.getColumnIndex(Media.DATA));
          local[i] = data;
          remote[i] = mUploadPath + display_name;
        } else if (uri.getScheme().equals("file")) {
          final File file =
              new File(Uri.decode(uri.toString()).replace(uri.getScheme() + "://", ""));
          local[i] = file.getAbsolutePath();
          remote[i] = mUploadPath + file.getName();
        }
      }
      Intent intent = new Intent(getApplicationContext(), FileUploader.class);
      intent.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_MULTIPLE_FILES);
      intent.putExtra(FileUploader.KEY_LOCAL_FILE, local);
      intent.putExtra(FileUploader.KEY_REMOTE_FILE, remote);
      intent.putExtra(FileUploader.KEY_ACCOUNT, mAccount);
      startService(intent);
      finish();

    } catch (SecurityException e) {
      String message =
          String.format(
              getString(R.string.uploader_error_forbidden_content), getString(R.string.app_name));
      Toast.makeText(this, message, Toast.LENGTH_LONG).show();
    }
  }