How to disable
or hide
notification small icon ? I know it is mandatory but I want to hide or remove small icon and just show large icon.
Notification.Builder builder = new Notification.Builder(FcmIntentService.this).setSmallIcon(R.drawable.notification_small_icon_transparent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(11, builder.build());
i want something like this google plus notification:
You can hide this way.
.setSmallIcon(android.R.color.transparent)
Create custom notification and remove .setStyle() from notification builder.
Please read this doc before going through the code. very very helpful and will clear all of your doubts: Android custom notification doc
Use the provided code and just make two layouts in your layout folder, one for collapsed view and another for expanded view( if u want to show expanded view)
// custom notification class
public class NotificationUtils {
private static String TAG = NotificationUtils.class.getSimpleName();
private String channelId = "notification_channel";
private static final int NOTIFICATION_ID_BIG_IMAGE = 101;
private Context mContext;
public NotificationUtils(Context mContext) {
this.mContext = mContext;
}
//Call this method in your FirebaseMessagingService class
public void showNotificationMessage(String billUrl, String title, String message, String timeStamp, Intent intent) {
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
final PendingIntent resultPendingIntent =
PendingIntent.getActivity(mContext,0,intent,
PendingIntent.FLAG_ONE_SHOT
);
final NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mContext, channelId);
if (billUrl != null && billUrl.length() > 4 && Patterns.WEB_URL.matcher(billUrl).matches()) {
Bitmap bitmap = getBitmapFromURL(billUrl);
if (bitmap != null) {
showNotification(bitmap, mBuilder, title, message, timeStamp, resultPendingIntent);
}
}
}
private void showNotification(Bitmap bitmap, NotificationCompat.Builder mBuilder, String brandName,
String description, String timeStamp, PendingIntent resultPendingIntent) {
// Get the layouts to use in the custom notification
RemoteViews notificationLayout = new RemoteViews(mContext.getPackageName(), R.layout.view_collapsed_notification);
RemoteViews notificationLayoutExpanded = new RemoteViews(mContext.getPackageName(), R.layout.view_expanded_notification);
//Null and Empty checks for your Key Value Pairs
if (bitmap != null) {
notificationLayoutExpanded.setImageViewBitmap(R.id.bill_container, bitmap);
}
if (brandName != null) {
notificationLayout.setTextViewText(R.id.content_title, brandName);
notificationLayoutExpanded.setTextViewText(R.id.expand_content_title, brandName);
}
if (description != null) {
notificationLayout.setTextViewText(R.id.content_text, description);
notificationLayoutExpanded.setTextViewText(R.id.expand_content_text, description);
}
if (timeStamp != null) {
notificationLayout.setTextViewText(R.id.timestamp, timeStamp);
notificationLayoutExpanded.setTextViewText(R.id.expand_timestamp, timeStamp);
}
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
mBuilder =
new NotificationCompat.Builder(mContext, channelId)
.setSmallIcon(R.drawable.ic_notification_logo)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setCustomContentView(notificationLayout)
.setCustomBigContentView(notificationLayoutExpanded)
.setPriority(Notification.PRIORITY_MAX)
.setContentIntent(resultPendingIntent);
NotificationManager notificationManager =
(NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
// Since android Oreo notification channel is needed.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel channel = new NotificationChannel(channelId,
"notifications",
NotificationManager.IMPORTANCE_HIGH);
notificationManager.createNotificationChannel(channel);
}
notificationManager.notify(NOTIFICATION_ID_BIG_IMAGE, mBuilder.build());
}
// Downloading push notification image before displaying it in the notification tray
private Bitmap getBitmapFromURL(String strURL) {
try {
URL url = new URL(strURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With