package Ġcom . hol lab rowser . me force . search . suggestions Ċ Ċ import Ġandroid . app . Application Ċ import Ġcom . hol lab rowser . me force . R Ċ import Ġcom . hol lab rowser . me force . constant . UTF 8 Ċ import Ġcom . hol lab rowser . me force . database . Search Suggestion Ċ import Ġcom . hol lab rowser . me force . extensions . map Ċ import Ġcom . hol lab rowser . me force . extensions . preferred Locale Ċ import Ġcom . hol lab rowser . me force . log . Logger Ċ import Ġcom . hol lab rowser . me force . preference . User Preferences Ċ import Ġio . reactivex . Single Ċ import Ġokhttp 3 . Http Url Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ Ċ /** Ċ Ġ* ĠThe Ġsearch Ġsuggestions Ġprovider Ġfor Ġthe ĠD uck Duck Go Ġsearch Ġengine . Ċ Ġ*/ Ċ class ĠD uck Suggestions Model ( ĊĠĠĠ Ġok HttpClient : ĠSingle < Ok HttpClient >, ĊĠĠĠ Ġrequest Factory : ĠRequest Factory , ĊĠĠĠ Ġapplication : ĠApplication , ĊĠĠĠ Ġlogger : ĠLogger , ĊĠĠĠ Ġuser Preferences : ĠUser Preferences Ċ ) Ġ: ĠBase Suggestions Model ( ok HttpClient , Ġrequest Factory , ĠUTF 8 , Ġapplication . preferred Locale , Ġlogger , Ġuser Preferences ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsearch Subtitle Ġ= Ġapplication . getString ( R . string . suggestion ) ĊĊĠĠĠ Ġ// Ġhttps :// duck duck go . com / ac /? q ={ query } ĊĠĠĠ Ġoverride Ġfun Ġcreate Query Url ( query : ĠString , Ġlanguage : ĠString ): ĠHttp Url Ġ= ĠHttp Url . Builder () ĊĠĠĠĠĠĠĠ Ġ. scheme (" https ") ĊĠĠĠĠĠĠĠ Ġ. host (" duck duck go . com ") ĊĠĠĠĠĠĠĠ Ġ. encoded Path ("/ ac /") ĊĠĠĠĠĠĠĠ Ġ. add Encoded QueryParameter (" q ", Ġquery ) ĊĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠ Ġoverride Ġfun Ġparse Results ( response Body : ĠResponse Body ): ĠList < Search Suggestion > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠJSONArray ( response Body . string ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit Ġas ĠJSONObject Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . getString (" phrase ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠSearch Suggestion ("$ search Subtitle Ġ\"$ it \"", Ġit ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ