diff --git a/src/devices/KaiOSDevice.tsx b/src/devices/KaiOSDevice.tsx new file mode 100644 index 000000000..be4af3ecd --- /dev/null +++ b/src/devices/KaiOSDevice.tsx @@ -0,0 +1,16 @@ +/** + * Copyright 2018-present Facebook. + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * @format + */ + +import AndroidDevice from './AndroidDevice'; + +export default class KaiOSDevice extends AndroidDevice { + async screenCaptureAvailable() { + // The default way of capturing screenshots through adb does not seem to work + // There is a way of getting a screenshot through KaiOS dev tools though + return false; + } +} diff --git a/src/dispatcher/androidDevice.tsx b/src/dispatcher/androidDevice.tsx index 0164cf57b..a3bf64dae 100644 --- a/src/dispatcher/androidDevice.tsx +++ b/src/dispatcher/androidDevice.tsx @@ -6,6 +6,7 @@ */ import AndroidDevice from '../devices/AndroidDevice'; +import KaiOSDevice from '../devices/KaiOSDevice'; import child_process from 'child_process'; import {Store} from '../reducers/index'; import BaseDevice from '../devices/BaseDevice'; @@ -33,11 +34,16 @@ function createDevice( if (type === 'emulator') { name = (await getRunningEmulatorName(device.id)) || name; } - const androidDevice = new AndroidDevice(device.id, type, name, adbClient); + const isKaiOSDevice = Object.keys(props).some( + name => name.startsWith('kaios') || name.startsWith('ro.kaios'), + ); + const androidLikeDevice = new (isKaiOSDevice + ? KaiOSDevice + : AndroidDevice)(device.id, type, name, adbClient); if (ports) { - androidDevice.reverse([ports.secure, ports.insecure]); + androidLikeDevice.reverse([ports.secure, ports.insecure]); } - resolve(androidDevice); + resolve(androidLikeDevice); }); }); }