Fixed mic & speaker state issue in call
This commit is contained in:
parent
b8fa16b0a7
commit
9a7baf9685
166 changed files with 205 additions and 174 deletions
|
@ -424,6 +424,27 @@ public class CallActivity extends LinphoneGenericActivity
|
|||
updateCallsList();
|
||||
}
|
||||
};
|
||||
|
||||
mCore = LinphoneManager.getCore();
|
||||
if (mCore != null) {
|
||||
boolean recordAudioPermissionGranted =
|
||||
checkPermission(Manifest.permission.RECORD_AUDIO);
|
||||
if (!recordAudioPermissionGranted) {
|
||||
Log.w("[Call Activity] RECORD_AUDIO permission denied, muting microphone");
|
||||
mCore.enableMic(false);
|
||||
}
|
||||
|
||||
Call call = mCore.getCurrentCall();
|
||||
boolean videoEnabled =
|
||||
LinphonePreferences.instance().isVideoEnabled()
|
||||
&& call.getCurrentParams().videoEnabled();
|
||||
|
||||
if (videoEnabled) {
|
||||
mAudioManager = LinphoneManager.getAudioManager();
|
||||
mAudioManager.routeAudioToSpeaker();
|
||||
mSpeaker.setSelected(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -648,8 +669,6 @@ public class CallActivity extends LinphoneGenericActivity
|
|||
private void updateButtons() {
|
||||
Call call = mCore.getCurrentCall();
|
||||
|
||||
boolean recordAudioPermissionGranted = checkPermission(Manifest.permission.RECORD_AUDIO);
|
||||
mCore.enableMic(recordAudioPermissionGranted);
|
||||
mMicro.setSelected(!mCore.micEnabled());
|
||||
|
||||
mSpeaker.setSelected(mAudioManager.isAudioRoutedToSpeaker());
|
||||
|
@ -808,11 +827,6 @@ public class CallActivity extends LinphoneGenericActivity
|
|||
LinphonePreferences.instance().isVideoEnabled()
|
||||
&& call.getCurrentParams().videoEnabled();
|
||||
showVideoControls(videoEnabled);
|
||||
|
||||
if (videoEnabled) {
|
||||
mAudioManager.routeAudioToSpeaker();
|
||||
mSpeaker.setSelected(true);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean moveLocalPreview(View view, MotionEvent motionEvent) {
|
||||
|
|
|
@ -167,7 +167,7 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC
|
|||
}
|
||||
}
|
||||
if (mCall == null) {
|
||||
Log.e("Couldn't find outgoing call");
|
||||
Log.e("[Call Outgoing Activity] Couldn't find outgoing call");
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
@ -183,6 +183,13 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC
|
|||
mName.setText(displayName);
|
||||
}
|
||||
mNumber.setText(LinphoneUtils.getDisplayableAddress(address));
|
||||
|
||||
boolean recordAudioPermissionGranted = checkPermission(Manifest.permission.RECORD_AUDIO);
|
||||
if (!recordAudioPermissionGranted) {
|
||||
Log.w("[Call Outgoing Activity] RECORD_AUDIO permission denied, muting microphone");
|
||||
core.enableMic(false);
|
||||
mMicro.setSelected(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -291,6 +298,16 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC
|
|||
}
|
||||
}
|
||||
|
||||
private boolean checkPermission(String permission) {
|
||||
int granted = getPackageManager().checkPermission(permission, getPackageName());
|
||||
Log.i(
|
||||
"[Permission] "
|
||||
+ permission
|
||||
+ " permission is "
|
||||
+ (granted == PackageManager.PERMISSION_GRANTED ? "granted" : "denied"));
|
||||
return granted == PackageManager.PERMISSION_GRANTED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(
|
||||
int requestCode, String[] permissions, int[] grantResults) {
|
||||
|
|
Loading…
Reference in a new issue