diff --git a/lost-sample/src/main/AndroidManifest.xml b/lost-sample/src/main/AndroidManifest.xml index 965866c..7fe4677 100644 --- a/lost-sample/src/main/AndroidManifest.xml +++ b/lost-sample/src/main/AndroidManifest.xml @@ -36,7 +36,8 @@ - + + diff --git a/lost-sample/src/main/java/com/example/lost/LocationAvailabilityActivity.java b/lost-sample/src/main/java/com/example/lost/LocationAvailabilityActivity.java new file mode 100644 index 0000000..ace4ec8 --- /dev/null +++ b/lost-sample/src/main/java/com/example/lost/LocationAvailabilityActivity.java @@ -0,0 +1,88 @@ +package com.example.lost; + +import android.os.Bundle; +import android.os.Looper; +import android.support.annotation.Nullable; +import android.support.v7.app.AppCompatActivity; +import android.view.View; +import android.widget.Button; +import android.widget.Toast; + +import com.mapzen.android.lost.api.LocationAvailability; +import com.mapzen.android.lost.api.LocationCallback; +import com.mapzen.android.lost.api.LocationRequest; +import com.mapzen.android.lost.api.LocationResult; +import com.mapzen.android.lost.api.LocationServices; +import com.mapzen.android.lost.api.LostApiClient; + +import static com.mapzen.android.lost.api.LocationRequest.PRIORITY_HIGH_ACCURACY; + +public class LocationAvailabilityActivity extends AppCompatActivity { + + LostApiClient client; + + LocationCallback callback = new LocationCallback() { + @Override + public void onLocationAvailability(LocationAvailability locationAvailability) { + boolean isAvailable = locationAvailability.isLocationAvailable(); + Toast.makeText(LocationAvailabilityActivity.this, isAvailable ? + R.string.location_available : R.string.location_unavailable, + Toast.LENGTH_SHORT).show(); + } + + @Override + public void onLocationResult(LocationResult result) { + + } + }; + + @Override protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_location_availability); + + setupLocationAvailabilityBtn(); + } + + private void setupLocationAvailabilityBtn() { + Button connect = (Button) findViewById(R.id.check_availability); + connect.setOnClickListener(new View.OnClickListener() { + @Override public void onClick(View v) { + if (client == null || !client.isConnected()) { + connect(); + } else { + checkLocationAvailability(); + } + } + }); + } + + private void connect() { + client = new LostApiClient.Builder(this).addConnectionCallbacks( + new LostApiClient.ConnectionCallbacks() { + @Override + public void onConnected() { + checkLocationAvailability(); + } + + @Override + public void onConnectionSuspended() { + + } + }).build(); + client.connect(); + } + + private void checkLocationAvailability() { + LocationAvailability availability = + LocationServices.FusedLocationApi.getLocationAvailability(client); + boolean isAvailable = availability.isLocationAvailable(); + Toast.makeText(LocationAvailabilityActivity.this, isAvailable ? R.string.location_available + : R.string.location_unavailable, Toast.LENGTH_SHORT).show(); + + final LocationRequest locationRequest = LocationRequest.create() + .setPriority(PRIORITY_HIGH_ACCURACY); + LocationServices.FusedLocationApi.requestLocationUpdates(client, locationRequest, callback, + Looper.myLooper()); + + } +} diff --git a/lost-sample/src/main/java/com/example/lost/SamplesList.java b/lost-sample/src/main/java/com/example/lost/SamplesList.java index b6bffa1..49a6030 100644 --- a/lost-sample/src/main/java/com/example/lost/SamplesList.java +++ b/lost-sample/src/main/java/com/example/lost/SamplesList.java @@ -18,6 +18,8 @@ private SamplesList() { new Sample(R.string.sample_location_listener_title, R.string.sample_location_listener_description, LocationListenerActivity.class), new Sample(R.string.sample_pending_intent_title, - R.string.sample_pending_intent_description, PendingIntentActivity.class) + R.string.sample_pending_intent_description, PendingIntentActivity.class), + new Sample(R.string.sample_location_availability_title, + R.string.sample_location_availability_description, LocationAvailabilityActivity.class) }; } diff --git a/lost-sample/src/main/res/layout/activity_location_availability.xml b/lost-sample/src/main/res/layout/activity_location_availability.xml new file mode 100644 index 0000000..3afe233 --- /dev/null +++ b/lost-sample/src/main/res/layout/activity_location_availability.xml @@ -0,0 +1,12 @@ + + + +