Fix from Jehan for sound issue in ICS
This commit is contained in:
parent
aacf792f44
commit
7eb4e1be47
3 changed files with 27 additions and 17 deletions
|
@ -33,6 +33,7 @@ import android.os.Handler;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentActivity;
|
import android.support.v4.app.FragmentActivity;
|
||||||
import android.support.v4.app.FragmentTransaction;
|
import android.support.v4.app.FragmentTransaction;
|
||||||
|
import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
import android.view.animation.Animation;
|
import android.view.animation.Animation;
|
||||||
|
@ -402,4 +403,11 @@ public class InCallActivity extends FragmentActivity implements
|
||||||
|
|
||||||
setCallControlsVisibleAndRemoveCallbacks();
|
setCallControlsVisibleAndRemoveCallbacks();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
|
if (LinphoneUtils.onKeyVolumeAdjust(keyCode)) return true;
|
||||||
|
if (LinphoneUtils.onKeyBackGoHome(this, keyCode, event)) return true;
|
||||||
|
return super.onKeyDown(keyCode, event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,6 +93,7 @@ import android.media.AudioManager;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.NetworkInfo;
|
import android.net.NetworkInfo;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.PowerManager;
|
import android.os.PowerManager;
|
||||||
import android.os.PowerManager.WakeLock;
|
import android.os.PowerManager.WakeLock;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
|
@ -905,8 +906,6 @@ public final class LinphoneManager implements LinphoneCoreListener {
|
||||||
|
|
||||||
public void textReceived(LinphoneCore lc, LinphoneChatRoom cr,
|
public void textReceived(LinphoneCore lc, LinphoneChatRoom cr,
|
||||||
LinphoneAddress from, String message) {
|
LinphoneAddress from, String message) {
|
||||||
//TODO : Remove
|
|
||||||
Log.e("LinphoneManager, Message received from " + from + ": " + message);
|
|
||||||
for (LinphoneSimpleListener listener : getSimpleListeners(LinphoneActivity.class)) {
|
for (LinphoneSimpleListener listener : getSimpleListeners(LinphoneActivity.class)) {
|
||||||
((LinphoneActivity) listener).onMessageReceived(from, message);
|
((LinphoneActivity) listener).onMessageReceived(from, message);
|
||||||
}
|
}
|
||||||
|
@ -998,7 +997,7 @@ public final class LinphoneManager implements LinphoneCoreListener {
|
||||||
|
|
||||||
if (state == State.Connected) {
|
if (state == State.Connected) {
|
||||||
if (Hacks.needSoftvolume() || sLPref.useSoftvolume()) {
|
if (Hacks.needSoftvolume() || sLPref.useSoftvolume()) {
|
||||||
adjustSoftwareVolume(0); // Synchronize
|
adjustVolume(0); // Synchronize
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1227,7 +1226,8 @@ public final class LinphoneManager implements LinphoneCoreListener {
|
||||||
return extractADisplayName(r, linphoneAddress);
|
return extractADisplayName(r, linphoneAddress);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void adjustSoftwareVolume(int i) {
|
public void adjustVolume(int i) {
|
||||||
|
if (Build.VERSION.SDK_INT<15) {
|
||||||
int oldVolume = mAudioManager.getStreamVolume(LINPHONE_VOLUME_STREAM);
|
int oldVolume = mAudioManager.getStreamVolume(LINPHONE_VOLUME_STREAM);
|
||||||
int maxVolume = mAudioManager.getStreamMaxVolume(LINPHONE_VOLUME_STREAM);
|
int maxVolume = mAudioManager.getStreamMaxVolume(LINPHONE_VOLUME_STREAM);
|
||||||
|
|
||||||
|
@ -1236,6 +1236,9 @@ public final class LinphoneManager implements LinphoneCoreListener {
|
||||||
if (nextVolume < 0) nextVolume = 0;
|
if (nextVolume < 0) nextVolume = 0;
|
||||||
|
|
||||||
mLc.adjustSoftwareVolume((nextVolume - maxVolume)* dbStep);
|
mLc.adjustSoftwareVolume((nextVolume - maxVolume)* dbStep);
|
||||||
|
} else
|
||||||
|
// starting from ICS, volume must be adjusted by the application, at least for STREAM_VOICE_CALL volume stream
|
||||||
|
mAudioManager.adjustStreamVolume(LINPHONE_VOLUME_STREAM, i<0?AudioManager.ADJUST_LOWER:AudioManager.ADJUST_RAISE, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Boolean isProximitySensorNearby(final SensorEvent event) {
|
public static Boolean isProximitySensorNearby(final SensorEvent event) {
|
||||||
|
|
|
@ -28,15 +28,13 @@ import java.net.URL;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import org.linphone.core.LinphoneAddress;
|
import org.linphone.core.LinphoneAddress;
|
||||||
import org.linphone.core.LinphoneCall;
|
import org.linphone.core.LinphoneCall;
|
||||||
|
import org.linphone.core.LinphoneCall.State;
|
||||||
import org.linphone.core.LinphoneCore;
|
import org.linphone.core.LinphoneCore;
|
||||||
import org.linphone.core.Log;
|
import org.linphone.core.Log;
|
||||||
import org.linphone.core.LinphoneCall.State;
|
|
||||||
import org.linphone.mediastream.Version;
|
import org.linphone.mediastream.Version;
|
||||||
import org.linphone.mediastream.video.capture.hwconf.Hacks;
|
import org.linphone.mediastream.video.capture.hwconf.Hacks;
|
||||||
|
|
||||||
|
@ -47,6 +45,7 @@ import android.content.Intent;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.Build;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.View.OnClickListener;
|
import android.view.View.OnClickListener;
|
||||||
|
@ -74,9 +73,9 @@ public final class LinphoneUtils {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean onKeyVolumeSoftAdjust(int keyCode) {
|
public static boolean onKeyVolumeAdjust(int keyCode) {
|
||||||
if (!((keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
|
if (!((keyCode == KeyEvent.KEYCODE_VOLUME_UP || keyCode == KeyEvent.KEYCODE_VOLUME_DOWN)
|
||||||
&& Hacks.needSoftvolume())) {
|
&& (Hacks.needSoftvolume())|| Build.VERSION.SDK_INT >= 15)) {
|
||||||
return false; // continue
|
return false; // continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,9 +83,9 @@ public final class LinphoneUtils {
|
||||||
Log.i("Couldn't change softvolume has service is not running");
|
Log.i("Couldn't change softvolume has service is not running");
|
||||||
return true;
|
return true;
|
||||||
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
|
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
|
||||||
LinphoneManager.getInstance().adjustSoftwareVolume(1);
|
LinphoneManager.getInstance().adjustVolume(1);
|
||||||
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
|
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN) {
|
||||||
LinphoneManager.getInstance().adjustSoftwareVolume(-1);
|
LinphoneManager.getInstance().adjustVolume(-1);
|
||||||
}
|
}
|
||||||
return preventVolumeBarToDisplay;
|
return preventVolumeBarToDisplay;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue