am a1e87397: (-s ours) am 7ae84204: am ba7f0d2a: Merge "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)"
* commit 'a1e873975704814416ee4d5023bf0740ec195ec0':
Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)
diff --git a/java/com/android/server/sip/SipService.java b/java/com/android/server/sip/SipService.java
index 38a683e..97afc81 100644
--- a/java/com/android/server/sip/SipService.java
+++ b/java/com/android/server/sip/SipService.java
@@ -77,8 +77,7 @@
private Context mContext;
private String mLocalIp;
- private String mNetworkType;
- private boolean mConnected;
+ private int mNetworkType = -1;
private SipWakeupTimer mTimer;
private WifiManager.WifiLock mWifiLock;
private boolean mSipOnWifiOnly;
@@ -147,9 +146,7 @@
android.Manifest.permission.USE_SIP, null);
localProfile.setCallingUid(Binder.getCallingUid());
try {
- boolean addingFirstProfile = mSipGroups.isEmpty();
createGroup(localProfile);
- if (addingFirstProfile && !mSipGroups.isEmpty()) registerReceivers();
} catch (SipException e) {
Log.e(TAG, "openToMakeCalls()", e);
// TODO: how to send the exception back
@@ -170,12 +167,11 @@
if (DEBUG) Log.d(TAG, "open3: " + localProfile.getUriString() + ": "
+ incomingCallPendingIntent + ": " + listener);
try {
- boolean addingFirstProfile = mSipGroups.isEmpty();
SipSessionGroupExt group = createGroup(localProfile,
incomingCallPendingIntent, listener);
- if (addingFirstProfile && !mSipGroups.isEmpty()) registerReceivers();
if (localProfile.getAutoRegistration()) {
group.openToReceiveCalls();
+ updateWakeLocks();
}
} catch (SipException e) {
Log.e(TAG, "openToReceiveCalls()", e);
@@ -210,10 +206,7 @@
notifyProfileRemoved(group.getLocalProfile());
group.close();
- if (!anyOpenedToReceiveCalls()) {
- unregisterReceivers();
- mMyWakeLock.reset(); // in case there's leak
- }
+ updateWakeLocks();
}
public synchronized boolean isOpened(String localProfileUri) {
@@ -260,7 +253,7 @@
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.USE_SIP, null);
localProfile.setCallingUid(Binder.getCallingUid());
- if (!mConnected) return null;
+ if (mNetworkType == -1) return null;
try {
SipSessionGroupExt group = createGroup(localProfile);
return group.createSession(listener);
@@ -328,6 +321,9 @@
Intent intent = new Intent(SipManager.ACTION_SIP_ADD_PHONE);
intent.putExtra(SipManager.EXTRA_LOCAL_URI, localProfile.getUriString());
mContext.sendBroadcast(intent);
+ if (mSipGroups.size() == 1) {
+ registerReceivers();
+ }
}
private void notifyProfileRemoved(SipProfile localProfile) {
@@ -335,13 +331,9 @@
Intent intent = new Intent(SipManager.ACTION_SIP_REMOVE_PHONE);
intent.putExtra(SipManager.EXTRA_LOCAL_URI, localProfile.getUriString());
mContext.sendBroadcast(intent);
- }
-
- private boolean anyOpenedToReceiveCalls() {
- for (SipSessionGroupExt group : mSipGroups.values()) {
- if (group.isOpenedToReceiveCalls()) return true;
+ if (mSipGroups.size() == 0) {
+ unregisterReceivers();
}
- return false;
}
private void stopPortMappingMeasurement() {
@@ -526,7 +518,7 @@
public void openToReceiveCalls() throws SipException {
mOpenedToReceiveCalls = true;
- if (mConnected) {
+ if (mNetworkType != -1) {
mSipGroup.openToReceiveCalls(this);
mAutoRegistration.start(mSipGroup);
}
@@ -905,7 +897,7 @@
mMyWakeLock.release(mSession);
if (mSession != null) {
mSession.setListener(null);
- if (mConnected && mRegistered) mSession.unregister();
+ if (mNetworkType != -1 && mRegistered) mSession.unregister();
}
mTimer.cancel(this);
@@ -948,7 +940,7 @@
mProxy.onRegistrationFailed(mSession, mErrorCode,
mErrorMessage);
}
- } else if (!mConnected) {
+ } else if (mNetworkType == -1) {
mProxy.onRegistrationFailed(mSession,
SipErrorCode.DATA_CONNECTION_LOST,
"no data connection");
@@ -980,7 +972,7 @@
mErrorCode = SipErrorCode.NO_ERROR;
mErrorMessage = null;
if (DEBUG) Log.d(TAG, "registering");
- if (mConnected) {
+ if (mNetworkType != -1) {
mMyWakeLock.acquire(mSession);
mSession.register(EXPIRY_TIME);
}
@@ -1134,7 +1126,25 @@
// Reset variables maintained by ConnectivityReceiver.
mWifiLock.release();
- mConnected = false;
+ mNetworkType = -1;
+ }
+
+ private void updateWakeLocks() {
+ for (SipSessionGroupExt group : mSipGroups.values()) {
+ if (group.isOpenedToReceiveCalls()) {
+ // Also grab the WifiLock when we are disconnected, so the
+ // system will keep trying to reconnect. It will be released
+ // when the system eventually connects to something else.
+ if (mNetworkType == ConnectivityManager.TYPE_WIFI || mNetworkType == -1) {
+ mWifiLock.acquire();
+ } else {
+ mWifiLock.release();
+ }
+ return;
+ }
+ }
+ mWifiLock.release();
+ mMyWakeLock.reset(); // in case there's a leak
}
private synchronized void onConnectivityChanged(NetworkInfo info) {
@@ -1144,8 +1154,7 @@
// getActiveNetworkInfo(), which is critical to our SIP stack. To
// solve this, if it is a DISCONNECTED event to our current network,
// respect it. Otherwise get a new one from getActiveNetworkInfo().
- if (info == null || info.isConnected() ||
- !info.getTypeName().equals(mNetworkType)) {
+ if (info == null || info.isConnected() || info.getType() != mNetworkType) {
ConnectivityManager cm = (ConnectivityManager)
mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
info = cm.getActiveNetworkInfo();
@@ -1153,12 +1162,13 @@
// Some devices limit SIP on Wi-Fi. In this case, if we are not on
// Wi-Fi, treat it as a DISCONNECTED event.
- boolean connected = (info != null && info.isConnected() &&
- (!mSipOnWifiOnly || info.getType() == ConnectivityManager.TYPE_WIFI));
- String networkType = connected ? info.getTypeName() : "null";
+ int networkType = (info != null && info.isConnected()) ? info.getType() : -1;
+ if (mSipOnWifiOnly && networkType != ConnectivityManager.TYPE_WIFI) {
+ networkType = -1;
+ }
// Ignore the event if the current active network is not changed.
- if (connected == mConnected && networkType.equals(mNetworkType)) {
+ if (mNetworkType == networkType) {
return;
}
if (DEBUG) {
@@ -1167,39 +1177,24 @@
}
try {
- if (mConnected) {
+ if (mNetworkType != -1) {
mLocalIp = null;
stopPortMappingMeasurement();
for (SipSessionGroupExt group : mSipGroups.values()) {
group.onConnectivityChanged(false);
}
}
-
- mConnected = connected;
mNetworkType = networkType;
- if (connected) {
+ if (mNetworkType != -1) {
mLocalIp = determineLocalIp();
mKeepAliveInterval = -1;
mLastGoodKeepAliveInterval = DEFAULT_KEEPALIVE_INTERVAL;
for (SipSessionGroupExt group : mSipGroups.values()) {
group.onConnectivityChanged(true);
}
-
- // If we are on Wi-Fi, grab the WifiLock. Otherwise release it.
- if (info.getType() == ConnectivityManager.TYPE_WIFI) {
- mWifiLock.acquire();
- } else {
- mWifiLock.release();
- }
- } else {
- // Always grab the WifiLock when we are disconnected, so the
- // system will keep trying to reconnect. We will release it
- // if we eventually connect via something else.
- mWifiLock.acquire();
-
- mMyWakeLock.reset(); // in case there's a leak
}
+ updateWakeLocks();
} catch (SipException e) {
Log.e(TAG, "onConnectivityChanged()", e);
}
diff --git a/jni/rtp/AudioGroup.cpp b/jni/rtp/AudioGroup.cpp
index 270b494..1139577 100644
--- a/jni/rtp/AudioGroup.cpp
+++ b/jni/rtp/AudioGroup.cpp
@@ -510,7 +510,7 @@
bool start()
{
if (run("Network", ANDROID_PRIORITY_AUDIO) != NO_ERROR) {
- LOGE("cannot start network thread");
+ ALOGE("cannot start network thread");
return false;
}
return true;
@@ -530,7 +530,7 @@
bool start()
{
if (run("Device", ANDROID_PRIORITY_AUDIO) != NO_ERROR) {
- LOGE("cannot start device thread");
+ ALOGE("cannot start device thread");
return false;
}
return true;
@@ -573,7 +573,7 @@
{
mEventQueue = epoll_create(2);
if (mEventQueue == -1) {
- LOGE("epoll_create: %s", strerror(errno));
+ ALOGE("epoll_create: %s", strerror(errno));
return false;
}
@@ -583,7 +583,7 @@
// Create device socket.
int pair[2];
if (socketpair(AF_UNIX, SOCK_DGRAM, 0, pair)) {
- LOGE("socketpair: %s", strerror(errno));
+ ALOGE("socketpair: %s", strerror(errno));
return false;
}
mDeviceSocket = pair[0];
@@ -593,7 +593,7 @@
if (!mChain->set(AudioStream::NORMAL, pair[1], NULL, NULL,
sampleRate, sampleCount, -1, -1)) {
close(pair[1]);
- LOGE("cannot initialize device stream");
+ ALOGE("cannot initialize device stream");
return false;
}
@@ -602,7 +602,7 @@
tv.tv_sec = 0;
tv.tv_usec = 1000 * sampleCount / sampleRate * 500;
if (setsockopt(pair[0], SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv))) {
- LOGE("setsockopt: %s", strerror(errno));
+ ALOGE("setsockopt: %s", strerror(errno));
return false;
}
@@ -611,7 +611,7 @@
event.events = EPOLLIN;
event.data.ptr = mChain;
if (epoll_ctl(mEventQueue, EPOLL_CTL_ADD, pair[1], &event)) {
- LOGE("epoll_ctl: %s", strerror(errno));
+ ALOGE("epoll_ctl: %s", strerror(errno));
return false;
}
@@ -675,7 +675,7 @@
event.events = EPOLLIN;
event.data.ptr = stream;
if (epoll_ctl(mEventQueue, EPOLL_CTL_ADD, stream->mSocket, &event)) {
- LOGE("epoll_ctl: %s", strerror(errno));
+ ALOGE("epoll_ctl: %s", strerror(errno));
return false;
}
@@ -699,7 +699,7 @@
AudioStream *target = stream->mNext;
if (target->mSocket == socket) {
if (epoll_ctl(mEventQueue, EPOLL_CTL_DEL, socket, NULL)) {
- LOGE("epoll_ctl: %s", strerror(errno));
+ ALOGE("epoll_ctl: %s", strerror(errno));
return false;
}
stream->mNext = target->mNext;
@@ -749,7 +749,7 @@
epoll_event events[count];
count = epoll_wait(mGroup->mEventQueue, events, count, deadline);
if (count == -1) {
- LOGE("epoll_wait: %s", strerror(errno));
+ ALOGE("epoll_wait: %s", strerror(errno));
return false;
}
for (int i = 0; i < count; ++i) {
@@ -792,7 +792,7 @@
sampleRate) != NO_ERROR || output <= 0 ||
AudioRecord::getMinFrameCount(&input, sampleRate,
AUDIO_FORMAT_PCM_16_BIT, 1) != NO_ERROR || input <= 0) {
- LOGE("cannot compute frame count");
+ ALOGE("cannot compute frame count");
return false;
}
ALOGD("reported frame count: output %d, input %d", output, input);
@@ -812,7 +812,7 @@
AUDIO_CHANNEL_OUT_MONO, output) != NO_ERROR || record.set(
AUDIO_SOURCE_VOICE_COMMUNICATION, sampleRate, AUDIO_FORMAT_PCM_16_BIT,
AUDIO_CHANNEL_IN_MONO, input) != NO_ERROR) {
- LOGE("cannot initialize audio device");
+ ALOGE("cannot initialize audio device");
return false;
}
ALOGD("latency: output %d, input %d", track.latency(), record.latency());
@@ -884,7 +884,7 @@
toWrite -= buffer.frameCount;
track.releaseBuffer(&buffer);
} else if (status != TIMED_OUT && status != WOULD_BLOCK) {
- LOGE("cannot write to AudioTrack");
+ ALOGE("cannot write to AudioTrack");
goto exit;
}
}
@@ -900,14 +900,14 @@
toRead -= buffer.frameCount;
record.releaseBuffer(&buffer);
} else if (status != TIMED_OUT && status != WOULD_BLOCK) {
- LOGE("cannot read from AudioRecord");
+ ALOGE("cannot read from AudioRecord");
goto exit;
}
}
}
if (chances <= 0) {
- LOGW("device loop timeout");
+ ALOGW("device loop timeout");
while (recv(deviceSocket, &c, 1, MSG_DONTWAIT) == 1);
}
@@ -1008,7 +1008,7 @@
delete stream;
delete codec;
close(socket);
- env->SetIntField(thiz, gNative, NULL);
+ env->SetIntField(thiz, gNative, 0);
}
void remove(JNIEnv *env, jobject thiz, jint socket)
@@ -1017,7 +1017,7 @@
if (group) {
if (socket == -1 || !group->remove(socket)) {
delete group;
- env->SetIntField(thiz, gNative, NULL);
+ env->SetIntField(thiz, gNative, 0);
}
}
}
@@ -1051,7 +1051,7 @@
{
gRandom = open("/dev/urandom", O_RDONLY);
if (gRandom == -1) {
- LOGE("urandom: %s", strerror(errno));
+ ALOGE("urandom: %s", strerror(errno));
return -1;
}
@@ -1060,7 +1060,7 @@
(gNative = env->GetFieldID(clazz, "mNative", "I")) == NULL ||
(gMode = env->GetFieldID(clazz, "mMode", "I")) == NULL ||
env->RegisterNatives(clazz, gMethods, NELEM(gMethods)) < 0) {
- LOGE("JNI registration failed");
+ ALOGE("JNI registration failed");
return -1;
}
return 0;
diff --git a/jni/rtp/EchoSuppressor.cpp b/jni/rtp/EchoSuppressor.cpp
index 6127d3c..e223136 100644
--- a/jni/rtp/EchoSuppressor.cpp
+++ b/jni/rtp/EchoSuppressor.cpp
@@ -177,7 +177,7 @@
}
}
}
- //LOGI("corr^2 %.5f, var %8.0f %8.0f, latency %d", corr2, varX, varY,
+ //ALOGI("corr^2 %.5f, var %8.0f %8.0f, latency %d", corr2, varX, varY,
// latency * mScale);
// Do echo suppression.
diff --git a/jni/rtp/RtpStream.cpp b/jni/rtp/RtpStream.cpp
index f5efc17..6540099 100644
--- a/jni/rtp/RtpStream.cpp
+++ b/jni/rtp/RtpStream.cpp
@@ -116,7 +116,7 @@
if ((clazz = env->FindClass("android/net/rtp/RtpStream")) == NULL ||
(gNative = env->GetFieldID(clazz, "mNative", "I")) == NULL ||
env->RegisterNatives(clazz, gMethods, NELEM(gMethods)) < 0) {
- LOGE("JNI registration failed");
+ ALOGE("JNI registration failed");
return -1;
}
return 0;