1ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh/* 22c0df0560ad5ae3fd6022b17b17a6a70143e216aHemant Gupta * Copyright (C) 2012-2014 The Android Open Source Project 3ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * 4ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * Licensed under the Apache License, Version 2.0 (the "License"); 5ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * you may not use this file except in compliance with the License. 6ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * You may obtain a copy of the License at 7ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * 8ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * http://www.apache.org/licenses/LICENSE-2.0 9ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * 10ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * Unless required by applicable law or agreed to in writing, software 11ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * distributed under the License is distributed on an "AS IS" BASIS, 12ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * See the License for the specific language governing permissions and 14ede67c26e7b2564ea35db6d9b3027a269c150e13Zhihai Xu * limitations under the License. 15ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh */ 16ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 17ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganeshpackage com.android.bluetooth.btservice; 18ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 19ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganeshfinal class JniCallbacks { 20ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 21ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh private RemoteDevices mRemoteDevices; 22ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh private AdapterProperties mAdapterProperties; 23ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh private AdapterState mAdapterStateMachine; 24ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh private BondStateMachine mBondStateMachine; 25ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 2674ae04c73312403e89db0f8e9bd9601d403b4783fredc JniCallbacks(AdapterState adapterStateMachine,AdapterProperties adapterProperties) { 27ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh mAdapterStateMachine = adapterStateMachine; 2874ae04c73312403e89db0f8e9bd9601d403b4783fredc mAdapterProperties = adapterProperties; 29ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 3031ba132491053bc86d419a7d51fc04af3299c076fredc 3174ae04c73312403e89db0f8e9bd9601d403b4783fredc void init(BondStateMachine bondStateMachine, RemoteDevices remoteDevices) { 3231ba132491053bc86d419a7d51fc04af3299c076fredc mRemoteDevices = remoteDevices; 3331ba132491053bc86d419a7d51fc04af3299c076fredc mBondStateMachine = bondStateMachine; 3431ba132491053bc86d419a7d51fc04af3299c076fredc } 3531ba132491053bc86d419a7d51fc04af3299c076fredc 3674ae04c73312403e89db0f8e9bd9601d403b4783fredc void cleanup() { 3774ae04c73312403e89db0f8e9bd9601d403b4783fredc mRemoteDevices = null; 3874ae04c73312403e89db0f8e9bd9601d403b4783fredc mAdapterProperties = null; 3974ae04c73312403e89db0f8e9bd9601d403b4783fredc mAdapterStateMachine = null; 4074ae04c73312403e89db0f8e9bd9601d403b4783fredc mBondStateMachine = null; 4174ae04c73312403e89db0f8e9bd9601d403b4783fredc } 4274ae04c73312403e89db0f8e9bd9601d403b4783fredc 433a91ac3eefe23a22aa0abc1a89ac253a2b0dbae9Nick Kralevich @Override 443a91ac3eefe23a22aa0abc1a89ac253a2b0dbae9Nick Kralevich public Object clone() throws CloneNotSupportedException { 45ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh throw new CloneNotSupportedException(); 46ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 47ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 48ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh void sspRequestCallback(byte[] address, byte[] name, int cod, int pairingVariant, 49ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh int passkey) { 5011b41d8123241ba8e693e21c4db308bacff23f57Mudumba Ananth mBondStateMachine.sspRequestCallback(address, name, cod, pairingVariant, 51ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh passkey); 52ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 53ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh void devicePropertyChangedCallback(byte[] address, int[] types, byte[][] val) { 54ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh mRemoteDevices.devicePropertyChangedCallback(address, types, val); 55ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 56ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 57ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh void deviceFoundCallback(byte[] address) { 58ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh mRemoteDevices.deviceFoundCallback(address); 59ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 60ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 61ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh void pinRequestCallback(byte[] address, byte[] name, int cod) { 6211b41d8123241ba8e693e21c4db308bacff23f57Mudumba Ananth mBondStateMachine.pinRequestCallback(address, name, cod); 63ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 64ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 65ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh void bondStateChangeCallback(int status, byte[] address, int newState) { 66ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh mBondStateMachine.bondStateChangeCallback(status, address, newState); 67ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 68ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 6901a8cf98f070a6996b2e8974edc229ac402f3f0cKausik Sinnaswamy void aclStateChangeCallback(int status, byte[] address, int newState) { 7001a8cf98f070a6996b2e8974edc229ac402f3f0cKausik Sinnaswamy mRemoteDevices.aclStateChangeCallback(status, address, newState); 7101a8cf98f070a6996b2e8974edc229ac402f3f0cKausik Sinnaswamy } 7201a8cf98f070a6996b2e8974edc229ac402f3f0cKausik Sinnaswamy 73ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh void stateChangeCallback(int status) { 74ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh mAdapterStateMachine.stateChangeCallback(status); 75ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 76ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 77ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh void discoveryStateChangeCallback(int state) { 78ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh mAdapterProperties.discoveryStateChangeCallback(state); 79ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 80ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh 81ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh void adapterPropertyChangedCallback(int[] types, byte[][] val) { 82ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh mAdapterProperties.adapterPropertyChangedCallback(types, val); 83ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh } 84b5cc776c9353a203cdde97e62b25f05d9633d14cfredc 852c0df0560ad5ae3fd6022b17b17a6a70143e216aHemant Gupta void deviceMasInstancesFoundCallback(int status, byte[] address, String[] name, int[] scn, 862c0df0560ad5ae3fd6022b17b17a6a70143e216aHemant Gupta int[] id, int[] msgtype) { 872c0df0560ad5ae3fd6022b17b17a6a70143e216aHemant Gupta mRemoteDevices.deviceMasInstancesFoundCallback(status, address, name, scn, id, msgtype); 882c0df0560ad5ae3fd6022b17b17a6a70143e216aHemant Gupta } 89ff4f17bf64978d0738c66e1b6dd70be8664efc24Jaikumar Ganesh} 90