12a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang/* 22a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * Copyright (C) 2017 The Android Open Source Project 32a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * 42a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * Licensed under the Apache License, Version 2.0 (the "License"); 52a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * you may not use this file except in compliance with the License. 62a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * You may obtain a copy of the License at 72a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * 82a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * http://www.apache.org/licenses/LICENSE-2.0 92a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * 102a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * Unless required by applicable law or agreed to in writing, software 112a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * distributed under the License is distributed on an "AS IS" BASIS, 122a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * See the License for the specific language governing permissions and 142a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang * limitations under the License. 152a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang */ 162a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 172a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhangpackage com.android.settings.testutils.shadow; 182a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 192a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhangimport android.view.InputDevice; 202a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 212a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhangimport org.robolectric.annotation.Implementation; 222a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhangimport org.robolectric.annotation.Implements; 232a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhangimport org.robolectric.annotation.Resetter; 242a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 252a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhangimport java.util.HashMap; 262a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhangimport java.util.Map; 272a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 282a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang@Implements(InputDevice.class) 292a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhangpublic class ShadowInputDevice extends org.robolectric.shadows.ShadowInputDevice { 302a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 312a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang public static int[] sDeviceIds; 322a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 332a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang private static Map<Integer, InputDevice> sDeviceMap = new HashMap<>(); 342a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 352a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang @Implementation 362a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang public static int[] getDeviceIds() { 372a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang return sDeviceIds; 382a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang } 392a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 402a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang @Implementation 412a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang public static InputDevice getDevice(int id) { 422a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang return sDeviceMap.get(id); 432a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang } 442a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 452a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang public static void addDevice(int id, InputDevice device) { 462a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang sDeviceMap.put(id, device); 472a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang } 482a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang 492a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang @Resetter 502a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang public static void reset() { 512a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang sDeviceIds = null; 522a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang sDeviceMap.clear(); 532a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang } 542a9255b33c3a36bad699375e9d36ed9395583bdcFan Zhang} 55