summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--samples/training/location-aware/libs/android-support-v4.jarbin0 -> 271754 bytes
-rw-r--r--samples/training/location-aware/res/drawable-hdpi/button_default.9.pngbin1468 -> 1856 bytes
-rw-r--r--samples/training/location-aware/res/drawable-hdpi/button_on.9.pngbin1438 -> 1761 bytes
-rw-r--r--samples/training/location-aware/res/drawable-hdpi/button_pressed.9.pngbin1463 -> 1814 bytes
-rw-r--r--samples/training/location-aware/res/drawable-mdpi/button_default.pngbin0 -> 1492 bytes
-rw-r--r--samples/training/location-aware/res/drawable-mdpi/button_on.9.pngbin3559 -> 1435 bytes
-rw-r--r--samples/training/location-aware/res/drawable-mdpi/button_pressed.9.pngbin3586 -> 1467 bytes
-rw-r--r--samples/training/location-aware/res/drawable-xhdpi/button_default.9.pngbin3411 -> 1468 bytes
-rw-r--r--samples/training/location-aware/res/drawable-xhdpi/button_on.9.pngbin3296 -> 1438 bytes
-rw-r--r--samples/training/location-aware/res/drawable-xhdpi/button_pressed.9.pngbin3379 -> 1463 bytes
-rw-r--r--samples/training/location-aware/res/values/strings.xml6
-rw-r--r--samples/training/location-aware/src/com/example/android/location/LocationActivity.java56
12 files changed, 58 insertions, 4 deletions
diff --git a/samples/training/location-aware/libs/android-support-v4.jar b/samples/training/location-aware/libs/android-support-v4.jar
new file mode 100644
index 000000000..99e063b33
--- /dev/null
+++ b/samples/training/location-aware/libs/android-support-v4.jar
Binary files differ
diff --git a/samples/training/location-aware/res/drawable-hdpi/button_default.9.png b/samples/training/location-aware/res/drawable-hdpi/button_default.9.png
index f19682efb..ced6dc804 100644
--- a/samples/training/location-aware/res/drawable-hdpi/button_default.9.png
+++ b/samples/training/location-aware/res/drawable-hdpi/button_default.9.png
Binary files differ
diff --git a/samples/training/location-aware/res/drawable-hdpi/button_on.9.png b/samples/training/location-aware/res/drawable-hdpi/button_on.9.png
index 0efa25cc5..119239607 100644
--- a/samples/training/location-aware/res/drawable-hdpi/button_on.9.png
+++ b/samples/training/location-aware/res/drawable-hdpi/button_on.9.png
Binary files differ
diff --git a/samples/training/location-aware/res/drawable-hdpi/button_pressed.9.png b/samples/training/location-aware/res/drawable-hdpi/button_pressed.9.png
index 7ce743c0f..240ef81cd 100644
--- a/samples/training/location-aware/res/drawable-hdpi/button_pressed.9.png
+++ b/samples/training/location-aware/res/drawable-hdpi/button_pressed.9.png
Binary files differ
diff --git a/samples/training/location-aware/res/drawable-mdpi/button_default.png b/samples/training/location-aware/res/drawable-mdpi/button_default.png
new file mode 100644
index 000000000..ac6e834b0
--- /dev/null
+++ b/samples/training/location-aware/res/drawable-mdpi/button_default.png
Binary files differ
diff --git a/samples/training/location-aware/res/drawable-mdpi/button_on.9.png b/samples/training/location-aware/res/drawable-mdpi/button_on.9.png
index edc31c620..1523ad552 100644
--- a/samples/training/location-aware/res/drawable-mdpi/button_on.9.png
+++ b/samples/training/location-aware/res/drawable-mdpi/button_on.9.png
Binary files differ
diff --git a/samples/training/location-aware/res/drawable-mdpi/button_pressed.9.png b/samples/training/location-aware/res/drawable-mdpi/button_pressed.9.png
index 7e818ee86..cc1f46c45 100644
--- a/samples/training/location-aware/res/drawable-mdpi/button_pressed.9.png
+++ b/samples/training/location-aware/res/drawable-mdpi/button_pressed.9.png
Binary files differ
diff --git a/samples/training/location-aware/res/drawable-xhdpi/button_default.9.png b/samples/training/location-aware/res/drawable-xhdpi/button_default.9.png
index 800dd0047..f19682efb 100644
--- a/samples/training/location-aware/res/drawable-xhdpi/button_default.9.png
+++ b/samples/training/location-aware/res/drawable-xhdpi/button_default.9.png
Binary files differ
diff --git a/samples/training/location-aware/res/drawable-xhdpi/button_on.9.png b/samples/training/location-aware/res/drawable-xhdpi/button_on.9.png
index cec21b430..0efa25cc5 100644
--- a/samples/training/location-aware/res/drawable-xhdpi/button_on.9.png
+++ b/samples/training/location-aware/res/drawable-xhdpi/button_on.9.png
Binary files differ
diff --git a/samples/training/location-aware/res/drawable-xhdpi/button_pressed.9.png b/samples/training/location-aware/res/drawable-xhdpi/button_pressed.9.png
index 15375d5f0..7ce743c0f 100644
--- a/samples/training/location-aware/res/drawable-xhdpi/button_pressed.9.png
+++ b/samples/training/location-aware/res/drawable-xhdpi/button_pressed.9.png
Binary files differ
diff --git a/samples/training/location-aware/res/values/strings.xml b/samples/training/location-aware/res/values/strings.xml
index 4d6a87f61..cad1046f3 100644
--- a/samples/training/location-aware/res/values/strings.xml
+++ b/samples/training/location-aware/res/values/strings.xml
@@ -17,10 +17,12 @@
<resources>
<string name="app_name">Android Training: Location Update</string>
<string name="address">Address:</string>
+ <string name="enable_gps">Enable GPS</string>
+ <string name="enable_gps_dialog">GPS provider not enabled. Would you like to enable it?</string>
<string name="latlng">Lat/Long:</string>
<string name="unknown">--Unknown--</string>
<string name="not_support_gps">GPS provider not supported</string>
<string name="not_support_network">Network provider not supported</string>
- <string name="use_fine_provider">Use fine provider</string>
- <string name="use_both_providers">Use both providers</string>
+ <string name="use_fine_provider">Fine-grain provider</string>
+ <string name="use_both_providers">Both providers</string>
</resources>
diff --git a/samples/training/location-aware/src/com/example/android/location/LocationActivity.java b/samples/training/location-aware/src/com/example/android/location/LocationActivity.java
index 93f4ce123..117c0cf08 100644
--- a/samples/training/location-aware/src/com/example/android/location/LocationActivity.java
+++ b/samples/training/location-aware/src/com/example/android/location/LocationActivity.java
@@ -17,8 +17,11 @@
package com.example.android.location;
import android.annotation.SuppressLint;
-import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.Dialog;
import android.content.Context;
+import android.content.DialogInterface;
+import android.content.Intent;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
@@ -29,6 +32,9 @@ import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.provider.Settings;
+import android.support.v4.app.DialogFragment;
+import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
@@ -38,7 +44,7 @@ import java.io.IOException;
import java.util.List;
import java.util.Locale;
-public class LocationActivity extends Activity {
+public class LocationActivity extends FragmentActivity {
private TextView mLatLng;
private TextView mAddress;
private Button mFineProviderButton;
@@ -122,6 +128,32 @@ public class LocationActivity extends Activity {
setup();
}
+ @Override
+ protected void onStart() {
+ super.onStart();
+
+ // Check if the GPS setting is currently enabled on the device.
+ // This verification should be done during onStart() because the system calls this method
+ // when the user returns to the activity, which ensures the desired location provider is
+ // enabled each time the activity resumes from the stopped state.
+ LocationManager locationManager =
+ (LocationManager) getSystemService(Context.LOCATION_SERVICE);
+ final boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
+
+ if (!gpsEnabled) {
+ // Build an alert dialog here that requests that the user enable
+ // the location services, then when the user clicks the "OK" button,
+ // call enableLocationSettings()
+ new EnableGpsDialogFragment().show(getSupportFragmentManager(), "enableGpsDialog");
+ }
+ }
+
+ // Method to launch Settings
+ private void enableLocationSettings() {
+ Intent settingsIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
+ startActivity(settingsIntent);
+ }
+
// Stop receiving location updates whenever the Activity becomes invisible.
@Override
protected void onStop() {
@@ -338,4 +370,24 @@ public class LocationActivity extends Activity {
return null;
}
}
+
+ /**
+ * Dialog to prompt users to enable GPS on the device.
+ */
+ private class EnableGpsDialogFragment extends DialogFragment {
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ return new AlertDialog.Builder(getActivity())
+ .setTitle(R.string.enable_gps)
+ .setMessage(R.string.enable_gps_dialog)
+ .setPositiveButton(R.string.enable_gps, new DialogInterface.OnClickListener() {
+ @Override
+ public void onClick(DialogInterface dialog, int which) {
+ enableLocationSettings();
+ }
+ })
+ .create();
+ }
+ }
}