package Ġcom . kel in . ok permission Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcelable Ċ import Ġandroid . util . Log Ċ import Ġandroid . util . Sparse Array Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġcom . kel in . ok permission . router . Activity Result Router Ċ import Ġcom . kel in . ok permission . router . Basic Router Ċ import Ġcom . kel in . ok permission . router . Support Basic Router Ċ import Ġjava . io . Serializable Ċ import Ġjava . lang . Class CastException Ċ Ċ /** Ċ Ġ* Ġ** æııè¿° :** ĠstartActivity For Result çļĦ å¸®åĬ© å·¥åħ· ãĢĤãĢĤ Ċ Ġ* Ċ Ġ* Ġ** åĪĽå»º äºº :** Ġk elin Ċ Ġ* Ċ Ġ* Ġ** åĪĽå»º æĹ¶éĹ´ :** Ġ 2 0 1 9 - 0 6 - 2 9 ĠĠ 1 3 : 1 8 Ċ Ġ* Ċ Ġ* Ġ** çīĪæľ¬ :** Ġv Ġ 1 . 0 . 0 Ċ Ġ*/ Ċ object ĠOk Activity Result Ġ{ ĊĊĠĠĠ Ġprivate Ġconst Ġval ĠROUT ER _ TAG Ġ= Ġ" ok _ permission _ activity _ result _ router _ tag " ĊĠĠĠ Ġconst Ġval ĠKEY _ RESULT _ DATA Ġ= Ġ" ok _ permission _ activity _ result _ data " ĊĊĠĠĠ Ġfun Ġ< D > ĠstartActivity ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠ Ġclazz : ĠClass < out ĠActivity >, ĊĠĠĠĠĠĠĠ Ġoptions : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġon Result : Ġ( result Code : ĠInt , Ġdata : ĠD ?) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( activity , ĠIntent ( activity , Ġclazz ), Ġoptions , Ġon Result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< D > ĠstartActivity ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠ Ġintent : ĠIntent , ĊĠĠĠĠĠĠĠ Ġoptions : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġon Result : Ġ( result Code : ĠInt , Ġdata : ĠD ?) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity Or Exception < D >( activity , Ġintent , Ġoptions ) Ġ{ ĠresultCode , Ġdata , Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Result ( result Code , Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Ok Activity Result ", Ġ" The Ġactivity Ġnot Ġf ount ! Ġ\ n ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Result ( Activity . RESULT _ C ANCE LED , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠstartActivity ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠ Ġclazz : ĠClass < out ĠActivity >, ĊĠĠĠĠĠĠĠ Ġoptions : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġon Result : Ġ( result Code : ĠInt ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( activity , ĠIntent ( activity , Ġclazz ), Ġoptions , Ġon Result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠstartActivity ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠ Ġintent : ĠIntent , ĊĠĠĠĠĠĠĠ Ġoptions : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġon Result : Ġ( result Code : ĠInt ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity Or Exception < Long >( activity , Ġintent , Ġoptions ) Ġ{ ĠresultCode , Ġd , Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Result ( result Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" Ok Activity Result ", Ġ" The Ġactivity Ġnot Ġf ount ! Ġ\ n ${ e . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Result ( Activity . RESULT _ C ANCE LED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< D > ĠstartActivity Or Exception ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠ Ġclazz : ĠClass < out ĠActivity >, ĊĠĠĠĠĠĠĠ Ġoptions : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġon Result : Ġ( result Code : ĠInt , Ġdata : ĠD ?, Ġe : ĠException ?) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity Or Exception ( activity , ĠIntent ( activity , Ġclazz ), Ġoptions , Ġon Result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< D > ĠstartActivity Or Exception ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠActivity , ĊĠĠĠĠĠĠĠ Ġintent : ĠIntent , ĊĠĠĠĠĠĠĠ Ġoptions : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġon Result : Ġ( result Code : ĠInt , Ġdata : ĠD ?, Ġe : ĠException ?) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Router < D >( context ). startActivity For Result ( intent , Ġoptions , Ġon Result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠstartActivity Or Exception ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠActivity , ĊĠĠĠĠĠĠĠ Ġclazz : ĠClass < out ĠActivity >, ĊĠĠĠĠĠĠĠ Ġoptions : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġon Result : Ġ( result Code : ĠInt , Ġe : ĠException ?) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity Or Exception ( activity , ĠIntent ( activity , Ġclazz ), Ġoptions , Ġon Result ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠstartActivity Or Exception ( ĊĠĠĠĠĠĠĠ Ġcontext : ĠActivity , ĊĠĠĠĠĠĠĠ Ġintent : ĠIntent , ĊĠĠĠĠĠĠĠ Ġoptions : ĠBundle ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġon Result : Ġ( result Code : ĠInt , Ġe : ĠException ?) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Router < Any >( context ). startActivity For Result ( intent , Ġoptions ) Ġ{ ĠresultCode , Ġdata , Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Result ( result Code , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġprivate Ġfun Ġ< D > Ġget Result Data ( intent : ĠIntent ): ĠD ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġintent . extras ?. get ( KEY _ RESULT _ DATA ). let Ġ{ Ġ( it Ġas ? ĠD ) Ġ?: Ġintent Ġas ? ĠD Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠBoolean Ġ= Ġtrue , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠBoolean Array , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠByte , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠByteArray , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠChar , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠChar Array , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠShort , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠShort Array , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠInt , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠInt Array , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠLong , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠLong Array ?, Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠFloat , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠFloat Array , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠDouble , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠDouble Array , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠString , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠArray < out ĠString >, Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠCharSequence , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠArray < out ĠCharSequence >, Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠParcel able , Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠArray < out ĠParcel able >, Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset Result Data ( activity : ĠActivity , Ġdata : ĠSerializable ?, Ġfinish : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . set Result ( Activity . RESULT _ OK , ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( KEY _ RESULT _ DATA , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġif Ġ( finish ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< D > Ġget Router ( activity : ĠActivity ): ĠActivity Result Router < D > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfind Router ( activity ) Ġ?: Ġcreate Router ( activity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< D > Ġcreate Router ( activity : ĠActivity ): ĠActivity Result Router < D > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrouter : ĠActivity Result Router < D > ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġis ĠFragment Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter Ġ= ĠSupport Activity Result Router Impl () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfm Ġ= Ġactivity . support FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfm . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( router , ĠROUT ER _ TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit Allow ing State Loss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfm . execute Pending Transactions () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter Ġ= ĠActivity Result Router Impl () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfm Ġ= Ġactivity . fragment Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfm . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( router , ĠROUT ER _ TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit Allow ing State Loss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfm . execute Pending Transactions () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrouter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ", Ġ" DE PREC ATION ") ĊĠĠĠ Ġprivate Ġfun Ġ< D > Ġfind Router ( activity : ĠActivity ): ĠActivity Result Router < D >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( activity Ġis ĠFragment Activity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . support FragmentManager . find Fragment By Tag ( ROUT ER _ TAG ) Ġas ? ĠActivity Result Router < D > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . fragment Manager . find Fragment By Tag ( ROUT ER _ TAG ) Ġas ? ĠActivity Result Router < D > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠActivity Result Router Impl < D > Ġ: ĠBasic Router (), ĠActivity Result Router < D > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġresult Callback Cache Ġ= ĠSparse Array <( result Code : ĠInt , Ġdata : ĠD ?, Ġe : ĠException ?) Ġ-> ĠUnit >() ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretain Instance Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠstartActivity For Result ( intent : ĠIntent , Ġoptions : ĠBundle ?, Ġon Result : Ġ( result Code : ĠInt , Ġdata : ĠD ?, Ġe : ĠException ?) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Code Ġ= Ġgenerate Request Code () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . J EL LY _ BE AN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , Ġrequest Code , Ġoptions ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , Ġrequest Code ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Callback Cache . put ( request Code , Ġon Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Result ( Activity . RESULT _ C ANCE LED , Ġnull , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġresult Callback Cache [ request Code ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Callback Cache . remove ( request Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( result Code , Ġdata ?. let Ġ{ Ġget Result Data < D >( it ) Ġ}, Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass CastException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( result Code , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Callback Cache . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠçĶŁæĪĲ ä¸Ģä¸ª code ãĢĤ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġgenerate Request Code (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġrandom Generator . nextInt ( 0 , Ġ 0 x 0 0 0 1 _ 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result Callback Cache . indexOf Key ( code ) Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Request Code () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġclass ĠSupport Activity Result Router Impl < D > Ġ: ĠSupport Basic Router (), ĠActivity Result Router < D > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġresult Callback Cache Ġ= ĠSparse Array <( result Code : ĠInt , Ġdata : ĠD ?, Ġe : ĠException ?) Ġ-> ĠUnit >() ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġretain Instance Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠstartActivity For Result ( intent : ĠIntent , Ġoptions : ĠBundle ?, Ġon Result : Ġ( result Code : ĠInt , Ġdata : ĠD ?, Ġe : ĠException ?) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Code Ġ= Ġgenerate Request Code () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , Ġrequest Code , Ġoptions ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Callback Cache . put ( request Code , Ġon Result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Result ( Activity . RESULT _ C ANCE LED , Ġnull , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcallback Ġ= Ġresult Callback Cache [ request Code ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Callback Cache . remove ( request Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( result Code , Ġdata ?. let Ġ{ Ġget Result Data < D >( it ) Ġ}, Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass CastException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ?. invoke ( result Code , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Callback Cache . clear () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠçĶŁæĪĲ ä¸Ģä¸ª code ãĢĤ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġgenerate Request Code (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġrandom Generator . nextInt ( 0 , Ġ 0 x 0 0 0 1 _ 0 0 0 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( result Callback Cache . indexOf Key ( code ) Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenerate Request Code () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }