package github.nisrulz.sample.junittests;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private final static String COFFEE_COUNT = "coffee_count";
public final static float DEFAULT_COFFEE_PRICE = 5.0f;
private TextView mCoffeePrice;
private TextView mTotalPrice;
private TextView mCoffeeCount;
private CoffeeOrder mOrder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mCoffeePrice = (TextView) findViewById(R.id.coffee_price);
mTotalPrice = (TextView) findViewById(R.id.total_price);
mCoffeeCount = (TextView) findViewById(R.id.coffee_count);
mCoffeePrice.setText(String.format(getString(R.string.coffee_price), DEFAULT_COFFEE_PRICE));
mTotalPrice.setText(String.format(getString(R.string.total_price), 0.0f));
findViewById(R.id.coffee_increment).setOnClickListener(this);
findViewById(R.id.coffee_decrement).setOnClickListener(this);
mOrder = new CoffeeOrder(DEFAULT_COFFEE_PRICE);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.coffee_increment:
mOrder.incrementCoffeeCount();
updateCoffeeCount();
updateTotalPrice();
break;
case R.id.coffee_decrement:
mOrder.decrementCoffeeCount();
updateCoffeeCount();
updateTotalPrice();
break;
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(COFFEE_COUNT, mOrder.getCoffeeCount());
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null) {
mOrder.setCoffeeCount(savedInstanceState.getInt(COFFEE_COUNT));
updateCoffeeCount();
updateTotalPrice();
}
}
private void updateCoffeeCount() {
mCoffeeCount.setText(String.valueOf(mOrder.getCoffeeCount()));
}
private void updateTotalPrice() {
mTotalPrice.setText(String.format(getString(R.string.total_price), mOrder.getTotalPrice()));
}
}