package greendrm.helloservice;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class AndroidHelloServiceActivity extends Activity implements OnClickListener {
private TestService.TestBinder binder;
private TestServiceConnection serviceConnection;
Button buttonBinder;
Button buttonAdd, buttonSub, buttonMul, buttonDiv;
EditText editOp1, editOp2;
TextView textviewResult;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
buttonBinder = (Button)findViewById(R.id.buttonBinder);
buttonAdd = (Button)findViewById(R.id.buttonAdd);
buttonSub = (Button)findViewById(R.id.buttonSub);
buttonMul = (Button)findViewById(R.id.buttonMul);
buttonDiv = (Button)findViewById(R.id.buttonDiv);
editOp1 = (EditText)findViewById(R.id.editTextOp1);
editOp2 = (EditText)findViewById(R.id.editTextOp2);
textviewResult = (TextView)findViewById(R.id.textViewResult);
buttonBinder.setOnClickListener(this);
buttonAdd.setOnClickListener(this);
buttonSub.setOnClickListener(this);
buttonMul.setOnClickListener(this);
buttonDiv.setOnClickListener(this);
}
@Override
public void onClick(View v) {
if (v == buttonBinder) {
if (binder == null) {
serviceConnection = new TestServiceConnection();
Intent intent = new Intent(this, TestService.class);
if (bindService(intent, serviceConnection,
Context.BIND_AUTO_CREATE)) {
buttonBinder.setText(getResources().getText(R.string.binderUnbind));
}
else {
binder = null;
}
}
else {
unbindService(serviceConnection);
binder = null;
buttonBinder.setText(getResources().getText(R.string.binderService));
}
}
else if (v == buttonAdd) {
if (binder != null) {
Integer a, b;
try {
a = new Integer(editOp1.getText().toString());
b = new Integer(editOp2.getText().toString());
}
catch (NumberFormatException e) {
return;
}
Integer res;
res = binder.add(a, b);
textviewResult.setText(res.toString());
}
}
else if (v == buttonSub) {
if (binder != null) {
Integer a, b;
try {
a = new Integer(editOp1.getText().toString());
b = new Integer(editOp2.getText().toString());
}
catch (NumberFormatException e) {
return;
}
Integer res;
res = binder.sub(a, b);
textviewResult.setText(res.toString());
}
}
else if (v == buttonMul) {
Integer a, b;
if (binder != null) {
try {
a = new Integer(editOp1.getText().toString());
b = new Integer(editOp2.getText().toString());
}
catch (NumberFormatException e) {
return;
}
Integer res;
res = binder.mul(a, b);
textviewResult.setText(res.toString());
}
}
else if (v == buttonDiv) {
if (binder != null) {
Double a, b;
try {
a = new Double(editOp1.getText().toString());
b = new Double(editOp2.getText().toString());
}
catch (NumberFormatException e) {
return;
}
Double res;
res = binder.div(a, b);
textviewResult.setText(res.toString());
}
}
}
private class TestServiceConnection implements ServiceConnection {
@Override
public void onServiceConnected(ComponentName name, IBinder _binder) {
binder = (TestService.TestBinder)_binder;
}
@Override
public void onServiceDisconnected(ComponentName name) {
binder = null;
}
}
}