summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/sip/SipSessionListenerProxy.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/sip/SipSessionListenerProxy.java')
-rw-r--r--services/java/com/android/server/sip/SipSessionListenerProxy.java217
1 files changed, 0 insertions, 217 deletions
diff --git a/services/java/com/android/server/sip/SipSessionListenerProxy.java b/services/java/com/android/server/sip/SipSessionListenerProxy.java
deleted file mode 100644
index f8be0a8..0000000
--- a/services/java/com/android/server/sip/SipSessionListenerProxy.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.sip;
-
-import android.net.sip.ISipSession;
-import android.net.sip.ISipSessionListener;
-import android.net.sip.SipProfile;
-import android.os.DeadObjectException;
-import android.util.Log;
-
-/** Class to help safely run a callback in a different thread. */
-class SipSessionListenerProxy extends ISipSessionListener.Stub {
- private static final String TAG = "SipSession";
-
- private ISipSessionListener mListener;
-
- public void setListener(ISipSessionListener listener) {
- mListener = listener;
- }
-
- public ISipSessionListener getListener() {
- return mListener;
- }
-
- private void proxy(Runnable runnable) {
- // One thread for each calling back.
- // Note: Guarantee ordering if the issue becomes important. Currently,
- // the chance of handling two callback events at a time is none.
- new Thread(runnable, "SipSessionCallbackThread").start();
- }
-
- public void onCalling(final ISipSession session) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onCalling(session);
- } catch (Throwable t) {
- handle(t, "onCalling()");
- }
- }
- });
- }
-
- public void onRinging(final ISipSession session, final SipProfile caller,
- final String sessionDescription) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onRinging(session, caller, sessionDescription);
- } catch (Throwable t) {
- handle(t, "onRinging()");
- }
- }
- });
- }
-
- public void onRingingBack(final ISipSession session) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onRingingBack(session);
- } catch (Throwable t) {
- handle(t, "onRingingBack()");
- }
- }
- });
- }
-
- public void onCallEstablished(final ISipSession session,
- final String sessionDescription) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onCallEstablished(session, sessionDescription);
- } catch (Throwable t) {
- handle(t, "onCallEstablished()");
- }
- }
- });
- }
-
- public void onCallEnded(final ISipSession session) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onCallEnded(session);
- } catch (Throwable t) {
- handle(t, "onCallEnded()");
- }
- }
- });
- }
-
- public void onCallBusy(final ISipSession session) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onCallBusy(session);
- } catch (Throwable t) {
- handle(t, "onCallBusy()");
- }
- }
- });
- }
-
- public void onCallChangeFailed(final ISipSession session,
- final int errorCode, final String message) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onCallChangeFailed(session, errorCode, message);
- } catch (Throwable t) {
- handle(t, "onCallChangeFailed()");
- }
- }
- });
- }
-
- public void onError(final ISipSession session, final int errorCode,
- final String message) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onError(session, errorCode, message);
- } catch (Throwable t) {
- handle(t, "onError()");
- }
- }
- });
- }
-
- public void onRegistering(final ISipSession session) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onRegistering(session);
- } catch (Throwable t) {
- handle(t, "onRegistering()");
- }
- }
- });
- }
-
- public void onRegistrationDone(final ISipSession session,
- final int duration) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onRegistrationDone(session, duration);
- } catch (Throwable t) {
- handle(t, "onRegistrationDone()");
- }
- }
- });
- }
-
- public void onRegistrationFailed(final ISipSession session,
- final int errorCode, final String message) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onRegistrationFailed(session, errorCode, message);
- } catch (Throwable t) {
- handle(t, "onRegistrationFailed()");
- }
- }
- });
- }
-
- public void onRegistrationTimeout(final ISipSession session) {
- if (mListener == null) return;
- proxy(new Runnable() {
- public void run() {
- try {
- mListener.onRegistrationTimeout(session);
- } catch (Throwable t) {
- handle(t, "onRegistrationTimeout()");
- }
- }
- });
- }
-
- private void handle(Throwable t, String message) {
- if (t instanceof DeadObjectException) {
- mListener = null;
- // This creates race but it's harmless. Just don't log the error
- // when it happens.
- } else if (mListener != null) {
- Log.w(TAG, message, t);
- }
- }
-}