package andevcon14.FragmentComms.Types.ObserverPattern;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import andevcon14.FragmentComms.R;
public class ObserverPatternActivity extends Activity
implements Counter.Observer, MinusPlusButtonInterface{
private static final String COUNTER_KEY = "COUNTER_KEY";
private TextView count;
private Counter counter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.observer_pattern);
Button minusButton = (Button) findViewById(R.id.minusButton);
Button plusButton = (Button) findViewById(R.id.plusButton);
count = (TextView) findViewById(R.id.count);
if (savedInstanceState != null) {
counter = (Counter) savedInstanceState.getSerializable(COUNTER_KEY);
} else {
counter = new Counter();
ObserverPatternFragment fragment = new ObserverPatternFragment();
getFragmentManager()
.beginTransaction()
.add(R.id.right, fragment)
.commit();
}
minusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onMinusButton(view);
}
});
plusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onPlusButton(view);
}
});
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable(COUNTER_KEY, counter);
}
@Override
protected void onPause() {
super.onPause();
counter.unRegister(this);
counter.unRegister(
(Counter.Observer)
getFragmentManager()
.findFragmentById(R.id.left));
counter.unRegister(
(Counter.Observer)
getFragmentManager()
.findFragmentById(R.id.right));
}
@Override
protected void onResume() {
super.onResume();
counter.register(this);
counter.register(
(Counter.Observer)
getFragmentManager()
.findFragmentById(R.id.left));
counter.register(
(Counter.Observer)
getFragmentManager()
.findFragmentById(R.id.right));
}
@Override
public void onCount(int count) {
this.count.setText(""+count);
}
@Override
public void onMinusButton(View view) {
counter.update(false);
}
@Override
public void onPlusButton(View view) {
counter.update(true);
}
}