use of android.app.Notification in project XobotOS by xamarin.
the class AccountManagerService method createNoCredentialsPermissionNotification.
private void createNoCredentialsPermissionNotification(Account account, Intent intent) {
int uid = intent.getIntExtra(GrantCredentialsPermissionActivity.EXTRAS_REQUESTING_UID, -1);
String authTokenType = intent.getStringExtra(GrantCredentialsPermissionActivity.EXTRAS_AUTH_TOKEN_TYPE);
String authTokenLabel = intent.getStringExtra(GrantCredentialsPermissionActivity.EXTRAS_AUTH_TOKEN_LABEL);
Notification n = new Notification(android.R.drawable.stat_sys_warning, null, 0);
final String titleAndSubtitle = mContext.getString(R.string.permission_request_notification_with_subtitle, account.name);
final int index = titleAndSubtitle.indexOf('\n');
String title = titleAndSubtitle;
String subtitle = "";
if (index > 0) {
title = titleAndSubtitle.substring(0, index);
subtitle = titleAndSubtitle.substring(index + 1);
}
n.setLatestEventInfo(mContext, title, subtitle, PendingIntent.getActivity(mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT));
installNotification(getCredentialPermissionNotificationId(account, authTokenType, uid), n);
}
use of android.app.Notification in project physical-web by google.
the class UrlDeviceDiscoveryService method updateSummaryNotification.
/**
* Create or update the a single notification that is a collapsed version
* of the top two beacon notifications.
*/
private void updateSummaryNotification(List<PwPair> pwPairs) {
int numNearbyBeacons = pwPairs.size();
String contentTitle = String.valueOf(numNearbyBeacons);
Resources resources = getResources();
contentTitle += " " + resources.getQuantityString(R.plurals.numFoundBeacons, numNearbyBeacons, numNearbyBeacons);
String contentText = getString(R.string.summary_notification_pull_down);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.ic_notification).setContentTitle(contentTitle).setContentText(contentText).setSmallIcon(R.drawable.ic_notification).setGroup(NOTIFICATION_GROUP_KEY).setGroupSummary(true).setPriority(Utils.containsFavorite(pwPairs) ? NotificationCompat.PRIORITY_DEFAULT : NotificationCompat.PRIORITY_MIN).setContentIntent(createReturnToAppPendingIntent());
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder.setVisibility(NOTIFICATION_VISIBILITY);
}
Notification notification = builder.build();
// Create the big view for the notification (viewed by pulling down)
RemoteViews remoteViews = updateSummaryNotificationRemoteViews(pwPairs);
notification.bigContentView = remoteViews;
mNotificationManager.notify(SUMMARY_NOTIFICATION_ID, notification);
}
use of android.app.Notification in project JamsMusicPlayer by psaravan.
the class AudioPlaybackService method updateNotification.
/**
* Updates the current notification with info from the specified
* SongHelper object.
*/
public void updateNotification(SongHelper songHelper) {
Notification notification = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN)
notification = buildJBNotification(songHelper);
else
notification = buildICSNotification(songHelper);
//Update the current notification.
NotificationManager notifManager = (NotificationManager) mApp.getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.notify(mNotificationId, notification);
}
use of android.app.Notification in project JamsMusicPlayer by psaravan.
the class AudioPlaybackService method buildJBNotification.
/**
* Builds and returns a fully constructed Notification for devices
* on Jelly Bean and above (API 16+).
*/
@SuppressLint("NewApi")
private Notification buildJBNotification(SongHelper songHelper) {
mNotificationBuilder = new NotificationCompat.Builder(mContext);
mNotificationBuilder.setOngoing(true);
mNotificationBuilder.setAutoCancel(false);
mNotificationBuilder.setSmallIcon(R.drawable.notif_icon);
//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 layouts.
RemoteViews notificationView = new RemoteViews(mContext.getPackageName(), R.layout.notification_custom_layout);
RemoteViews expNotificationView = new RemoteViews(mContext.getPackageName(), R.layout.notification_custom_expanded_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.drawable.btn_playback_pause_light);
expNotificationView.setImageViewResource(R.id.notification_expanded_base_play, R.drawable.btn_playback_pause_light);
} else {
notificationView.setImageViewResource(R.id.notification_base_play, R.drawable.btn_playback_play_light);
expNotificationView.setImageViewResource(R.id.notification_expanded_base_play, R.drawable.btn_playback_play_light);
}
//Set the notification content.
expNotificationView.setTextViewText(R.id.notification_expanded_base_line_one, songHelper.getTitle());
expNotificationView.setTextViewText(R.id.notification_expanded_base_line_two, songHelper.getArtist());
expNotificationView.setTextViewText(R.id.notification_expanded_base_line_three, songHelper.getAlbum());
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.
expNotificationView.setViewVisibility(R.id.notification_expanded_base_next, View.INVISIBLE);
expNotificationView.setViewVisibility(R.id.notification_expanded_base_previous, View.INVISIBLE);
expNotificationView.setOnClickPendingIntent(R.id.notification_expanded_base_play, playPauseTrackPendingIntent);
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.
expNotificationView.setViewVisibility(R.id.notification_expanded_base_previous, View.INVISIBLE);
expNotificationView.setViewVisibility(R.id.notification_expanded_base_next, View.VISIBLE);
expNotificationView.setOnClickPendingIntent(R.id.notification_expanded_base_play, playPauseTrackPendingIntent);
expNotificationView.setOnClickPendingIntent(R.id.notification_expanded_base_next, nextTrackPendingIntent);
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.
expNotificationView.setViewVisibility(R.id.notification_expanded_base_previous, View.VISIBLE);
expNotificationView.setViewVisibility(R.id.notification_expanded_base_next, View.INVISIBLE);
expNotificationView.setOnClickPendingIntent(R.id.notification_expanded_base_play, playPauseTrackPendingIntent);
expNotificationView.setOnClickPendingIntent(R.id.notification_expanded_base_next, nextTrackPendingIntent);
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.
expNotificationView.setViewVisibility(R.id.notification_expanded_base_previous, View.VISIBLE);
expNotificationView.setViewVisibility(R.id.notification_expanded_base_next, View.VISIBLE);
expNotificationView.setOnClickPendingIntent(R.id.notification_expanded_base_play, playPauseTrackPendingIntent);
expNotificationView.setOnClickPendingIntent(R.id.notification_expanded_base_next, nextTrackPendingIntent);
expNotificationView.setOnClickPendingIntent(R.id.notification_expanded_base_previous, previousTrackPendingIntent);
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 intents.
expNotificationView.setOnClickPendingIntent(R.id.notification_expanded_base_collapse, stopServicePendingIntent);
notificationView.setOnClickPendingIntent(R.id.notification_base_collapse, stopServicePendingIntent);
//Set the album art.
expNotificationView.setImageViewBitmap(R.id.notification_expanded_base_image, songHelper.getAlbumArt());
notificationView.setImageViewBitmap(R.id.notification_base_image, songHelper.getAlbumArt());
//Attach the shrunken layout to the notification.
mNotificationBuilder.setContent(notificationView);
//Build the notification object.
Notification notification = mNotificationBuilder.build();
//Attach the expanded layout to the notification and set its flags.
notification.bigContentView = expNotificationView;
notification.flags = Notification.FLAG_FOREGROUND_SERVICE | Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT;
return notification;
}
use of android.app.Notification in project JamsMusicPlayer by psaravan.
the class AudioPlaybackService method buildICSNotification.
/**
* Builds and returns a fully constructed Notification for devices
* on Ice Cream Sandwich (APIs 14 & 15).
*/
private Notification buildICSNotification(SongHelper songHelper) {
mNotificationBuilder = new NotificationCompat.Builder(mContext);
mNotificationBuilder.setOngoing(true);
mNotificationBuilder.setAutoCancel(false);
mNotificationBuilder.setSmallIcon(R.drawable.notif_icon);
//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.drawable.btn_playback_pause_light);
} else {
notificationView.setImageViewResource(R.id.notification_base_play, R.drawable.btn_playback_play_light);
}
//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;
}
Aggregations