package com.openvehicles.OVMS.ui;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Spinner;
import com.luttu.AppPrefes;
import com.openvehicles.OVMS.R;
import com.openvehicles.OVMS.utils.ConnectionList;
public class Settings extends Fragment implements ConnectionList.Con {
private static final String TAG = "Settings(OCM)";
View view;
AppPrefes appPrefes;
ConnectionList connectionList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.setting, null);
appPrefes = new AppPrefes(getActivity(), "ovms");
String url = "http://api.openchargemap.io/v2/referencedata/";
connectionList = new ConnectionList(getActivity(), this, url,false);
setUpClusteringViews();
return view;
}
public interface UpdateMap {
public void updateClustering(int clusterSizeIndex, boolean enabled);
public void clearCache();
public void updateFilter(String connectionList);
}
@Override
public void connections(String al, String name) {
Log.d(TAG, "connections: al=" + al);
FragMap.updateMap.updateFilter(al);
}
private void setUpClusteringViews() {
CheckBox clusterCheckbox = (CheckBox) view
.findViewById(R.id.checkbox_cluster);
final SeekBar clusterSizeSeekbar = (SeekBar) view
.findViewById(R.id.seekbar_cluster_size);
Spinner maxResultsSpinner = (Spinner) view
.findViewById(R.id.ocm_maxresults);
Button btnConnections = (Button) view
.findViewById(R.id.btn_connections);
if (appPrefes.getData("check").equals("false")) {
clusterCheckbox.setChecked(false);
}
try {
clusterSizeSeekbar.setProgress(Integer.parseInt(appPrefes
.getData("progress")));
} catch (Exception e) {
// TODO: handle exception
}
// set maxresults spinner to current value:
try {
String ocm_maxresults_value = appPrefes.getData("maxresults");
String[] ocm_maxresults_options = getResources().getStringArray(R.array.ocm_options_maxresults);
int ocm_maxresults_index = 0;
for (int i=0; i<ocm_maxresults_options.length; i++) {
if (ocm_maxresults_options[i].equals(ocm_maxresults_value)) {
ocm_maxresults_index = i;
break;
}
}
maxResultsSpinner.setSelection(ocm_maxresults_index);
} catch (Exception e) {
// TODO: handle exception
}
clusterCheckbox
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
clusterSizeSeekbar.setEnabled(isChecked);
appPrefes.SaveData("check", "" + isChecked);
FragMap.updateMap.updateClustering(
clusterSizeSeekbar.getProgress(), isChecked);
}
});
clusterSizeSeekbar
.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
appPrefes.SaveData("progress", "" + progress);
FragMap.updateMap.updateClustering(progress, true);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
maxResultsSpinner
.setOnItemSelectedListener(new Spinner.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String selected = adapterView.getItemAtPosition(i).toString();
if (!appPrefes.getData("maxresults").equals(selected)) {
appPrefes.SaveData("maxresults", "" + selected);
FragMap.updateMap.clearCache();
}
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
btnConnections
.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
connectionList.sublist();
}
});
}
}