package Ġcom . j box x . bottom sheet dialog Ċ Ċ import Ġandroid . content . Clip Description Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . content . Context Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġcom . j box x . share bottom sheet dialog . Share Bottom Sheet Dialog Ċ import Ġcom . j box x . share bottom sheet dialog . Share Bottom Sheet DialogInterface Ċ import Ġcom . j box x . share bottom sheet dialog . UT M Constants Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . Resolve Info ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby ĠR if qi Ċ Ġ*/ Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġthis . getSystem Service ( Context . CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠ Ġval Ġshare Button 1 Ġ= ĠfindViewById < Button >( R . id . share Btn 1 ) Ġas ĠButton ĊĠĠĠĠĠĠĠ Ġval Ġshare Button 2 Ġ= ĠfindViewById < Button >( R . id . share Btn 2 ) Ġas ĠButton ĊĠĠĠĠĠĠĠ Ġval Ġed t Copy Ġ= ĠfindViewById < EditText >( R . id . ed t Copy ) ĊĠĠĠĠĠĠĠ Ġval Ġbtn Switch Activity Ġ= ĠfindViewById < Button >( R . id . Btn Switch Activity ) ĊĠĠĠĠĠĠĠ Ġbtn Switch Activity . text Ġ= Ġ" To ĠJava ĠActivity " ĊĠĠĠĠĠĠĠ Ġbtn Switch Activity . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclipboard . remove Primary Clip Changed Listener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreturn Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ C ANCE LED , Ġreturn Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġclipboard . add Primary Clip Changed Listener ( object Ġ: ĠClip board Manager . On Primary Clip Changed Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Primary Clip Changed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġclipboard . primary Clip Description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġclipboard . primary Clip ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull Ġ&& Ġdescription Ġ!= Ġnull Ġ&& Ġdescription . has MimeType ( Clip Description . MIME TYPE _ TEXT _ PLAIN )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġed t Copy . setText ( data . getItem At ( 0 ). text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġshare Button 1 . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t Copy . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShare Bottom Sheet Dialog . Builder ( support FragmentManager ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set FullScreen ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel able ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Url (" https :// www . youtube . com / watch ? v = Q BG a O 8 9 c B MI & ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Extra Subject ({ resolve Info : ĠResolve Info Ġ-> ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġextra Subject Ġ= Ġ" Subject Ġfor ĠAll " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resolve Info . activity Info . packageName . contains (" android . gm ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextra Subject Ġ= Ġ" Subject Ġfor ĠG mail "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( resolve Info . activity Info . packageName . contains (" android . email ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextra Subject Ġ= Ġ" Subject Ġfor ĠAndroid Ġmail "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( resolve Info . activity Info . packageName . contains (" android . apps . inbox ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextra Subject Ġ= Ġ" Subject Ġfor ĠIn box Ġby ĠG mail "; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ set Extra Subject Ġextra Subject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Parameter With Callback ( UT M Constants . UT M _ SOURCE , ĠShare Bottom Sheet DialogInterface . On Custom Parameter Ġ{ Ġresolve Info Ġ-> Ġ" every where " Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġshare Button 2 . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġed t Copy . setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshare Bottom Sheet Ġ= ĠShare Bottom Sheet Dialog . Builder ( support FragmentManager ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare Bottom Sheet . set Url (" https :// code . tut spl us . com / articles / coding - functional - android - apps - in - kotlin - lamb das - null - safety - more -- cms - 2 7 9 6 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare Bottom Sheet . exclude Package Names (" com . google . android . gm ", Ġ" com . facebook ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare Bottom Sheet . add Parameter ( UT M Constants . UT M _ CONTENT ," carousel ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshare Bottom Sheet . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ