/*
* Copyright (C) 2014 The AppCan Open Source Project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package org.zywx.wbpalmstar.engine.universalex;
import org.json.JSONObject;
import org.zywx.wbpalmstar.base.BConstant;
import org.zywx.wbpalmstar.base.BUtility;
import org.zywx.wbpalmstar.base.util.AppCanAPI;
import org.zywx.wbpalmstar.engine.EBrowserActivity;
import org.zywx.wbpalmstar.engine.EBrowserView;
import org.zywx.wbpalmstar.engine.EBrowserWindow;
import org.zywx.wbpalmstar.widgetone.dataservice.WDataManager;
import org.zywx.wbpalmstar.widgetone.dataservice.WWidgetData;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
public class EUExWidgetOne extends EUExBase {
public static final String tag = "uexWidgetOne";
public static final String function_getId = "uexWidgetOne.cbGetId";
public static final String function_getPlatForm = "uexWidgetOne.cbGetPlatform";
public static final String function_getVersion = "uexWidgetOne.cbGetVersion";
public static final String function_getWidgetNum = "uexWidgetOne.cbGetWidgetNumber";
public static final String function_getWidgetInfo = "uexWidgetOne.cbGetWidgetInfo";
public static final String function_getCurrentWidgetInfo = "uexWidgetOne.cbGetCurrentWidgetInfo";
public static final String function_clearCache = "uexWidgetOne.cbCleanCache";
public static final String function_getMainWidgetId = "uexWidgetOne.cbGetMainWidgetId";
public EUExWidgetOne(Context context, EBrowserView inParent) {
super(context, inParent);
}
public void getId(String[] parm) {
// try {
// String id = WDataManager.getWidgetOneId();
// jsCallback(function_getId, 0, EUExCallback.F_C_TEXT, id);
// } catch (Exception e) {
// jsCallback(function_getWidgetInfo, 0, EUExCallback.F_C_INT,
// EUExCallback.F_C_FAILED);
// }
}
public void getWidgetNumber(String[] parm) {
try {
WDataManager widgetData = new WDataManager(mContext);
jsCallback(function_getWidgetNum, 0, EUExCallback.F_C_INT,
widgetData.getWidgetNumber());
} catch (Exception e) {
jsCallback(function_getWidgetInfo, 0, EUExCallback.F_C_INT,
EUExCallback.F_C_FAILED);
}
}
public void getWidgetInfo(String[] parm) {
if (parm.length < 1) {
return;
}
String inIndex = parm[0];
try {
WDataManager widgetData = new WDataManager(mContext);
WWidgetData data = widgetData.getWidgetInfoById(Integer
.valueOf(inIndex));
JSONObject obj = new JSONObject();
obj.put(EUExCallback.F_JK_WIDGET_ID, data.m_widgetId);
obj.put(EUExCallback.F_JK_APP_ID, data.m_appId);
obj.put(EUExCallback.F_JK_VERSION, data.m_ver);
obj.put(EUExCallback.F_JK_NAME, data.m_widgetName);
obj.put(EUExCallback.F_JK_ICON, data.m_iconPath);
jsCallback(function_getWidgetInfo, 0, EUExCallback.F_C_JSON,
obj.toString());
} catch (Exception e) {
jsCallback(function_getWidgetInfo, 0, EUExCallback.F_C_INT,
EUExCallback.F_C_FAILED);
}
}
@AppCanAPI
public JSONObject getCurrentWidgetInfo(String[] parm) {
WWidgetData wgtData = mBrwView.getCurrentWidget();
JSONObject obj = new JSONObject();
try {
if (wgtData.m_widgetId != null) {
obj.put(EUExCallback.F_JK_WIDGET_ID, wgtData.m_widgetId);
} else {
obj.put(EUExCallback.F_JK_WIDGET_ID, "");
}
obj.put(EUExCallback.F_JK_APP_ID, wgtData.m_appId);
obj.put(EUExCallback.F_JK_VERSION, wgtData.m_ver);
obj.put(EUExCallback.F_JK_NAME, wgtData.m_widgetName);
obj.put(EUExCallback.F_JK_ICON, wgtData.m_iconPath);
jsCallback(function_getCurrentWidgetInfo, 0, EUExCallback.F_C_JSON,
obj.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
jsCallback(function_getCurrentWidgetInfo, 0, EUExCallback.F_C_INT,
EUExCallback.F_C_FAILED);
}
return obj;
}
public void getVersion(String[] parm) {
// jsCallback(function_getVersion, 0, EUExCallback.F_C_TEXT, ResoureFinder.getInstance().getString(mContext, "widgetone_version"));
}
@AppCanAPI
public int getPlatform(String[] parm) {
jsCallback(function_getPlatForm, 0, EUExCallback.F_C_INT,
EUExCallback.F_JV_ANDROID);
return EUExCallback.F_JV_ANDROID;
}
public void cleanCache(String[] parm) {
EBrowserWindow curWind = mBrwView.getBrowserWindow();
if (null == curWind) {
return;
}
boolean includeDiskFiles = true;
if (parm.length > 0) {
try {
int flag = Integer.parseInt(parm[0]);
includeDiskFiles = 0 == flag ? includeDiskFiles = false : true;
} catch (Exception e) {
;
}
}
// EBrowserWidget eWgt = curWind.getEBrowserWidget();
// if (eWgt.checkWidgetType(EBrowserWidget.F_WINDOW_POOL_TYPE_ROOT)) {
mBrwView.clearCache(includeDiskFiles);
jsCallback(function_clearCache, 0, EUExCallback.F_C_INT, EUExCallback.F_C_SUCCESS);
// } else {
// jsCallback(function_clearCache, 0, EUExCallback.F_C_INT, EUExCallback.F_C_FAILED);
// return;
// }
}
public void exit(String[] parm) {
int len = parm.length;
boolean showDialog = !(len > 0 && "0".equals(parm[0]));
((EBrowserActivity) mContext).exitApp(showDialog);
}
public void reStartApp() {
Intent oldData = ((Activity) mContext).getIntent();
Intent intent = new Intent(oldData);
int flag = ((Activity) mContext).getIntent().getFlags();
PendingIntent pendingIntent = PendingIntent.getActivity(mContext, 0, intent, flag);
AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
long delay = System.currentTimeMillis() + 1000L;
alarmManager.set(AlarmManager.RTC, delay, pendingIntent);
((EBrowserActivity) mContext).exitApp(false);
;
}
@AppCanAPI
public String getMainWidgetId(String[] parm) {
String appId=null;
if (WDataManager.sRootWgt != null) {
appId=WDataManager.sRootWgt.m_appId;
jsCallback(function_getMainWidgetId, 0, EUExCallback.F_C_TEXT,
WDataManager.sRootWgt.m_appId);
} else {
appId=null;
jsCallback(function_getMainWidgetId, 0, EUExCallback.F_C_TEXT, -1);
}
return appId;
}
@AppCanAPI
public void restart(String[] params){
BUtility.restartAPP(mContext,500);
}
@AppCanAPI
public String getEngineVersion(String[] params){
return BConstant.ENGINE_VERSION;
}
@AppCanAPI
public int getEngineVersionCode(String[] params){
return BConstant.ENGINE_VERSION_CODE;
}
@Override
protected boolean clean() {
return false;
}
}