1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.settings.testutils.shadow;
18 
19 import android.bluetooth.BluetoothAdapter;
20 import android.bluetooth.BluetoothDevice;
21 
22 import org.robolectric.annotation.Implementation;
23 import org.robolectric.annotation.Implements;
24 
25 import java.util.ArrayList;
26 import java.util.List;
27 
28 @Implements(value = BluetoothAdapter.class)
29 public class ShadowBluetoothAdapter extends org.robolectric.shadows.ShadowBluetoothAdapter {
30 
31     private int mState;
32     private List<Integer> mSupportedProfiles = new ArrayList<>();
33     private List<BluetoothDevice> mMostRecentlyConnectedDevices = new ArrayList<>();
34 
35     @Implementation
getSupportedProfiles()36     protected List<Integer> getSupportedProfiles() {
37         return mSupportedProfiles;
38     }
39 
addSupportedProfiles(int profile)40     public void addSupportedProfiles(int profile) {
41         mSupportedProfiles.add(profile);
42     }
43 
clearSupportedProfiles()44     public void clearSupportedProfiles() {
45         mSupportedProfiles.clear();
46     }
47 
48     @Implementation
getConnectionState()49     protected int getConnectionState() {
50         return mState;
51     }
52 
setConnectionState(int state)53     public void setConnectionState(int state) {
54         mState = state;
55     }
56 
57     @Implementation
factoryReset()58     protected boolean factoryReset() {
59         return true;
60     }
61 
62     @Implementation
getMostRecentlyConnectedDevices()63     protected List<BluetoothDevice> getMostRecentlyConnectedDevices() {
64         return mMostRecentlyConnectedDevices;
65     }
66 
setMostRecentlyConnectedDevices(List<BluetoothDevice> list)67     public void setMostRecentlyConnectedDevices(List<BluetoothDevice> list) {
68         mMostRecentlyConnectedDevices = list;
69     }
70 }
71