package Ġcom . zh ou . speech . speak čĊč Ċ import Ġandroid . content . Context č Ċ import Ġandroid . os . Handler č Ċ import Ġorg . json . JSONObject čĊč Ċ /** čĊ Ġ* Ġ Ġ@ author ĠAdministrator _ Z hou čĊ Ġ* Ġ Ġcreated Ġon Ġ 2 0 1 9 / 3 / 2 4 čĊ Ġ*/ č Ċ abstract Ġclass ĠS peaker Ġ{ čĊčĊĠĠĠ Ġabstract Ġfun Ġinit ( context : ĠContext ) čĊĠĠĠ Ġabstract Ġfun Ġplay ( text : ĠString ) čĊĠĠĠ Ġabstract Ġfun Ġplay ( text : ĠString , Ġmap : ĠMap < String , ĠString >) čĊĠĠĠ Ġabstract Ġfun Ġpause () čĊĠĠĠ Ġabstract Ġfun Ġstop () čĊĠĠĠ Ġabstract Ġfun Ġrelease () čĊĠĠĠ Ġabstract Ġfun Ġdownload ( text : ĠString , Ġcallback : ĠDownload Callback ? Ġ= Ġnull ) čĊĠĠĠ Ġabstract Ġfun Ġspeak Type (): ĠString čĊčĊĠĠĠ Ġabstract Ġfun Ġdefault Config (): ĠHashMap < String , ĠString > čĊčĊĠĠĠ Ġfun ĠgetConfig ( context : ĠContext ): ĠHashMap < String , ĠString > Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġcontext . get SharedPreferences ( CONFIG _ SPE AK ER , Ġ 0 ). getString ( speak Type (), Ġnull ) čĊĠĠĠĠĠĠĠ Ġconfig ?. apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject ( config ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġjson . names () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ!= Ġnull Ġ&& Ġname . length () Ġ> Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġhash Map Of < String , ĠString >() čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlen Ġ= Ġname . length () Ġ- Ġ 1 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. len ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk Ġ= Ġname . opt String ( i ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġjson . opt String ( k ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap . put ( k , Ġv ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmap čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġdefault Config () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġsave Config ( context : ĠContext , map : ĠMap < String , ĠString >) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= Ġmap . entries čĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject () čĊĠĠĠĠĠĠĠ Ġset . forEach Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson . put ( it . key , Ġit . value ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġcontext . get SharedPreferences ( CONFIG _ SPE AK ER , Ġ 0 ). edit (). putString ( speak Type (), Ġjson . toString ()). apply () čĊĠĠĠ Ġ} čĊč Ċ }