Android Open Source - MentorMe Mentor Me Receiver






From Project

Back to project page MentorMe.

License

The source code is released under:

MIT License

If you think the Android project MentorMe listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.codepath.wwcmentorme.helpers;
/*w  w  w.  j ava2s .c  o m*/
import java.util.Iterator;

import org.json.JSONException;
import org.json.JSONObject;

import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.media.RingtoneManager;
import android.support.v4.app.NotificationCompat;
import android.util.Log;

import com.codepath.wwcmentorme.R;
import com.codepath.wwcmentorme.activities.ChatActivity;
import com.codepath.wwcmentorme.activities.ViewProfileActivity;
import com.codepath.wwcmentorme.data.DataService;
import com.codepath.wwcmentorme.models.User;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.BinaryHttpResponseHandler;

public class MentorMeReceiver extends BroadcastReceiver {
  private static final String TAG = "MentorMeReceiver";

  public static final String intentAction = "SEND_PUSH";
  public static final String alertKey = "username";
  public static final String skillsKey = "skills";
  public static final String responseKey = "inresponse";
  public static final String messageKey = "message";

  @Override
  public void onReceive(final Context context, final Intent intent) {
    try {
      if (intent == null) {
        Log.d(TAG, "Receiver intent null");
      } else {
        String action = intent.getAction();
        if (action.equals(intentAction)) {
          JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
          Iterator<String> itr = json.keys();
          while (itr.hasNext()) {
            String key = (String) itr.next();
            if (key.equals(ViewProfileActivity.USER_ID_KEY)) {
              final long userId = json.getLong(key);
              final boolean inResponse = json.getBoolean(responseKey);
              final int notificationId = (int)userId;
              final String username = json.getString(alertKey);
              String jsonChatMessage = null;
              if (json.has(messageKey)) {
                jsonChatMessage = json.getString(messageKey);
              }
              final String chatMessage = jsonChatMessage;
              final String message = chatMessage != null ? chatMessage : (username + (inResponse ? " has accepted your request." : " has requested to connect with you."));
              final String skills = json.getString(skillsKey);
              final NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
              final NotificationCompat.BigTextStyle style = new NotificationCompat.BigTextStyle()
              .setBigContentTitle(username).bigText(message)
              .setSummaryText(skills);
              final AsyncHttpClient client = new AsyncHttpClient();
              client.get(User.getProfileImageUrl(userId, 200), new BinaryHttpResponseHandler() {
                @Override
                public void onSuccess(byte[] fileData) {
                  final Bitmap icon = UIUtils.decode(fileData);
                  Intent pupInt = new Intent(context, chatMessage != null ? ChatActivity.class : ViewProfileActivity.class);
                  pupInt.putExtra(ViewProfileActivity.USER_ID_KEY, userId);
                  if (!inResponse && chatMessage == null) {
                    DataService.addResponsePending(userId);
                  }
                  int requestID = (int) System.currentTimeMillis();
                  pupInt.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
                  PendingIntent contentIntent = PendingIntent.getActivity(context, requestID, pupInt, PendingIntent.FLAG_UPDATE_CURRENT);
                  final NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
                  .setSmallIcon(R.drawable.ic_launcher)
                  .setContentTitle(username)
                  .setContentText(message)
                  .setOnlyAlertOnce(true)
                  .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
                  .setAutoCancel(true)
                  .setStyle(style)
                  .setLargeIcon(icon)
                  .setContentIntent(contentIntent);
                  notificationManager.notify(notificationId, builder.build());
                }
              });
            }
          }
        }
      }

    } catch (JSONException e) {
      Log.d(TAG, "JSONException: " + e.getMessage());
    }
  }

}




Java Source Code List

com.codepath.wwcmentorme.activities.AppActivity.java
com.codepath.wwcmentorme.activities.ChatActivity.java
com.codepath.wwcmentorme.activities.EditProfileActivity.java
com.codepath.wwcmentorme.activities.HomeActivity.java
com.codepath.wwcmentorme.activities.MapActivity.java
com.codepath.wwcmentorme.activities.MentorListActivity.java
com.codepath.wwcmentorme.activities.ThankMentorActivity.java
com.codepath.wwcmentorme.activities.UserListActivity.java
com.codepath.wwcmentorme.activities.ViewProfileActivity.java
com.codepath.wwcmentorme.adapters.ChatAdapter.java
com.codepath.wwcmentorme.adapters.DrawerListAdapter.java
com.codepath.wwcmentorme.adapters.MentorListAdapter.java
com.codepath.wwcmentorme.app.MentorMeApp.java
com.codepath.wwcmentorme.data.DataService.java
com.codepath.wwcmentorme.fragments.AbstractEditProfileFragment.java
com.codepath.wwcmentorme.fragments.EditProfileExperiencesFragment.java
com.codepath.wwcmentorme.fragments.EditProfileLocationFragment.java
com.codepath.wwcmentorme.fragments.EditProfileSkillsFragment.java
com.codepath.wwcmentorme.fragments.RefineResultsDialogFragment.java
com.codepath.wwcmentorme.helpers.Async.java
com.codepath.wwcmentorme.helpers.Constants.java
com.codepath.wwcmentorme.helpers.MentorMeReceiver.java
com.codepath.wwcmentorme.helpers.NotificationCenter.java
com.codepath.wwcmentorme.helpers.RoundedImageView.java
com.codepath.wwcmentorme.helpers.UIUtils.java
com.codepath.wwcmentorme.helpers.Utils.java
com.codepath.wwcmentorme.helpers.ViewHolder.java
com.codepath.wwcmentorme.models.Message.java
com.codepath.wwcmentorme.models.Rating.java
com.codepath.wwcmentorme.models.Request.java
com.codepath.wwcmentorme.models.User.java