List of usage examples for android.widget RemoteViews setViewVisibility
public void setViewVisibility(int viewId, int visibility)
From source file:android.app.Notification.java
/** * Sets the {@link #contentView} field to be a view with the standard "Latest Event" * layout.//w ww .java2 s . com * * <p>Uses the {@link #icon} and {@link #when} fields to set the icon and time fields * in the view.</p> * @param context The context for your application / activity. * @param contentTitle The title that goes in the expanded entry. * @param contentText The text that goes in the expanded entry. * @param contentIntent The intent to launch when the user clicks the expanded notification. * If this is an activity, it must include the * {@link android.content.Intent#FLAG_ACTIVITY_NEW_TASK} flag, which requires * that you take care of task management as described in the * <a href="{@docRoot}guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back * Stack</a> document. * * @deprecated Use {@link Builder} instead. */ @Deprecated public void setLatestEventInfo(Context context, CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent) { // TODO: rewrite this to use Builder RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.notification_template_base); if (this.icon != 0) { contentView.setImageViewResource(R.id.icon, this.icon); } if (priority < PRIORITY_LOW) { contentView.setInt(R.id.icon, "setBackgroundResource", R.drawable.notification_template_icon_low_bg); contentView.setInt(R.id.status_bar_latest_event_content, "setBackgroundResource", R.drawable.notification_bg_low); } if (contentTitle != null) { contentView.setTextViewText(R.id.title, contentTitle); } if (contentText != null) { contentView.setTextViewText(R.id.text, contentText); } if (this.when != 0) { contentView.setViewVisibility(R.id.time, View.VISIBLE); contentView.setLong(R.id.time, "setTime", when); } if (this.number != 0) { NumberFormat f = NumberFormat.getIntegerInstance(); contentView.setTextViewText(R.id.info, f.format(this.number)); } this.contentView = contentView; this.contentIntent = contentIntent; }
From source file:com.andrew.apolloMod.service.ApolloService.java
public RemoteViews getNotificationViewApi8() { RemoteViews views = new RemoteViews(getPackageName(), R.layout.status_bar_old); Bitmap b = getAlbumBitmap();/*from w w w . j a v a 2 s . co m*/ if (b != null) { views.setViewVisibility(R.id.icon, View.VISIBLE); views.setImageViewBitmap(R.id.icon, b); } else { views.setViewVisibility(R.id.icon, View.GONE); } if (getAudioId() < 0) { // streaming views.setTextViewText(R.id.trackname, getPath()); views.setTextViewText(R.id.artistalbum, null); } else { String artist = getArtistName(); String album = getAlbumName(); views.setTextViewText(R.id.trackname, getTrackName()); views.setTextViewText(R.id.artistalbum, artist + " - " + album); } return views; }
From source file:com.andrew.apolloMod.service.ApolloService.java
/** Return notification remote views * //from w w w.j a va 2 s. c o m * @return [views, bigViews] */ public RemoteViews[] getNotificationViews() { Bitmap b = getAlbumBitmap(); RemoteViews bigViews = new RemoteViews(getPackageName(), R.layout.status_bar_expanded); RemoteViews views = new RemoteViews(getPackageName(), R.layout.status_bar); if (b != null) { bigViews.setImageViewBitmap(R.id.status_bar_album_art, b); views.setViewVisibility(R.id.status_bar_icon, View.GONE); views.setViewVisibility(R.id.status_bar_album_art, View.VISIBLE); views.setImageViewBitmap(R.id.status_bar_album_art, b); } else { views.setViewVisibility(R.id.status_bar_icon, View.VISIBLE); views.setViewVisibility(R.id.status_bar_album_art, View.GONE); } ComponentName rec = new ComponentName(getPackageName(), MediaButtonIntentReceiver.class.getName()); Intent mediaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON); mediaButtonIntent.putExtra(CMDNOTIF, 1); mediaButtonIntent.setComponent(rec); KeyEvent mediaKey = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE); mediaButtonIntent.putExtra(Intent.EXTRA_KEY_EVENT, mediaKey); PendingIntent mediaPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1, mediaButtonIntent, PendingIntent.FLAG_UPDATE_CURRENT); views.setOnClickPendingIntent(R.id.status_bar_play, mediaPendingIntent); bigViews.setOnClickPendingIntent(R.id.status_bar_play, mediaPendingIntent); mediaButtonIntent.putExtra(CMDNOTIF, 2); mediaKey = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_NEXT); mediaButtonIntent.putExtra(Intent.EXTRA_KEY_EVENT, mediaKey); mediaPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 2, mediaButtonIntent, PendingIntent.FLAG_UPDATE_CURRENT); views.setOnClickPendingIntent(R.id.status_bar_next, mediaPendingIntent); bigViews.setOnClickPendingIntent(R.id.status_bar_next, mediaPendingIntent); mediaButtonIntent.putExtra(CMDNOTIF, 4); mediaKey = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_PREVIOUS); mediaButtonIntent.putExtra(Intent.EXTRA_KEY_EVENT, mediaKey); mediaPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 4, mediaButtonIntent, PendingIntent.FLAG_UPDATE_CURRENT); bigViews.setOnClickPendingIntent(R.id.status_bar_prev, mediaPendingIntent); mediaButtonIntent.putExtra(CMDNOTIF, 3); mediaKey = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_MEDIA_STOP); mediaButtonIntent.putExtra(Intent.EXTRA_KEY_EVENT, mediaKey); mediaPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 3, mediaButtonIntent, PendingIntent.FLAG_UPDATE_CURRENT); views.setOnClickPendingIntent(R.id.status_bar_collapse, mediaPendingIntent); bigViews.setOnClickPendingIntent(R.id.status_bar_collapse, mediaPendingIntent); views.setImageViewResource(R.id.status_bar_play, R.drawable.apollo_holo_dark_pause); bigViews.setImageViewResource(R.id.status_bar_play, R.drawable.apollo_holo_dark_pause); views.setTextViewText(R.id.status_bar_track_name, getTrackName()); bigViews.setTextViewText(R.id.status_bar_track_name, getTrackName()); views.setTextViewText(R.id.status_bar_artist_name, getArtistName()); bigViews.setTextViewText(R.id.status_bar_artist_name, getArtistName()); bigViews.setTextViewText(R.id.status_bar_album_name, getAlbumName()); return new RemoteViews[] { views, bigViews }; }
From source file:eu.power_switch.widget.provider.ReceiverWidgetProvider.java
@Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Log.d("Updating Receiver Widgets..."); // Perform this loop procedure for each App Widget that belongs to this provider for (int i = 0; i < appWidgetIds.length; i++) { int appWidgetId = appWidgetIds[i]; RemoteViews remoteViews = new RemoteViews( context.getResources().getString(eu.power_switch.shared.R.string.PACKAGE_NAME), R.layout.widget_receiver); try {//from ww w . j a v a 2 s . c om ReceiverWidget receiverWidget = DatabaseHandler.getReceiverWidget(appWidgetId); Room room = DatabaseHandler.getRoom(receiverWidget.getRoomId()); if (room != null) { Receiver receiver = DatabaseHandler.getReceiver(receiverWidget.getReceiverId()); if (receiver != null) { Apartment apartment = DatabaseHandler.getApartment(room.getApartmentId()); // update UI remoteViews.setTextViewText(R.id.textView_receiver_widget_name, apartment.getName() + ": " + room.getName() + ": " + receiver.getName()); LinkedList<Button> buttons = receiver.getButtons(); // remove all previous buttons remoteViews.removeAllViews(R.id.linearlayout_receiver_widget); // add buttons from database int buttonOffset = 0; for (Button button : buttons) { // set button action RemoteViews buttonView = new RemoteViews( context.getResources().getString(eu.power_switch.shared.R.string.PACKAGE_NAME), R.layout.widget_receiver_button_layout); SpannableString s = new SpannableString(button.getName()); s.setSpan(new StyleSpan(Typeface.BOLD), 0, button.getName().length(), 0); buttonView.setTextViewText(R.id.button_widget_universal, s); if (SmartphonePreferencesHandler.getHighlightLastActivatedButton() && receiver.getLastActivatedButtonId().equals(button.getId())) { buttonView.setTextColor(R.id.button_widget_universal, ContextCompat.getColor(context, R.color.color_light_blue_a700)); } PendingIntent intent = WidgetIntentReceiver.buildReceiverWidgetActionPendingIntent( context, apartment, room, receiver, button, appWidgetId * 15 + buttonOffset); buttonView.setOnClickPendingIntent(R.id.button_widget_universal, intent); remoteViews.addView(R.id.linearlayout_receiver_widget, buttonView); buttonOffset++; } remoteViews.setViewVisibility(R.id.linearlayout_receiver_widget, View.VISIBLE); } else { remoteViews.setTextViewText(R.id.textView_receiver_widget_name, context.getString(R.string.receiver_not_found)); remoteViews.removeAllViews(R.id.linearlayout_receiver_widget); remoteViews.setViewVisibility(R.id.linearlayout_receiver_widget, View.GONE); } } else { remoteViews.setTextViewText(R.id.textView_receiver_widget_name, context.getString(R.string.room_not_found)); remoteViews.removeAllViews(R.id.linearlayout_receiver_widget); remoteViews.setViewVisibility(R.id.linearlayout_receiver_widget, View.GONE); } } catch (Exception e) { Log.e(e); remoteViews.setTextViewText(R.id.textView_receiver_widget_name, context.getString(R.string.unknown_error)); remoteViews.removeAllViews(R.id.linearlayout_receiver_widget); remoteViews.setViewVisibility(R.id.linearlayout_receiver_widget, View.GONE); } appWidgetManager.updateAppWidget(appWidgetId, remoteViews); } super.onUpdate(context, appWidgetManager, appWidgetIds); }
From source file:com.todotxt.todotxttouch.widget.ListWidgetProvider.java
private RemoteViews buildLayout(Context context, int appWidgetId, boolean showProgress) { RemoteViews rv; // Specify the service to provide data for the collection widget. Note // that we need to // embed the appWidgetId via the data otherwise it will be ignored. final Intent intent = new Intent(context, ListWidgetService.class); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); rv = new RemoteViews(context.getPackageName(), R.layout.listwidget); rv.setRemoteAdapter(R.id.widget_list, intent); // Set the empty view to be displayed if the collection is empty. It // must be a sibling // view of the collection view. rv.setEmptyView(R.id.widget_list, R.id.empty_view); // Set click listener for the logo // Intent clickIntent = new Intent(context, LoginScreen.class); // PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, clickIntent, 0); // rv.setOnClickPendingIntent(R.id.listwidget_header, pendingIntent); // Set click listener for the 'add' button // if (isAuthenticated(context)) { // PendingIntent taskStackBuilderPendingIntent = TaskStackBuilder // .create(context) // .addNextIntent(new Intent(context, TodoTxtTouch.class)) // .addNextIntent(new Intent(context, AddTask.class)) // .getPendingIntent(0, 0); // rv.setOnClickPendingIntent(R.id.listwidget_additem, // taskStackBuilderPendingIntent); // } else { // // if not logged in, just go to login screen // rv.setOnClickPendingIntent(R.id.listwidget_additem, pendingIntent); // }/*from w ww . j a va 2s . com*/ // Bind a click listener template for the contents of the list. // Note that we // need to update the intent's data if we set an extra, since the extras // will be // ignored otherwise. final Intent onClickIntent = new Intent(context, TodoTxtTouch.class); onClickIntent.setAction(ListWidgetProvider.ITEM_ACTION); onClickIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); onClickIntent.setData(Uri.parse(onClickIntent.toUri(Intent.URI_INTENT_SCHEME))); final PendingIntent onClickPendingIntent = PendingIntent.getActivity(context, 0, onClickIntent, 0); rv.setPendingIntentTemplate(R.id.widget_list, onClickPendingIntent); // Bind the click intent for the refresh button on the widget final Intent refreshIntent = new Intent(context, ListWidgetProvider.class); refreshIntent.setAction(ListWidgetProvider.REFRESH_ACTION); refreshIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); final PendingIntent refreshPendingIntent = PendingIntent.getBroadcast(context, 0, refreshIntent, PendingIntent.FLAG_UPDATE_CURRENT); rv.setOnClickPendingIntent(R.id.listwidget_refresh, refreshPendingIntent); if (showProgress) { rv.setViewVisibility(R.id.listwidget_progress, View.VISIBLE); rv.setViewVisibility(R.id.listwidget_refresh, View.INVISIBLE); } else { rv.setViewVisibility(R.id.listwidget_progress, View.INVISIBLE); rv.setViewVisibility(R.id.listwidget_refresh, View.VISIBLE); } return rv; }
From source file:saphion.services.ForegroundService.java
private void setResourceImages(RemoteViews rv) { // Keeping this...even though it doesn't matter..value will always be // false//from w w w .j a v a 2s. com // CameraDevice mCameraDevice = new CameraDevice(); // mCameraDevice.acquireCamera(); if (mPref.getBoolean(PreferenceHelper.SHOW_WIFIHOTSPOT, false)) rv.setViewVisibility(R.id.ibwifihotspot_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibwifihotspot_large, View.GONE); rv.setImageViewResource(R.id.ibwifihotspot_large, new WifiApManager(getBaseContext()).isWifiApEnabled() ? R.drawable.wifi_hotspot_on : R.drawable.wifi_hotspot_off); rv.setImageViewResource(R.id.ibtorch_large, (isOn) ? R.drawable.lightbulb_on : R.drawable.lightbulb_off); // mCameraDevice.releaseCamera(); if (mPref.getBoolean(PreferenceHelper.SHOW_TORCH, false)) rv.setViewVisibility(R.id.ibtorch_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibtorch_large, View.GONE); if (mPref.getBoolean(PreferenceHelper.SHOW_AROTATE, false)) rv.setViewVisibility(R.id.ibarotate_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibarotate_large, View.GONE); rv.setImageViewResource(R.id.ibarotate_large, ToggleHelper.isRotationEnabled(getBaseContext()) ? R.drawable.orientation_on : R.drawable.orientation_off); if (mPref.getBoolean(PreferenceHelper.SHOW_WIFI, true)) rv.setViewVisibility(R.id.ibwifi_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibwifi_large, View.GONE); rv.setImageViewResource(R.id.ibwifi_large, ToggleHelper.isWifiEnabled(getBaseContext()) ? R.drawable.wifi_on : R.drawable.wifi_off); if (mPref.getBoolean(PreferenceHelper.SHOW_MDATA, true)) rv.setViewVisibility(R.id.ibmdata_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibmdata_large, View.GONE); rv.setImageViewResource(R.id.ibmdata_large, ToggleHelper.isDataEnable(getBaseContext()) ? R.drawable.mdata_on : R.drawable.mdata_off); if (mPref.getBoolean(PreferenceHelper.SHOW_BTOOTH, true)) rv.setViewVisibility(R.id.ibbtooth_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibbtooth_large, View.GONE); rv.setImageViewResource(R.id.ibbtooth_large, ToggleHelper.isBluetoothEnabled(getBaseContext()) ? R.drawable.btooth_on : R.drawable.btooth_off); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) rv.setViewVisibility(R.id.ibamode_large, View.GONE); else { rv.setImageViewResource(R.id.ibamode_large, ToggleHelper.isAModeEnabled(getBaseContext()) ? R.drawable.amode_on : R.drawable.amode_off); if (mPref.getBoolean(PreferenceHelper.SHOW_AMODE, true)) rv.setViewVisibility(R.id.ibamode_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibamode_large, View.GONE); } if (mPref.getBoolean(PreferenceHelper.SHOW_SYNC, true)) rv.setViewVisibility(R.id.ibsync_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibsync_large, View.GONE); rv.setImageViewResource(R.id.ibsync_large, ToggleHelper.isSyncEnabled() ? R.drawable.sync_on : R.drawable.sync_off); if (mPref.getBoolean(PreferenceHelper.SHOW_BNESS, true)) rv.setViewVisibility(R.id.ibbrightness_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibbrightness_large, View.GONE); switch (ToggleHelper.getBrightnessMode(getBaseContext())) { case 1: rv.setImageViewResource(R.id.ibbrightness_large, R.drawable.blow_on); break; case 2: rv.setImageViewResource(R.id.ibbrightness_large, R.drawable.bhalf_on); break; case 3: rv.setImageViewResource(R.id.ibbrightness_large, R.drawable.bfull_on); break; case 0: rv.setImageViewResource(R.id.ibbrightness_large, R.drawable.bauto_on); break; } if (mPref.getBoolean(PreferenceHelper.SHOW_PSWITCHER, false)) rv.setViewVisibility(R.id.ibpowersaver_toggle_large, View.VISIBLE); else rv.setViewVisibility(R.id.ibpowersaver_toggle_large, View.GONE); ArrayList<PowerProfItems> poweritems = PowerPreference.retPower(getBaseContext()); if (mPref.getInt(PreferenceHelper.PROF2, 0) < poweritems.size() && mPref.getInt(PreferenceHelper.PROF1, 0) < poweritems.size()) { if (poweritems.get(mPref.getInt(PreferenceHelper.PROF2, 0)).isPowerProfequal( ToggleHelper.isWifiEnabled(getBaseContext()), ToggleHelper.isDataEnable(getBaseContext()), ToggleHelper.isBluetoothEnabled(getBaseContext()), ToggleHelper.isAModeEnabled(getBaseContext()), ToggleHelper.isSyncEnabled(), ToggleHelper.getBrightness(getBaseContext()), ToggleHelper.isHapticFback(getBaseContext()), ToggleHelper.isRotationEnabled(getBaseContext()), ToggleHelper.getRingerMode(getBaseContext()), String.valueOf(ToggleHelper.getScreenTimeOut(getBaseContext())))) rv.setImageViewResource(R.id.ibpowersaver_toggle_large, R.drawable.power_on); else if (poweritems.get(mPref.getInt(PreferenceHelper.PROF1, 0)).isPowerProfequal( ToggleHelper.isWifiEnabled(getBaseContext()), ToggleHelper.isDataEnable(getBaseContext()), ToggleHelper.isBluetoothEnabled(getBaseContext()), ToggleHelper.isAModeEnabled(getBaseContext()), ToggleHelper.isSyncEnabled(), ToggleHelper.getBrightness(getBaseContext()), ToggleHelper.isHapticFback(getBaseContext()), ToggleHelper.isRotationEnabled(getBaseContext()), ToggleHelper.getRingerMode(getBaseContext()), String.valueOf(ToggleHelper.getScreenTimeOut(getBaseContext())))) rv.setImageViewResource(R.id.ibpowersaver_toggle_large, R.drawable.power_off); else rv.setImageViewResource(R.id.ibpowersaver_toggle_large, R.drawable.power_custom); } else { rv.setImageViewResource(R.id.ibpowersaver_toggle_large, R.drawable.power_custom); } }
From source file:github.popeen.dsub.util.Notifications.java
private static void setupViews(RemoteViews rv, Context context, MusicDirectory.Entry song, boolean expanded, boolean playing, boolean remote, boolean isSingleFile, boolean shouldFastForward) { // Use the same text for the ticker and the expanded notification String title = song.getTitle(); String arist = song.getArtist(); String album = song.getAlbum(); // Set the album art. try {// w w w . j a v a 2s .c o m ImageLoader imageLoader = SubsonicActivity.getStaticImageLoader(context); Bitmap bitmap = null; if (imageLoader != null) { bitmap = imageLoader.getCachedImage(context, song, false); } if (bitmap == null) { // set default album art rv.setImageViewResource(R.id.notification_image, R.drawable.unknown_album); } else { imageLoader.setNowPlayingSmall(bitmap); rv.setImageViewBitmap(R.id.notification_image, bitmap); } } catch (Exception x) { Log.w(TAG, "Failed to get notification cover art", x); rv.setImageViewResource(R.id.notification_image, R.drawable.unknown_album); } // set the text for the notifications rv.setTextViewText(R.id.notification_title, title); rv.setTextViewText(R.id.notification_artist, arist); rv.setTextViewText(R.id.notification_album, album); boolean persistent = Util.getPreferences(context) .getBoolean(Constants.PREFERENCES_KEY_PERSISTENT_NOTIFICATION, false); if (persistent) { if (expanded) { rv.setImageViewResource(R.id.control_pause, playing ? R.drawable.notification_pause : R.drawable.notification_start); if (shouldFastForward) { rv.setImageViewResource(R.id.control_previous, R.drawable.notification_rewind); rv.setImageViewResource(R.id.control_next, R.drawable.notification_fastforward); } else { rv.setImageViewResource(R.id.control_previous, R.drawable.notification_backward); rv.setImageViewResource(R.id.control_next, R.drawable.notification_forward); } } else { rv.setImageViewResource(R.id.control_previous, playing ? R.drawable.notification_pause : R.drawable.notification_start); if (shouldFastForward) { rv.setImageViewResource(R.id.control_pause, R.drawable.notification_fastforward); } else { rv.setImageViewResource(R.id.control_pause, R.drawable.notification_forward); } rv.setImageViewResource(R.id.control_next, R.drawable.notification_close); } } else if (shouldFastForward) { rv.setImageViewResource(R.id.control_previous, R.drawable.notification_rewind); rv.setImageViewResource(R.id.control_next, R.drawable.notification_fastforward); } else { // Necessary for switching back since it appears to re-use the same layout rv.setImageViewResource(R.id.control_previous, R.drawable.notification_backward); rv.setImageViewResource(R.id.control_next, R.drawable.notification_forward); } // Create actions for media buttons int previous = 0, pause = 0, next = 0, close = 0, rewind = 0, fastForward = 0; if (expanded) { pause = R.id.control_pause; if (shouldFastForward) { rewind = R.id.control_previous; fastForward = R.id.control_next; } else { previous = R.id.control_previous; next = R.id.control_next; } if (remote || persistent) { close = R.id.notification_close; rv.setViewVisibility(close, View.VISIBLE); } } else { if (persistent) { pause = R.id.control_previous; if (shouldFastForward) { fastForward = R.id.control_pause; } else { next = R.id.control_pause; } close = R.id.control_next; } else { if (shouldFastForward) { rewind = R.id.control_previous; fastForward = R.id.control_next; } else { previous = R.id.control_previous; next = R.id.control_next; } pause = R.id.control_pause; } } if (isSingleFile) { if (previous > 0) { rv.setViewVisibility(previous, View.GONE); previous = 0; } if (rewind > 0) { rv.setViewVisibility(rewind, View.GONE); rewind = 0; } if (next > 0) { rv.setViewVisibility(next, View.GONE); next = 0; } if (fastForward > 0) { rv.setViewVisibility(fastForward, View.GONE); fastForward = 0; } } PendingIntent pendingIntent; if (previous > 0) { Intent prevIntent = new Intent("KEYCODE_MEDIA_PREVIOUS"); prevIntent.setComponent(new ComponentName(context, DownloadService.class)); prevIntent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PREVIOUS)); pendingIntent = PendingIntent.getService(context, 0, prevIntent, 0); rv.setOnClickPendingIntent(previous, pendingIntent); } if (rewind > 0) { Intent rewindIntent = new Intent("KEYCODE_MEDIA_REWIND"); rewindIntent.setComponent(new ComponentName(context, DownloadService.class)); rewindIntent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_REWIND)); pendingIntent = PendingIntent.getService(context, 0, rewindIntent, 0); rv.setOnClickPendingIntent(rewind, pendingIntent); } if (pause > 0) { if (playing) { Intent pauseIntent = new Intent("KEYCODE_MEDIA_PLAY_PAUSE"); pauseIntent.setComponent(new ComponentName(context, DownloadService.class)); pauseIntent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE)); pendingIntent = PendingIntent.getService(context, 0, pauseIntent, 0); rv.setOnClickPendingIntent(pause, pendingIntent); } else { Intent prevIntent = new Intent("KEYCODE_MEDIA_START"); prevIntent.setComponent(new ComponentName(context, DownloadService.class)); prevIntent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_PLAY)); pendingIntent = PendingIntent.getService(context, 0, prevIntent, 0); rv.setOnClickPendingIntent(pause, pendingIntent); } } if (next > 0) { Intent nextIntent = new Intent("KEYCODE_MEDIA_NEXT"); nextIntent.setComponent(new ComponentName(context, DownloadService.class)); nextIntent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_NEXT)); pendingIntent = PendingIntent.getService(context, 0, nextIntent, 0); rv.setOnClickPendingIntent(next, pendingIntent); } if (fastForward > 0) { Intent fastForwardIntent = new Intent("KEYCODE_MEDIA_FAST_FORWARD"); fastForwardIntent.setComponent(new ComponentName(context, DownloadService.class)); fastForwardIntent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_FAST_FORWARD)); pendingIntent = PendingIntent.getService(context, 0, fastForwardIntent, 0); rv.setOnClickPendingIntent(fastForward, pendingIntent); } if (close > 0) { Intent prevIntent = new Intent("KEYCODE_MEDIA_STOP"); prevIntent.setComponent(new ComponentName(context, DownloadService.class)); prevIntent.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_MEDIA_STOP)); pendingIntent = PendingIntent.getService(context, 0, prevIntent, 0); rv.setOnClickPendingIntent(close, pendingIntent); } }
From source file:org.videolan.vlc.PlaybackService.java
@TargetApi(Build.VERSION_CODES.LOLLIPOP) private void showNotification() { try {/*from w w w .j ava 2 s. co m*/ MediaWrapper media = getCurrentMedia(); if (media == null) return; Bitmap cover = AudioUtil.getCover(this, media, 64); String title = media.getTitle(); String artist = Util.getMediaArtist(this, media); String album = Util.getMediaAlbum(this, media); Notification notification; if (media.isArtistUnknown() && media.isAlbumUnknown() && media.getNowPlaying() != null) { artist = media.getNowPlaying(); album = ""; } //Watch notification dismissed PendingIntent piStop = PendingIntent.getBroadcast(this, 0, new Intent(ACTION_REMOTE_STOP), PendingIntent.FLAG_UPDATE_CURRENT); // add notification to status bar NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_stat_vlc).setTicker(title + " - " + artist) .setAutoCancel(!MediaPlayer().isPlaying()).setOngoing(MediaPlayer().isPlaying()) .setDeleteIntent(piStop); Intent notificationIntent = new Intent(this, MainActivity.class); notificationIntent.setAction(AudioPlayerContainerActivity.ACTION_SHOW_PLAYER); notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER); notificationIntent.putExtra(START_FROM_NOTIFICATION, true); PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT); if (AndroidUtil.isJellyBeanOrLater()) { Intent iBackward = new Intent(ACTION_REMOTE_BACKWARD); Intent iPlay = new Intent(ACTION_REMOTE_PLAYPAUSE); Intent iForward = new Intent(ACTION_REMOTE_FORWARD); PendingIntent piBackward = PendingIntent.getBroadcast(this, 0, iBackward, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent piPlay = PendingIntent.getBroadcast(this, 0, iPlay, PendingIntent.FLAG_UPDATE_CURRENT); PendingIntent piForward = PendingIntent.getBroadcast(this, 0, iForward, PendingIntent.FLAG_UPDATE_CURRENT); RemoteViews view = new RemoteViews(BuildConfig.APPLICATION_ID, R.layout.notification); view.setImageViewBitmap(R.id.cover, cover == null ? BitmapFactory.decodeResource(getResources(), R.drawable.icon) : cover); view.setTextViewText(R.id.songName, title); view.setTextViewText(R.id.artist, artist); view.setImageViewResource(R.id.play_pause, MediaPlayer().isPlaying() ? R.drawable.ic_pause_w : R.drawable.ic_play_w); view.setOnClickPendingIntent(R.id.play_pause, piPlay); view.setOnClickPendingIntent(R.id.forward, piForward); view.setOnClickPendingIntent(R.id.stop, piStop); view.setOnClickPendingIntent(R.id.content, pendingIntent); RemoteViews view_expanded = new RemoteViews(BuildConfig.APPLICATION_ID, R.layout.notification_expanded); view_expanded.setImageViewBitmap(R.id.cover, cover == null ? BitmapFactory.decodeResource(getResources(), R.drawable.icon) : cover); view_expanded.setTextViewText(R.id.songName, title); view_expanded.setTextViewText(R.id.artist, artist); view_expanded.setTextViewText(R.id.album, album); view_expanded.setImageViewResource(R.id.play_pause, MediaPlayer().isPlaying() ? R.drawable.ic_pause_w : R.drawable.ic_play_w); view_expanded.setOnClickPendingIntent(R.id.backward, piBackward); view_expanded.setOnClickPendingIntent(R.id.play_pause, piPlay); view_expanded.setOnClickPendingIntent(R.id.forward, piForward); view_expanded.setOnClickPendingIntent(R.id.stop, piStop); view_expanded.setOnClickPendingIntent(R.id.content, pendingIntent); if (AndroidUtil.isLolliPopOrLater()) { //Hide stop button on pause, we swipe notification to stop view.setViewVisibility(R.id.stop, MediaPlayer().isPlaying() ? View.VISIBLE : View.INVISIBLE); view_expanded.setViewVisibility(R.id.stop, MediaPlayer().isPlaying() ? View.VISIBLE : View.INVISIBLE); //Make notification appear on lockscreen builder.setVisibility(Notification.VISIBILITY_PUBLIC); } notification = builder.build(); notification.contentView = view; notification.bigContentView = view_expanded; } else { builder.setLargeIcon( cover == null ? BitmapFactory.decodeResource(getResources(), R.drawable.icon) : cover) .setContentTitle(title) .setContentText( AndroidUtil.isJellyBeanOrLater() ? artist : Util.getMediaSubtitle(this, media)) .setContentInfo(album).setContentIntent(pendingIntent); notification = builder.build(); } startService(new Intent(this, PlaybackService.class)); if (!AndroidUtil.isLolliPopOrLater() || MediaPlayer().isPlaying()) startForeground(3, notification); else { stopForeground(false); NotificationManagerCompat.from(this).notify(3, notification); } } catch (NoSuchMethodError e) { // Compat library is wrong on 3.2 // http://code.google.com/p/android/issues/detail?id=36359 // http://code.google.com/p/android/issues/detail?id=36502 } }
From source file:au.com.wallaceit.reddinator.Rservice.java
@Override public RemoteViews getViewAt(int position) { RemoteViews row; if (position > data.length()) { return null; // prevent errornous views }/*w w w . ja va2s. c o m*/ // check if its the last view and return loading view instead of normal row if (position == data.length()) { // build load more item //System.out.println("load more getViewAt("+position+") firing"); RemoteViews loadmorerow = new RemoteViews(mContext.getPackageName(), R.layout.listrowloadmore); if (endOfFeed) { loadmorerow.setTextViewText(R.id.loadmoretxt, "There's nothing more here"); } else { loadmorerow.setTextViewText(R.id.loadmoretxt, "Load more..."); } loadmorerow.setTextColor(R.id.loadmoretxt, themeColors[0]); Intent i = new Intent(); Bundle extras = new Bundle(); extras.putString(WidgetProvider.ITEM_ID, "0"); // zero will be an indicator in the onreceive function of widget provider if its not present it forces a reload i.putExtras(extras); loadmorerow.setOnClickFillInIntent(R.id.listrowloadmore, i); return loadmorerow; } else { // build normal item String title = ""; String url = ""; String permalink = ""; String thumbnail = ""; String domain = ""; String id = ""; int score = 0; int numcomments = 0; boolean nsfw = false; try { JSONObject tempobj = data.getJSONObject(position).getJSONObject("data"); title = tempobj.getString("title"); //userlikes = tempobj.getString("likes"); domain = tempobj.getString("domain"); id = tempobj.getString("name"); url = tempobj.getString("url"); permalink = tempobj.getString("permalink"); thumbnail = (String) tempobj.get("thumbnail"); // we have to call get and cast cause its not in quotes score = tempobj.getInt("score"); numcomments = tempobj.getInt("num_comments"); nsfw = tempobj.getBoolean("over_18"); } catch (JSONException e) { e.printStackTrace(); // return null; // The view is invalid; } // create remote view from specified layout if (bigThumbs) { row = new RemoteViews(mContext.getPackageName(), R.layout.listrowbigthumb); } else { row = new RemoteViews(mContext.getPackageName(), R.layout.listrow); } // build view row.setTextViewText(R.id.listheading, Html.fromHtml(title).toString()); row.setFloat(R.id.listheading, "setTextSize", Integer.valueOf(titleFontSize)); // use for compatibility setTextViewTextSize only introduced in API 16 row.setTextColor(R.id.listheading, themeColors[0]); row.setTextViewText(R.id.sourcetxt, domain); row.setTextColor(R.id.sourcetxt, themeColors[3]); row.setTextColor(R.id.votestxt, themeColors[4]); row.setTextColor(R.id.commentstxt, themeColors[4]); row.setTextViewText(R.id.votestxt, String.valueOf(score)); row.setTextViewText(R.id.commentstxt, String.valueOf(numcomments)); row.setInt(R.id.listdivider, "setBackgroundColor", themeColors[2]); row.setViewVisibility(R.id.nsfwflag, nsfw ? TextView.VISIBLE : TextView.GONE); // add extras and set click intent Intent i = new Intent(); Bundle extras = new Bundle(); extras.putString(WidgetProvider.ITEM_ID, id); extras.putInt("itemposition", position); extras.putString(WidgetProvider.ITEM_URL, url); extras.putString(WidgetProvider.ITEM_PERMALINK, permalink); i.putExtras(extras); row.setOnClickFillInIntent(R.id.listrow, i); // load thumbnail if they are enabled for this widget if (loadThumbnails) { // load big image if preference is set if (!thumbnail.equals("")) { // check for thumbnail; self is used to display the thinking logo on the reddit site, we'll just show nothing for now if (thumbnail.equals("nsfw") || thumbnail.equals("self") || thumbnail.equals("default")) { int resource = 0; switch (thumbnail) { case "nsfw": resource = R.drawable.nsfw; break; case "default": case "self": resource = R.drawable.self_default; break; } row.setImageViewResource(R.id.thumbnail, resource); row.setViewVisibility(R.id.thumbnail, View.VISIBLE); //System.out.println("Loading default image: "+thumbnail); } else { Bitmap bitmap; String fileurl = mContext.getCacheDir() + "/thumbcache-" + appWidgetId + "/" + id + ".png"; // check if the image is in cache if (new File(fileurl).exists()) { bitmap = BitmapFactory.decodeFile(fileurl); saveImageToStorage(bitmap, id); } else { // download the image bitmap = loadImage(thumbnail); } if (bitmap != null) { row.setImageViewBitmap(R.id.thumbnail, bitmap); row.setViewVisibility(R.id.thumbnail, View.VISIBLE); } else { // row.setImageViewResource(R.id.thumbnail, android.R.drawable.stat_notify_error); for later row.setViewVisibility(R.id.thumbnail, View.GONE); } } } else { row.setViewVisibility(R.id.thumbnail, View.GONE); } } else { row.setViewVisibility(R.id.thumbnail, View.GONE); } // hide info bar if options set if (hideInf) { row.setViewVisibility(R.id.infbox, View.GONE); } else { row.setViewVisibility(R.id.infbox, View.VISIBLE); } } //System.out.println("getViewAt("+position+");"); return row; }
From source file:com.adityarathi.muo.services.AudioPlaybackService.java
/** * Builds and returns a fully constructed Notification for devices * on Ice Cream Sandwich (APIs 14 & 15). *///w ww . j a v a2s .com private Notification buildICSNotification(SongHelper songHelper) { mNotificationBuilder = new NotificationCompat.Builder(mContext); mNotificationBuilder.setOngoing(true); mNotificationBuilder.setAutoCancel(false); mNotificationBuilder.setSmallIcon(R.mipmap.ic_launcher); //Open up the player screen when the user taps on the notification. Intent launchNowPlayingIntent = new Intent(); launchNowPlayingIntent.setAction(AudioPlaybackService.LAUNCH_NOW_PLAYING_ACTION); PendingIntent launchNowPlayingPendingIntent = PendingIntent.getBroadcast(mContext.getApplicationContext(), 0, launchNowPlayingIntent, 0); mNotificationBuilder.setContentIntent(launchNowPlayingPendingIntent); //Grab the notification layout. RemoteViews notificationView = new RemoteViews(mContext.getPackageName(), R.layout.notification_custom_layout); //Initialize the notification layout buttons. Intent previousTrackIntent = new Intent(); previousTrackIntent.setAction(AudioPlaybackService.PREVIOUS_ACTION); PendingIntent previousTrackPendingIntent = PendingIntent.getBroadcast(mContext.getApplicationContext(), 0, previousTrackIntent, 0); Intent playPauseTrackIntent = new Intent(); playPauseTrackIntent.setAction(AudioPlaybackService.PLAY_PAUSE_ACTION); PendingIntent playPauseTrackPendingIntent = PendingIntent.getBroadcast(mContext.getApplicationContext(), 0, playPauseTrackIntent, 0); Intent nextTrackIntent = new Intent(); nextTrackIntent.setAction(AudioPlaybackService.NEXT_ACTION); PendingIntent nextTrackPendingIntent = PendingIntent.getBroadcast(mContext.getApplicationContext(), 0, nextTrackIntent, 0); Intent stopServiceIntent = new Intent(); stopServiceIntent.setAction(AudioPlaybackService.STOP_SERVICE); PendingIntent stopServicePendingIntent = PendingIntent.getBroadcast(mContext.getApplicationContext(), 0, stopServiceIntent, 0); //Check if audio is playing and set the appropriate play/pause button. if (mApp.getService().isPlayingMusic()) { notificationView.setImageViewResource(R.id.notification_base_play, R.mipmap.ic_launcher); } else { notificationView.setImageViewResource(R.id.notification_base_play, R.mipmap.ic_launcher); } //Set the notification content. notificationView.setTextViewText(R.id.notification_base_line_one, songHelper.getTitle()); notificationView.setTextViewText(R.id.notification_base_line_two, songHelper.getArtist()); //Set the states of the next/previous buttons and their pending intents. if (mApp.getService().isOnlySongInQueue()) { //This is the only song in the queue, so disable the previous/next buttons. notificationView.setViewVisibility(R.id.notification_base_next, View.INVISIBLE); notificationView.setViewVisibility(R.id.notification_base_previous, View.INVISIBLE); notificationView.setOnClickPendingIntent(R.id.notification_base_play, playPauseTrackPendingIntent); } else if (mApp.getService().isFirstSongInQueue()) { //This is the the first song in the queue, so disable the previous button. notificationView.setViewVisibility(R.id.notification_base_previous, View.INVISIBLE); notificationView.setViewVisibility(R.id.notification_base_next, View.VISIBLE); notificationView.setOnClickPendingIntent(R.id.notification_base_play, playPauseTrackPendingIntent); notificationView.setOnClickPendingIntent(R.id.notification_base_next, nextTrackPendingIntent); } else if (mApp.getService().isLastSongInQueue()) { //This is the last song in the cursor, so disable the next button. notificationView.setViewVisibility(R.id.notification_base_previous, View.VISIBLE); notificationView.setViewVisibility(R.id.notification_base_next, View.INVISIBLE); notificationView.setOnClickPendingIntent(R.id.notification_base_play, playPauseTrackPendingIntent); notificationView.setOnClickPendingIntent(R.id.notification_base_next, nextTrackPendingIntent); } else { //We're smack dab in the middle of the queue, so keep the previous and next buttons enabled. notificationView.setViewVisibility(R.id.notification_base_previous, View.VISIBLE); notificationView.setViewVisibility(R.id.notification_base_next, View.VISIBLE); notificationView.setOnClickPendingIntent(R.id.notification_base_play, playPauseTrackPendingIntent); notificationView.setOnClickPendingIntent(R.id.notification_base_next, nextTrackPendingIntent); notificationView.setOnClickPendingIntent(R.id.notification_base_previous, previousTrackPendingIntent); } //Set the "Stop Service" pending intent. notificationView.setOnClickPendingIntent(R.id.notification_base_collapse, stopServicePendingIntent); //Set the album art. notificationView.setImageViewBitmap(R.id.notification_base_image, songHelper.getAlbumArt()); //Attach the shrunken layout to the notification. mNotificationBuilder.setContent(notificationView); //Build the notification object and set its flags. Notification notification = mNotificationBuilder.build(); notification.flags = Notification.FLAG_FOREGROUND_SERVICE | Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT; return notification; }