/* FPLUGHumidityProfile.java Copyright (c) 2015 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.deviceplugin.fplug.profile; import android.content.Intent; import org.deviceconnect.android.deviceplugin.fplug.FPLUGApplication; import org.deviceconnect.android.deviceplugin.fplug.FPLUGDeviceService; import org.deviceconnect.android.deviceplugin.fplug.fplug.FPLUGController; import org.deviceconnect.android.deviceplugin.fplug.fplug.FPLUGRequestCallback; import org.deviceconnect.android.deviceplugin.fplug.fplug.FPLUGResponse; import org.deviceconnect.android.message.MessageUtils; import org.deviceconnect.android.profile.HumidityProfile; import org.deviceconnect.android.profile.api.DConnectApi; import org.deviceconnect.android.profile.api.GetApi; import org.deviceconnect.message.DConnectMessage; /** * Humidity Profile. * * @author NTT DOCOMO, INC. */ public class FPLUGHumidityProfile extends HumidityProfile { private final DConnectApi mGetHumidityApi = new GetApi() { @Override public boolean onRequest(final Intent request, final Intent response) { String serviceId = getServiceID(request); FPLUGApplication app = ((FPLUGApplication) getContext().getApplicationContext()); FPLUGController controller = app.getConnectedController(serviceId); if (controller == null) { MessageUtils.setNotFoundServiceError(response, "Not found fplug: " + serviceId); return true; } controller.requestHumidity(new FPLUGRequestCallback() { @Override public void onSuccess(FPLUGResponse fResponse) { double humidity = fResponse.getHumidity(); humidity = humidity / 100; setHumidity(response, humidity); sendResultOK(response); } @Override public void onError(String message) { sendResultError(response); } @Override public void onTimeout() { sendResultTimeout(response); } }); return false; } }; public FPLUGHumidityProfile() { addApi(mGetHumidityApi); } private void sendResultOK(Intent response) { setResult(response, DConnectMessage.RESULT_OK); ((FPLUGDeviceService) getContext()).sendResponse(response); } private void sendResultError(Intent response) { MessageUtils.setUnknownError(response); ((FPLUGDeviceService) getContext()).sendResponse(response); } private void sendResultTimeout(Intent response) { MessageUtils.setTimeoutError(response); ((FPLUGDeviceService) getContext()).sendResponse(response); } }