title: Upload progress listener not fired (Google drive API)
body: <p>I want to show progress by percent of an uploading file using Google drive API.</p>
  
  <p>My menthod has successful upload a file before but It can't see upload progress.  </p>
  
  <p>I've seen and added <a href="https://stackoverflow.com/questions/13580109/check-progress-for-upload-download-google-drive-api-for-android-or-java">this FileUploadProgressListener</a> but <code>mediaHttpUploader.getProgress()</code> show only 0.0 (start of progress) and 1.0 (when progress finished). I can't get percent of progress in time.   </p>
  
  <p>How to make It work?  </p>
  
  <p>Here is my Upload code:</p>
  
  <pre><code>public void UploadFile(final DFile uploadFile) {
      if (!isLoggedIn()) {
          OnUploadGoogleChecked(FALSE, "Not logged in");
          return;
      }
      AsyncTask&lt;Void, Long, String&gt; task = new AsyncTask&lt;Void, Long, String&gt;() {
          java.io.File fileContent;
          FileContent mediaContent;
          com.google.api.services.drive.model.File body;
          com.google.api.services.drive.model.File file;
          private ProgressDialog mDialog;
          long mFileLen;
  
          @Override
          protected void onPreExecute() {
              // TODO Auto-generated method stub
              super.onPreExecute();
              mDialog = new ProgressDialog(act);
              mDialog.setMax(100);
              mDialog.setMessage("Uploading ");
              mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
              mDialog.setProgress(0);
              mDialog.setButton("Cancel", new OnClickListener() {
  
                  @Override
                  public void onClick(DialogInterface arg0, int arg1) {
                      // TODO Auto-generated method stub
  
                  }
              });
              mDialog.show();
          }
  
          class FileUploadProgressListener implements MediaHttpUploaderProgressListener {
  
              @Override
              public void progressChanged(MediaHttpUploader uploader) throws IOException {
                  Log.d("Dolphin got percent", String.valueOf(uploader.getProgress()));
                  switch (uploader.getUploadState()) {
                  case INITIATION_STARTED:
                      System.out.println("Initiation Started");
                      break;
                  case INITIATION_COMPLETE:
                      System.out.println("Initiation Completed");
                      break;
                  case MEDIA_IN_PROGRESS:
                      System.out.println("Upload in progress");
                      System.out.println("Upload percentage: " + uploader.getProgress());
                      break;
                  case MEDIA_COMPLETE:
                      System.out.println("Upload Completed!");
                      break;
                  case NOT_STARTED:
                      System.out.println("Upload Not Started!");
                      break;
                  }
              }
          }
  
          @Override
          protected String doInBackground(Void... arg0) {
              try {
  
                  java.io.File UPLOAD_FILE = new java.io.File(uploadFile.getNameAndDir());
                  // File's metadata.
                  fileContent = new java.io.File(uploadFile.getNameAndDir());
                  mFileLen = fileContent.length();
  
                  InputStreamContent mediaContent2 = new InputStreamContent("image/jpeg", new BufferedInputStream(new FileInputStream(UPLOAD_FILE)));
                  mediaContent2.setLength(UPLOAD_FILE.length());
                  body = new com.google.api.services.drive.model.File();
                  body.setTitle(fileContent.getName());
                  body.setMimeType("image/jpeg");
                  String parentId = null;
                  body.setParents(Arrays.asList(new ParentReference().setId(uploadFile.getFileHostFolderId())));
  
  
                  Drive.Files.Insert mInsert = service.files().insert(body, mediaContent2);
                  MediaHttpUploader uploader = mInsert.getMediaHttpUploader();
                  uploader.setDirectUploadEnabled(true);
                  uploader.setProgressListener(new FileUploadProgressListener());
                  file = mInsert.execute();
                  if (file != null) {
  
                  }
  
              } catch (UserRecoverableAuthIOException e) {
  
                  Log.d("Dolphin got error", "not login " + e);
              } catch (IOException e) {
                  e.printStackTrace();
              }
              return null;
          }
  
  
          protected void onPostExecute(String result) {
              mDialog.dismiss();
              OnUploadGoogleChecked(TRUE, "Upload complete");
          };
      };
      task.execute();
  }
  </code></pre>