package com.openxc.enabler.preferences;
import android.content.Context;
import android.util.Log;
import com.openxc.VehicleLocationProvider;
import com.openxcplatform.enabler.R;
/**
* Enable or disable overwriting native GPS measurements with those from the
* vehicle.
*
* @see VehicleLocationProvider#setOverwritingStatus
*/
public class GpsOverwritePreferenceManager extends VehiclePreferenceManager {
private final static String TAG = "GpsOverwritePreferenceManager";
private VehicleLocationProvider mVehicleLocationProvider;
public GpsOverwritePreferenceManager(Context context) {
super(context);
}
public void close() {
super.close();
if(getVehicleManager() != null){
mVehicleLocationProvider.stop();
mVehicleLocationProvider = null;
}
}
protected PreferenceListener createPreferenceListener(){
return new PreferenceListener() {
private int[] WATCHED_PREFERENCE_KEY_IDS = {
R.string.gps_overwrite_checkbox_key,
};
protected int[] getWatchedPreferenceKeyIds() {
return WATCHED_PREFERENCE_KEY_IDS;
}
public void readStoredPreferences() {
setNativeGpsOverwriteStatus(getPreferences().getBoolean(
getString(R.string.gps_overwrite_checkbox_key), false));
}
};
}
private void setNativeGpsOverwriteStatus(boolean enabled) {
Log.i(TAG, "Setting native GPS overwriting to " + enabled);
if(mVehicleLocationProvider == null) {
mVehicleLocationProvider = new VehicleLocationProvider(getContext(),
getVehicleManager());
}
mVehicleLocationProvider.setOverwritingStatus(enabled);
}
}