/*
HVCC2WHumanDetectionProfile
Copyright (c) 2016 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.android.deviceplugin.hvcc2w.profile;
import android.content.Intent;
import org.deviceconnect.android.deviceplugin.hvcc2w.HVCC2WDeviceService;
import org.deviceconnect.android.deviceplugin.hvcc2w.manager.data.HumanDetectKind;
import org.deviceconnect.android.profile.HumanDetectionProfile;
import org.deviceconnect.android.profile.api.DConnectApi;
import org.deviceconnect.android.profile.api.DeleteApi;
import org.deviceconnect.android.profile.api.GetApi;
import org.deviceconnect.android.profile.api.PutApi;
/**
* HVC-C2W Human Detect Profile.
*
* @author NTT DOCOMO, INC.
*/
public class HVCC2WHumanDetectionProfile extends HumanDetectionProfile {
public HVCC2WHumanDetectionProfile() {
addApi(mPutOnDetectionApi);
addApi(mPutOnBodyDetectionApi);
addApi(mPutOnHandDetectionApi);
addApi(mPutOnFaceDetectionApi);
addApi(mDeleteOnDetectionApi);
addApi(mDeleteOnBodyDetectionApi);
addApi(mDeleteOnHandDetectionApi);
addApi(mDeleteOnFaceDetectionApi);
addApi(mGetDetectionApi);
addApi(mGetBodyDetectionApi);
addApi(mGetHandDetectionApi);
addApi(mGetFaceDetectionApi);
}
private final DConnectApi mPutOnDetectionApi = new PutApi() {
@Override
public String getAttribute() {
return "onDetection";
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.registerHumanDetectEvent(request, response, getServiceID(request), HumanDetectKind.HUMAN);
return false;
}
};
private final DConnectApi mPutOnBodyDetectionApi = new PutApi() {
@Override
public String getAttribute() {
return ATTRIBUTE_ON_BODY_DETECTION;
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.registerHumanDetectEvent(request, response, getServiceID(request), HumanDetectKind.BODY);
return false;
}
};
private final DConnectApi mPutOnHandDetectionApi = new PutApi() {
@Override
public String getAttribute() {
return ATTRIBUTE_ON_HAND_DETECTION;
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.registerHumanDetectEvent(request, response, getServiceID(request), HumanDetectKind.HAND);
return false;
}
};
private final DConnectApi mPutOnFaceDetectionApi = new PutApi() {
@Override
public String getAttribute() {
return ATTRIBUTE_ON_FACE_DETECTION;
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.registerHumanDetectEvent(request, response, getServiceID(request), HumanDetectKind.FACE);
return false;
}
};
private final DConnectApi mDeleteOnDetectionApi = new DeleteApi() {
@Override
public String getAttribute() {
return "onDetection";
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.unregisterHumanDetectionProfileEvent(request, response, getServiceID(request), HumanDetectKind.HUMAN);
return false;
}
};
private final DConnectApi mDeleteOnBodyDetectionApi = new DeleteApi() {
@Override
public String getAttribute() {
return ATTRIBUTE_ON_BODY_DETECTION;
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.unregisterHumanDetectionProfileEvent(request, response, getServiceID(request), HumanDetectKind.BODY);
return false;
}
};
private final DConnectApi mDeleteOnHandDetectionApi = new DeleteApi() {
@Override
public String getAttribute() {
return ATTRIBUTE_ON_HAND_DETECTION;
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.unregisterHumanDetectionProfileEvent(request, response, getServiceID(request), HumanDetectKind.HAND);
return false;
}
};
private final DConnectApi mDeleteOnFaceDetectionApi = new DeleteApi() {
@Override
public String getAttribute() {
return ATTRIBUTE_ON_FACE_DETECTION;
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.unregisterHumanDetectionProfileEvent(request, response, getServiceID(request), HumanDetectKind.FACE);
return false;
}
};
private final DConnectApi mGetDetectionApi = new GetApi() {
@Override
public String getAttribute() {
return "onDetection";
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.doGetHumanDetectionProfile(request, response, getServiceID(request), HumanDetectKind.HUMAN, getOptions(request));
return false;
}
};
private final DConnectApi mGetBodyDetectionApi = new GetApi() {
@Override
public String getAttribute() {
return ATTRIBUTE_ON_BODY_DETECTION;
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.doGetHumanDetectionProfile(request, response, getServiceID(request), HumanDetectKind.BODY, getOptions(request));
return false;
}
};
private final DConnectApi mGetHandDetectionApi = new GetApi() {
@Override
public String getAttribute() {
return ATTRIBUTE_ON_HAND_DETECTION;
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.doGetHumanDetectionProfile(request, response, getServiceID(request), HumanDetectKind.HAND, getOptions(request));
return false;
}
};
private final DConnectApi mGetFaceDetectionApi = new GetApi() {
@Override
public String getAttribute() {
return ATTRIBUTE_ON_FACE_DETECTION;
}
@Override
public boolean onRequest(final Intent request, final Intent response) {
((HVCC2WDeviceService) getContext())
.doGetHumanDetectionProfile(request, response, getServiceID(request), HumanDetectKind.FACE, getOptions(request));
return false;
}
};
}