From e4a16deefea120c143d030c73ea85a16edf2ba06 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Tue, 7 May 2019 22:18:56 -0700 Subject: [PATCH] Add LeakCanary#createLeakDisplayActivityIntent (#1341) Resolves #1337 Kept it as a function rather than a val since the best we could do due to the context requirement would be an awkward `lateinit var`. --- .../src/main/java/leakcanary/LeakCanary.kt | 10 ++++++++++ .../java/leakcanary/internal/InternalLeakCanary.kt | 5 ++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/leakcanary-android-core/src/main/java/leakcanary/LeakCanary.kt b/leakcanary-android-core/src/main/java/leakcanary/LeakCanary.kt index 072e80ab04..ca9d2e0f7b 100644 --- a/leakcanary-android-core/src/main/java/leakcanary/LeakCanary.kt +++ b/leakcanary-android-core/src/main/java/leakcanary/LeakCanary.kt @@ -1,8 +1,11 @@ package leakcanary import android.app.Application +import android.content.Context +import android.content.Intent import leakcanary.AndroidExcludedRefs.Companion.exclusionsFactory import leakcanary.internal.InternalLeakCanary +import leakcanary.internal.activity.LeakActivity typealias AnalysisResultListener = (Application, HeapAnalysis) -> Unit @@ -50,4 +53,11 @@ object LeakCanary { @Volatile var config: Config = Config() + + /** + * @return a new [Intent] that can be used to programmatically launch the leak display activity. + */ + fun createLeakDisplayActivityIntent(context: Context): Intent { + return LeakActivity.createIntent(context) + } } diff --git a/leakcanary-android-core/src/main/java/leakcanary/internal/InternalLeakCanary.kt b/leakcanary-android-core/src/main/java/leakcanary/internal/InternalLeakCanary.kt index 17ba32b553..fca72a6f1c 100644 --- a/leakcanary-android-core/src/main/java/leakcanary/internal/InternalLeakCanary.kt +++ b/leakcanary-android-core/src/main/java/leakcanary/internal/InternalLeakCanary.kt @@ -15,7 +15,6 @@ import leakcanary.CanaryLog import leakcanary.GcTrigger import leakcanary.LeakCanary import leakcanary.LeakSentry -import leakcanary.internal.activity.LeakActivity internal object InternalLeakCanary : LeakSentryListener { @@ -138,7 +137,7 @@ internal object InternalLeakCanary : LeakSentryListener { return } - val intent = LeakActivity.createIntent(application) + val intent = LeakCanary.createLeakDisplayActivityIntent(application) intent.action = "Dummy Action because Android is stupid" val shortcut = Builder(application, DYNAMIC_SHORTCUT_ID) .setLongLabel(longLabel) @@ -171,4 +170,4 @@ internal object InternalLeakCanary : LeakSentryListener { heapDumpTrigger.onDumpHeapReceived() } } -} \ No newline at end of file +}