Android Open Source - playnomics-android Gcm Manager






From Project

Back to project page playnomics-android.

License

The source code is released under:

Apache License

If you think the Android project playnomics-android 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.playnomics.android.push;
// w  w  w.  j a v  a2s .c  o  m
import android.content.Context;

import com.google.android.gms.gcm.GoogleCloudMessaging;
import com.playnomics.android.sdk.IGoogleCloudMessageConfig;
import com.playnomics.android.util.AsyncTaskRunner;
import com.playnomics.android.util.IAsyncCall;
import com.playnomics.android.util.Logger;
import com.playnomics.android.util.Util;

public class GcmManager {
  
  public interface ICloudMessagingHandler{
    public void onDeviceRegistered(String registrationId);
    public void onDeviceRegistrationFailed(Exception exception);
    public void onPushNotificationInteracted(String pushInteractedUrlFormat);
  }
  
  private Logger logger;
  private Util util;
  private static ICloudMessagingHandler messagingHandler;
  
  static IGoogleCloudMessageConfig config;
  
  public GcmManager(Logger logger, Util util, 
      ICloudMessagingHandler messagingHandler, 
      IGoogleCloudMessageConfig provider){
    this.logger = logger;
    this.util = util;
    GcmManager.messagingHandler = messagingHandler;
    GcmManager.config = provider;
  }

  private class AyncRegistrationGCM implements IAsyncCall {
    private String registrationId;
    private Exception exception;
    private Context context;

    public AyncRegistrationGCM(final Context context) {
      this.context = context;
    }

    @Override
    public void onBackgroundThread() {
      try{
        GoogleCloudMessaging gcm = util.getGCMFromContext(context);
        registrationId = gcm.register(config.getSenderId());
      } catch(Exception ex){
        exception = ex;
      }
    }

    @Override
    public void postExecuteOnUiThread() {
      if (exception==null) {
        messagingHandler.onDeviceRegistered(registrationId);
      } else {
        messagingHandler.onDeviceRegistrationFailed(exception);
      }
    }
  }

  public void preformRegistration(final Context context) {
    AsyncTaskRunner pushRegistrationTask = new AsyncTaskRunner(new AyncRegistrationGCM(context));
    pushRegistrationTask.execute();
  }

  static void onPushNotificationOpened(String pushInteractedUrl){
    messagingHandler.onPushNotificationInteracted(pushInteractedUrl);
  }
}




Java Source Code List

com.playnomics.PlaynomicsMoreTestActivity.java
com.playnomics.PlaynomicsTestAppActivity.java
com.playnomics.RichDataFrameDelegate.java
com.playnomics.android.client.AssetClient.java
com.playnomics.android.client.EventQueue.java
com.playnomics.android.client.EventWorker.java
com.playnomics.android.client.HttpConnectionFactory.java
com.playnomics.android.client.IEventQueue.java
com.playnomics.android.client.IEventWorker.java
com.playnomics.android.client.IHttpConnectionFactory.java
com.playnomics.android.client.PlacementDataClient.java
com.playnomics.android.client.SegmentationClient.java
com.playnomics.android.events.AppPageEvent.java
com.playnomics.android.events.AppPauseEvent.java
com.playnomics.android.events.AppResumeEvent.java
com.playnomics.android.events.AppRunningEvent.java
com.playnomics.android.events.AppStartEvent.java
com.playnomics.android.events.CustomEvent.java
com.playnomics.android.events.ExplicitEvent.java
com.playnomics.android.events.ImplicitEvent.java
com.playnomics.android.events.PlaynomicsEvent.java
com.playnomics.android.events.TransactionEvent.java
com.playnomics.android.events.UserInfoEvent.java
com.playnomics.android.messaging.CloseButton.java
com.playnomics.android.messaging.HtmlAdFactory.java
com.playnomics.android.messaging.HtmlAd.java
com.playnomics.android.messaging.HtmlCloseButton.java
com.playnomics.android.messaging.MessagingManager.java
com.playnomics.android.messaging.NativeCloseButton.java
com.playnomics.android.messaging.Placement.java
com.playnomics.android.messaging.Position.java
com.playnomics.android.messaging.Target.java
com.playnomics.android.messaging.ui.IPlayViewFactory.java
com.playnomics.android.messaging.ui.PlayDialog.java
com.playnomics.android.messaging.ui.PlayViewFactory.java
com.playnomics.android.messaging.ui.PlayWebView.java
com.playnomics.android.messaging.ui.RenderTaskFactory.java
com.playnomics.android.push.GcmBroadcastReceiver.java
com.playnomics.android.push.GcmIntentService.java
com.playnomics.android.push.GcmManager.java
com.playnomics.android.sdk.IGoogleCloudMessageConfig.java
com.playnomics.android.sdk.IPlacementDelegate.java
com.playnomics.android.sdk.IPlaynomicsPlacementDelegate.java
com.playnomics.android.sdk.IPlaynomicsPlacementRawDelegate.java
com.playnomics.android.sdk.IPlaynomicsSegmentationDelegate.java
com.playnomics.android.sdk.IPushConfig.java
com.playnomics.android.sdk.IPushNotificationDelegate.java
com.playnomics.android.sdk.Playnomics.java
com.playnomics.android.segments.UserSegmentIds.java
com.playnomics.android.session.ActivityObserver.java
com.playnomics.android.session.GameSessionInfo.java
com.playnomics.android.session.HeartBeatHandler.java
com.playnomics.android.session.HeartBeatProducer.java
com.playnomics.android.session.IActivityObserver.java
com.playnomics.android.session.ICallbackProcessor.java
com.playnomics.android.session.IHeartBeatProducer.java
com.playnomics.android.session.SessionStateMachine.java
com.playnomics.android.session.Session.java
com.playnomics.android.session.TouchEventHandler.java
com.playnomics.android.session.WindowCallbackProxy.java
com.playnomics.android.util.AndroidLogger.java
com.playnomics.android.util.AsyncTaskRunner.java
com.playnomics.android.util.CacheFile.java
com.playnomics.android.util.Config.java
com.playnomics.android.util.ContextWrapper.java
com.playnomics.android.util.EventTime.java
com.playnomics.android.util.IAsyncCall.java
com.playnomics.android.util.IConfig.java
com.playnomics.android.util.IRandomGenerator.java
com.playnomics.android.util.LargeGeneratedId.java
com.playnomics.android.util.LogWriter.java
com.playnomics.android.util.Logger.java
com.playnomics.android.util.Util.java