diff --git a/src/android/org/linphone/LinphonePreferences.java b/src/android/org/linphone/LinphonePreferences.java index 54038b447..902e6380c 100644 --- a/src/android/org/linphone/LinphonePreferences.java +++ b/src/android/org/linphone/LinphonePreferences.java @@ -1192,8 +1192,7 @@ public class LinphonePreferences { // Advanced settings public void setDebugEnabled(boolean enabled) { getConfig().setBool("app", "debug", enabled); - Factory.instance().enableLogCollection(LogCollectionState.Enabled); - Factory.instance().setDebugMode(enabled, getString(R.string.app_name)); + LinphoneUtils.initLoggingService(enabled); } public boolean isDebugEnabled() { diff --git a/src/android/org/linphone/LinphoneService.java b/src/android/org/linphone/LinphoneService.java index d1e1f9dce..fe0978e88 100644 --- a/src/android/org/linphone/LinphoneService.java +++ b/src/android/org/linphone/LinphoneService.java @@ -32,6 +32,9 @@ import org.linphone.core.Call; import org.linphone.core.Call.State; import org.linphone.core.Core; import org.linphone.core.GlobalState; +import org.linphone.core.LogLevel; +import org.linphone.core.LoggingService; +import org.linphone.core.LoggingServiceListener; import org.linphone.core.RegistrationState; import org.linphone.core.Factory; import org.linphone.core.LogCollectionState; @@ -298,8 +301,7 @@ public final class LinphoneService extends Service { LinphonePreferences.instance().setContext(getBaseContext()); Factory.instance().setLogCollectionPath(getFilesDir().getAbsolutePath()); boolean isDebugEnabled = LinphonePreferences.instance().isDebugEnabled(); - Factory.instance().enableLogCollection(LogCollectionState.Enabled); - Factory.instance().setDebugMode(isDebugEnabled, getString(R.string.app_name)); + LinphoneUtils.initLoggingService(isDebugEnabled); // Dump some debugging information to the logs Log.i(START_LINPHONE_LOGS); diff --git a/src/android/org/linphone/LinphoneUtils.java b/src/android/org/linphone/LinphoneUtils.java index 29de3012c..bb02500f3 100644 --- a/src/android/org/linphone/LinphoneUtils.java +++ b/src/android/org/linphone/LinphoneUtils.java @@ -67,6 +67,10 @@ import org.linphone.core.Core; import org.linphone.core.Factory; import org.linphone.core.Friend; import org.linphone.core.FriendList; +import org.linphone.core.LogCollectionState; +import org.linphone.core.LogLevel; +import org.linphone.core.LoggingService; +import org.linphone.core.LoggingServiceListener; import org.linphone.core.ProxyConfig; import org.linphone.mediastream.Log; import org.linphone.mediastream.video.capture.hwconf.Hacks; @@ -111,6 +115,34 @@ public final class LinphoneUtils { } + public static void initLoggingService(boolean isDebugEnabled) { + Factory.instance().setDebugMode(isDebugEnabled, ""); + Factory.instance().enableLogCollection(LogCollectionState.EnabledWithoutPreviousLogHandler); + Factory.instance().getLoggingService().setListener(new LoggingServiceListener() { + @Override + public void onLogMessageWritten(LoggingService logService, String domain, LogLevel lev, String message) { + switch (lev) { + case Debug: + android.util.Log.d(domain, message); + break; + case Message: + android.util.Log.i(domain, message); + break; + case Warning: + android.util.Log.w(domain, message); + break; + case Error: + android.util.Log.e(domain, message); + break; + case Fatal: + default: + android.util.Log.wtf(domain, message); + break; + } + } + }); + } + public static void dispatchOnUIThread(Runnable r) { mHandler.post(r); } diff --git a/src/android/org/linphone/receivers/DozeReceiver.java b/src/android/org/linphone/receivers/DozeReceiver.java index d417920bb..c1f3c6ecb 100644 --- a/src/android/org/linphone/receivers/DozeReceiver.java +++ b/src/android/org/linphone/receivers/DozeReceiver.java @@ -22,6 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import org.linphone.LinphoneManager; import org.linphone.LinphonePreferences; import org.linphone.LinphoneService; +import org.linphone.LinphoneUtils; import org.linphone.R; import org.linphone.core.Core; import org.linphone.core.Factory; @@ -43,8 +44,7 @@ public class DozeReceiver extends android.content.BroadcastReceiver { if (!LinphoneService.isReady()) return; boolean isDebugEnabled = LinphonePreferences.instance().isDebugEnabled(); - Factory.instance().enableLogCollection(isDebugEnabled ? LogCollectionState.Enabled : LogCollectionState.Disabled); - Factory.instance().setDebugMode(isDebugEnabled, context.getString(R.string.app_name)); + LinphoneUtils.initLoggingService(isDebugEnabled); Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); if (lc == null) return; diff --git a/src/android/org/linphone/receivers/KeepAliveReceiver.java b/src/android/org/linphone/receivers/KeepAliveReceiver.java index 64fa88b67..0bec9f0af 100644 --- a/src/android/org/linphone/receivers/KeepAliveReceiver.java +++ b/src/android/org/linphone/receivers/KeepAliveReceiver.java @@ -22,6 +22,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. import org.linphone.LinphoneManager; import org.linphone.LinphonePreferences; import org.linphone.LinphoneService; +import org.linphone.LinphoneUtils; import org.linphone.R; import org.linphone.compatibility.Compatibility; import org.linphone.core.Core; @@ -46,8 +47,7 @@ public class KeepAliveReceiver extends BroadcastReceiver { return; } else { boolean isDebugEnabled = LinphonePreferences.instance().isDebugEnabled(); - Factory.instance().enableLogCollection(isDebugEnabled ? LogCollectionState.Enabled : LogCollectionState.Disabled); - Factory.instance().setDebugMode(isDebugEnabled, context.getString(R.string.app_name)); + LinphoneUtils.initLoggingService(isDebugEnabled); Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); if (lc == null) return; diff --git a/src/android/org/linphone/ui/Digit.java b/src/android/org/linphone/ui/Digit.java index c1b544695..4eb3fa583 100644 --- a/src/android/org/linphone/ui/Digit.java +++ b/src/android/org/linphone/ui/Digit.java @@ -19,6 +19,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ +import org.linphone.LinphoneUtils; import org.linphone.call.CallActivity; import org.linphone.LinphoneManager; import org.linphone.LinphonePreferences; @@ -139,7 +140,6 @@ public class Digit extends Button implements AddressAware { public void onClick(DialogInterface dialog, int which) { if(which == 0){ LinphonePreferences.instance().setDebugEnabled(false); - Factory.instance().enableLogCollection(LogCollectionState.Disabled); } if(which == 1) { Core lc = LinphoneManager.getLcIfManagerNotDestroyedOrNull(); @@ -155,7 +155,6 @@ public class Digit extends Button implements AddressAware { public void onClick(DialogInterface dialog, int which) { if(which == 0) { LinphonePreferences.instance().setDebugEnabled(true); - Factory.instance().enableLogCollection(LogCollectionState.Enabled); } } }); diff --git a/submodules/linphone b/submodules/linphone index 5290d59d7..0bf5362bf 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 5290d59d769c90f18f720b07495061ba6dcbbb84 +Subproject commit 0bf5362bf0b793eb21f533eeb65ae3e2804962f5