From 2b561b5ca6f2d158479a67298c9c94fd62c3b17b Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 22 Nov 2012 15:19:14 +0100 Subject: [PATCH] Prevent app from crashing --- src/org/linphone/PreferencesFragment.java | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/src/org/linphone/PreferencesFragment.java b/src/org/linphone/PreferencesFragment.java index 914f41de4..84e764310 100644 --- a/src/org/linphone/PreferencesFragment.java +++ b/src/org/linphone/PreferencesFragment.java @@ -394,16 +394,29 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa } private void initializeMediaEncryptionPreferences() { - LinphoneCore lc = LinphoneManager.getLc(); + LinphoneCore lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); + + List mencEntries=new ArrayList(); + List mencEntryValues=new ArrayList(); + mencEntries.add(getString(R.string.media_encryption_none)); + mencEntryValues.add(getString(R.string.pref_media_encryption_key_none)); + + if (lc == null) { + CharSequence[] contents=new CharSequence[mencEntries.size()]; + mencEntries.toArray(contents); + mencPref.setEntries(contents); + contents=new CharSequence[mencEntryValues.size()]; + mencEntryValues.toArray(contents); + mencPref.setEntryValues(contents); + mencPref.setDefaultValue(getString(R.string.media_encryption_none)); + return; + } + boolean hasZrtp = lc.mediaEncryptionSupported(MediaEncryption.ZRTP); boolean hasSrtp = lc.mediaEncryptionSupported(MediaEncryption.SRTP); if (!hasSrtp && !hasZrtp){ mencPref.setEnabled(false); }else{ - List mencEntries=new ArrayList(); - List mencEntryValues=new ArrayList(); - mencEntries.add(getString(R.string.media_encryption_none)); - mencEntryValues.add(getString(R.string.pref_media_encryption_key_none)); if (hasSrtp){ mencEntries.add(getString(R.string.media_encryption_srtp)); mencEntryValues.add(getString(R.string.pref_media_encryption_key_srtp));