/*
DConnectApplication.java
Copyright (c) 2016 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.android.manager;
import org.deviceconnect.android.deviceplugin.host.HostDeviceApplication;
import android.content.Context;
import android.content.SharedPreferences;
import org.deviceconnect.android.logger.AndroidHandler;
import org.deviceconnect.android.manager.util.DConnectUtil;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
/**
* Device Connect Manager Application.
*
* @author NTT DOCOMO, INC.
*/
public class DConnectApplication extends HostDeviceApplication {
/** ドメイン名. */
private static final String DCONNECT_DOMAIN = ".deviceconnect.org";
/** ローカルのドメイン名. */
private static final String LOCALHOST_DCONNECT = "localhost" + DCONNECT_DOMAIN;
/** WebSocket管理クラス. */
private WebSocketInfoManager mWebSocketInfoManager;
/** デバイスプラグイン管理クラス. */
private DevicePluginManager mDevicePluginManager;
@Override
public void onCreate() {
super.onCreate();
Logger logger = Logger.getLogger("dconnect.manager");
if (BuildConfig.DEBUG) {
AndroidHandler handler = new AndroidHandler(logger.getName());
handler.setFormatter(new SimpleFormatter());
handler.setLevel(Level.ALL);
logger.addHandler(handler);
logger.setLevel(Level.ALL);
logger.setUseParentHandlers(false);
} else {
logger.setLevel(Level.OFF);
}
initialize();
mDevicePluginManager = new DevicePluginManager(this, LOCALHOST_DCONNECT);
mDevicePluginManager.createDevicePluginList();
mWebSocketInfoManager = new WebSocketInfoManager(this);
}
@Override
public void onTerminate() {
mWebSocketInfoManager = null;
mDevicePluginManager = null;
super.onTerminate();
}
public void updateDevicePluginList() {
mDevicePluginManager.createDevicePluginList();
}
public WebSocketInfoManager getWebSocketInfoManager() {
return mWebSocketInfoManager;
}
public DevicePluginManager getDevicePluginManager() {
return mDevicePluginManager;
}
private void initialize() {
SharedPreferences sp = getSharedPreferences(getPackageName() + "_preferences", Context.MODE_PRIVATE);
String name = sp.getString(getString(R.string.key_settings_dconn_name), null);
if (name == null) {
SharedPreferences.Editor editor = sp.edit();
editor.putString(getString(R.string.key_settings_dconn_name), DConnectUtil.createName());
editor.apply();
}
String uuid = sp.getString(getString(R.string.key_settings_dconn_uuid), null);
if (uuid == null) {
SharedPreferences.Editor editor = sp.edit();
editor.putString(getString(R.string.key_settings_dconn_uuid), DConnectUtil.createUuid());
editor.apply();
}
}
}