private PushNotification NotificationBuild(String data, String name, Context context) { if (data == null) { return null; } PushNotification noti = null; try { Gson gson = new Gson(); NotificationDBProvider dbProvider = NotificationDBProvider.getInstance(context); noti = gson.fromJson(data, PushNotification.class); Log.e("push fromJson", "push fromJson: "); noti.code = name; noti.unread = 1; if (dbProvider.isDuplicate(noti)) { Log.e("push onReceive", "push duplicate: "); return null; } ToastPopup toastPopup = new ToastPopup(context); toastPopup.show(ToastPopup.TYPE_ALARM, noti.title, null); if (!dbProvider.insert(noti)) { noti = null; Log.e(TAG, "insert fail"); } } catch (Exception e) { Log.e("push exception", "push fromJson: "); Log.e(TAG, " " + e.getMessage()); return null; } return noti; }
private void Notification(PushNotification noti, Context context) { NotificationDBProvider dbProvider = NotificationDBProvider.getInstance(context); PendingIntent pendingIntent = getPendingIntent(context, DummyActivity.class); ArrayList<String> messages = dbProvider.getUnReadMessageTitle6(); int count = dbProvider.getUnReadMessageCount(); Builder builder = new NotificationCompat.Builder(context); if (count > 1) { if (count > 9999) { builder.setContentTitle("9999+" + context.getString(R.string.new_notification)); } else { builder.setContentTitle( String.valueOf(count) + context.getString(R.string.new_notification)); } InboxStyle style = new InboxStyle(builder); if (count > messages.size()) { count = messages.size(); } for (int i = 0; i < count; i++) { style.addLine(messages.get(i)); } // style.setSummaryText("+ more"); builder.setStyle(style); } else { builder.setContentTitle(noti.title); builder.setContentText(noti.message); } commonBuilder(builder, pendingIntent, noti.message); NotificationManager notifyManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notifyManager.notify(0, builder.build()); Intent intentBoradCast = new Intent(Setting.BROADCAST_ALARM_UPDATE); LocalBroadcastManager.getInstance(context).sendBroadcast(intentBoradCast); }