// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'dart:typed_data'; import 'package:android_driver_extensions/src/backend/android.dart'; /// A stub of [Adb] that allows overriding its methods. /// /// The default implementation of each method is a simple success case. final class FakeAdb implements Adb { FakeAdb({ Future<(bool, String?)> Function()? isDeviceConnected, Future Function()? screencap, Future Function(int x, int y)? tap, Future Function()? disableImmersiveModeConfirmations, Future Function()? disableAnimations, Future Function()? sendToHome, Future Function(String appName, [String? activityName])? resumeApp, Future Function(String appName)? trimMemory, }) : _isDeviceConnected = isDeviceConnected, _screencap = screencap, _tap = tap, _disableImmersiveModeConfirmations = disableImmersiveModeConfirmations, _disableAnimations = disableAnimations, _sendToHome = sendToHome, _resumeApp = resumeApp, _trimMemory = trimMemory; @override Future<(bool, String?)> isDeviceConnected() async { return _isDeviceConnected?.call() ?? (true, null); } final Future<(bool, String?)> Function()? _isDeviceConnected; @override Future screencap() { return _screencap?.call() ?? Future.value(Uint8List(0)); } final Future Function()? _screencap; @override Future tap(int x, int y) async { return _tap?.call(x, y) ?? Future.value(); } final Future Function(int x, int y)? _tap; @override Future disableImmersiveModeConfirmations() { return _disableImmersiveModeConfirmations?.call() ?? Future.value(); } final Future Function()? _disableImmersiveModeConfirmations; @override Future disableAnimations() { return _disableAnimations?.call() ?? Future.value(); } final Future Function()? _disableAnimations; @override Future sendToHome() { return _sendToHome?.call() ?? Future.value(); } final Future Function()? _sendToHome; @override Future resumeApp({required String appName, String? activityName}) { return _resumeApp?.call(appName, activityName) ?? Future.value(); } final Future Function(String appName, [String? activityName])? _resumeApp; @override Future trimMemory({required String appName}) { return _trimMemory?.call(appName) ?? Future.value(); } final Future Function(String appName)? _trimMemory; }