package Ġcom . rer ere . iw ara 4 a . ui . states Ċ Ċ import Ġandroid . content . Clip Data Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . os . Build Ċ import Ġandroidx . compose . runtime .* Ċ import Ġandroidx . compose . ui . platform . Local Context Ċ Ċ @ Composable Ċ fun Ġremember Primary Clipboard State (): ĠMutable State < Clip Data ?> Ġ{ ĊĠĠĠ Ġval Ġcontext Ġ= ĠLocal Context . current ĊĠĠĠ Ġval Ġservice Ġ= Ġremember Ġ{ Ġcontext . getSystem Service ( Clipboard Manager :: class . java ) Ġ} ĊĠĠĠ Ġval Ġstate Ġ= Ġremember Ġ{ Ġmutable State Of ( service . primary Clip ) Ġ} ĊĠĠĠ ĠDis posable Effect ( Unit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlistener Ġ= ĠClip board Manager . On Primary Clip Changed Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate . value Ġ= Ġservice . primary Clip ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġservice . add Primary Clip Changed Listener ( listener ) ĊĠĠĠĠĠĠĠ Ġon Dispose Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . remove Primary Clip Changed Listener ( listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġobject Ġ: ĠMutable State < Clip Data ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġvar Ġvalue : ĠClip Data ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġstate . value ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . set Primary Clip ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġkotlin . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . P ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . clear Primary Clip () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . set Primary Clip ( Clip Data . new Plain Text ("", "" )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcomponent 1 (): ĠClip Data ? Ġ= Ġvalue ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcomponent 2 (): Ġ( Clip Data ?) Ġ-> ĠUnit Ġ= Ġ{ Ġvalue Ġ= Ġit Ġ} ĊĠĠĠ Ġ} Ċ }