package org.freemp.droid;
import android.app.AlertDialog;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Build;
import android.support.v7.app.NotificationCompat;
import android.view.View;
import android.widget.RemoteViews;
import org.freemp.droid.player.ServicePlayer;
/**
* Author: jorik
* Date: 07.12.13
*/
public class NotificationUtils {
public static Notification getNotification(Context context, PendingIntent pendingIntent, ClsTrack track, boolean isPlaying) {
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context);
notificationBuilder
.setAutoCancel(true)
.setSmallIcon(R.drawable.freemp)
.setContentTitle(track != null ? track.getArtist() : "")
.setContentText(track != null ? track.getTitle() : "");
Notification notification = notificationBuilder.build();
notification.flags |= Notification.FLAG_FOREGROUND_SERVICE;
notification.contentIntent = pendingIntent;
if (track != null) {
notification.contentView = getNotificationViews(track, context, isPlaying, R.layout.notification);
} else {
//notification.contentView = null;
//notification.setLatestEventInfo(context, "", "", pendingIntent);
notification = null;
}
return notification;
}
private static RemoteViews getNotificationViews(final ClsTrack track, final Context context, boolean isPlaying, int layoutId) {
final RemoteViews views = new RemoteViews(context.getPackageName(), layoutId);
views.setTextViewText(R.id.notifTitle, track.getTitle());
views.setTextViewText(R.id.notifArtist, track.getArtist());
//views.setImageViewResource(R.id.notifAlbum, R.drawable.empty_artwork);
Bitmap cover = MediaUtils.getArtworkQuick(context, track, 180, 180);
if (cover != null) {
views.setImageViewBitmap(R.id.notifAlbum, cover);
} else {
views.setImageViewResource(R.id.notifAlbum, R.drawable.empty_artwork);
}
if (Build.VERSION.SDK_INT < 11) {
views.setViewVisibility(R.id.action_prev, View.GONE);
views.setViewVisibility(R.id.action_play, View.GONE);
views.setViewVisibility(R.id.action_next, View.GONE);
}
views.setImageViewResource(R.id.action_play, isPlaying ? R.drawable.btn_pause : R.drawable.btn_play);
ComponentName componentName = new ComponentName(context, ServicePlayer.class);
Intent intentPlay = new Intent("play");
intentPlay.setComponent(componentName);
views.setOnClickPendingIntent(R.id.action_play, PendingIntent.getService(context, 0, intentPlay, 0));
Intent intentNext = new Intent("next");
intentNext.setComponent(componentName);
views.setOnClickPendingIntent(R.id.action_next, PendingIntent.getService(context, 0, intentNext, 0));
Intent intentPrevious = new Intent("prev");
intentPrevious.setComponent(componentName);
views.setOnClickPendingIntent(R.id.action_prev, PendingIntent.getService(context, 0, intentPrevious, 0));
return views;
}
public static void alert(Context context, String message) {
AlertDialog.Builder bld = new AlertDialog.Builder(context);
bld.setMessage(message);
bld.setNeutralButton("OK", null);
bld.create().show();
}
}