package github.daneren2005.dsub.util;
import android.content.Context;
import android.content.res.Resources;
import android.view.View;
import android.widget.SeekBar;
import android.widget.TextView;
import com.shehabic.droppy.DroppyClickCallbackInterface;
import com.shehabic.droppy.DroppyMenuCustomItem;
/**
* Created by marcus on 2/14/2017.
*/
public class DroppySpeedControl extends DroppyMenuCustomItem {
private Context context;
private SeekBar seekBar;
private DroppyClickCallbackInterface updateBarCallback;
public DroppySpeedControl(int customResourceId) {
super(customResourceId);
}
@Override
public View render(Context context) {
return super.render(context);
}
public DroppySpeedControl setOnClicks(Context context, final DroppyClickCallbackInterface callback, int ... elementsByID){
render(context);
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
callback.call(v, v.getId());
}
};
for (Integer element : elementsByID) {
renderedView.findViewById(element).setOnClickListener(listener);
}
return this;
}
public void updateSeekBar(float playbackSpeed){
TextView tv = (TextView)seekBar.getTag();
tv.setText(Float.toString(playbackSpeed));
seekBar.setProgress((int)(playbackSpeed*10)-5);
}
public DroppySpeedControl setOnSeekBarChangeListener(Context context, final DroppyClickCallbackInterface callback, int seekBarByID, int textViewByID, float playbackSpeed) {
updateBarCallback = callback;
render(context);
final TextView textBox = (TextView) renderedView.findViewById(textViewByID);
textBox.setText(Float.toString(playbackSpeed));
SeekBar seekBar = ((SeekBar) renderedView.findViewById(seekBarByID));
this.seekBar = seekBar;
seekBar.setTag(textBox);
seekBar.setProgress((int)(playbackSpeed*10)-5);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if (fromUser) {
textBox.setText(new Float((progress + 5) / 10.0).toString());
seekBar.setProgress(progress);
callback.call(seekBar,seekBar.getId());
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
seekBar.setProgress((int)((playbackSpeed/10.0) - 5));
return this;
}
}