Skip to content

Commit 40a3dac

Browse files
committed
Disable Crazyradio settings when dongle is not attached
1 parent adf9f9c commit 40a3dac

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

RELEASE_CHECKLIST.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ Preferences
3838
* Preferences - Crazyradio scan
3939
* Open the preferences menu while **no** Crazyradio is attached
4040
* Open the connection settings
41-
* Start radio scan
42-
* => expected error: "Scanning is only supported with Crazyradio"
41+
* => all Crazyradio settings should be greyed out
4342

4443
Bootloader
4544
-----------

src/se/bitcraze/crazyfliecontrol/prefs/PreferencesActivity.java

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)