package Ġcom . with google . experiments . un plug ged . ui Ċ Ċ import Ġandroid . accounts . Account Manager Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . preference . Preference Manager Ċ import Ġandroid . widget . Button Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . with google . experiments . un plug ged . R Ċ import Ġcom . with google . experiments . un plug ged . data . prefs . String Preference Ċ import Ġcom . with google . experiments . un plug ged . model . Account Ċ Ċ private Ġconst Ġval ĠAC COUNT _ REQUEST Ġ= Ġ 0 x 2 Ċ Ċ class ĠAccount Selection Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaccount Preference : ĠString Preference ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ account _ selection ) ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . pick _ account ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpick Account () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġaccount Preference Ġ= ĠString Preference ( Preference Manager . getDefault SharedPreferences ( this ), Ġ" g account ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpick Account () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġselected Account Ġ= ĠApp State . account . value ?. let Ġ{ Ġaccount Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccount Manager . get ( this ). get Account sBy Type ( account . account Type ). first OrNull Ġ{ Ġit . name Ġ== Ġaccount . account Name Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠAccount Manager . new Choose Account Intent ( selected Account , Ġnull , ĠarrayOf (" com . google "), Ġnull , Ġnull , Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ) ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠAC COUNT _ REQUEST ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠAC COUNT _ REQUEST Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Name Ġ= Ġit . getString Extra ( Account Manager . KEY _ ACCOUNT _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaccount Type Ġ= Ġit . getString Extra ( Account Manager . KEY _ ACCOUNT _ TYPE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp State . account . value Ġ= ĠAccount ( account Name , Ġaccount Type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Preference . set ("$ account Name |$ account Type ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }