package com.android.settings.widget.buttons;
import android.content.ContentResolver;
import android.content.Context;
import android.content.SharedPreferences;
import android.location.LocationManager;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.widget.SettingsAppWidgetProvider;
import com.android.settings.widget.WidgetSettings;
public class GPSButton extends WidgetButton {
static GPSButton ownButton=null;
public void updateState(Context context,
SharedPreferences globalPreferences, int[] appWidgetIds) {
if (getGpsState(context)) {
currentIcon=R.drawable.ic_appwidget_settings_gps_on;
currentState=SettingsAppWidgetProvider.STATE_ENABLED;
} else {
currentIcon=R.drawable.ic_appwidget_settings_gps_off;
currentState=SettingsAppWidgetProvider.STATE_DISABLED;
}
}
/**
* Toggles the state of GPS.
*
* @param context
*/
public void toggleState(Context context) {
ContentResolver resolver = context.getContentResolver();
boolean enabled = getGpsState(context);
Settings.Secure.setLocationProviderEnabled(resolver,
LocationManager.GPS_PROVIDER, !enabled);
}
/**
* Gets the state of GPS location.
*
* @param context
* @return true if 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() {
buttonID=WidgetButton.BUTTON_GPS;
preferenceName=WidgetSettings.TOGGLE_GPS;
}
}