package Ġcom . tern ary op . utils . dropbox Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . dropbox . core . Db x Request Config Ċ import Ġcom . dropbox . core . Db x Sdk Version Ċ import Ġcom . dropbox . core . android . Auth Ċ import Ġcom . dropbox . core . android . Auth Activity Ċ import Ġcom . dropbox . core . v 2 . Db x Client V 2 Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġd ave Ġon Ġ 2 5 / 0 4 / 1 5 . Ċ Ġ* ĠWrap Ġdrop box Ġsession Ġto Ġhandle Ġtoken Ġstoring Ġand Ġcleanup Ċ Ġ*/ Ċ Ċ private Ġconst Ġval ĠDROP BOX _ ACCESS _ KEY _ NAME Ġ= Ġ" dropbox AccessKey " Ċ private Ġconst Ġval ĠDROP BOX _ ACCESS _ SECRET _ NAME Ġ= Ġ" dropbox Access Secret Name " Ċ private Ġconst Ġval ĠDROP BOX _ ACCOUNT _ PRE FS _ NAME Ġ= Ġ" dropbox Account " Ċ Ċ class ĠDrop box Manager Ġprivate Ġconstructor ( context : ĠContext , Ġval Ġclient Identifier : ĠString ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġpreferences Ġ= Ġcontext . get SharedPreferences ( DROP BOX _ ACCOUNT _ PRE FS _ NAME , Ġ 0 ) ĊĊĠĠĠ Ġprivate Ġvar Ġdb x Client V 2 : ĠD bx Client V 2 ? Ġ= Ġnull ĊĊĠĠĠ Ġval Ġclient : ĠD bx Client V 2 ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠaccessToken Ġ= Ġpreferences . getString ( DROP BOX _ ACCESS _ SECRET _ NAME , Ġnull ) Ġ?: Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( db x Client V 2 Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠD bx Request Config . newBuilder ( client Identifier ). build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb x Client V 2 Ġ= ĠD bx Client V 2 ( config , ĠaccessToken ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdb x Client V 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġis Linked : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġpreferences . contains ( DROP BOX _ ACCESS _ SECRET _ NAME ) ĊĊĠĠĠ Ġprivate Ġfun Ġstore Auth () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠStore Ġthe ĠOAuth Ġ 2 Ġaccess Ġtoken , Ġif Ġthere Ġis Ġone . ĊĠĠĠĠĠĠĠ Ġval Ġoauth 2 AccessToken Ġ= ĠAuth . get OAuth 2 Token () ĊĠĠĠĠĠĠĠ Ġif Ġ( oauth 2 AccessToken Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit . putString ( DROP BOX _ ACCESS _ KEY _ NAME , Ġ" oauth 2 :") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit . putString ( DROP BOX _ ACCESS _ SECRET _ NAME , Ġoauth 2 AccessToken ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit . apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclear Keys () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġedit Ġ= Ġpreferences . edit () ĊĠĠĠĠĠĠĠ Ġedit . clear () ĊĠĠĠĠĠĠĠ Ġedit . apply () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IllegalStateException :: class ) ĊĠĠĠ Ġfun Ġfinish Authentication (): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġstore Auth () ĊĠĠĠĠĠĠĠ Ġreturn Ġpreferences . getString ( DROP BOX _ ACCESS _ SECRET _ NAME , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġunlink () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Keys () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart OAuth 2 Authentication For Result ( fragment : ĠFragment , Ġrequest Code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! /* alert User */ Auth Activity . check App Before Auth ( fragment . activity , Ġapp Key , Ġtrue )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠAuth Activity . make Intent ( fragment . activity , Ġapp Key , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġfragment . startActivity For Result ( intent , Ġrequest Code ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠDrop box Manager ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġclient Identifier Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġval ĠVersion Ġ= ĠD bx Sdk Version . Version Ġ?: Ġ" N / A " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġapp Key Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġfun Ġsetup ( app Key : ĠString , Ġclient Identifier : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp anion . app Key Ġ= Ġapp Key ĊĠĠĠĠĠĠĠĠĠĠĠ ĠComp anion . client Identifier Ġ= Ġclient Identifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance ( context : ĠContext ): ĠDrop box Manager Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Instance Ġ= Ġinstance ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Instance Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcurrent Instance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsynchronized ( Dropbox Manager :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnew Instance Ġ= Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( newInstance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Instance Ġ= ĠDrop box Manager ( context , Ġclient Identifier ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= Ġnew Instance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew Instance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ