Fixed Download Process and filename generation

This commit is contained in:
Daniel Oeh 2012-04-11 16:39:16 +02:00
parent 738585aa61
commit 55418a92f2
4 changed files with 27 additions and 10 deletions

View File

@ -105,7 +105,7 @@ public class DownloadService extends Service {
private void handleCompletedFeedDownload(Context context, Feed feed) {
Log.d(this.toString(), "Handling completed Feed Download");
// Get Feed Information
feed.setFile_url((new File(requester.getFeedfilePath(context), requester.getFeedfileName(feed.getId()))).toString());
//feed.setFile_url((new File(requester.getFeedfilePath(context), requester.getFeedfileName(feed.getId()))).toString());
syncExecutor.execute(new FeedSyncThread(feed, this, requester));
@ -115,7 +115,7 @@ public class DownloadService extends Service {
private void handleCompletedImageDownload(Context context, FeedImage image) {
Log.d(this.toString(), "Handling completed Image Download");
requester.removeFeedImage(image);
image.setFile_url(requester.getImagefilePath(context) + requester.getImagefileName(image.getId()));
//image.setFile_url(requester.getImagefilePath(context) + requester.getImagefileName(image.getId()));
manager.setFeedImage(this, image);
}

View File

@ -59,7 +59,7 @@ public class FeedSyncService extends Service {
/** Extracts a Feed object from the given Intent */
private Feed handleIntent(Intent intent) {
Feed feed = manager.getFeed(intent.getLongExtra(DownloadRequester.EXTRA_ITEM_ID, -1));
feed.setFile_url(requester.getFeedfilePath(this) + requester.getFeedfileName(feed.getId()));
//feed.setFile_url(requester.getFeedfilePath(this) + requester.getFeedfileName(feed.getId()));
return feed;
}

View File

@ -5,6 +5,7 @@ import java.io.File;
import de.podfetcher.feed.*;
import de.podfetcher.service.DownloadService;
import de.podfetcher.util.NumberGenerator;
import android.util.Log;
import android.app.DownloadManager;
@ -57,17 +58,18 @@ public class DownloadRequester {
// TODO Set Allowed Network Types
DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
context.startService(new Intent(context, DownloadService.class));
item.setDownloadId(manager.enqueue(request));
item.setDownloadId(manager.enqueue(request));
item.setFile_url(dest.toString());
}
public void downloadFeed(Context context, Feed feed) {
download(context, feeds, feed,
new File(getFeedfilePath(context), getFeedfileName(feeds.size())),
new File(getFeedfilePath(context), getFeedfileName(feed)),
true);
}
public void downloadImage(Context context, FeedImage image) {
download(context, images, image,
new File(getImagefilePath(context), getImagefileName(images.size())),
new File(getImagefilePath(context), getImagefileName(image)),
true);
}
@ -134,15 +136,15 @@ public class DownloadRequester {
return context.getExternalFilesDir(FEED_DOWNLOADPATH).toString() + "/";
}
public String getFeedfileName(long id) {
return "feed-" + id;
public String getFeedfileName(Feed feed) {
return "feed-" + NumberGenerator.generateLong(feed.getDownload_url());
}
public String getImagefilePath(Context context) {
return context.getExternalFilesDir(IMAGE_DOWNLOADPATH).toString() + "/";
}
public String getImagefileName(long id) {
return "image-" + id;
public String getImagefileName(FeedImage image) {
return "image-" + NumberGenerator.generateLong(image.getDownload_url());
}
}

View File

@ -0,0 +1,15 @@
package de.podfetcher.util;
import java.util.Random;
import android.util.Log;
/** Utility class for creating large random numbers */
public class NumberGenerator {
private static final String TAG = "NumberGenerator";
public static long generateLong(String strSeed) {
long seed = (long) strSeed.hashCode();
Log.d(TAG, "Taking " + seed + " as seed.");
return new Random(seed).nextLong();
}
}