package org.witness.informacam.app.views;
import info.guardianproject.odkparser.widgets.ODKSeekBar;
import org.witness.informacam.utils.Constants.App.Storage;
import org.witness.informacam.app.utils.Constants.App.Editor.Forms;
import org.witness.informacam.models.forms.IForm;
import org.witness.informacam.app.R;
import android.content.Context;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.util.AttributeSet;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class AudioNoteInfoView extends LinearLayout implements OnCompletionListener
{
private IForm mForm;
private TextView tvLabel;
private ODKSeekBar mSeekBar;
public AudioNoteInfoView(Context context)
{
super(context);
}
public AudioNoteInfoView(Context context, AttributeSet attrs)
{
super(context, attrs);
}
@Override
protected void onFinishInflate()
{
super.onFinishInflate();
tvLabel = (TextView) findViewById(R.id.tvLabel);
init();
}
public IForm getForm()
{
return mForm;
}
public void setForm(IForm form)
{
mForm = form;
init();
}
private void init()
{
if (mForm != null && tvLabel != null)
{
mSeekBar = new ODKSeekBar(getContext());
mSeekBar.init(new java.io.File(Storage.EXTERNAL_DIR, "tmprecord_" + System.currentTimeMillis() + ".3gp"), this);
mForm.associate(mSeekBar, Forms.FreeAudio.PROMPT);
setTime(mSeekBar.getMax());
}
}
@Override
public void onCompletion(MediaPlayer mp)
{
}
public ImageView getIconView()
{
return (ImageView) findViewById(R.id.ivIcon);
}
public void setTime(int totalSeconds)
{
if (totalSeconds < 0)
{
// reset
totalSeconds = mSeekBar.getMax();
}
int seconds = (totalSeconds % 60);
int minutes = (totalSeconds / 60);
tvLabel.setText(String.format("%02d:%02d", minutes, seconds));
}
}