package akilliyazilim.justhoy.receiver;
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.media.RingtoneManager;
import android.net.Uri;
import android.util.Log;
import org.json.JSONException;
import org.json.JSONObject;
import akilliyazilim.justhoy.R;
import akilliyazilim.justhoy.activity.HoyApp;
import akilliyazilim.justhoy.activity.MessagingActivity;
import akilliyazilim.justhoy.model.ConversationInfo;
import akilliyazilim.justhoy.model.MessageText;
import akilliyazilim.justhoy.sqlite.DBHelper;
import akilliyazilim.justhoy.sqlite.SeperateMessageTable;
/**
* Created by mertsimsek on 16.08.2014.
*/
public class PushNotifReceiver extends BroadcastReceiver {
private static final String TAG = "PushNotifReceiver";
@Override
public void onReceive(Context context, Intent intent) {
try {
String action = intent.getAction();
String channel = intent.getExtras().getString("com.parse.Channel");
JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
Log.d(TAG, "got action " + action + " on channel " + channel + " with:");
String my_id = json.getString("stranger_id");
String stranger_id = json.getString("my_id");
String my_image_url = json.getString("stranger_image_url");
String stranger_image_url = json.getString("my_image_url");
String my_name = json.getString("stranger_name");
String stranger_name = json.getString("my_name");
MessageText received_message = new MessageText();
received_message.setMessage_text(json.getString("message_text"));
received_message.setMy_name(my_name);
received_message.setMy_id(my_id);
received_message.setMy_image_url(my_image_url);
received_message.setStranger_id(stranger_id);
received_message.setStranger_image_url(stranger_image_url);
received_message.setStranger_name(stranger_name);
ConversationInfo conversation = new ConversationInfo();
conversation.setStranger_name(received_message.getStranger_name());
conversation.setStranger_image_url(received_message.getStranger_image_url());
conversation.setStranger_id(received_message.getStranger_id());
conversation.setIsUnread("unread");
DBHelper helper = new DBHelper(context);
SeperateMessageTable messagingtable = helper.getSeperateMessageTableGateway(stranger_id);
if(messagingtable.getAllMessagingMessages().size()>0)
helper.getConversationTableGateway().updateConversation(conversation);
else
helper.getConversationTableGateway().insertConversation(conversation);
helper.getSeperateMessageTableGateway(received_message.getStranger_id()).insertMessage(received_message,"2");
if(SeperateMessageTable.listener != null)
SeperateMessageTable.notifyListener();
if(!HoyApp.isActivityVisible())
displayNotification(context,received_message);
} catch (JSONException e) {
Log.d(TAG, "JSONException: " + e.getMessage());
}
}
private void displayNotification(Context context,MessageText message) {
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(context, MessagingActivity.class);
notificationIntent.putExtra("stranger_name",message.getStranger_name());
notificationIntent.putExtra("stranger_image_url",message.getStranger_image_url());
notificationIntent.putExtra("stranger_id",message.getStranger_id());
notificationIntent.putExtra("message_unread","read");
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
long[] vibrate = { 0, 100, 200, 300 };
Notification notification = new Notification.Builder(context).setContentTitle(message.getStranger_name()).setContentText(message.getMessage_text()).setSmallIcon(R.drawable.icon_hoy_purple)
.setContentIntent(pendingIntent).setSound(sound).setVibrate(vibrate).setAutoCancel(true)
.build();
notificationManager.notify(Integer.parseInt(message.getStranger_id().substring(0,3)),notification);
}
}