package com.magnet.messagingsample;
import android.app.Application;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import com.magnet.messagingsample.activities.ChatActivity;
import com.magnet.mmx.client.MMXClient;
import com.magnet.mmx.client.api.MMX;
import com.magnet.mmx.client.api.MMXMessage;
import com.magnet.mmx.client.api.MMXUser;
/**
* Created by edwardyang on 9/10/15.
*/
public class ChatApplication extends Application {
private static Context context;
private int mNoteId = 0;
private MMX.EventListener mListener = new MMX.EventListener() {
public boolean onMessageReceived(MMXMessage mmxMessage) {
doNotify(mmxMessage);
return false;
}
public boolean onMessageAcknowledgementReceived(MMXUser from, String messageId) {
return false;
}
};
public class MyWakeupListener implements MMXClient.MMXWakeupListener {
public void onWakeupReceived(final Context applicationContext, Intent intent) {
MMX.registerListener(new MMX.EventListener() {
public boolean onMessageReceived(MMXMessage mmxMessage) {
doNotify(mmxMessage);
return false;
}
});
}
}
private void doNotify(com.magnet.mmx.client.api.MMXMessage message) {
Object textObj = message.getContent().get(ChatActivity.KEY_MESSAGE_TEXT);
if (textObj != null) {
String messageText = textObj.toString();
MMXUser from = message.getSender();
NotificationManager noteMgr = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE);
Notification note = new Notification.Builder(this).setAutoCancel(true)
.setSmallIcon(R.drawable.bubble_green).setWhen(System.currentTimeMillis())
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setContentTitle("Message from " + from.getUsername()).setContentText(messageText).build();
noteMgr.notify(mNoteId++, note);
}
}
@Override
public void onCreate() {
super.onCreate();
ChatApplication.context = this;
MMX.init(this, R.raw.messagingsample);
MMXClient.registerWakeupListener(this, MyWakeupListener.class);
MMX.registerListener(mListener);
}
}