Skip to content

Commit a630475

Browse files
committed
LoggingHook 增加打印堆栈的能力
1 parent e5e76a1 commit a630475

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

app/src/main/java/me/yifeiyuan/flapdev/FlapApplication.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ class FlapApplication : MultiDexApplication() {
5050

5151
//也是全局
5252
registerAdapterHooks(
53-
LoggingHook(),
53+
LoggingHook(
54+
enableLog = true,
55+
printTrace = true
56+
),
5457
// ApmHook()
5558
)
5659

flap/src/main/java/me/yifeiyuan/flap/hook/LoggingHook.kt

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,20 @@ import me.yifeiyuan.flap.delegate.AdapterDelegate
1818
* @since 2021/12/27
1919
* @since 3.0.0
2020
*/
21-
class LoggingHook(private val enableLog: Boolean = true) : AdapterHook {
21+
class LoggingHook(private val enableLog: Boolean = true, private val printTrace: Boolean = false) : AdapterHook {
2222

2323
companion object {
2424
private const val TAG = "LoggingHook"
25+
26+
class TraceException : RuntimeException("|只用于 LoggingHook 打印日志,不是真实异常|")
2527
}
2628

2729
override fun onCreateViewHolderStart(adapter: FlapAdapter, delegate: AdapterDelegate<*, *>, viewType: Int) {
2830
if (enableLog) {
2931
FlapDebug.d(TAG, "onCreateViewHolderStart() called with: adapter = $adapter, delegate = $delegate, viewType = $viewType")
32+
if (printTrace) {
33+
FlapDebug.e(TAG, "onCreateViewHolderStart: ", TraceException())
34+
}
3035
}
3136
}
3237

@@ -39,6 +44,10 @@ class LoggingHook(private val enableLog: Boolean = true) : AdapterHook {
3944
override fun onBindViewHolderStart(adapter: FlapAdapter, delegate: AdapterDelegate<*, *>, component: Component<*>, data: Any, position: Int, payloads: MutableList<Any>) {
4045
if (enableLog) {
4146
FlapDebug.d(TAG, "onBindViewHolderStart() called with: adapter = $adapter, delegate = $delegate, component = $component, data = $data, position = $position, payloads = $payloads")
47+
48+
if (printTrace) {
49+
FlapDebug.e(TAG, "onBindViewHolderStart: ", TraceException())
50+
}
4251
}
4352
}
4453

@@ -55,12 +64,18 @@ class LoggingHook(private val enableLog: Boolean = true) : AdapterHook {
5564
override fun onViewAttachedToWindow(adapter: FlapAdapter, delegate: AdapterDelegate<*, *>, component: Component<*>) {
5665
if (enableLog) {
5766
FlapDebug.d(TAG, "onViewAttachedToWindow() called with: adapter = $adapter, delegate = $delegate, component = $component")
67+
if (printTrace) {
68+
FlapDebug.e(TAG, "onViewAttachedToWindow: ", TraceException())
69+
}
5870
}
5971
}
6072

6173
override fun onViewDetachedFromWindow(adapter: FlapAdapter, delegate: AdapterDelegate<*, *>, component: Component<*>) {
6274
if (enableLog) {
6375
FlapDebug.d(TAG, "onViewDetachedFromWindow() called with: adapter = $adapter, delegate = $delegate, component = $component")
76+
if (printTrace) {
77+
FlapDebug.e(TAG, "onViewDetachedFromWindow: ", TraceException())
78+
}
6479
}
6580
}
6681

0 commit comments

Comments
 (0)