@@ -288,7 +288,7 @@ private void checkGyroSensors() {
288288 }
289289
290290 private void setRadioStats () {
291- Preference pref = findPreference (KEY_PREF_RADIO_STATS );
291+ Preference prefRadioStats = findPreference (KEY_PREF_RADIO_STATS );
292292 String defaultValue = getResources ().getString (R .string .preferences_radio_stats_summary );
293293
294294 UsbLinkAndroid usbLinkAndroid = null ;
@@ -298,25 +298,39 @@ private void setRadioStats() {
298298 if (usbLinkAndroid != null ) {
299299 usbLinkAndroid .initDevice (Crazyradio .CRADIO_VID , Crazyradio .CRADIO_PID );
300300 if (usbLinkAndroid .isUsbConnected ()) {
301- pref .setSummary ("Firmware version: " + usbLinkAndroid .getFirmwareVersion () + "\n " +
302- "Serial number: " + usbLinkAndroid .getSerialNumber ());
301+ prefRadioStats .setSummary ("Firmware version: " + usbLinkAndroid .getFirmwareVersion () + "\n " +
302+ "Serial number: " + usbLinkAndroid .getSerialNumber ());
303+ enableDisableRadioSettings (true );
303304 } else {
304- pref .setSummary (defaultValue );
305+ prefRadioStats .setSummary (defaultValue );
306+ enableDisableRadioSettings (false );
305307 }
308+ } else {
309+ prefRadioStats .setSummary (defaultValue );
310+ enableDisableRadioSettings (false );
306311 }
307312 } catch (IllegalArgumentException e ) {
308313 Log .d (LOG_TAG , e .getMessage ());
309- pref .setSummary (defaultValue );
314+ prefRadioStats .setSummary (defaultValue );
315+ enableDisableRadioSettings (false );
310316 } catch (IOException iae ) {
311317 Log .e (LOG_TAG , iae .getMessage ());
312- pref .setSummary (defaultValue );
318+ prefRadioStats .setSummary (defaultValue );
319+ enableDisableRadioSettings (false );
313320 } finally {
314321 if (usbLinkAndroid != null ) {
315322 usbLinkAndroid .releaseInterface ();
316323 }
317324 }
318325 }
319326
327+ private void enableDisableRadioSettings (boolean enable ) {
328+ findPreference (KEY_PREF_RADIO_CHANNEL ).setEnabled (enable );
329+ findPreference (KEY_PREF_RADIO_DATARATE ).setEnabled (enable );
330+ findPreference (KEY_PREF_RADIO_SCAN ).setEnabled (enable );
331+ findPreference (KEY_PREF_RADIO_STATS ).setEnabled (enable );
332+ }
333+
320334 // Set summary to be the user-description for the selected value
321335 public void onSharedPreferenceChanged (SharedPreferences sharedPreferences , String key ) {
322336 // Connection settings
@@ -332,7 +346,7 @@ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, Strin
332346 setSummaryArray (key , R .string .preferences_mode_defaultValue , R .array .modeEntries , -1 );
333347 }
334348 if (key .equals (KEY_PREF_DEADZONE )) {
335- findPreference (key ).setSummary (sharedPreferences .getString (key ,mDeadzoneDefaultValue ));
349+ findPreference (key ).setSummary (sharedPreferences .getString (key , mDeadzoneDefaultValue ));
336350 }
337351
338352 // Controller settings
0 commit comments