package com.kickstarter.libs.gcm;

import android.content.Intent;

import com.google.android.gms.iid.InstanceIDListenerService;

import timber.log.Timber;

/**
 * Handle the creation, rotation, and updating of registration tokens.
 */
public class TokenListenerService extends InstanceIDListenerService {
  /**
   * Called if InstanceID token is updated. This may occur if the security of
   * the previous token had been compromised. This call is initiated by the
   * InstanceID provider.
   */
  @Override
  public void onTokenRefresh() {
    // Fetch updated Instance ID token and notify our app's server of any changes (if applicable).
    Timber.d("Token refreshed, creating new RegistrationService intent");
    final Intent intent = new Intent(this, RegistrationService.class);
    startService(intent);
  }
}

package com.kickstarter.libs.gcm;

import android.content.Intent;

import com.google.android.gms.iid.InstanceIDListenerService;

import timber.log.Timber;

public class TokenListenerService extends InstanceIDListenerService {
  /**
   * Called if the InstanceID token is updated. This can occur in a variety of scenarios - the
   * InstanceID service might periodically request that we refresh a token every 6 months, or
   * it could force a refresh if a token is invalidated (e.g. security issues, device information
   * is no longer valid.
   *
   * This call is generated by the InstanceID service, not by the app.
   */
  @Override
  public void onTokenRefresh() {
    // Fetch updated Instance ID token and notify our app's server of any changes (if applicable).
    Timber.d("Token refreshed, creating new RegistrationService intent");
    final Intent intent = new Intent(this, RegistrationService.class);
    startService(intent);
  }
}

Clarify role of token listener service