package com.example.lost; import com.mapzen.android.lost.api.Geofence; import com.mapzen.android.lost.api.GeofencingRequest; import com.mapzen.android.lost.api.LocationServices; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import static com.mapzen.android.lost.api.Geofence.GEOFENCE_TRANSITION_DWELL; import static com.mapzen.android.lost.api.Geofence.GEOFENCE_TRANSITION_ENTER; import static com.mapzen.android.lost.api.Geofence.GEOFENCE_TRANSITION_EXIT; import static com.mapzen.android.lost.api.Geofence.NEVER_EXPIRE; /** * Geofencing demo */ public class GeofencingApiActivity extends LostApiClientActivity { private TextView inputRequestId; private TextView inputLatitude; private TextView inputLongitude; private TextView inputRadius; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_geofencing); initConnectButton(); initDisconnectButton(); initInputFields(); initCreateButton(); } private void initConnectButton() { Button connectButton = (Button) findViewById(R.id.button_connect); if (connectButton != null) { connectButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { connect(); } }); } } private void initDisconnectButton() { Button disconnectButton = (Button) findViewById(R.id.button_disconnect); if (disconnectButton != null) { disconnectButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { disconnect(); } }); } } private void initInputFields() { inputRequestId = (TextView) findViewById(R.id.input_request_id); inputLatitude = (TextView) findViewById(R.id.input_latitude); inputLongitude = (TextView) findViewById(R.id.input_longitude); inputRadius = (TextView) findViewById(R.id.input_radius); } private void initCreateButton() { Button createButton = (Button) findViewById(R.id.button_create); if (createButton != null) { createButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { createGeofence(); } }); } } private void createGeofence() { String requestId = inputRequestId.getText().toString(); double latitude = Double.valueOf(inputLatitude.getText().toString()); double longitude = Double.valueOf(inputLongitude.getText().toString()); float radius = Float.valueOf(inputRadius.getText().toString()); Geofence geofence = new Geofence.Builder() .setRequestId(requestId) .setCircularRegion(latitude, longitude, radius) .setTransitionTypes(GEOFENCE_TRANSITION_ENTER | GEOFENCE_TRANSITION_EXIT | GEOFENCE_TRANSITION_DWELL) .setLoiteringDelay(10000) .setExpirationDuration(NEVER_EXPIRE) .build(); GeofencingRequest request = new GeofencingRequest.Builder() .addGeofence(geofence) .build(); Intent serviceIntent = new Intent(getApplicationContext(), GeofenceIntentService.class); PendingIntent pendingIntent = PendingIntent.getService(this, 0, serviceIntent, 0); LocationServices.GeofencingApi.addGeofences(client, request, pendingIntent); } }