package com.zachklipp.captivate.app; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationCompat.Builder; import android.widget.Toast; import com.zachklipp.captivate.R; import com.zachklipp.captivate.captive_portal.PortalInfo; import com.zachklipp.captivate.util.BitmapHelper.ImageLoadListener; public final class ConnectedNotification { private static final int CONNECTED_NOTIFICATION_ID = 1; public static void showNotification(final Context context, final PortalInfo portalInfo) { Intent showPortalIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(portalInfo.getPortalUrl())); PendingIntent contentIntent = PendingIntent.getActivity(context, 0, showPortalIntent, 0); final Builder builder = new NotificationCompat.Builder(context) .setSmallIcon(R.drawable.notification_icon) .setTicker(context.getString(R.string.ticker_text)) .setContentTitle(context.getString(R.string.notification_title)) .setContentText(context.getString(R.string.notification_text)) .setContentIntent(contentIntent) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) // Show on lock screen. ; final NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.notify(CONNECTED_NOTIFICATION_ID, builder.getNotification()); portalInfo.getFavicon(new ImageLoadListener() { public void onImageLoaded(Bitmap favicon) { if (favicon != null) { builder.setLargeIcon(favicon); notificationManager.notify(CONNECTED_NOTIFICATION_ID, builder.getNotification()); } } }); } public static void hideNotification(Context context) { NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); notificationManager.cancel(CONNECTED_NOTIFICATION_ID); } public static void showSignedInToast(Context context) { Toast.makeText(context, R.string.signed_in_toast, Toast.LENGTH_SHORT).show(); } }