/* PebbleSettingProfile.java Copyright (c) 2014 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.deviceplugin.pebble.profile; import android.content.Intent; import com.getpebble.android.kit.util.PebbleDictionary; import org.deviceconnect.android.deviceplugin.pebble.PebbleDeviceService; import org.deviceconnect.android.deviceplugin.pebble.util.PebbleManager; import org.deviceconnect.android.deviceplugin.pebble.util.PebbleManager.OnSendCommandListener; import org.deviceconnect.android.message.MessageUtils; import org.deviceconnect.android.profile.SettingProfile; import org.deviceconnect.android.profile.api.DConnectApi; import org.deviceconnect.android.profile.api.GetApi; import org.deviceconnect.message.DConnectMessage; /** * Pebble端末内時間情報取得プロファイル. * @author NTT DOCOMO, INC. */ public class PebbleSettingProfile extends SettingProfile { private final DConnectApi mGetDateApi = new GetApi() { @Override public String getAttribute() { return ATTRIBUTE_DATE; } @Override public boolean onRequest(final Intent request, final Intent response) { // Pebbleに送信 PebbleManager mgr = ((PebbleDeviceService) getContext()).getPebbleManager(); PebbleDictionary dic = new PebbleDictionary(); dic.addInt8(PebbleManager.KEY_PROFILE, (byte) PebbleManager.PROFILE_SETTING); dic.addInt8(PebbleManager.KEY_ATTRIBUTE, (byte) PebbleManager.SETTING_ATTRIBUTE_DATE); dic.addInt8(PebbleManager.KEY_ACTION, (byte) PebbleManager.ACTION_GET); mgr.sendCommandToPebble(dic, new OnSendCommandListener() { @Override public void onReceivedData(final PebbleDictionary dic) { if (dic == null) { MessageUtils.setTimeoutError(response); } else { String date = dic.getString(PebbleManager.KEY_PARAM_SETTING_DATE); if (date == null) { MessageUtils.setTimeoutError(response); } else { setResult(response, DConnectMessage.RESULT_OK); setDate(response, date); } } sendResponse(response); } }); return false; } }; public PebbleSettingProfile() { addApi(mGetDateApi); } }