From 3b2dfb6ede2cb3fe422aee8ab276533e9183a384 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 4 Nov 2021 12:56:54 -0400 Subject: [PATCH] Ignore MediaBrowserService in LeakCanary. --- .../securesms/FlipperApplicationContext.java | 27 ----------- .../securesms/FlipperApplicationContext.kt | 46 +++++++++++++++++++ 2 files changed, 46 insertions(+), 27 deletions(-) delete mode 100644 app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.java create mode 100644 app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.kt diff --git a/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.java b/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.java deleted file mode 100644 index 7c5fe2c2db..0000000000 --- a/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.thoughtcrime.securesms; - -import com.facebook.flipper.android.AndroidFlipperClient; -import com.facebook.flipper.core.FlipperClient; -import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin; -import com.facebook.flipper.plugins.inspector.DescriptorMapping; -import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin; -import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin; -import com.facebook.soloader.SoLoader; - -import org.thoughtcrime.securesms.database.FlipperSqlCipherAdapter; - -public class FlipperApplicationContext extends ApplicationContext { - - @Override - public void onCreate() { - super.onCreate(); - - SoLoader.init(this, false); - - FlipperClient client = AndroidFlipperClient.getInstance(this); - client.addPlugin(new InspectorFlipperPlugin(this, DescriptorMapping.withDefaults())); - client.addPlugin(new DatabasesFlipperPlugin(new FlipperSqlCipherAdapter(this))); - client.addPlugin(new SharedPreferencesFlipperPlugin(this)); - client.start(); - } -} diff --git a/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.kt b/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.kt new file mode 100644 index 0000000000..ef793c346c --- /dev/null +++ b/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.kt @@ -0,0 +1,46 @@ +package org.thoughtcrime.securesms + +import com.facebook.soloader.SoLoader +import com.facebook.flipper.android.AndroidFlipperClient +import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin +import com.facebook.flipper.plugins.inspector.DescriptorMapping +import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin +import org.thoughtcrime.securesms.database.FlipperSqlCipherAdapter +import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin +import leakcanary.LeakCanary +import shark.AndroidReferenceMatchers + +class FlipperApplicationContext : ApplicationContext() { + override fun onCreate() { + super.onCreate() + SoLoader.init(this, false) + + val client = AndroidFlipperClient.getInstance(this) + client.addPlugin(InspectorFlipperPlugin(this, DescriptorMapping.withDefaults())) + client.addPlugin(DatabasesFlipperPlugin(FlipperSqlCipherAdapter(this))) + client.addPlugin(SharedPreferencesFlipperPlugin(this)) + client.start() + + LeakCanary.config = LeakCanary.config.copy( + referenceMatchers = AndroidReferenceMatchers.appDefaults + + AndroidReferenceMatchers.instanceFieldLeak( + className = "android.service.media.MediaBrowserService\$ServiceBinder", + fieldName = "this\$0", + description = "Framework bug", + patternApplies = { true } + ) + + AndroidReferenceMatchers.instanceFieldLeak( + className = "androidx.media.MediaBrowserServiceCompat\$MediaBrowserServiceImplApi26\$MediaBrowserServiceApi26", + fieldName = "mBase", + description = "Framework bug", + patternApplies = { true } + ) + + AndroidReferenceMatchers.instanceFieldLeak( + className = "org.thoughtcrime.securesms.components.voice.VoiceNotePlaybackService", + fieldName = "mApplication", + description = "Framework bug", + patternApplies = { true } + ) + ) + } +} \ No newline at end of file