package Ġdev . ent ao . kan . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroid . widget . TextView Ċ import Ġdev . ent ao . kan . app base . ex . ARGB Ċ import Ġdev . ent ao . kan . app base . ex . RGB Ċ import Ġdev . ent ao . kan . app base . ex . Shape Rect Ċ import Ġdev . ent ao . kan . creator . create Linear Vertical Ċ import Ġdev . ent ao . kan . creator . create TextView C Ċ import Ġdev . ent ao . kan . ext .* Ċ import Ġdev . ent ao . kan . log . Y og Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġyang ent ao Ġon Ġ 2 0 1 5 / 1 1 / 2 2 . Ċ Ġ* Ġent ao yang @ 1 6 3 . com Ċ Ġ*/ Ċ class ĠVoice Panel ( val Ġparent : ĠRelative Layout ) Ġ: ĠA mr Record . AM R Record Callback Ġ{ ĊĠĠĠ Ġlateinit Ġvar Ġam r Record : ĠA mr Record ĊĠĠĠ Ġlateinit Ġvar Ġinfo Panel : ĠLinearLayout ĊĠĠĠ Ġlateinit Ġvar Ġwave View : ĠWave View ĊĠĠĠ Ġlateinit Ġvar ĠtextView : ĠTextView ĊĠĠĠ Ġprivate Ġvar Ġcallback : ĠVoice Panel Callback ? Ġ= Ġnull ĊĊĠĠĠ Ġval Ġcontext : ĠContext Ġ= Ġparent . context ĊĊĠĠĠ Ġvar Ġlast File : ĠFile ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġfun Ġinit () Ġ{ ĊĠĠĠĠĠĠĠ Ġam r Record Ġ= ĠA mr Record () ĊĠĠĠĠĠĠĠ Ġval Ġbg Ġ= ĠShape Rect ( ARGB ( 0 x 8 0 , Ġ 0 , Ġ 0 , Ġ 0 ), Ġ 1 0 ). stroke ( 1 , ĠRGB ( 0 xC 0 , Ġ 0 xC 0 , Ġ 0 xC 0 )). value ĊĠĠĠĠĠĠĠ Ġinfo Panel Ġ= Ġcontext . create Linear Vertical (). back Drawable ( bg ). padding ( 5 ). g one () ĊĊĠĠĠĠĠĠĠ Ġwave View Ġ= ĠWave View ( context ) ĊĠĠĠĠĠĠĠ Ġwave View . setColor ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġwave View . set MaxValue ( MAX ) ĊĠĠĠĠĠĠĠ Ġinfo Panel . addView ( wave View , Ġlinear Param (). width Fill (). height ( 1 0 0 )) ĊĊĠĠĠĠĠĠĠ ĠtextView Ġ= Ġcontext . create TextView C (). gravity Center Horizontal (). textColor White () ĊĠĠĠĠĠĠĠ Ġinfo Panel . addView ( textView , Ġlinear Param (). width Fill (). height Wrap ()) ĊĠĠĠĠĠĠĠ Ġparent . addView ( info Panel , Ġrelative Param (). center In Parent (). width ( 2 0 0 ). height Wrap ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Callback ( callback : ĠVoice Panel Callback ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . callback Ġ= Ġcallback ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Text ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġtext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ ĠY og . d (" å¼Ģå§ĭ å½ķ éŁ³ ") ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġparent . context . getFile Stream Path (" audio _" Ġ+ ĠSystem . currentTimeMillis () Ġ+ Ġ". am r ") ĊĠĠĠĠĠĠĠ Ġam r Record . start ( file , Ġthis ) ĊĠĠĠĠĠĠĠ Ġinfo Panel . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġwave View . clear Data () ĊĠĠĠĠĠĠĠ Ġset Text ( TEXT _ IN ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġend () Ġ{ ĊĠĠĠĠĠĠĠ ĠY og . d (" ç»ĵæĿŁ å½ķ éŁ³ ") ĊĠĠĠĠĠĠĠ Ġam r Record . stop () ĊĠĠĠĠĠĠĠ Ġwave View . clear Data () ĊĠĠĠĠĠĠĠ Ġinfo Panel . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġval Ġduration Ġ= Ġam r Record . duration () ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġam r Record . file ĊĠĠĠĠĠĠĠ Ġif Ġ( duration Ġ< Ġ 2 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile ?. delete () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Util . show (" å°ı äºİ 2 ç§Ĵ , Ġ åıĸæ¶Ī åıĳéĢģ ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file . exists () Ġ&& Ġcallback Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast File Ġ= Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback !!. on Record OK ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcancel () Ġ{ ĊĠĠĠĠĠĠĠ ĠY og . d (" åıĸæ¶Ī å½ķ éŁ³ ") ĊĠĠĠĠĠĠĠ Ġam r Record . stop () ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġam r Record . file ĊĠĠĠĠĠĠĠ Ġfile ?. delete () ĊĠĠĠĠĠĠĠ Ġwave View . clear Data () ĊĠĠĠĠĠĠĠ Ġinfo Panel . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Amp ( amp s : ĠArrayList < Int >) Ġ{ ĊĠĠĠĠĠĠĠ Ġwave View . setValue ( amp s ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠVoice Panel Callback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Record OK ( file : ĠFile ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTEXT _ IN Ġ= Ġ" æīĭ æĮĩ ä¸Ĭ æ»ĳ , Ġ åıĸæ¶Ī åıĳéĢģ " ĊĠĠĠĠĠĠĠ Ġval ĠTEXT _ OUT Ġ= Ġ" æĿ ¾ å¼Ģ åıĸæ¶Ī " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠMAX Ġ= Ġ 3 0 0 0 0 ĊĠĠĠ Ġ} Ċ } Ċ