Implemented notification for Downloadservice

This commit is contained in:
daniel oeh 2012-06-15 11:54:25 +02:00
parent b5296e9f4d
commit b24daa707f
1 changed files with 28 additions and 1 deletions

View File

@ -10,9 +10,14 @@ import java.io.IOException;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import de.podfetcher.activity.DownloadActivity;
import de.podfetcher.activity.MediaplayerActivity;
import de.podfetcher.feed.*; import de.podfetcher.feed.*;
import de.podfetcher.storage.DownloadRequester; import de.podfetcher.storage.DownloadRequester;
import de.podfetcher.syndication.handler.FeedHandler; import de.podfetcher.syndication.handler.FeedHandler;
import android.R;
import android.app.PendingIntent;
import android.app.Service; import android.app.Service;
import android.app.DownloadManager; import android.app.DownloadManager;
import android.content.Intent; import android.content.Intent;
@ -21,6 +26,9 @@ import android.media.MediaPlayer;
import android.os.IBinder; import android.os.IBinder;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.support.v4.app.NotificationCompat;
import android.util.Log; import android.util.Log;
import android.os.Handler; import android.os.Handler;
import android.os.Message; import android.os.Message;
@ -35,7 +43,8 @@ public class DownloadService extends Service {
private ExecutorService syncExecutor; private ExecutorService syncExecutor;
private DownloadRequester requester; private DownloadRequester requester;
private FeedManager manager; private FeedManager manager;
private NotificationCompat.Builder notificationBuilder;
private int NOTIFICATION_ID = 2;
/** Needed to determine the duration of a media file */ /** Needed to determine the duration of a media file */
private MediaPlayer mediaplayer; private MediaPlayer mediaplayer;
@ -53,6 +62,7 @@ public class DownloadService extends Service {
manager = FeedManager.getInstance(); manager = FeedManager.getInstance();
requester = DownloadRequester.getInstance(); requester = DownloadRequester.getInstance();
mediaplayer = new MediaPlayer(); mediaplayer = new MediaPlayer();
setupNotification();
} }
@Override @Override
@ -97,6 +107,23 @@ public class DownloadService extends Service {
waiter.start(); waiter.start();
} }
private void setupNotification() {
PendingIntent pIntent = PendingIntent.getActivity(this, 0, new Intent(
this, DownloadActivity.class),
PendingIntent.FLAG_UPDATE_CURRENT);
Bitmap icon = BitmapFactory.decodeResource(null,
R.drawable.stat_notify_sync_noanim);
notificationBuilder = new NotificationCompat.Builder(this)
.setContentTitle("Downloading Podcast data")
.setContentText(requester.getNumberOfDownloads() + " Downloads left").setOngoing(true)
.setContentIntent(pIntent).setLargeIcon(icon)
.setSmallIcon(R.drawable.stat_notify_sync_noanim);
startForeground(NOTIFICATION_ID, notificationBuilder.getNotification());
Log.d(TAG, "Notification set up");
}
private BroadcastReceiver downloadReceiver = new BroadcastReceiver() { private BroadcastReceiver downloadReceiver = new BroadcastReceiver() {
@Override @Override
public void onReceive(Context context, Intent intent) { public void onReceive(Context context, Intent intent) {