firmware: fix flashing on Android

Hubs that don't use the minimum chunk size will fail on Android since
it defaults to the smallest possible MTU.

Issue: https://github.com/pybricks/support/issues/403
This commit is contained in:
David Lechner
2021-08-12 15:55:24 -05:00
committed by David Lechner
parent 56c739fa08
commit ce8f59e0c2
+4 -2
View File
@@ -55,6 +55,7 @@ import {
import { RootState } from '../reducers';
import { defined, maybe } from '../utils';
import { fmod, sumComplement32 } from '../utils/math';
import { isAndroid } from '../utils/os';
import {
FailToFinishReasonType,
FlashFirmwareActionType,
@@ -376,8 +377,9 @@ function* flashFirmware(action: FlashFirmwareFlashAction): Generator {
yield* disconnectAndCancel();
}
// 14 is "safe" size for all hubs
const maxDataSize = MaxProgramFlashSize.get(info.hubType) || 14;
// 14 is "safe" size for all hubs and Android
const maxDataSize =
(!isAndroid() && MaxProgramFlashSize.get(info.hubType)) || 14;
for (let count = 1, offset = 0; ; count++) {
const payload = firmware.slice(offset, offset + maxDataSize);