package org.openiot.cupus.mobile.application;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.content.LocalBroadcastManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import org.openiot.cupus.artefact.TripletSubscription;
import org.openiot.cupus.common.Triplet;
import org.openiot.cupus.common.enums.Operator;
import org.openiot.cupus.mobile.data.IntentObjectHolder;
import org.openiot.cupus.mobile.data.Parameters;
public class SubscriptionActivity extends Activity {
private LocalBroadcastManager localBroadcastManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_subscription);
localBroadcastManager = LocalBroadcastManager.getInstance(this);
Button subscribeButton = (Button) findViewById(R.id.pressureSub);
subscribeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
EditText minPressureValue = (EditText) findViewById(R.id.pressure_value);
String minPressureText = minPressureValue.getText().toString().trim();
EditText minLatValue = (EditText) findViewById(R.id.minLat);
String minLatText = minLatValue.getText().toString().trim();
EditText maxLatValue = (EditText) findViewById(R.id.maxLat);
String maxLatText = maxLatValue.getText().toString().trim();
EditText minLongValue = (EditText) findViewById(R.id.minLong);
String minLongText = minLongValue.getText().toString().trim();
EditText maxLongValue = (EditText) findViewById(R.id.maxLong);
String maxLongText = maxLongValue.getText().toString().trim();
if ((minPressureText.length() == 0) &&
(minLatText.length() == 0 && maxLatText.length() == 0
&& minLongText.length() == 0 && maxLongText.length() == 0)) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(SubscriptionActivity.this);
alertDialog.setTitle("Message");
alertDialog.setMessage("You must enter value!");
alertDialog.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alertDialog.show();
}
else {
TripletSubscription subscription = new TripletSubscription(-1, System.currentTimeMillis());
if (!(minPressureText.length() == 0)) {
int minPressure = Integer.valueOf(minPressureText);
subscription.addPredicate(new Triplet("pressure", minPressure, Operator.GREATER_OR_EQUAL));
}
if (!(minLatText.length() == 0 && maxLatText.length() == 0
&& minLongText.length() == 0 && maxLongText.length() == 0)) {
double minLat = Double.valueOf(minLatText);
double maxLat = Double.valueOf(maxLatText);
double minLong = Double.valueOf(minLongText);
double maxLong = Double.valueOf(maxLongText);
subscription.addPredicate(new Triplet("latitude", minLat, Operator.GREATER_OR_EQUAL));
subscription.addPredicate(new Triplet("latitude", maxLat, Operator.LESS_OR_EQUAL));
subscription.addPredicate(new Triplet("longitude", minLong, Operator.GREATER_OR_EQUAL));
subscription.addPredicate(new Triplet("longitude", maxLong, Operator.LESS_OR_EQUAL));
}
IntentObjectHolder.setSubscription(subscription);
Intent intent = new Intent(Parameters.SUBSCRIPTION);
localBroadcastManager.sendBroadcast(intent);
}
}
});
Button unsubscribeButton = (Button) findViewById(R.id.unsubscribe);
unsubscribeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Parameters.CANCEL_SUBSCRIPTION);
localBroadcastManager.sendBroadcast(intent);
}
});
}
}