package Ġcom . element ary . tasks . login Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . content . pm . Shortcut Info Ċ import Ġandroid . content . pm . Shortcut Manager Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . graphics . drawable . Icon Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Html Ċ import Ġandroid . text . Sp ann able StringBuilder Ċ import Ġandroid . text . method . Link Movement Method Ċ import Ġandroid . text . style . Clickable Span Ċ import Ġandroid . text . style . URL Span Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . widget . CheckBox Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . bump tech . glide . request . target . Simple Target Ċ import Ġcom . bump tech . glide . request . transition . Transition Ċ import Ġcom . element ary . tasks . R Ċ import Ġcom . element ary . tasks . birth days . Check Birth days Async Ċ import Ġcom . element ary . tasks . core . The med Activity Ċ import Ġcom . element ary . tasks . core . cloud . Dropbox Login Ċ import Ġcom . element ary . tasks . core . cloud . Google Login Ċ import Ġcom . element ary . tasks . core . utils . Permissions Ċ import Ġcom . element ary . tasks . core . utils . Prefs Ċ import Ġcom . element ary . tasks . core . utils . Realm Db Ċ import Ġcom . element ary . tasks . cre ators . Create Reminder Activity Ċ import Ġcom . element ary . tasks . databinding . Activity Login Binding Ċ import Ġcom . element ary . tasks . google _ tasks . Get TaskList Async Ċ import Ġcom . element ary . tasks . google _ tasks . Tasks Callback Ċ import Ġcom . element ary . tasks . navigation . MainActivity Ċ import Ġcom . element ary . tasks . notes . Create Note Activity Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . util .* Ċ Ċ class ĠLogin Activity Ġ: ĠThe med Activity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPER M : ĠInt Ġ= Ġ 1 0 3 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPER M _ DROP BOX : ĠInt Ġ= Ġ 1 0 4 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPER M _ LOCAL : ĠInt Ġ= Ġ 1 0 5 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPER M _ B IR TH : ĠInt Ġ= Ġ 1 0 6 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTER MS _ URL Ġ= Ġ" terms open . com " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Login Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgoogle Login : ĠGoogle Login ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdrop box Login : ĠDrop box Login ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ login ) ĊĠĠĠĠĠĠĠ Ġgoogle Login Ġ= ĠGoogle Login ( this , Ġobject Ġ: ĠGoogle Login . Login Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" on Success : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Data From Google () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Fail () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" on Fail : Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Login Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġdrop box Login Ġ= ĠDrop box Login ( this , Ġobject Ġ: ĠDrop box Login . Login Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( logged : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( logged ) Ġload Data From Dropbox () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġinit Buttons () ĊĠĠĠĠĠĠĠ Ġload Photo View () ĊĠĠĠĠĠĠĠ Ġinit Checkbox () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Photo View () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmy Options Ġ= ĠRequest Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. override ( 7 6 8 , Ġ 1 2 8 0 ) ĊĊĠĠĠĠĠĠĠ ĠG lide . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load (" https :// unsplash . it / 1 0 8 0 / 1 9 2 0 ? image = 5 9 6 & blur ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( my Options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( object Ġ: ĠSimple Target < Drawable >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( resource : ĠDrawable , Ġtransition : ĠTransition < in ĠDrawable > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . imageView 2 . setImage Drawable ( resource ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Failed ( error Drawable : ĠDrawable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Load Failed ( error Drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Default Image () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Default Image () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmy Options Ġ= ĠRequest Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. override ( 7 6 8 , Ġ 1 2 8 0 ) ĊĊĠĠĠĠĠĠĠ ĠG lide . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( R . drawable . photo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( my Options ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . imageView 2 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġdrop box Login . check Dropbox Status () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Data From Dropbox () Ġ{ ĊĠĠĠĠĠĠĠ ĠRestore Dropbox Task ( this , ĠRestore Dropbox Task . Sync Listener Ġ{ Ġopen Application () Ġ}). execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Login Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġbuilder . setMessage ( getString ( R . string . failed _ to _ login )) ĊĠĠĠĠĠĠĠ Ġbuilder . set Positive Button ( R . string . ok , Ġ{ Ġdialog Interface , Ġ_ Ġ-> Ġdialog Interface . dismiss () Ġ}) ĊĠĠĠĠĠĠĠ Ġbuilder . create (). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Buttons () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . google Button . setOnClickListener ({ Ġgoogle Login Click () Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . local Button . setOnClickListener ({ Ġrestore Local Data () Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . dropbox Button . setOnClickListener ({ Ġlogin To Dropbox () Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . skip Button . setOnClickListener ({ Ġask For Birth days () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġask For Birth days () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġbuilder . setTitle ( getString ( R . string . import _ birth days )) ĊĠĠĠĠĠĠĠ Ġbuilder . setMessage ( getString ( R . string . would _ you _ like _ to _ import _ birth days )) ĊĠĠĠĠĠĠĠ Ġbuilder . set Positive Button ( getString ( R . string . import _ string ), Ġ{ Ġdialog Interface , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Interface . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Birth days () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbuilder . set Negative Button ( getString ( R . string . open _ app ), Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopen Application () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbuilder . create (). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġimport Birth days () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Permissions . check Permission ( this , ĠPermissions . READ _ CONTACT S )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPermissions . request Permission ( this , ĠPER M _ B IR TH , ĠPermissions . READ _ CONTACT S ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠP refs . getInstance ( this ). is Contact Birth days Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠP refs . getInstance ( this ). is Birth day Reminder Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠCheck Birth days Async ( this , Ġtrue , ĠCheck Birth days Async . Task Callback Ġ{ Ġopen Application () Ġ}). execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Groups () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Realm Db . getInstance (). all Groups . size Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRealm Db . getInstance (). setDefault Groups ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlogin To Dropbox () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Permissions . check Permission ( this , ĠPermissions . READ _ EXTERNAL , ĠPermissions . WRITE _ EXTERNAL )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrop box Login . login () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPermissions . request Permission ( this , ĠPER M _ DROP BOX , ĠPermissions . READ _ EXTERNAL , ĠPermissions . WRITE _ EXTERNAL ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrestore Local Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Permissions . check Permission ( this , ĠPermissions . READ _ EXTERNAL , ĠPermissions . WRITE _ EXTERNAL )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPermissions . request Permission ( this , ĠPER M _ LOCAL , ĠPermissions . READ _ EXTERNAL , ĠPermissions . WRITE _ EXTERNAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠRestore Local Task ( this , Ġobject Ġ: ĠRestore Local Task . Sync Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Finish () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Application () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}). execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Data From Google () Ġ{ ĊĠĠĠĠĠĠĠ ĠRestore Google Task ( this , ĠRestore Google Task . Sync Listener Ġ{ Ġload Google Tasks () Ġ}). execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Google Tasks () Ġ{ ĊĠĠĠĠĠĠĠ ĠGet TaskList Async ( this , Ġobject Ġ: ĠTasks Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Application () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failed () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Application () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}). execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Application () Ġ{ ĊĠĠĠĠĠĠĠ Ġenable Shortcut s () ĊĠĠĠĠĠĠĠ Ġinit Groups () ĊĠĠĠĠĠĠĠ ĠP refs . getInstance ( this ). is User Logged Ġ= Ġtrue ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠMainActivity :: class . java )) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" New Api ") ĊĠĠĠ Ġprivate Ġfun Ġenable Shortcut s () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . N _ MR 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshortcut Manager Ġ= Ġget System Service ( Shortcut Manager :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshortcut Ġ= ĠShort cut Info . Builder ( this , Ġ" id . reminder ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Short Label ( getString ( R . string . add _ reminder _ menu )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Long Label ( getString ( R . string . add _ reminder _ menu )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setIcon ( Icon . create With Resource ( this , ĠR . drawable . add _ reminder _ shortcut )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Intent s ( array Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ MAIN ). set Class ( this , ĠMainActivity :: class . java ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ VIEW ). set Class ( this , ĠCreate Reminder Activity :: class . java ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshortcut 2 Ġ= ĠShort cut Info . Builder ( this , Ġ" id . note ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Short Label ( getString ( R . string . add _ note )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Long Label ( getString ( R . string . add _ note )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setIcon ( Icon . create With Resource ( this , ĠR . drawable . add _ note _ shortcut )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Intent s ( array Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ MAIN ). set Class ( this , ĠMainActivity :: class . java ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ VIEW ). set Class ( this , ĠCreate Note Activity :: class . java ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġshortcut Manager . dynamic Shortcut s Ġ= ĠArrays . asList ( shortcut , Ġshortcut 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgoogle Login Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Permissions . check Permission ( this , ĠPermissions . GET _ ACCOUNT S , ĠPermissions . READ _ EXTERNAL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermissions . WRITE _ EXTERNAL )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoogle Login . login () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPermissions . request Permission ( this , ĠPER M , ĠPermissions . GET _ ACCOUNT S , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPermissions . READ _ EXTERNAL , ĠPermissions . WRITE _ EXTERNAL ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Checkbox () Ġ{ ĊĠĠĠĠĠĠĠ Ġset View HTML ( binding . terms CheckBox , ĠgetString ( R . string . i _ accept )) ĊĠĠĠĠĠĠĠ Ġbinding . terms CheckBox . setOn Checked ChangeListener Ġ{ Ġ_, Ġp 1 Ġ-> Ġset En abling ( p 1 ) Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . terms CheckBox . isChecked Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset En abling ( b : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . dropbox Button . isEnabled Ġ= Ġb ĊĠĠĠĠĠĠĠ Ġbinding . google Button . isEnabled Ġ= Ġb ĊĠĠĠĠĠĠĠ Ġbinding . local Button . isEnabled Ġ= Ġb ĊĠĠĠĠĠĠĠ Ġbinding . skip Button . isEnabled Ġ= Ġb ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmake Link Clickable ( str Builder : ĠSp ann able StringBuilder , Ġspan : ĠURL Span ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġstr Builder . get Span Start ( span ) ĊĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġstr Builder . get Span End ( span ) ĊĠĠĠĠĠĠĠ Ġval Ġflags Ġ= Ġstr Builder . get Span Flags ( span ) ĊĠĠĠĠĠĠĠ Ġval Ġclick able Ġ= Ġobject Ġ: ĠClick able Span () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( span . url . contains ( TERMS _ URL )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Terms Screen () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġstr Builder . set Span ( click able , Ġstart , Ġend , Ġflags ) ĊĠĠĠĠĠĠĠ Ġstr Builder . remove Span ( span ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen Terms Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġbuilder . setTitle ( getString ( R . string . privacy _ policy )) ĊĠĠĠĠĠĠĠ Ġval ĠwebView Ġ= ĠWebView ( this ) ĊĠĠĠĠĠĠĠ ĠwebView . load Url (" https :// cr ay software . wordpress . com / privacy - policy /") ĊĠĠĠĠĠĠĠ Ġbuilder . setView ( web View ) ĊĠĠĠĠĠĠĠ Ġbuilder . set Positive Button ( R . string . ok , Ġ{ Ġdialog Interface , Ġ_ Ġ-> Ġdialog Interface . dismiss () Ġ}) ĊĠĠĠĠĠĠĠ Ġbuilder . create (). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠ Ġprivate Ġfun Ġset View HTML ( text : ĠCheckBox , Ġhtml : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsequence Ġ= ĠHtml . from Html ( html ) ĊĠĠĠĠĠĠĠ Ġval Ġstr Builder Ġ= ĠSp ann able StringBuilder ( sequence ) ĊĠĠĠĠĠĠĠ Ġval Ġurls Ġ= Ġstr Builder . get Spans ( 0 , Ġsequence . length , ĠURL Span :: class . java ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( span Ġin Ġurls ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmake Link Clickable ( str Builder , Ġspan ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtext . text Ġ= Ġstr Builder ĊĠĠĠĠĠĠĠ Ġtext . movement Method Ġ= ĠLink Movement Method . getInstance () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġgoogle Login . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < out ĠString >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠĠĠĠĠ Ġif Ġ( grant Results . isEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPER M Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġgoogle Login Click () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPER M _ DROP BOX Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġlogin To Dropbox () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPER M _ LOCAL Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġrestore Local Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPER M _ B IR TH Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġimport Birth days () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ