/** * Copyright (c) 2012 Vinayak Solutions Private Limited * See the file license.txt for copying permission. */ package com.vinsol.expensetracker.expenselisting.dialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.Chronometer; import com.vinsol.expensetracker.R; import com.vinsol.expensetracker.helpers.AudioPlay; import com.vinsol.expensetracker.utils.DisplayTimeForChronometer; import com.vinsol.expensetracker.utils.MyCountDownTimer; public class AudioPlayDialog extends Dialog implements android.view.View.OnClickListener,android.content.DialogInterface.OnDismissListener,android.content.DialogInterface.OnCancelListener { private Button stopButton; private Button playButton; private Button cancelButton; private Chronometer timeDetailsChronometer; private AudioPlay mAudioPlay; private MyCountDownTimer countDownTimer; private String mFile; private Context mContext; private boolean isFromFav; public AudioPlayDialog(Context context, String id) { super(context); doCommonTaskBefore(context, id); mAudioPlay = new AudioPlay(id, context,false); isFromFav = false; doCommonTask(); } public AudioPlayDialog(Context context, String id,String fav) { super(context); doCommonTaskBefore(context,id); mAudioPlay = new AudioPlay(id, context,true); isFromFav = true; doCommonTask(); } private void doCommonTaskBefore(Context context, String id) { mContext = context; mFile = id; requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.audio_play_dialog); } private void doCommonTask() { stopButton = (Button) findViewById(R.id.stop_button); playButton = (Button) findViewById(R.id.play_button); cancelButton = (Button) findViewById(R.id.cancel_button); timeDetailsChronometer = (Chronometer) findViewById(R.id.time_details_chronometer); cancelButton.setOnClickListener(this); playButton.setOnClickListener(this); stopButton.setOnClickListener(this); setOnDismissListener(this); setOnCancelListener(this); countDownTimer = new MyCountDownTimer(mAudioPlay.getPlayBackTime(), 1000, timeDetailsChronometer, stopButton,playButton,mAudioPlay); mAudioPlay.startPlayBack(); countDownTimer.start(); show(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.cancel_button: countDownTimer.cancel(); mAudioPlay.stopPlayBack(); dismiss(); break; case R.id.play_button: playButton.setVisibility(View.GONE); if (mAudioPlay.isAudioPlaying()) { countDownTimer.cancel(); mAudioPlay.stopPlayBack(); } mAudioPlay = new AudioPlay(mFile, mContext, isFromFav); countDownTimer = new MyCountDownTimer(mAudioPlay.getPlayBackTime(), 1000,timeDetailsChronometer,stopButton,playButton,mAudioPlay); countDownTimer.start(); mAudioPlay.startPlayBack(); stopButton.setVisibility(View.VISIBLE); break; case R.id.stop_button: stopButton.setVisibility(View.GONE); mAudioPlay.stopPlayBack(); countDownTimer.cancel(); timeDetailsChronometer.setText(new DisplayTimeForChronometer().getDisplayTime(mAudioPlay.getPlayBackTime())); playButton.setVisibility(View.VISIBLE); break; default: break; } } ////// **** Stops Audio PlayBack When Dialog will dismiss ***** /////// @Override public void onDismiss(DialogInterface dialog) { if (mAudioPlay != null && mAudioPlay.isAudioPlaying()) { mAudioPlay.stopPlayBack(); } } ////**** Stops Audio PlayBack When Dialog will cancel ***** /////// @Override public void onCancel(DialogInterface dialog) { if (mAudioPlay != null && mAudioPlay.isAudioPlaying()) { mAudioPlay.stopPlayBack(); } } }