/*
ThetaBatteryProfile
Copyright (c) 2015 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.android.deviceplugin.theta.profile;
import android.content.Intent;
import org.deviceconnect.android.deviceplugin.theta.core.ThetaDeviceClient;
import org.deviceconnect.android.deviceplugin.theta.core.ThetaDeviceException;
import org.deviceconnect.android.message.MessageUtils;
import org.deviceconnect.android.profile.BatteryProfile;
import org.deviceconnect.android.profile.api.DConnectApi;
import org.deviceconnect.android.profile.api.GetApi;
import org.deviceconnect.message.DConnectMessage;
/**
* Theta Battery Profile.
*
* @author NTT DOCOMO, INC.
*/
public class ThetaBatteryProfile extends BatteryProfile {
private final ThetaDeviceClient mClient;
private final DConnectApi mGetAllApi = new GetApi() {
@Override
public boolean onRequest(final Intent request, final Intent response) {
String serviceId = getServiceID(request);
mClient.getBatteryLevel(serviceId, new ThetaDeviceClient.DefaultListener() {
@Override
public void onBatteryLevel(final double level) {
setLevel(response, level);
setCharging(response, false);
setResult(response, DConnectMessage.RESULT_OK);
sendResponse(response);
}
@Override
public void onFailed(final ThetaDeviceException cause) {
MessageUtils.setUnknownError(response, cause.getMessage());
sendResponse(response);
}
});
return false;
}
};
private final DConnectApi mGetLevelApi = new GetApi() {
@Override
public boolean onRequest(final Intent request, final Intent response) {
String serviceId = getServiceID(request);
mClient.getBatteryLevel(serviceId, new ThetaDeviceClient.DefaultListener() {
@Override
public void onBatteryLevel(final double level) {
setLevel(response, level);
setResult(response, DConnectMessage.RESULT_OK);
sendResponse(response);
}
@Override
public void onFailed(final ThetaDeviceException cause) {
MessageUtils.setUnknownError(response, cause.getMessage());
sendResponse(response);
}
});
return false;
}
};
/**
* Constructor.
*
* @param client an instance of {@link ThetaDeviceClient}
*/
public ThetaBatteryProfile(final ThetaDeviceClient client) {
mClient = client;
addApi(mGetAllApi);
addApi(mGetLevelApi);
}
}