/*
LinkingBeaconService.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.beacon.service;
import org.deviceconnect.android.deviceplugin.linking.beacon.data.LinkingBeacon;
import org.deviceconnect.android.deviceplugin.linking.beacon.profile.LinkingAtmosphericPressureProfile;
import org.deviceconnect.android.deviceplugin.linking.beacon.profile.LinkingBatteryProfile;
import org.deviceconnect.android.deviceplugin.linking.beacon.profile.LinkingHumidityProfile;
import org.deviceconnect.android.deviceplugin.linking.beacon.profile.LinkingKeyEventProfile;
import org.deviceconnect.android.deviceplugin.linking.beacon.profile.LinkingProximityProfile;
import org.deviceconnect.android.deviceplugin.linking.beacon.profile.LinkingTemperatureProfile;
import org.deviceconnect.android.deviceplugin.linking.LinkingDestroy;
import org.deviceconnect.android.message.DConnectMessageService;
import org.deviceconnect.android.profile.DConnectProfile;
import org.deviceconnect.android.service.DConnectService;
public class LinkingBeaconService extends DConnectService implements LinkingDestroy {
private LinkingBeacon mBeacon;
public LinkingBeaconService(final DConnectMessageService service, final LinkingBeacon beacon) {
super(beacon.getServiceId());
setName(beacon.getDisplayName());
setNetworkType(NetworkType.BLE);
mBeacon = beacon;
addProfile(new LinkingAtmosphericPressureProfile());
addProfile(new LinkingBatteryProfile(service));
addProfile(new LinkingHumidityProfile());
addProfile(new LinkingKeyEventProfile(service));
addProfile(new LinkingProximityProfile(service));
addProfile(new LinkingTemperatureProfile());
}
@Override
public boolean isOnline() {
return mBeacon.isOnline();
}
@Override
public void onDestroy() {
for (DConnectProfile profile : getProfileList()) {
if (profile instanceof LinkingBatteryProfile) {
((LinkingDestroy) profile).onDestroy();
}
}
}
public void setLinkingBeacon(final LinkingBeacon beacon) {
mBeacon = beacon;
}
public LinkingBeacon getLinkingBeacon() {
return mBeacon;
}
}