public void sendMessage(GcmMessage message) { Message.Builder builder = Message.newBuilder() .withDestination(message.getGcmId()) .withPriority("high"); String key = message.isReceipt() ? "receipt" : "notification"; Message request = builder.withDataPart(key, "").build(); ListenableFuture<Result> future = signalSender.send(request, message); markOutboundMeter(key); Futures.addCallback(future, new FutureCallback<Result>() { @Override public void onSuccess(Result result) { if (result.isUnregistered() || result.isInvalidRegistrationId()) { handleBadRegistration(result); } else if (result.hasCanonicalRegistrationId()) { handleCanonicalRegistrationId(result); } else if (!result.isSuccess()) { handleGenericError(result); } else { success.mark(); } } @Override public void onFailure(Throwable throwable) { logger.warn("GCM Failed: " + throwable); } }, executor); }
Message.Builder builder = Message.newBuilder() .withDestination(message.getGcmId()) .withPriority("high");