package Ġcom . hod inv . music . screens . player Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . hardware . Sensor Ċ import Ġandroid . hardware . Sensor Manager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . LinearLayout Ċ import Ġcom . hod inv . music . R Ċ import Ġcom . hod inv . music . model . B ass Mode Ċ import Ġcom . hod inv . music . model . Note Ċ import Ġcom . hod inv . music . model . Tone Ċ import Ġcom . hod inv . music . mvp . M vp Activity Ċ import Ġcom . hod inv . music . repository . Player Settings Repository Ċ import Ġcom . hod inv . music . screens . player . dialogs . Sound Options Dialog Ċ import Ġcom . hod inv . music . services . Music Service Ċ import Ġcom . p aw eg io . k android . load Animation Ċ import Ġcom . p aw eg io . k android . sensor Manager Ċ import Ġcom . p aw eg io . k android . views ĊĊ Ċ class ĠPlayer Activity Ġ: ĠM vp Activity < Player Contract . Player View , ĠPlayer Contract . Player Router , ĠPlayer Contract . Player Presenter >(), ĠPlayer Contract . Player View , ĠPlayer Contract . Player Router Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠsetCurrent Temp o ( temp o : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing Ġfor Ġnow ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetCurrent B ass Mode ( b ass Mode : ĠB ass Mode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdo Ġnothing Ġfor Ġnow ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Label Rotation ( angle : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= ĠfindViewById < LinearLayout >( R . id . ly t _ labels ) ĊĠĠĠĠĠĠĠ Ġlayout . views . forEach Ġ{ Ġit . rotation Ġ= Ġangle . toFloat () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Base Orientation (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrequested Orientation ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetContext (): ĠContext Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġanimation Button : ĠButton ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġblink Button ( note : ĠNote , Ġtone : ĠT one ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbutton : ĠButton ? Ġ= Ġget Button ( tone , Ġnote ) ĊĠĠĠĠĠĠĠ Ġanimation Button ?. clear Animation () ĊĠĠĠĠĠĠĠ Ġif Ġ( button Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġanimation Ġ= Ġload Animation ( R . anim . blink ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . start Animation ( animation ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġanimation Button Ġ= Ġbutton ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Button ( tone : ĠT one , Ġnote : ĠNote ): ĠButton ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( tone ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT one . D UR Ġ-> Ġwhen Ġ( note ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ C Ġ-> ĠfindViewById < Button >( R . id . btn _ c _ dur ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ D Ġ-> ĠfindViewById < Button >( R . id . btn _ d _ dur ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ E Ġ-> ĠfindViewById < Button >( R . id . btn _ e _ dur ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ F Ġ-> ĠfindViewById < Button >( R . id . btn _ f _ dur ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ G Ġ-> ĠfindViewById < Button >( R . id . btn _ g _ dur ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ A Ġ-> ĠfindViewById < Button >( R . id . btn _ a _ dur ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ H Ġ-> ĠfindViewById < Button >( R . id . btn _ h _ dur ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠT one . M OL L Ġ-> Ġwhen Ġ( note ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ C Ġ-> ĠfindViewById < Button >( R . id . btn _ c _ m oll ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ D Ġ-> ĠfindViewById < Button >( R . id . btn _ d _ m oll ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ E Ġ-> ĠfindViewById < Button >( R . id . btn _ e _ m oll ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ F Ġ-> ĠfindViewById < Button >( R . id . btn _ f _ m oll ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ G Ġ-> ĠfindViewById < Button >( R . id . btn _ g _ m oll ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ A Ġ-> ĠfindViewById < Button >( R . id . btn _ a _ m oll ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNote . NOTE _ H Ġ-> ĠfindViewById < Button >( R . id . btn _ h _ m oll ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġblink No Buttons () Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( tone Ġin ĠT one . values ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( note Ġin ĠNote . values ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Button ( tone , Ġnote )?. clear Animation () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Presenter (): ĠPlayer Contract . Player Presenter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPlayer Presenter ({ ĠMusic Service ( this ) Ġ}, ĠPlayer Settings Repository ( this )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View (): ĠPlayer Contract . Player View Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Router (): ĠPlayer Contract . Player Router Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġorientation Sensor Listener Ġ= ĠSensor Logic ({ ĊĠĠĠĠĠĠĠ Ġpresenter ?. orientation Changed ( it ) ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġprivate Ġvar Ġsensor Orientation : ĠSensor ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ player ) ĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= ĠfindViewById < Toolbar >( R . id . toolbar ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġsetup Buttons () ĊĠĠĠĠĠĠĠ Ġsensor Orientation Ġ= Ġsensor Manager ?. getDefault Sensor ( Sensor . TYPE _ AC CEL ERO METER ) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Buttons () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ c _ dur ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ C , ĠT one . D UR ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ c _ m oll ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ C , ĠT one . M OL L ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ d _ dur ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ D , ĠT one . D UR ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ d _ m oll ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ D , ĠT one . M OL L ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ e _ dur ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ E , ĠT one . D UR ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ e _ m oll ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ E , ĠT one . M OL L ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ f _ dur ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ F , ĠT one . D UR ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ f _ m oll ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ F , ĠT one . M OL L ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ g _ dur ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ G , ĠT one . D UR ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ g _ m oll ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ G , ĠT one . M OL L ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ a _ dur ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ A , ĠT one . D UR ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ a _ m oll ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ A , ĠT one . M OL L ) Ġ} ĊĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ h _ dur ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ H , ĠT one . D UR ) Ġ} ĊĠĠĠĠĠĠĠ ĠfindViewById < Button >( R . id . btn _ h _ m oll ). setOnClickListener Ġ{ Ġpresenter ?. button Pressed ( Note . NOTE _ H , ĠT one . M OL L ) Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item ?. itemId Ġ== ĠR . id . menu _ stop _ sound ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter ?. stop Music () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( item ?. itemId Ġ== ĠR . id . menu _ sound _ settings ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Settings () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Settings () Ġ{ ĊĠĠĠĠĠĠĠ ĠSound Options Dialog (). show ( support FragmentManager , Ġ" sound Options ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . main _ toolbar _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġif Ġ( sensor Orientation Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Manager ?. register Listener ( orientation Sensor Listener , Ġsensor Orientation , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSensor Manager . SENSOR _ DELAY _ GAME ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġif Ġ( sensor Orientation Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Manager ?. unregister Listener ( orientation Sensor Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ