• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2021 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.google.android.tv.btservices.settings;
18 
19 import android.bluetooth.BluetoothDevice;
20 import android.content.Context;
21 import com.google.android.tv.btservices.remote.DfuManager;
22 import com.google.android.tv.btservices.remote.RemoteProxy;
23 import com.google.android.tv.btservices.remote.Version;
24 import com.google.android.tv.btservices.R;
25 
26 /**
27  * Local provider proxy to customize events.
28  */
29 abstract class LocalBluetoothDeviceProvider implements BluetoothDeviceProvider {
30 
getHostBluetoothDeviceProvider()31     abstract BluetoothDeviceProvider getHostBluetoothDeviceProvider();
32 
33     @Override
getBatteryLevel(BluetoothDevice device)34     public int getBatteryLevel(BluetoothDevice device) {
35         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
36         if (provider != null) {
37             return provider.getBatteryLevel(device);
38         }
39         return BluetoothDevice.BATTERY_LEVEL_UNKNOWN;
40     }
41 
42     @Override
mapBatteryLevel(Context context, BluetoothDevice device, int level)43     public String mapBatteryLevel(Context context, BluetoothDevice device, int level) {
44         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
45         if (provider != null) {
46             return provider.mapBatteryLevel(context, device, level);
47         }
48         return context.getString(R.string.settings_remote_battery_level_percentage_label, level);
49     }
50 
51     @Override
getVersion(BluetoothDevice device)52     public Version getVersion(BluetoothDevice device) {
53         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
54         if (provider != null) {
55             return provider.getVersion(device);
56         }
57         return Version.BAD_VERSION;
58     }
59 
60     @Override
hasUpgrade(BluetoothDevice device)61     public boolean hasUpgrade(BluetoothDevice device) {
62         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
63         if (provider != null) {
64             return provider.hasUpgrade(device);
65         }
66         return false;
67     }
68 
69     @Override
isBatteryLow(BluetoothDevice device)70     public boolean isBatteryLow(BluetoothDevice device) {
71         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
72         if (provider != null) {
73             return provider.isBatteryLow(device);
74         }
75         return false;
76     }
77 
78     @Override
getDfuState(BluetoothDevice device)79     public RemoteProxy.DfuResult getDfuState(BluetoothDevice device) {
80         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
81         if (provider != null) {
82             return provider.getDfuState(device);
83         }
84         return null;
85     }
86 
87     @Override
startDfu(BluetoothDevice device)88     public void startDfu(BluetoothDevice device) {
89         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
90         if (provider != null) {
91             provider.startDfu(device);
92         }
93     }
94 
95     @Override
connectDevice(BluetoothDevice device)96     public void connectDevice(BluetoothDevice device) {
97         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
98         if (provider != null) {
99             provider.connectDevice(device);
100         }
101     }
102 
103     @Override
disconnectDevice(BluetoothDevice device)104     public void disconnectDevice(BluetoothDevice device) {
105         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
106         if (provider != null) {
107             provider.disconnectDevice(device);
108         }
109     }
110 
111     @Override
forgetDevice(BluetoothDevice device)112     public void forgetDevice(BluetoothDevice device) {
113         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
114         if (provider != null) {
115             provider.forgetDevice(device);
116         }
117     }
118 
119     @Override
renameDevice(BluetoothDevice device, String newName)120     public void renameDevice(BluetoothDevice device, String newName) {
121         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
122         if (provider != null) {
123             provider.renameDevice(device, newName);
124         }
125     }
126 
127     @Override
addListener(Listener listener)128     public void addListener(Listener listener) {
129         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
130         if (provider != null) {
131             provider.addListener(listener);
132         }
133     }
134 
135     @Override
removeListener(Listener listener)136     public void removeListener(Listener listener) {
137         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
138         if (provider != null) {
139             provider.removeListener(listener);
140         }
141     }
142 
143     @Override
addListener(DfuManager.Listener listener)144     public void addListener(DfuManager.Listener listener) {
145         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
146         if (provider != null) {
147             provider.addListener(listener);
148         }
149     }
150 
151     @Override
removeListener(DfuManager.Listener listener)152     public void removeListener(DfuManager.Listener listener) {
153         BluetoothDeviceProvider provider = getHostBluetoothDeviceProvider();
154         if (provider != null) {
155             provider.removeListener(listener);
156         }
157     }
158 }
159