Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bbd754b8 authored by John Wang's avatar John Wang
Browse files

Add ring back tone notification.

Some networks may not play ring back tone, RIL will send UNSOL ringback notification.

Apps can register for ring back tone msg and play tone to user for receiving ALERTING message.

The return value indicates to play or stop ring tone.
parent 0647b580
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line Diff line number Diff line
@@ -64,6 +64,7 @@ public abstract class BaseCommands implements CommandsInterface {
    protected RegistrantList mLineControlInfoRegistrants = new RegistrantList();
    protected RegistrantList mLineControlInfoRegistrants = new RegistrantList();
    protected RegistrantList mT53ClirInfoRegistrants = new RegistrantList();
    protected RegistrantList mT53ClirInfoRegistrants = new RegistrantList();
    protected RegistrantList mT53AudCntrlInfoRegistrants = new RegistrantList();
    protected RegistrantList mT53AudCntrlInfoRegistrants = new RegistrantList();
    protected RegistrantList mRingbackToneRegistrants = new RegistrantList();


    protected Registrant mSMSRegistrant;
    protected Registrant mSMSRegistrant;
    protected Registrant mNITZTimeRegistrant;
    protected Registrant mNITZTimeRegistrant;
@@ -569,6 +570,15 @@ public abstract class BaseCommands implements CommandsInterface {
        mT53AudCntrlInfoRegistrants.remove(h);
        mT53AudCntrlInfoRegistrants.remove(h);
    }
    }


    public void registerForRingbackTone(Handler h, int what, Object obj) {
        Registrant r = new Registrant (h, what, obj);
        mRingbackToneRegistrants.add(r);
    }

    public void unregisterForRingbackTone(Handler h) {
        mRingbackToneRegistrants.remove(h);
    }

    //***** Protected Methods
    //***** Protected Methods
    /**
    /**
     * Store new RadioState and send notification based on the changes
     * Store new RadioState and send notification based on the changes
+11 −0
Original line number Original line Diff line number Diff line
@@ -525,6 +525,17 @@ public interface CommandsInterface {
     void registerForCdmaOtaProvision(Handler h,int what, Object obj);
     void registerForCdmaOtaProvision(Handler h,int what, Object obj);
     void unregisterForCdmaOtaProvision(Handler h);
     void unregisterForCdmaOtaProvision(Handler h);


     /**
      * Registers the handler when out-band ringback tone is needed.<p>
      *
      *  Messages received from this:
      *  Message.obj will be an AsyncResult
      *  AsyncResult.userObj = obj
      *  AsyncResult.result = boolean. <p>
      */
     void registerForRingbackTone(Handler h, int what, Object obj);
     void unregisterForRingbackTone(Handler h);

    /**
    /**
     * Supply the ICC PIN to the ICC card
     * Supply the ICC PIN to the ICC card
     *
     *
+17 −0
Original line number Original line Diff line number Diff line
@@ -379,6 +379,23 @@ public interface Phone {


    void unregisterForIncomingRing(Handler h);
    void unregisterForIncomingRing(Handler h);


    /**
     * Notifies when out-band ringback tone is needed.<p>
     *
     *  Messages received from this:
     *  Message.obj will be an AsyncResult
     *  AsyncResult.userObj = obj
     *  AsyncResult.result = boolean, true to start play ringback tone
     *                       and false to stop. <p>
     */
    void registerForRingbackTone(Handler h, int what, Object obj);

    /**
     * Unregisters for ringback tone notification.
     */

    void unregisterForRingbackTone(Handler h);



    /**
    /**
     * Notifies when a voice connection has disconnected, either due to local
     * Notifies when a voice connection has disconnected, either due to local
+10 −0
Original line number Original line Diff line number Diff line
@@ -482,6 +482,16 @@ public abstract class PhoneBase extends Handler implements Phone {
        mServiceStateRegistrants.remove(h);
        mServiceStateRegistrants.remove(h);
    }
    }


    // Inherited documentation suffices.
    public void registerForRingbackTone(Handler h, int what, Object obj) {
        mCM.registerForRingbackTone(h,what,obj);
    }

    // Inherited documentation suffices.
    public void unregisterForRingbackTone(Handler h) {
        mCM.unregisterForRingbackTone(h);
    }

    /**
    /**
     * Subclasses of Phone probably want to replace this with a
     * Subclasses of Phone probably want to replace this with a
     * version scoped to their packages
     * version scoped to their packages
+8 −0
Original line number Original line Diff line number Diff line
@@ -331,6 +331,14 @@ public class PhoneProxy extends Handler implements Phone {
        mActivePhone.unregisterForEcmTimerReset(h);
        mActivePhone.unregisterForEcmTimerReset(h);
    }
    }


    public void registerForRingbackTone(Handler h, int what, Object obj) {
        mActivePhone.registerForRingbackTone(h,what,obj);
    }

    public void unregisterForRingbackTone(Handler h) {
        mActivePhone.unregisterForRingbackTone(h);
    }

    public boolean getIccRecordsLoaded() {
    public boolean getIccRecordsLoaded() {
        return mActivePhone.getIccRecordsLoaded();
        return mActivePhone.getIccRecordsLoaded();
    }
    }
Loading