1 package leakcanary.internal
2 
3 import android.content.Intent
4 import java.io.Serializable
5 
6 /**
7  * Wraps an Intent to serialize it as its URI string.
8  */
9 internal class SerializableIntent(intent: Intent) : Serializable {
10 
11   private val uri = intent.toUri(0)
12 
13   // Intent is not Serializable
14   @Transient
15   private var _intent: Intent? = intent
16 
17   val intent: Intent
<lambda>null18     get() = _intent.run {
19       this ?: Intent.parseUri(uri, 0)
20         .apply { _intent = this }
21     }
22 }
23