@Override public void onMessageReceived(String from, Bundle extras) { Log.d(LOG_TAG, "onMessage - from: " + from); if (extras != null) { Context applicationContext = getApplicationContext(); SharedPreferences prefs = applicationContext.getSharedPreferences( PushPlugin.COM_ADOBE_PHONEGAP_PUSH, Context.MODE_PRIVATE); boolean forceShow = prefs.getBoolean(FORCE_SHOW, false); boolean clearBadge = prefs.getBoolean(CLEAR_BADGE, false); extras = normalizeExtras(applicationContext, extras); if (clearBadge) { PushPlugin.setApplicationIconBadgeNumber(getApplicationContext(), 0); } /* * do push echo */ Log.d(LOG_TAG, "extras:" + extras); PushPlugin.doPushEcho(getBaseContext(), null); // if we are in the foreground and forceShow is `false` only send data if (!forceShow && PushPlugin.isInForeground()) { Log.d(LOG_TAG, "foreground"); extras.putBoolean(FOREGROUND, true); extras.putBoolean(COLDSTART, false); PushPlugin.sendExtras(extras); } // if we are in the foreground and forceShow is `true`, force show the notification if the // data has at least a message or title else if (forceShow && PushPlugin.isInForeground()) { Log.d(LOG_TAG, "foreground force"); extras.putBoolean(FOREGROUND, true); extras.putBoolean(COLDSTART, false); showNotificationIfPossible(applicationContext, extras); } // if we are not in the foreground always send notification if the data has at least a message // or title else { Log.d(LOG_TAG, "background"); extras.putBoolean(FOREGROUND, false); extras.putBoolean(COLDSTART, PushPlugin.isActive()); showNotificationIfPossible(applicationContext, extras); } } }
@Override public void onError(Context context, String errorId) { Log.e(LOG_TAG, "onError - errorId: " + errorId); // if we are in the foreground, just send the error if (PushPlugin.isInForeground()) { PushPlugin.sendError(errorId); } }
@Override protected void onMessage(Context context, Intent intent) { Log.d(LOG_TAG, "onMessage - context: " + context); // Extract the payload from the message Bundle extras = intent.getExtras(); if (extras != null) { // if we are in the foreground, just surface the payload, else post it to the statusbar if (PushPlugin.isInForeground()) { extras.putBoolean(FOREGROUND, true); PushPlugin.sendExtras(extras); } else { extras.putBoolean(FOREGROUND, false); // Send a notification if there is a message String message = this.getMessageText(extras); String title = getString(extras, TITLE, ""); if ((message != null && message.length() != 0) || (title != null && title.length() != 0)) { createNotification(context, extras); } } } }