diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b2aa3783..5aaddbb4 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2,7 +2,7 @@ + a:versionName="3.9.9.4" a:installLocation="auto"> diff --git a/bin/AndroidManifest.xml b/bin/AndroidManifest.xml index b2aa3783..5aaddbb4 100644 --- a/bin/AndroidManifest.xml +++ b/bin/AndroidManifest.xml @@ -2,7 +2,7 @@ + a:versionName="3.9.9.4" a:installLocation="auto"> diff --git a/bin/Subsonic.apk b/bin/Subsonic.apk index a1fcfd2d..23d9115c 100644 Binary files a/bin/Subsonic.apk and b/bin/Subsonic.apk differ diff --git a/bin/classes.dex b/bin/classes.dex index 0d0938f8..b953fa3e 100644 Binary files a/bin/classes.dex and b/bin/classes.dex differ diff --git a/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$1.class b/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$1.class index f7727b6c..6d4d0ed2 100644 Binary files a/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$1.class and b/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$1.class differ diff --git a/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$2.class b/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$2.class index 475a68aa..5f214ea4 100644 Binary files a/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$2.class and b/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$2.class differ diff --git a/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$BufferTask.class b/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$BufferTask.class index 204949e3..e15e2cbb 100644 Binary files a/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$BufferTask.class and b/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl$BufferTask.class differ diff --git a/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.class b/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.class index 5d29c944..87f730da 100644 Binary files a/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.class and b/bin/classes/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.class differ diff --git a/bin/classes/net/sourceforge/subsonic/androidapp/util/Util$2.class b/bin/classes/net/sourceforge/subsonic/androidapp/util/Util$2.class index aaa5f979..ff211f7f 100644 Binary files a/bin/classes/net/sourceforge/subsonic/androidapp/util/Util$2.class and b/bin/classes/net/sourceforge/subsonic/androidapp/util/Util$2.class differ diff --git a/bin/classes/net/sourceforge/subsonic/androidapp/util/Util$3.class b/bin/classes/net/sourceforge/subsonic/androidapp/util/Util$3.class index c188a312..635f55ab 100644 Binary files a/bin/classes/net/sourceforge/subsonic/androidapp/util/Util$3.class and b/bin/classes/net/sourceforge/subsonic/androidapp/util/Util$3.class differ diff --git a/bin/classes/net/sourceforge/subsonic/androidapp/util/Util.class b/bin/classes/net/sourceforge/subsonic/androidapp/util/Util.class index 3c7fa3e9..c152ffd2 100644 Binary files a/bin/classes/net/sourceforge/subsonic/androidapp/util/Util.class and b/bin/classes/net/sourceforge/subsonic/androidapp/util/Util.class differ diff --git a/bin/resources.ap_ b/bin/resources.ap_ index fe90e560..e29d97cc 100644 Binary files a/bin/resources.ap_ and b/bin/resources.ap_ differ diff --git a/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java b/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java index 69e85ecd..03657634 100644 --- a/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java +++ b/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java @@ -19,6 +19,7 @@ package net.sourceforge.subsonic.androidapp.service; import android.app.Notification; +import android.app.PendingIntent; import android.app.Service; import android.content.Context; import android.content.Intent; @@ -28,7 +29,9 @@ import android.os.Handler; import android.os.IBinder; import android.os.PowerManager; import android.util.Log; +import android.widget.RemoteViews; import net.sourceforge.subsonic.androidapp.R; +import net.sourceforge.subsonic.androidapp.activity.DownloadActivity; import net.sourceforge.subsonic.androidapp.audiofx.EqualizerController; import net.sourceforge.subsonic.androidapp.audiofx.VisualizerController; import net.sourceforge.subsonic.androidapp.domain.MusicDirectory; @@ -127,6 +130,10 @@ public class DownloadServiceImpl extends Service implements DownloadService { }); notification.flags |= Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT; + notification.contentView = new RemoteViews(this.getPackageName(), R.layout.notification); + Intent notificationIntent = new Intent(this, DownloadActivity.class); + notification.contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); + Util.linkButtons(this, notification.contentView, false); if (equalizerAvailable) { equalizerController = new EqualizerController(this, mediaPlayer); diff --git a/src/net/sourceforge/subsonic/androidapp/util/Util.java b/src/net/sourceforge/subsonic/androidapp/util/Util.java index b83fe84d..f6faef49 100644 --- a/src/net/sourceforge/subsonic/androidapp/util/Util.java +++ b/src/net/sourceforge/subsonic/androidapp/util/Util.java @@ -577,38 +577,31 @@ public class Util extends DownloadActivity { String text = song.getArtist(); String album = song.getAlbum(); - RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.notification); - // Set the album art. try { int size = context.getResources().getDrawable(R.drawable.unknown_album).getIntrinsicHeight(); Bitmap bitmap = FileUtil.getAlbumArtBitmap(context, song, size); if (bitmap == null) { // set default album art - contentView.setImageViewResource(R.id.notification_image, R.drawable.unknown_album); + notification.contentView.setImageViewResource(R.id.notification_image, R.drawable.unknown_album); } else { - contentView.setImageViewBitmap(R.id.notification_image, bitmap); + notification.contentView.setImageViewBitmap(R.id.notification_image, bitmap); } } catch (Exception x) { Log.w(TAG, "Failed to get notification cover art", x); - contentView.setImageViewResource(R.id.notification_image, R.drawable.unknown_album); + notification.contentView.setImageViewResource(R.id.notification_image, R.drawable.unknown_album); } // set the text for the notifications - contentView.setTextViewText(R.id.trackname, title); - contentView.setTextViewText(R.id.artist, text); - contentView.setTextViewText(R.id.album, album); + notification.contentView.setTextViewText(R.id.trackname, title); + notification.contentView.setTextViewText(R.id.artist, text); + notification.contentView.setTextViewText(R.id.album, album); if (playerState == PlayerState.PAUSED) - contentView.setImageViewResource(R.id.control_play, R.drawable.ic_appwidget_music_play); + notification.contentView.setImageViewResource(R.id.control_play, R.drawable.ic_appwidget_music_play); else if (playerState == PlayerState.STARTED) - contentView.setImageViewResource(R.id.control_play, R.drawable.ic_appwidget_music_pause); + notification.contentView.setImageViewResource(R.id.control_play, R.drawable.ic_appwidget_music_pause); - notification.contentView = contentView; - - Intent notificationIntent = new Intent(context, DownloadActivity.class); - notification.contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0); - // Send the notification and put the service in the foreground. handler.post(new Runnable() { @Override @@ -618,7 +611,6 @@ public class Util extends DownloadActivity { }); // Update widget - linkButtons(context, contentView, false); SubsonicAppWidgetProvider4x1.getInstance().notifyChange(context, downloadService, true); } @@ -787,7 +779,7 @@ public class Util extends DownloadActivity { context.sendBroadcast(intent); } - private static void linkButtons(Context context, RemoteViews views, boolean playerActive) { + public static void linkButtons(Context context, RemoteViews views, boolean playerActive) { Intent intent = new Intent(context, playerActive ? DownloadActivity.class : MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);