aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/github/daneren2005/dsub/util/DroppySpeedControl.java
blob: 8f58e60e02ede334f9410bfced4cc540179cba95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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;
    }
}