/** Update all active widget instances by pushing changes */ public void performUpdate(final MusicPlaybackService service, final int[] appWidgetIds) { final RemoteViews appWidgetView = new RemoteViews(service.getPackageName(), R.layout.app_widget_large_alternate); final CharSequence trackName = service.getTrackName(); final CharSequence artistName = service.getArtistName(); final CharSequence albumName = service.getAlbumName(); final Bitmap bitmap = service.getAlbumArt(); // Set the titles and artwork appWidgetView.setTextViewText(R.id.app_widget_large_alternate_line_one, trackName); appWidgetView.setTextViewText(R.id.app_widget_large_alternate_line_two, artistName); appWidgetView.setTextViewText(R.id.app_widget_large_alternate_line_three, albumName); appWidgetView.setImageViewBitmap(R.id.app_widget_large_alternate_image, bitmap); // Set correct drawable for pause state final boolean isPlaying = service.isPlaying(); if (isPlaying) { appWidgetView.setImageViewResource( R.id.app_widget_large_alternate_play, R.drawable.btn_playback_pause); if (ApolloUtils.hasJellyBean()) { appWidgetView.setContentDescription( R.id.app_widget_large_alternate_play, service.getString(R.string.accessibility_pause)); } } else { appWidgetView.setImageViewResource( R.id.app_widget_large_alternate_play, R.drawable.btn_playback_play); if (ApolloUtils.hasJellyBean()) { appWidgetView.setContentDescription( R.id.app_widget_large_alternate_play, service.getString(R.string.accessibility_play)); } } // Set the correct drawable for the repeat state switch (service.getRepeatMode()) { case MusicPlaybackService.REPEAT_ALL: appWidgetView.setImageViewResource( R.id.app_widget_large_alternate_repeat, R.drawable.btn_playback_repeat_all); break; case MusicPlaybackService.REPEAT_CURRENT: appWidgetView.setImageViewResource( R.id.app_widget_large_alternate_repeat, R.drawable.btn_playback_repeat_one); break; default: appWidgetView.setImageViewResource( R.id.app_widget_large_alternate_repeat, R.drawable.btn_playback_repeat); break; } // Set the correct drawable for the shuffle state switch (service.getShuffleMode()) { case MusicPlaybackService.SHUFFLE_NONE: appWidgetView.setImageViewResource( R.id.app_widget_large_alternate_shuffle, R.drawable.btn_playback_shuffle); break; case MusicPlaybackService.SHUFFLE_AUTO: appWidgetView.setImageViewResource( R.id.app_widget_large_alternate_shuffle, R.drawable.btn_playback_shuffle_all); break; default: appWidgetView.setImageViewResource( R.id.app_widget_large_alternate_shuffle, R.drawable.btn_playback_shuffle_all); break; } // Link actions buttons to intents linkButtons(service, appWidgetView, isPlaying); // Update the app-widget pushUpdate(service, appWidgetIds, appWidgetView); // Build the notification if (ApolloUtils.isApplicationSentToBackground(service)) { service.mBuildNotification = true; } }