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     private int mIsLeAudioBroadcastSourceSupported;
35     private int mIsLeAudioBroadcastAssistantSupported;
36 
37     @Implementation
getSupportedProfiles()38     protected List<Integer> getSupportedProfiles() {
39         return mSupportedProfiles;
40     }
41 
addSupportedProfiles(int profile)42     public void addSupportedProfiles(int profile) {
43         mSupportedProfiles.add(profile);
44     }
45 
clearSupportedProfiles()46     public void clearSupportedProfiles() {
47         mSupportedProfiles.clear();
48     }
49 
50     @Implementation
getConnectionState()51     protected int getConnectionState() {
52         return mState;
53     }
54 
setConnectionState(int state)55     public void setConnectionState(int state) {
56         mState = state;
57     }
58 
59     @Implementation
factoryReset()60     protected boolean factoryReset() {
61         return true;
62     }
63 
64     @Implementation
getMostRecentlyConnectedDevices()65     protected List<BluetoothDevice> getMostRecentlyConnectedDevices() {
66         return mMostRecentlyConnectedDevices;
67     }
68 
setMostRecentlyConnectedDevices(List<BluetoothDevice> list)69     public void setMostRecentlyConnectedDevices(List<BluetoothDevice> list) {
70         mMostRecentlyConnectedDevices = list;
71     }
72 
73     @Implementation
isLeAudioBroadcastSourceSupported()74     protected int isLeAudioBroadcastSourceSupported() {
75         return mIsLeAudioBroadcastSourceSupported;
76     }
77 
setIsLeAudioBroadcastSourceSupported(int isSupported)78     public void setIsLeAudioBroadcastSourceSupported(int isSupported) {
79         mIsLeAudioBroadcastSourceSupported = isSupported;
80     }
81 
82     @Implementation
isLeAudioBroadcastAssistantSupported()83     protected int isLeAudioBroadcastAssistantSupported() {
84         return mIsLeAudioBroadcastAssistantSupported;
85     }
86 
setIsLeAudioBroadcastAssistantSupported(int isSupported)87     public void setIsLeAudioBroadcastAssistantSupported(int isSupported) {
88         mIsLeAudioBroadcastAssistantSupported = isSupported;
89     }
90 }
91