package com.vansuita.gaussianblur.sample.act;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.AppCompatSeekBar;
import android.support.v7.widget.Toolbar;
import android.widget.SeekBar;
import android.widget.TextView;
import com.vansuita.gaussianblur.GaussianBlur;
import com.vansuita.gaussianblur.sample.R;
import com.vansuita.gaussianblur.sample.adpt.DinosaurPagerAdapter;
import com.vansuita.gaussianblur.sample.lis.IOnSettingsChanged;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener {
private List<IOnSettingsChanged> listeners = new ArrayList();
private AppCompatSeekBar sbRadius;
private AppCompatSeekBar sbSize;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setAdapter(new DinosaurPagerAdapter(getSupportFragmentManager(), this));
((TabLayout) findViewById(R.id.tabs)).setupWithViewPager(viewPager);
sbRadius = (AppCompatSeekBar) findViewById(R.id.radius);
sbSize = (AppCompatSeekBar) findViewById(R.id.size);
sbRadius.setTag(R.id.label, findViewById(R.id.radius_label));
sbSize.setTag(R.id.label, findViewById(R.id.size_label));
sbRadius.setTag(R.id.label_title, R.string.radius);
sbSize.setTag(R.id.label_title, R.string.size);
sbRadius.setOnSeekBarChangeListener(this);
sbSize.setOnSeekBarChangeListener(this);
sbSize.setMax(GaussianBlur.MAX_RADIUS);
sbSize.setMax(GaussianBlur.MAX_SIZE);
sbRadius.setProgress(GaussianBlur.MAX_RADIUS);
sbSize.setProgress(GaussianBlur.MAX_SIZE);
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean b) {
((TextView) seekBar.getTag(R.id.label)).setText(getString((Integer) seekBar.getTag(R.id.label_title), progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
//No code, not used.
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
for (IOnSettingsChanged l : listeners)
l.onChanged();
}
public int getActualRadius() {
return sbRadius.getProgress();
}
public int getActualMaxSize() {
return sbSize.getProgress();
}
public void addOnSettingsChanged(IOnSettingsChanged listener) {
listeners.add(listener);
}
public void removeOnSettingsChanged(IOnSettingsChanged listener) {
listeners.remove(listener);
}
}