/*
* Protocoder
* A prototyping platform for Android devices
*
* Victor Diaz Barrales victormdb@gmail.com
*
* Copyright (C) 2014 Victor Diaz
* Copyright (C) 2013 Motorola Mobility LLC
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the Software
* is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*
*/
package org.protocoderrunner.base;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationCompat.Builder;
//TODO http://developer.android.com/training/notify-user/expanded.html
public class BaseNotification {
public static int NOTIFICATION_APP_RUNNING = 1;
Context c;
NotificationManager mNotificationManager;
boolean mIsShowing = false;
private Builder mBuilder;
public BaseNotification(Context context) {
c = context;
mNotificationManager = (NotificationManager) c.getSystemService(Context.NOTIFICATION_SERVICE);
}
public void show(Class<?> cls, int icon, String text, String title) {
//TODO activate this
//show(cls, icon, text, title, R.drawable.ic_launcher);
}
public void show(Class<?> cls, int icon, String text, String title, int actionIcon) {
CharSequence tickerText = "MWM";
mIsShowing = true;
long when = System.currentTimeMillis();
Intent notificationIntent = new Intent(c, cls);
PendingIntent contentIntent = PendingIntent.getActivity(c, 0, notificationIntent, 0);
Intent stopServerIntent = new Intent();
stopServerIntent.setAction("com.makewithmoto.intent.action.STOP_SERVER");
PendingIntent stopServerPendingIntent = PendingIntent.getBroadcast(c, 0, stopServerIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder = new NotificationCompat.Builder(c);
mBuilder.setContentTitle(title).setContentText(text).setSmallIcon(icon).setOngoing(true)
.setProgress(0, 0, true).setContentIntent(contentIntent)
// .setStyle(new NotificationCompat.BigTextStyle().bigText(msg))
.addAction(actionIcon, "Stop server", stopServerPendingIntent);
// notification.defaults |= Notification.DEFAULT_LIGHTS;
// notification.ledARGB = Color.RED;
// notification.ledOffMS = 300;
// notification.ledOnMS = 300;
// notification.defaults |= Notification.DEFAULT_SOUND;
mNotificationManager.notify(NOTIFICATION_APP_RUNNING, mBuilder.build());
}
public void hide() {
if (mIsShowing)
mNotificationManager.cancel(null, NOTIFICATION_APP_RUNNING);
mIsShowing = false;
}
public static void killAll(Context ctx) {
NotificationManager notifManager = (NotificationManager) ctx.getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.cancelAll();
}
}