diff options
Diffstat (limited to 'src/net')
6 files changed, 66 insertions, 19 deletions
diff --git a/src/net/jesterpm/podcastuploader/config/Config.java b/src/net/jesterpm/podcastuploader/config/Config.java index b3d6954..b9260e0 100644 --- a/src/net/jesterpm/podcastuploader/config/Config.java +++ b/src/net/jesterpm/podcastuploader/config/Config.java @@ -130,4 +130,8 @@ public class Config {      public void put(final String key, final String obj) {          mConfig.put(key, obj);      } + +    public Map<String, String> getMap() { +        return mConfig; +    }  } diff --git a/src/net/jesterpm/podcastuploader/control/PublishPodcastTask.java b/src/net/jesterpm/podcastuploader/control/PublishPodcastTask.java new file mode 100644 index 0000000..fdee900 --- /dev/null +++ b/src/net/jesterpm/podcastuploader/control/PublishPodcastTask.java @@ -0,0 +1,25 @@ +/* + * Copyright 2012 Jesse Morgan + */ + +package net.jesterpm.podcastuploader.control; + +import java.util.Map; + +import net.jesterpm.podcastuploader.config.Config; + +/** + * Task to publish podcast meta-data to a server. + * + * @author Jesse Morgan <jesse@jesterpm.net> + */ +class PublishPodcastTask implements Runnable { +    public PublishPodcastTask(final Config appConfig, final Map<String, String> metadata) { + +    } + +    @Override +    public void run() { + +    } +} diff --git a/src/net/jesterpm/podcastuploader/control/S3UploadTask.java b/src/net/jesterpm/podcastuploader/control/S3UploadTask.java index b282c52..2d41426 100644 --- a/src/net/jesterpm/podcastuploader/control/S3UploadTask.java +++ b/src/net/jesterpm/podcastuploader/control/S3UploadTask.java @@ -4,6 +4,9 @@  package net.jesterpm.podcastuploader.control; +import com.amazonaws.auth.BasicAWSCredentials; +import com.amazonaws.services.s3.AmazonS3Client;  +  import java.util.concurrent.ThreadPoolExecutor;  import net.jesterpm.podcastuploader.config.Config; @@ -13,7 +16,7 @@ import net.jesterpm.podcastuploader.config.Config;   *   * @author Jesse Morgan <jesse@jesterpm.net>   */ -public class S3UploadTask extends ObserableTask implements Runable { +public class S3UploadTask extends ObservableTask implements Runnable {      private final ThreadPoolExecutor mExecutor;      private final AmazonS3Client mClient; @@ -71,6 +74,13 @@ public class S3UploadTask extends ObserableTask implements Runable {       */      @Override      public float getProgress() { -        return (float) mCurrentChunk / mTotalChunks. +        return (float) mCurrentChunk / mTotalChunks; +    } + +    /** +     * @return The S3 key this object uploads to. +     */ +    public String getS3Key() { +        return mS3Key;      }  } diff --git a/src/net/jesterpm/podcastuploader/control/UploadTask.java b/src/net/jesterpm/podcastuploader/control/UploadTask.java index 5c0b5ce..a201a80 100644 --- a/src/net/jesterpm/podcastuploader/control/UploadTask.java +++ b/src/net/jesterpm/podcastuploader/control/UploadTask.java @@ -7,10 +7,13 @@ package net.jesterpm.podcastuploader.control;  import java.text.DateFormat;  import java.text.SimpleDateFormat; +import java.util.concurrent.ThreadPoolExecutor;  import java.util.Date; +import java.util.HashMap; +import java.util.Map;  import net.jesterpm.podcastuploader.config.Config; -import net.jesterpm.podcastuploader.ui.ProgressWindow; +import net.jesterpm.podcastuploader.ui.ProgressInterface;  /**   *  @@ -88,7 +91,7 @@ public class UploadTask {          // Build a list of files to upload.          Map<String, S3UploadTask> files = getFilesToUpload(baseFilename); -        for (S3UploadTask task : files.getEntries()) { +        for (S3UploadTask task : files.values()) {              mExecutor.submit(task);              mProgressInterface.monitorTask(task);          } @@ -96,10 +99,10 @@ public class UploadTask {          // Wait until all uploads complete.          // Publish the podcast metadata. -        Map<String, String> metadata = mMetadata.getMap().clone(); +        Map<String, String> metadata = new HashMap<String, String>(mMetadata.getMap()); -        for (Map.Entry<String, S3UploadTask> entry : files) { -            metadata.put(entry.getKey(), entry.getValue().getRemoteFile()); +        for (Map.Entry<String, S3UploadTask> entry : files.entrySet()) { +            metadata.put(entry.getKey(), entry.getValue().getS3Key());          }          PublishPodcastTask task = new PublishPodcastTask(mAppConfig, metadata); @@ -119,35 +122,35 @@ public class UploadTask {          if (localFile != null) {              remoteFile = basename + "-video" + fileExtension(localFile);              files.put("video", new S3UploadTask(mAppConfig, localFile,  -                        remoteFile, mExecutor); +                        remoteFile, mExecutor));          }          localFile = mMetadata.get("video_lowres");          if (localFile != null) {              remoteFile = basename + "-videolow" + fileExtension(localFile);              files.put("video_lowres", new S3UploadTask(mAppConfig, localFile, -                    remoteFile, mExecutor); +                    remoteFile, mExecutor));          }          localFile = mMetadata.get("audio");          if (localFile != null) {              remoteFile = basename + "-audio" + fileExtension(localFile);              files.put("audio", new S3UploadTask(mAppConfig, localFile, -                    remoteFile, mExecutor); +                    remoteFile, mExecutor));          }          localFile = mMetadata.get("image");          if (localFile != null) {              remoteFile = basename + "-image" + fileExtension(localFile); -            files.add("image", new S3UploadTask(mAppConfig, localFile,  -                    remoteFile, mExecutor); +            files.put("image", new S3UploadTask(mAppConfig, localFile,  +                    remoteFile, mExecutor));          }          localFile = mMetadata.get("mobileimage");          if (localFile != null) {              remoteFile = basename + "-mobileimage" + fileExtension(localFile); -            files.add("mobileimage", new S3UploadTask(mAppConfig, localFile, -                    remoteFile, mExecutor); +            files.put("mobileimage", new S3UploadTask(mAppConfig, localFile, +                    remoteFile, mExecutor));          }          return files; diff --git a/src/net/jesterpm/podcastuploader/ui/ProgressInterface.java b/src/net/jesterpm/podcastuploader/ui/ProgressInterface.java index 12aaabd..3e85667 100644 --- a/src/net/jesterpm/podcastuploader/ui/ProgressInterface.java +++ b/src/net/jesterpm/podcastuploader/ui/ProgressInterface.java @@ -7,8 +7,9 @@ package net.jesterpm.podcastuploader.ui;  import java.util.HashMap;  import java.util.Map;  import java.util.Observer; +import java.util.Observable; -import net.jesterpm.podcastuploader.control.ObserableTask; +import net.jesterpm.podcastuploader.control.ObservableTask;  /**   * ProgressInterface is an abstract based class for any interface that @@ -34,7 +35,7 @@ public abstract class ProgressInterface implements Observer {       */      public void monitorTask(final ObservableTask task) {          task.addObserver(this); -        mProgressMap.put(task, 0); +        mProgressMap.put(task, 0f);          setProgress(getProgress());      } @@ -53,7 +54,8 @@ public abstract class ProgressInterface implements Observer {       */      @Override      public void update(Observable task, Object arg) { -        mProgressMap.put(task, task.getProgress()); +        ObservableTask observableTask = (ObservableTask) task; +        mProgressMap.put(observableTask, observableTask.getProgress());          setProgress(getProgress());      } @@ -67,7 +69,7 @@ public abstract class ProgressInterface implements Observer {          }          float totalProgress = 0; -        for (float taskProgress : mProgressMap.getValues()) { +        for (float taskProgress : mProgressMap.values()) {              totalProgress += taskProgress;          } diff --git a/src/net/jesterpm/podcastuploader/ui/ProgressWindow.java b/src/net/jesterpm/podcastuploader/ui/ProgressWindow.java index 6ac6f55..01daa83 100644 --- a/src/net/jesterpm/podcastuploader/ui/ProgressWindow.java +++ b/src/net/jesterpm/podcastuploader/ui/ProgressWindow.java @@ -9,5 +9,8 @@ package net.jesterpm.podcastuploader.ui;   * @author Jesse Morgan <jesse@jesterpm.net>   */  public class ProgressWindow extends ProgressInterface { -      +    @Override +    public void setProgress(float percentComplete) { + +    }  }  | 
