Java tutorial
/* * This file is part of Prepay Credit for Android * * Copyright 2013 Damien O'Reilly * * Prepay Credit for Android is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Prepay Credit for Android is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Prepay Credit for Android. If not, see <http://www.gnu.org/licenses/>. * * Report bugs or new features at: https://github.com/DamienOReilly/PrepayCredit * Contact the author at: damienreilly@gmail.com */ package damo.three.ie.prepay; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.support.v4.app.NotificationCompat; import damo.three.ie.R; import damo.three.ie.activity.InternetExpirationActivity; import damo.three.ie.prepayusage.InternetUsageRegistry; import org.joda.time.DateTime; /** * Adds a notification in the notification bar when an internet add-on has expired or is about to. */ public class InternetAddonExpireReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { long millis = intent.getExtras().getLong(InternetUsageRegistry.INTERNET_EXPIRE_TIME); boolean alreadyExpired = false; if (millis > 0) { long now = new DateTime().getMillis(); if (now > millis) { alreadyExpired = true; } } // Clicking on the notification opens the InternetExpirationActivity. Intent myIntent = new Intent(context, InternetExpirationActivity.class); myIntent.putExtra(InternetUsageRegistry.INTERNET_EXPIRED, alreadyExpired); PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, myIntent, PendingIntent.FLAG_ONE_SHOT); Bitmap largeIcon = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.ic_warning).setLargeIcon(largeIcon) .setContentTitle(context.getString(alreadyExpired ? R.string.internet_addon_expired_title : R.string.internet_addon_expiring_title)) .setTicker(context.getString(alreadyExpired ? R.string.internet_addon_expired_title : R.string.internet_addon_expiring_title)) .setContentText(context.getString(alreadyExpired ? R.string.internet_addon_expired_text : R.string.internet_addon_expiring_text)) .setAutoCancel(true).setDefaults(Notification.DEFAULT_ALL).setContentIntent(pendingIntent); NotificationManager mNotificationManager = (NotificationManager) context .getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(0, mBuilder.build()); } }