package org.deviceconnect.android.deviceplugin.alljoyn;
import android.util.Log;
import org.deviceconnect.android.deviceplugin.alljoyn.profile.AllJoynSystemProfile;
import org.deviceconnect.android.deviceplugin.alljoyn.service.AllJoynService;
import org.deviceconnect.android.message.DConnectMessageService;
import org.deviceconnect.android.profile.SystemProfile;
import org.deviceconnect.android.service.DConnectService;
/**
* Device Connect device plug-in for AllJoyn.
*
* @author NTT DOCOMO, INC.
*/
public class AllJoynDeviceService extends DConnectMessageService
implements AllJoynDeviceApplication.ConnectionListener {
@Override
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG) {
Log.i(getClass().getSimpleName(), "started");
}
((AllJoynDeviceApplication) getApplication()).setConnectionListener(this);
}
@Override
protected void onManagerUninstalled() {
// Managerアンインストール検知時の処理
if (BuildConfig.DEBUG) {
Log.i(getClass().getSimpleName(),"Plug-in : onManagerUninstalled");
}
}
@Override
protected void onManagerTerminated() {
// Manager正常終了通知受信時の処理
if (BuildConfig.DEBUG) {
Log.i(getClass().getSimpleName(),"Plug-in : onManagerTerminated");
}
}
@Override
protected void onDevicePluginReset() {
// Device Plug-inへのReset要求受信時の処理
if (BuildConfig.DEBUG) {
Log.i(getClass().getSimpleName(),"Plug-in : onDevicePluginReset");
}
}
@Override
protected SystemProfile getSystemProfile() {
return new AllJoynSystemProfile();
}
@Override
public void onConnect(final AllJoynServiceEntity entity) {
DConnectService service = new AllJoynService(entity);
service.setOnline(true);
getServiceProvider().addService(service);
}
@Override
public void onDisconnect(final AllJoynServiceEntity entity) {
DConnectService service = getServiceProvider().getService(entity.appId);
if (service != null) {
service.setOnline(false);
}
}
}