/* TestSystemProfile.java Copyright (c) 2014 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.deviceplugin.test.profile; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import org.deviceconnect.android.event.EventManager; import org.deviceconnect.android.message.MessageUtils; import org.deviceconnect.android.profile.SystemProfile; import org.deviceconnect.android.profile.api.DConnectApi; import org.deviceconnect.android.profile.api.DeleteApi; import org.deviceconnect.android.profile.api.PutApi; import org.deviceconnect.message.DConnectMessage; /** * JUnit用テストデバイスプラグイン、Systemプロファイル. * @author NTT DOCOMO, INC. */ public class TestSystemProfile extends SystemProfile { public TestSystemProfile() { addApi(mPutWakeupApi); addApi(mDeleteEventsApi); } private final DConnectApi mPutWakeupApi = new PutApi() { @Override public boolean onRequest(final Intent request, final Intent response) { // /system/device/wakeupはテスト用デバイスプラグインでは疎通確認だけを行う. // 正常に設定画面が開かれることの確認は、実際のデバイスプラグインのテストで行う. setResult(response, DConnectMessage.RESULT_OK); return true; } }; private final DConnectApi mDeleteEventsApi = new DeleteApi() { @Override public boolean onRequest(final Intent request, final Intent response) { boolean removed = EventManager.INSTANCE.removeEvents(getSessionKey(request)); if (removed) { setResult(response, DConnectMessage.RESULT_OK); } else { MessageUtils.setUnknownError(response, "Failed to remove events."); } return true; } }; @Override protected Class<? extends Activity> getSettingPageActivity(final Intent request, final Bundle param) { return null; // テスト用プラグインでは実装しない } }