Disable media encryption mandatory setting if media encryption set to None + display security icon on incoming call view if media encryption is mandatory

This commit is contained in:
Sylvain Berfini 2019-11-14 10:01:08 +01:00
parent 9cab87e847
commit f96239bcda
3 changed files with 23 additions and 5 deletions

View file

@ -288,9 +288,19 @@ public class CallStatusBarFragment extends Fragment {
public void refreshStatusItems(final Call call) {
if (call != null) {
MediaEncryption mediaEncryption = call.getCurrentParams().getMediaEncryption();
if (call.getDir() == Call.Dir.Incoming
&& call.getState() == Call.State.IncomingReceived
&& LinphonePreferences.instance().isMediaEncryptionMandatory()) {
// If the incoming call view is displayed while encryption is mandatory,
// we can safely show the security_ok icon
mEncryption.setImageResource(R.drawable.security_ok);
mEncryption.setVisibility(View.VISIBLE);
return;
}
MediaEncryption mediaEncryption = call.getCurrentParams().getMediaEncryption();
mEncryption.setVisibility(View.VISIBLE);
if (mediaEncryption == MediaEncryption.SRTP
|| (mediaEncryption == MediaEncryption.ZRTP
&& call.getAuthenticationTokenVerified())

View file

@ -167,8 +167,15 @@ public class CallSettingsFragment extends SettingsFragment {
@Override
public void onListValueChanged(int position, String newLabel, String newValue) {
try {
mPrefs.setMediaEncryption(
MediaEncryption.fromInt(Integer.parseInt(newValue)));
MediaEncryption encryption =
MediaEncryption.fromInt(Integer.parseInt(newValue));
mPrefs.setMediaEncryption(encryption);
if (encryption == MediaEncryption.None) {
mMediaEncryptionMandatory.setChecked(false);
}
mMediaEncryptionMandatory.setEnabled(
encryption != MediaEncryption.None);
} catch (NumberFormatException nfe) {
Log.e(nfe);
}
@ -248,7 +255,8 @@ public class CallSettingsFragment extends SettingsFragment {
mDndPermissionSettings.setVisibility(
Version.sdkAboveOrEqual(Version.API23_MARSHMALLOW_60) ? View.VISIBLE : View.GONE);
mMediaEncryptionMandatory.setChecked(mPrefs.acceptMediaEncryptionMandatory());
mMediaEncryptionMandatory.setChecked(mPrefs.isMediaEncryptionMandatory());
mMediaEncryptionMandatory.setEnabled(mPrefs.getMediaEncryption() != MediaEncryption.None);
setListeners();
}

View file

@ -459,7 +459,7 @@ public class LinphonePreferences {
// End of contact settings
// Call settings
public boolean acceptMediaEncryptionMandatory() {
public boolean isMediaEncryptionMandatory() {
return getLc().isMediaEncryptionMandatory();
}