OSDN Git Service

Add callback for connections to be notified when the ringer is silenced.
authorBryce Lee <brycelee@google.com>
Tue, 17 Nov 2015 23:13:29 +0000 (15:13 -0800)
committerBryce Lee <brycelee@google.com>
Tue, 17 Nov 2015 23:13:29 +0000 (15:13 -0800)
Bug: 25644529
Change-Id: Ie7dc9028cf6243d98b2d87ca4c8b3ffcd31e3676

telecomm/java/android/telecom/Connection.java
telecomm/java/android/telecom/ConnectionService.java
telecomm/java/com/android/internal/telecom/IConnectionService.aidl

index 430760a..520a1d7 100644 (file)
@@ -1781,6 +1781,13 @@ public abstract class Connection extends Conferenceable {
     public void onReject(String replyMessage) {}
 
     /**
+     * Notifies the Connection of a request to silence the ringer.
+     *
+     * @hide
+     */
+    public void onSilence() {}
+
+    /**
      * Notifies this Connection whether the user wishes to proceed with the post-dial DTMF codes.
      */
     public void onPostDialContinue(boolean proceed) {}
index 4e330bd..ceaa1bf 100644 (file)
@@ -102,6 +102,7 @@ public abstract class ConnectionService extends Service {
     private static final int MSG_MERGE_CONFERENCE = 18;
     private static final int MSG_SWAP_CONFERENCE = 19;
     private static final int MSG_REJECT_WITH_MESSAGE = 20;
+    private static final int MSG_SILENCE = 21;
 
     private static Connection sNullConnection;
 
@@ -175,6 +176,11 @@ public abstract class ConnectionService extends Service {
         }
 
         @Override
+        public void silence(String callId) {
+            mHandler.obtainMessage(MSG_SILENCE, callId).sendToTarget();
+        }
+
+        @Override
         public void disconnect(String callId) {
             mHandler.obtainMessage(MSG_DISCONNECT, callId).sendToTarget();
         }
@@ -317,6 +323,9 @@ public abstract class ConnectionService extends Service {
                 case MSG_DISCONNECT:
                     disconnect((String) msg.obj);
                     break;
+                case MSG_SILENCE:
+                    silence((String) msg.obj);
+                    break;
                 case MSG_HOLD:
                     hold((String) msg.obj);
                     break;
@@ -704,6 +713,11 @@ public abstract class ConnectionService extends Service {
         findConnectionForAction(callId, "reject").onReject(rejectWithMessage);
     }
 
+    private void silence(String callId) {
+        Log.d(this, "silence %s", callId);
+        findConnectionForAction(callId, "silence").onSilence();
+    }
+
     private void disconnect(String callId) {
         Log.d(this, "disconnect %s", callId);
         if (mConnectionById.containsKey(callId)) {
index dd253cf..8a54add 100644 (file)
@@ -54,6 +54,8 @@ oneway interface IConnectionService {
 
     void disconnect(String callId);
 
+    void silence(String callId);
+
     void hold(String callId);
 
     void unhold(String callId);