package Ġcom . map swith me . maps . bookmarks Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġcom . map swith me . maps . bookmarks . Book marks Download Manager . Companion . from Ċ import Ġcom . map swith me . maps . bookmarks . data . Bookmark Manager Ċ import Ġcom . map swith me . maps . bookmarks . data . Bookmark Manager . Book marks Catalog Listener Ċ import Ġcom . map swith me . maps . bookmarks . data . Payment Data Ċ import Ġcom . map swith me . maps . purchase . Bookmark Payment Data Parser Ċ import Ġcom . map swith me . maps . purchase . Payment Data Parser Ċ import Ġcom . map swith me . util . log . LoggerFactory Ċ import Ġjava . net . Malformed URLException Ċ Ċ internal Ġclass ĠDefault Bookmark Download Controller ( ĊĠĠĠ Ġprivate Ġval Ġm Application : ĠApplication , ĊĠĠĠ Ġprivate Ġval Ġm Catalog Listener : ĠBook marks Catalog Listener Ċ ) Ġ: ĠBook mark Download Controller , ĠBook mark Download Handler Ġ{ ĊĠĠĠ Ġprivate Ġval Ġm Download Complete Receiver Ġ= ĠBook mark Download Receiver () ĊĠĠĠ Ġprivate Ġvar Ġm Download Url : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Callback : ĠBook mark Download Callback ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġdownload Bookmark ( url : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownload Bookmark Internal ( m Application , Ġurl ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Download Url Ġ= Ġurl ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠMal formed URLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOGGER . e ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Failed Ġto Ġdownload Ġbookmark , Ġurl : Ġ$ url " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġretry Download Bookmark () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( m Download Url )) Ġreturn ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdownload Bookmark Internal ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Application , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Download Url !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠMal formed URLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLOGGER . e ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Failed Ġto Ġretry Ġbookmark Ġdownloading , Ġurl : Ġ$ m Download Url " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġattach ( callback : ĠBook mark Download Callback ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Callback Ġ!= Ġnull ) Ġthrow ĠAssertionError (" Already Ġattached ! ĠCall Ġdetach .") ĊĠĠĠĠĠĠĠ Ġm Callback Ġ= Ġcallback ĊĠĠĠĠĠĠĠ Ġm Download Complete Receiver . attach ( this ) ĊĠĠĠĠĠĠĠ Ġm Download Complete Receiver . register ( m Application ) ĊĠĠĠĠĠĠĠ ĠBook mark Manager . INSTANCE . add Catalog Listener ( m Catalog Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdetach () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Callback Ġ== Ġnull ) Ġthrow ĠAssertionError (" Already Ġdet ached ! ĠCall Ġattach .") ĊĠĠĠĠĠĠĠ Ġm Download Complete Receiver . detach () ĊĠĠĠĠĠĠĠ Ġm Download Complete Receiver . unregister ( m Application ) ĊĠĠĠĠĠĠĠ ĠBook mark Manager . INSTANCE . remove Catalog Listener ( m Catalog Listener ) ĊĠĠĠĠĠĠĠ Ġm Callback Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Authorization Required () Ġ{ ĊĠĠĠĠĠĠĠ ĠLOGGER . i ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Authorization Ġrequired Ġfor Ġbookmark Ġpurchase " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Callback Ġ!= Ġnull ) Ġm Callback !!. on Authorization Required () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Payment Required () Ġ{ ĊĠĠĠĠĠĠĠ ĠLOGGER . i ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Payment Ġrequired Ġfor Ġbookmark Ġpurchase " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcheck (! TextUtils . isEmpty ( m Download Url )) Ġ{ Ġ" Download Ġurl Ġmust Ġbe Ġnon - null Ġif Ġpayment Ġrequired !" Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( m Callback Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparse Payment Data ( m Download Url !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Callback !!. on Payment Required ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save ( out State : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġout State ?. putString ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEX TRA _ DOWNLOAD _ URL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Download Url ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Restore ( in State : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Download Url Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin State ?. getString ( EXTRA _ DOWNLOAD _ URL ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠLOGGER Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoggerFactory . INSTANCE . getLogger ( LoggerFactory . Type . B ILL ING ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDefault Bookmark Download Controller :: class . java . simple Name ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX TRA _ DOWNLOAD _ URL Ġ= Ġ" extra _ download _ url " ĊĠĠĠĠĠĠĠ Ġ@ Throws ( Malformed URLException :: class ) ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġdownload Bookmark Internal ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl : ĠString ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdm Ġ= Ġfrom ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdm . enqueue Request ( url ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġcreate Payment Data Parser (): ĠPayment Data Parser Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBook mark Payment Data Parser () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġparse Payment Data ( url : ĠString ): ĠPayment Data Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Payment Data Parser () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparser . parse ( url ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }