From 446c092a66940b2b649cdf320c3e4bd2ab3d18b0 Mon Sep 17 00:00:00 2001 From: Elvis Hew Date: Thu, 29 Oct 2020 16:14:46 +0800 Subject: [PATCH] Make Intent and Bundle formatters android-only --- .../xlog/internal/DefaultsFactory.java | 18 +----------- .../com/elvishew/xlog/internal/Platform.java | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+), 17 deletions(-) diff --git a/library/src/main/java/com/elvishew/xlog/internal/DefaultsFactory.java b/library/src/main/java/com/elvishew/xlog/internal/DefaultsFactory.java index b818ed8..ecf710b 100644 --- a/library/src/main/java/com/elvishew/xlog/internal/DefaultsFactory.java +++ b/library/src/main/java/com/elvishew/xlog/internal/DefaultsFactory.java @@ -16,9 +16,6 @@ package com.elvishew.xlog.internal; -import android.content.Intent; -import android.os.Bundle; - import com.elvishew.xlog.flattener.DefaultFlattener; import com.elvishew.xlog.flattener.Flattener; import com.elvishew.xlog.flattener.Flattener2; @@ -26,8 +23,6 @@ import com.elvishew.xlog.formatter.border.DefaultBorderFormatter; import com.elvishew.xlog.formatter.message.json.DefaultJsonFormatter; import com.elvishew.xlog.formatter.message.json.JsonFormatter; -import com.elvishew.xlog.formatter.message.object.BundleFormatter; -import com.elvishew.xlog.formatter.message.object.IntentFormatter; import com.elvishew.xlog.formatter.message.object.ObjectFormatter; import com.elvishew.xlog.formatter.message.throwable.DefaultThrowableFormatter; import com.elvishew.xlog.formatter.message.throwable.ThrowableFormatter; @@ -46,8 +41,6 @@ import com.elvishew.xlog.printer.file.naming.ChangelessFileNameGenerator; import com.elvishew.xlog.printer.file.naming.FileNameGenerator; -import java.util.Collections; -import java.util.HashMap; import java.util.Map; /** @@ -59,15 +52,6 @@ public class DefaultsFactory { private static final long DEFAULT_LOG_FILE_MAX_SIZE = 1024 * 1024; // 1M bytes; - private static final Map, ObjectFormatter> BUILTIN_OBJECT_FORMATTERS; - - static { - Map, ObjectFormatter> objectFormatters = new HashMap<>(); - objectFormatters.put(Bundle.class, new BundleFormatter()); - objectFormatters.put(Intent.class, new IntentFormatter()); - BUILTIN_OBJECT_FORMATTERS = Collections.unmodifiableMap(objectFormatters); - } - /** * Create the default JSON formatter. */ @@ -158,6 +142,6 @@ public static CleanStrategy createCleanStrategy() { * @return the builtin object formatters */ public static Map, ObjectFormatter> builtinObjectFormatters() { - return BUILTIN_OBJECT_FORMATTERS; + return Platform.get().builtinObjectFormatters(); } } diff --git a/library/src/main/java/com/elvishew/xlog/internal/Platform.java b/library/src/main/java/com/elvishew/xlog/internal/Platform.java index 0163c51..b8ca274 100644 --- a/library/src/main/java/com/elvishew/xlog/internal/Platform.java +++ b/library/src/main/java/com/elvishew/xlog/internal/Platform.java @@ -17,12 +17,21 @@ package com.elvishew.xlog.internal; import android.annotation.SuppressLint; +import android.content.Intent; import android.os.Build; +import android.os.Bundle; +import com.elvishew.xlog.formatter.message.object.BundleFormatter; +import com.elvishew.xlog.formatter.message.object.IntentFormatter; +import com.elvishew.xlog.formatter.message.object.ObjectFormatter; import com.elvishew.xlog.printer.AndroidPrinter; import com.elvishew.xlog.printer.ConsolePrinter; import com.elvishew.xlog.printer.Printer; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + public class Platform { private static final Platform PLATFORM = findPlatform(); @@ -40,6 +49,10 @@ Printer defaultPrinter() { return new ConsolePrinter(); } + Map, ObjectFormatter> builtinObjectFormatters() { + return Collections.emptyMap(); + } + public void warn(String msg) { System.out.println(msg); } @@ -56,6 +69,16 @@ private static Platform findPlatform() { } static class Android extends Platform { + + private static final Map, ObjectFormatter> BUILTIN_OBJECT_FORMATTERS; + + static { + Map, ObjectFormatter> objectFormatters = new HashMap<>(); + objectFormatters.put(Bundle.class, new BundleFormatter()); + objectFormatters.put(Intent.class, new IntentFormatter()); + BUILTIN_OBJECT_FORMATTERS = Collections.unmodifiableMap(objectFormatters); + } + @Override String lineSeparator() { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) { @@ -69,6 +92,11 @@ Printer defaultPrinter() { return new AndroidPrinter(); } + @Override + Map, ObjectFormatter> builtinObjectFormatters() { + return BUILTIN_OBJECT_FORMATTERS; + } + @Override public void warn(String msg) { android.util.Log.w("XLog", msg);