package Ġcom . max lis ui . lyr ics _ app Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġcom . spotify . sdk . android . auth .* Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġrequest Code : ĠInt Ġby ĠDeleg ates . notNull () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġrequest Code Ġ= Ġresources . getInteger ( R . integer . request Code ) ĊĠĠĠĠĠĠĠ Ġlogin () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġif ( request Code Ġ== Ġthis . request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠAuthorization Client . getResponse ( result Code , Ġdata ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( response . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuthorization Response . Type . TOKEN Ġ-> Ġredirect To L yr ics Activity ( response . accessToken ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠToast . makeText ( application Context , ĠR . string . login _ failed , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Login Click (@ Suppress (" UNUSED _ PARAMETER ") Ġview : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogin () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlogin () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAuthorization Request . Builder ( getString ( R . string . spotify _ client _ id ), ĠAuthorization Response . Type . TOKEN , ĠgetString ( R . string . spotify _ redirect _ uri )) ĊĠĠĠĠĠĠĠ Ġbuilder . set Scopes ( array Of (" user - read - playback - state ", Ġ" user - read - currently - playing ")) ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġbuilder . build () ĊĊĠĠĠĠĠĠĠ ĠAuthorization Client . open Login Activity ( this , Ġrequest Code , Ġrequest ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġredirect To L yr ics Activity ( token : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠL yr ics Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( ACCESS _ TOKEN , Ġtoken ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} Ċ }