/**
   * Registration point for transition into network attached.
   *
   * @param h handler to notify
   * @param what what code of message when delivered
   * @param obj in Message.obj
   */
  public void registerForNetworkAttached(Handler h, int what, Object obj) {
    Registrant r = new Registrant(h, what, obj);

    mNetworkAttachedRegistrants.add(r);
    if (ss.getState() == ServiceState.STATE_IN_SERVICE) {
      r.notifyRegistrant();
    }
  }
  /**
   * Registration point for transition out of packet service restricted zone.
   *
   * @param h handler to notify
   * @param what what code of message when delivered
   * @param obj placed in Message.obj
   */
  public void registerForPsRestrictedDisabled(Handler h, int what, Object obj) {
    Registrant r = new Registrant(h, what, obj);
    mPsRestrictDisabledRegistrants.add(r);

    if (mRestrictedState.isPsRestricted()) {
      r.notifyRegistrant();
    }
  }
  /**
   * Registration point for combined roaming off combined roaming is true when roaming is true and
   * ONS differs SPN
   *
   * @param h handler to notify
   * @param what what code of message when delivered
   * @param obj placed in Message.obj
   */
  public void registerForRoamingOff(Handler h, int what, Object obj) {
    Registrant r = new Registrant(h, what, obj);
    mRoamingOffRegistrants.add(r);

    if (!ss.getRoaming()) {
      r.notifyRegistrant();
    }
  }
  /**
   * Registration point for transition into DataConnection detached.
   *
   * @param h handler to notify
   * @param what what code of message when delivered
   * @param obj placed in Message.obj
   */
  public void registerForDataConnectionDetached(Handler h, int what, Object obj) {
    Registrant r = new Registrant(h, what, obj);
    mDetachedRegistrants.add(r);

    if (getCurrentDataConnectionState() != ServiceState.STATE_IN_SERVICE) {
      r.notifyRegistrant();
    }
  }
  /**
   * Registration point for combined roaming on of mobile data combined roaming is true when roaming
   * is true and ONS differs SPN
   *
   * @param h handler to notify
   * @param what what code of message when delivered
   * @param obj placed in Message.obj
   */
  public void registerForDataRoamingOn(Handler h, int what, Object obj) {
    Registrant r = new Registrant(h, what, obj);
    mDataRoamingOnRegistrants.add(r);

    if (mSS.getDataRoaming()) {
      r.notifyRegistrant();
    }
  }
 public void registerForVoiceCallEnded(Handler h, int what, Object obj) {
   Registrant r = new Registrant(h, what, obj);
   voiceCallEndedRegistrants.add(r);
 }
 /**
  * Clients automatically register for CDMA subscription source changed event when they get an
  * instance of this object.
  */
 private void registerForCdmaSubscriptionSourceChanged(Handler h, int what, Object obj) {
   Registrant r = new Registrant(h, what, obj);
   mCdmaSubscriptionSourceChangedRegistrants.add(r);
 }
 /**
  * Registration for DataConnection RIL Data Radio Technology changing. The new radio technology
  * will be returned AsyncResult#result as an Integer Object. The AsyncResult will be in the
  * notification Message#obj.
  *
  * @param h handler to notify
  * @param what what code of message when delivered
  * @param obj placed in Message.obj
  */
 public void registerForDataRegStateOrRatChanged(Handler h, int what, Object obj) {
   Registrant r = new Registrant(h, what, obj);
   mDataRegStateOrRatChangedRegistrants.add(r);
   notifyDataRegStateRilRadioTechnologyChanged();
 }
 void registerForModemProfileReady(Handler h, int what, Object obj) {
   Registrant r = new Registrant(h, what, obj);
   mModemDataProfileRegistrants.add(r);
 }
 // ***** Public Methods
 @Override
 public void registerForVoiceCallStarted(Handler h, int what, Object obj) {
   Registrant r = new Registrant(h, what, obj);
   mVoiceCallStartedRegistrants.add(r);
 }