/* LinkingDeviceService.java Copyright (c) 2016 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.deviceplugin.linking.linking.service; import org.deviceconnect.android.deviceplugin.linking.LinkingDestroy; import org.deviceconnect.android.deviceplugin.linking.linking.LinkingDevice; import org.deviceconnect.android.deviceplugin.linking.linking.profile.LinkingBatteryProfile; import org.deviceconnect.android.deviceplugin.linking.linking.profile.LinkingDeviceOrientationProfile; import org.deviceconnect.android.deviceplugin.linking.linking.profile.LinkingHumidityProfile; import org.deviceconnect.android.deviceplugin.linking.linking.profile.LinkingKeyEventProfile; import org.deviceconnect.android.deviceplugin.linking.linking.profile.LinkingLightProfile; import org.deviceconnect.android.deviceplugin.linking.linking.profile.LinkingNotificationProfile; import org.deviceconnect.android.deviceplugin.linking.linking.profile.LinkingProximityProfile; import org.deviceconnect.android.deviceplugin.linking.linking.profile.LinkingTemperatureProfile; import org.deviceconnect.android.deviceplugin.linking.linking.profile.LinkingVibrationProfile; import org.deviceconnect.android.profile.DConnectProfile; import org.deviceconnect.android.service.DConnectService; public class LinkingDeviceService extends DConnectService implements LinkingDestroy { private LinkingDevice mDevice; public LinkingDeviceService(final LinkingDevice device) { super(device.getBdAddress()); setName(device.getDisplayName()); setNetworkType(NetworkType.BLE); mDevice = device; if (mDevice.isSupportSensor()) { addProfile(new LinkingDeviceOrientationProfile()); } if (mDevice.isSupportButton()) { addProfile(new LinkingKeyEventProfile()); } if (mDevice.isSupportLED()) { addProfile(new LinkingLightProfile()); } addProfile(new LinkingNotificationProfile()); addProfile(new LinkingProximityProfile()); if (mDevice.isSupportVibration()) { addProfile(new LinkingVibrationProfile()); } if (mDevice.isSupportBattery()) { addProfile(new LinkingBatteryProfile()); } if (mDevice.isSupportTemperature()) { addProfile(new LinkingTemperatureProfile()); } if (mDevice.isSupportHumidity()) { addProfile(new LinkingHumidityProfile()); } } @Override public boolean isOnline() { return mDevice.isConnected(); } @Override public void onDestroy() { for (DConnectProfile profile : getProfileList()) { if (profile instanceof LinkingDestroy) { ((LinkingDestroy) profile).onDestroy(); } } } public void setLinkingDevice(final LinkingDevice device) { mDevice = device; } public LinkingDevice getLinkingDevice() { return mDevice; } }