summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/status/widget/GPSButton.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/status/widget/GPSButton.java')
-rw-r--r--services/java/com/android/server/status/widget/GPSButton.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/services/java/com/android/server/status/widget/GPSButton.java b/services/java/com/android/server/status/widget/GPSButton.java
new file mode 100644
index 0000000..0251745
--- /dev/null
+++ b/services/java/com/android/server/status/widget/GPSButton.java
@@ -0,0 +1,50 @@
+package com.android.server.status.widget;
+
+import com.android.internal.R;
+import com.android.server.status.widget.PowerButton;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.location.LocationManager;
+import android.provider.Settings;
+import android.util.Log;
+
+public class GPSButton extends PowerButton {
+ static GPSButton ownButton;
+
+ public void updateState(Context context) {
+ Log.i("GPSButton", "Update State");
+ if(getGpsState(context)) {
+ currentIcon = com.android.internal.R.drawable.stat_gps_on;
+ currentState = STATE_ENABLED;
+ } else {
+ currentIcon = com.android.internal.R.drawable.stat_gps_off;
+ currentState = STATE_DISABLED;
+ }
+ }
+
+ public void toggleState(Context context) {
+ Log.i("GPSButton", "ToggleState");
+ ContentResolver resolver = context.getContentResolver();
+ boolean enabled = getGpsState(context);
+ Settings.Secure.setLocationProviderEnabled(resolver,
+ LocationManager.GPS_PROVIDER, !enabled);
+ }
+
+ private static boolean getGpsState(Context context) {
+ ContentResolver resolver = context.getContentResolver();
+ return Settings.Secure.isLocationProviderEnabled(resolver,
+ LocationManager.GPS_PROVIDER);
+ }
+
+ public static GPSButton getInstance() {
+ if (ownButton==null) ownButton = new GPSButton();
+
+ return ownButton;
+ }
+
+ @Override
+ void initButton(int position) {
+ }
+
+}