package com.pennapps.labs.pennmobile;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.support.v4.app.NotificationCompat;
import android.support.v4.content.ContextCompat;
import com.pennapps.labs.pennmobile.classes.LaundryMachine;
import com.pennapps.labs.pennmobile.classes.LaundryRoom;
public class LaundryBroadcastReceiver extends BroadcastReceiver {
public static final int NOTIFICATION_ID = 0;
public LaundryBroadcastReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
LaundryRoom laundryRoom = intent.getParcelableExtra(context.getString(R.string.laundry));
LaundryMachine machine = intent.getParcelableExtra(context.getString(R.string.laundry_machine_intent));
if(laundryRoom == null || machine == null){
return;
}
StringBuilder builder = new StringBuilder();
String roomname = laundryRoom.name.replace("FL","Floor");
String type = machine.machine_type.contains(context.getString(R.string.laundry_washer_textview)) ?
context.getString(R.string.laundry_washer_textview) : context.getString(R.string.laundry_dryer_textview);
builder.append(roomname).append(" ").append(type).append(" ").append(machine.number).append(" is available");
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_local_laundry_service)
.setContentTitle(context.getString(R.string.app_name))
.setContentText(builder);
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mBuilder.setColor(ContextCompat.getColor(context, R.color.color_primary));
}
Intent main = new Intent(context, MainActivity.class);
main.putExtra(context.getString(R.string.laundry_notification_alarm_intent), true);
main.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
main.putExtra(context.getString(R.string.laundry_hall_no), laundryRoom.hall_no);
PendingIntent notifyIntent = PendingIntent.getActivity(context, NOTIFICATION_ID, main, PendingIntent.FLAG_UPDATE_CURRENT);
mBuilder.setContentIntent(notifyIntent);
manager.notify(NOTIFICATION_ID, mBuilder.build());
PendingIntent fromIntent = PendingIntent.getBroadcast(context, intent.getIntExtra(context.getString(R.string.laundry_position), 0),
intent, PendingIntent.FLAG_NO_CREATE);
fromIntent.cancel();
}
}