package com.openxc.enabler.preferences; import android.content.Context; import android.util.Log; import com.openxc.interfaces.usb.UsbVehicleInterface; import com.openxc.remote.VehicleServiceException; import com.openxcplatform.enabler.R; /** * Enable or disable receiving vehicle data from a USB vehicle interface. */ public class UsbPreferenceManager extends VehiclePreferenceManager { private final static String TAG = "UsbPreferenceManager"; public UsbPreferenceManager(Context context) { super(context); } protected PreferenceListener createPreferenceListener() { return new PreferenceListener() { private int[] WATCHED_PREFERENCE_KEY_IDS = { R.string.vehicle_interface_key }; protected int[] getWatchedPreferenceKeyIds() { return WATCHED_PREFERENCE_KEY_IDS; } public void readStoredPreferences() { setUsbStatus(getPreferences().getString( getString(R.string.vehicle_interface_key), "").equals( getString(R.string.usb_interface_option_value))); } }; } private synchronized void setUsbStatus(boolean enabled) { if(enabled) { Log.i(TAG, "Enabling the USB vehicle interface"); try { getVehicleManager().setVehicleInterface( UsbVehicleInterface.class); } catch(VehicleServiceException e) { Log.e(TAG, "Unable to add USB interface"); } } } }