package org.openiot.cupus.mobile.application;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import org.openiot.cupus.mobile.entity.mobilebroker.MobileBrokerService;
public class MobileBrokerActivity extends Activity {
private Intent serviceIntent;
private String mobileBrokerName;
private String brokerIpAddress;
private int brokerPort;
private String brokerType;
private boolean brokerConected = false;
private boolean gcmReceiver = false;
public static BroadcastReceiver receiver = null;
public static Activity activity;
private String CLIENT_KEY = "client";
private String SERVER_KEY = "server";
private String PORT_KEY = "port";
private String MBA_STATE_SP = "mba_state";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mobile_broker);
this.activity = this;
Button connectButton = (Button) findViewById(R.id.connect_button);
Button disconnectButton = (Button) findViewById(R.id.disconnect_button);
// test: ispis id-a
/*TelephonyManager tManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String uuid = tManager.getDeviceId();
System.out.println(uuid);
System.out.println(SensorUniqueID.deviceID);*/
connectButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText myNameText = (EditText) findViewById(R.id.client_name);
String myName = myNameText.getText().toString();
EditText brokerIPText = (EditText) findViewById(R.id.broker_ip);
String brokerIP = brokerIPText.getText().toString();
EditText brokerPortText = (EditText) findViewById(R.id.broker_port);
String stringBrokerPort = brokerPortText.getText().toString();
RadioButton radioButtonTCP = (RadioButton) findViewById(R.id.radioButtonTCP);
if(radioButtonTCP.isChecked()){
brokerType = "TCP";
}else {
brokerType = "GCM";
}
if (myName.trim().length() == 0 || brokerIP.trim().length() == 0 || stringBrokerPort.trim().length() == 0) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MobileBrokerActivity.this);
alertDialog.setTitle("Message");
alertDialog.setMessage("You must enter all values!");
alertDialog.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alertDialog.show();
}
else {
// mobile broker service
mobileBrokerName = myName;
brokerIpAddress = brokerIP;
brokerPort = Integer.valueOf(stringBrokerPort);
serviceIntent = new Intent(MobileBrokerActivity.this, MobileBrokerService.class);
serviceIntent.putExtra("mobileBrokerName", mobileBrokerName);
serviceIntent.putExtra("brokerIP", brokerIpAddress);
serviceIntent.putExtra("brokerPort", brokerPort);
serviceIntent.putExtra("brokerType", brokerType);
startService(serviceIntent);
}
}
});
disconnectButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
stopService(serviceIntent);
}
});
SharedPreferences prefs = getSharedPreferences(MBA_STATE_SP, Activity.MODE_PRIVATE);
if (prefs != null) {
//Retreive the View
EditText myNameText = (EditText) findViewById(R.id.client_name);
EditText brokerIPText = (EditText) findViewById(R.id.broker_ip);
EditText brokerPortText = (EditText) findViewById(R.id.broker_port);
//Load its state
String text = prefs.getString(CLIENT_KEY, "");
myNameText.setText(text);
text = prefs.getString(SERVER_KEY, "");
brokerIPText.setText(text);
text = prefs.getString(PORT_KEY, "");
brokerPortText.setText(text);
}
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//Retreive the View
EditText myNameText = (EditText) findViewById(R.id.client_name);
EditText brokerIPText = (EditText) findViewById(R.id.broker_ip);
EditText brokerPortText = (EditText) findViewById(R.id.broker_port);
//Load its state
String text;
if (savedInstanceState.containsKey(CLIENT_KEY)) {
text = savedInstanceState.getString(CLIENT_KEY);
myNameText.setText(text);
}
if (savedInstanceState.containsKey(SERVER_KEY)) {
text = savedInstanceState.getString(SERVER_KEY);
brokerIPText.setText(text);
}
if (savedInstanceState.containsKey(PORT_KEY)) {
text = savedInstanceState.getString(PORT_KEY);
brokerPortText.setText(text);
}
}
@Override
public void onSaveInstanceState(Bundle saveInstanceState) {
// Retrieve the View
EditText myNameText = (EditText) findViewById(R.id.client_name);
EditText brokerIPText = (EditText) findViewById(R.id.broker_ip);
EditText brokerPortText = (EditText) findViewById(R.id.broker_port);
// Save its state
saveInstanceState.putString(CLIENT_KEY, myNameText.getText().toString());
saveInstanceState.putString(SERVER_KEY, brokerIPText.getText().toString());
saveInstanceState.putString(PORT_KEY, brokerPortText.getText().toString());
super.onSaveInstanceState(saveInstanceState);
}
@Override
public void finish() {
super.finish();
SharedPreferences prefs = getSharedPreferences(MBA_STATE_SP, Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
// Retrieve the View
EditText myNameText = (EditText) findViewById(R.id.client_name);
EditText brokerIPText = (EditText) findViewById(R.id.broker_ip);
EditText brokerPortText = (EditText) findViewById(R.id.broker_port);
// Save its state
editor.putString(CLIENT_KEY, myNameText.getText().toString());
editor.putString(SERVER_KEY, brokerIPText.getText().toString());
editor.putString(PORT_KEY, brokerPortText.getText().toString());
editor.apply();
}
public void setGcmReceiver(boolean gcmReceiver) {
this.gcmReceiver = gcmReceiver;
}
public void setBroadcastReceiver(BroadcastReceiver receiver) {
this.receiver = receiver;
}
// @Override
// protected void onDestroy() {
//// if(brokerConected) {
//// disconnectFromBroker();
//// }
// if(gcmReceiver){
// unregisterReceiver(receiver);
// }
// super.onDestroy();
// }
}