package treehou.se.habit.ui.control;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SeekBar;
import butterknife.ButterKnife;
import butterknife.OnClick;
import io.realm.Realm;
import se.treehou.ng.ohcommunicator.connector.models.OHServer;
import se.treehou.ng.ohcommunicator.services.Connector;
import se.treehou.ng.ohcommunicator.services.IServerHandler;
import treehou.se.habit.R;
import treehou.se.habit.core.db.model.controller.CellDB;
import treehou.se.habit.core.db.model.controller.SliderCellDB;
public class SliderActivity extends AppCompatActivity {
public static final String TAG = "SliderActivity";
public static final String ACTION_NUMBER = "active";
public static final String ARG_CELL = "arg_cell";
public static final String SLIDER_TAG = "sliderDialog";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_slider);
ButterKnife.bind(this);
long id = getIntent().getExtras().getLong(ARG_CELL);
SliderFragment sliderFragment = SliderFragment.newInstance(id);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, sliderFragment, SLIDER_TAG)
.commit();
}
}
@Override
protected void onPause() {
super.onPause();
finish();
}
@Override
public void finish() {
super.finish();
overridePendingTransition(0, 0);
}
@OnClick(R.id.container)
void closeClick() {
finish();
}
/**
* A placeholder fragment containing a simple view.
*/
public static class SliderFragment extends Fragment {
private SliderCellDB numberCell;
private Realm realm;
public SliderFragment() {}
public static SliderFragment newInstance(long id) {
SliderFragment fragment = new SliderFragment();
Bundle args = new Bundle();
args.putLong(ARG_CELL, id);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
realm = Realm.getDefaultInstance();
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
try {
View rootView = inflater.inflate(R.layout.fragment_slider, null, false);
if (getArguments() != null) {
long id = getArguments().getLong(ARG_CELL);
CellDB cell = CellDB.load(realm, id);
numberCell = SliderCellDB.getCell(realm, cell);
}
SeekBar sbrNumber = (SeekBar) rootView.findViewById(R.id.sbrNumber);
sbrNumber.setMax(numberCell.getMax());
sbrNumber.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if (numberCell != null) {
OHServer server = numberCell.getItem().getServer().toGeneric();
IServerHandler serverHandler = new Connector.ServerHandler(server, getContext());
serverHandler.sendCommand(numberCell.getItem().getName(), "" + seekBar.getProgress());
}
}
});
return rootView;
}catch (Exception e){
return inflater.inflate(R.layout.item_widget_null, null, false);
}
}
@Override
public void onDestroy() {
super.onDestroy();
realm.close();
}
}
}