package Ġcom . next f aze . dev fun . demo . test Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġcom . next f aze . dev fun . function . Developer Function Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Module Ċ class ĠSingleton Scoped Test Module Ġ{ ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġscoped () Ġ= ĠInjectable Singleton Scoped Via Provides () ĊĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġfun Ġscoped With Args ( context : ĠContext ) Ġ= ĠInjectable Singleton Scoped Via Provide sWith Args ( context ) Ċ } Ċ Ċ @ Test Cat Ċ class ĠInjectable Singleton Scoped Via Provides Ġ{ ĊĠĠĠ Ġ@ Developer Function ĊĠĠĠ Ġfun Ġvalidate Self ( activity : ĠActivity , Ġself : ĠInjectable Singleton Scoped Via Provides ): ĠAlertDialog Ġ= ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" this =$ this ($ activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| self =$ self ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| this === self : Ġ${ this Ġ=== Ġself } """. trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () Ċ } Ċ Ċ @ Test Cat Ċ class ĠInjectable Singleton Scoped Via Provide sWith Args Ġ@ Inject Ġconstructor ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġ@ Developer Function ĊĠĠĠ Ġfun Ġvalidate Self ( activity : ĠActivity , Ġself : ĠInjectable Singleton Scoped Via Provide sWith Args ): ĠAlertDialog Ġ= ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" this =$ this ($ context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| self =$ self ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| this === self : Ġ${ this Ġ=== Ġself } """. trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () Ċ } Ċ Ċ @ Singleton Ċ @ Test Cat Ċ class ĠInjectable Singleton Scoped Via Annotation Ġ@ Inject Ġconstructor () Ġ{ ĊĠĠĠ Ġ@ Developer Function ĊĠĠĠ Ġfun Ġvalidate Self ( activity : ĠActivity , Ġself : ĠInjectable Singleton Scoped Via Annotation ): ĠAlertDialog Ġ= ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" this =$ this ($ activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| self =$ self ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| this === self : Ġ${ this Ġ=== Ġself } """. trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () Ċ } Ċ Ċ @ Singleton Ċ @ Test Cat Ċ class ĠInjectable Singleton Scoped Via Annotation With Args Ġ@ Inject Ġconstructor ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġ@ Developer Function ĊĠĠĠ Ġfun Ġvalidate Self ( activity : ĠActivity , Ġself : ĠInjectable Singleton Scoped Via Annotation With Args ): ĠAlertDialog Ġ= ĊĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" this =$ this ($ context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| self =$ self ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ| this === self : Ġ${ this Ġ=== Ġself } """. trim Margin () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () Ċ } Ċ