From dda800c4a3488fb94a1827e16204b6b8d215dd72 Mon Sep 17 00:00:00 2001 From: Alexander Putilin Date: Fri, 27 Sep 2019 06:09:40 -0700 Subject: [PATCH] Initial support for KaiOS device plugins Summary: Introduces basic KaiOSDevice class. Since kaios phones support adb, it is inherited from AndroidDevice Reviewed By: jknoxville Differential Revision: D17608605 fbshipit-source-id: 6b2c5834a1f5862b864c8e76202d0d401e58cbcc --- src/devices/KaiOSDevice.tsx | 16 ++++++++++++++++ src/dispatcher/androidDevice.tsx | 12 +++++++++--- 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 src/devices/KaiOSDevice.tsx 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); }); }); }