public void start() { synchronized (this) { if (!preferences.isCommandEnabled()) { Log.w(NotifierConstants.LOG_TAG, "Commands disabled, not starting"); return; } // Ensure the CPU keeps running while we listen for connections if (wakeLock == null) { PowerManager powerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, COMMANDS_LOCK_TAG); wakeLock.acquire(); } if (preferences.isBluetoothCommandEnabled()) { startBluetoothListener(); } if (preferences.isIpCommandEnabled()) { startIpListener(); } if (preferences.isUsbCommandEnabled()) { startUsbListener(); } startDiscoveryListener(); preferences.registerOnSharedPreferenceChangeListener(this); } }
public void shutdown() { synchronized (this) { preferences.unregisterOnSharedPreferenceChangeListener(this); shutdownDiscoveryListener(); shutdownIpListener(); shutdownBluetoothListener(); shutdownUsbListener(); wakeLock.release(); wakeLock = null; } }
@Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { synchronized (this) { if (key.equals(context.getString(R.string.command_bluetooth_key))) { if (preferences.isBluetoothCommandEnabled()) { startBluetoothListener(); } else { shutdownBluetoothListener(); } } else if (key.equals(context.getString(R.string.command_wifi_key))) { if (preferences.isIpCommandEnabled()) { startIpListener(); } else { shutdownIpListener(); } } else if (key.equals(context.getString(R.string.command_usb_key))) { if (preferences.isUsbCommandEnabled()) { startUsbListener(); } else { shutdownUsbListener(); } } } }