Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.elepher.watch.os.watchface;
- import com.badlogic.gdx.Gdx;
- import com.badlogic.gdx.utils.TimeUtils;
- import org.apache.commons.lang3.StringEscapeUtils;
- import org.keplerproject.luajava.LuaState;
- import org.keplerproject.luajava.LuaStateFactory;
- import org.mozilla.javascript.Context;
- import org.mozilla.javascript.EcmaError;
- import org.mozilla.javascript.Scriptable;
- import org.mozilla.javascript.ScriptableObject;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.Locale;
- import java.util.Map;
- /**
- * Created by nicky on 20-Jan-16.
- */
- public class ScriptManager {
- private static ScriptManager theInstance;
- private Calendar calendar;
- //tags
- private float drh;
- private float drh24;
- private float drm;
- private float drs;
- private float drss;
- private int dd;
- private String ddw;
- private Date date;
- private int bl;
- private SimpleDateFormat simpleDateFormat;
- private Map<String,Object >tags = new HashMap<String,Object>();
- private Map<String,Object >cachedtags = new HashMap<String,Object>();
- private String watchMakerVars="dd,ddz,ddy,ddw2,ddw,ddww,ddw0,ddim,dn,dnn,dnnn,dnnnn,dy,dyy,dwm,dw,dh,dh11,dh24,dh23,dht,dh24t,dhz,dh11z,dh24z,dh23z,dm,dmz,dhtt,dhto,dh11tt,dh11to,dh24tt,dh24to,dh23tt,dh23to,dmz,dmt,dmo,dmat,dmtt,dmot,ds,dsz,da,dss,dssz,dsp,dz,dtp,drh,drh24,drh0,drm,drs,drss,drms,c_elapsed,c_0_100_2_st,c_0_100_2_rp,c_0_100_2_rv,c_0_100_2_rv_2,tz1l,tz1o,tz1t,tz1rh,tz1rh24,tz1rm,tz2l,tz2o,tz2t,tz2rh,tz2rh24,tz2rm,tz3l,tz3o,tz3t,tz3rh,tz3rh24,tz3rm,bl,blp,br,btc,btf,btcd,btfd,bc,pbl,pblp,pbr,pbtc,pbtf,pbtcd,pbtfd,pbc,pws,pwc,aname,aman,awname,around,atyre,abright,abss,alat,alon,alatd,alond,alatdd,alondd,swh,swm,sws,swss,swsss,swsst,swr,swrm,swrs,swrss,wl,wt,wth,wtl,wtd,wthd,wtld,wm,wct,wci,wh,whp,wp,wws,wwd,wwdb,wwdbb,wcl,wr,wsr,wss,wsrp,wssp,wmp,wml,wlu,wf0dt,wf0dth,wf0dtl,wf0dct,wf0dci,wf1dt,wf1dth,wf1dtl,wf1dct,wf1dci,cex,c1t,c1ex,c1b,c1br,c1bp,c1e,c1er,c1ep,c1l,c1c,c1i,ssc,shr,sax,say,saz,sgx,sgy,sgz,scr,sct,sctd,scb,scbb,sctdb,sctdbb,";
- LuaState L ;
- //endtags
- private ScriptManager(){
- }
- public void resume(){
- Gdx.app.log("rhino","rhino resuming");
- L = LuaStateFactory.newLuaState();
- L.openMath();
- calendar = Calendar.getInstance();
- date = new Date();
- String[] _watchmakervars = watchMakerVars.split(",");
- for(String var : _watchmakervars){
- tags.put(var,0);
- }
- }
- public void update(){
- long time = TimeUtils.millis();
- calendar.setTimeInMillis(TimeUtils.millis());
- int mYear = calendar.get(Calendar.YEAR);
- int mMonth = calendar.get(Calendar.MONTH);
- int mDay = calendar.get(Calendar.DAY_OF_MONTH);
- float mSeconds = calendar.get(Calendar.SECOND);
- int mHour = calendar.get(Calendar.HOUR);
- int mMinutes = calendar.get(Calendar.MINUTE);
- float mMillis = calendar.get(Calendar.MILLISECOND);
- dd = calendar.get(Calendar.DAY_OF_MONTH);
- drss=((mSeconds*1000f)+(mMillis))*(360f/60000f);
- drm=(360/60)*mMinutes;
- drh=(360/12)*mHour;
- drs=(360/60)*mSeconds;
- drh24=(360f/24f)*calendar.get(Calendar.HOUR_OF_DAY);
- simpleDateFormat = new SimpleDateFormat("EEE", Locale.US);
- date = new Date(TimeUtils.millis());
- ddw=simpleDateFormat.format(date);
- tags.put("dd",dd);
- tags.put("drss",drss);
- tags.put("drm",drm);
- tags.put("drh",drh);
- tags.put("drs",drs);
- tags.put("drh24",drh24);
- tags.put("ddw",ddw);
- tags.put("var_screen",0);
- updateProperties();
- //Gdx.app.log("fps","took:"+TimeUtils.timeSinceMillis(time)+"ms to update properties");
- }
- private void updateProperties(){
- for(Map.Entry<String, Object> entry : tags.entrySet()){
- if(!cachedtags.containsKey(entry.getKey())||!cachedtags.get(entry.getKey()).equals(entry.getValue())){
- L.LdoString(entry.getKey()+"="+entry.getValue());
- }
- }
- cachedtags.putAll(tags);
- }
- public String eval(String script){
- //Gdx.app.log("rhino","eval called :"+script);
- if(script==null){
- return "0";
- }
- if(script==""){
- return "0";
- }
- if(script.contains("{")||script.contains("var_")){
- script = script.replaceAll("\\{", "").replaceAll("\\}", "").trim();
- if(tags.containsKey(script)){
- return tags.get(script).toString();
- }
- }
- else{
- return script;
- }
- String result="0";
- try {
- //result = rhino.toString(rhino.evaluateString(scope, script + ";", "<cmd>", 1, null));
- L.LdoString("return ( "+script+" )");
- result = L.toJavaObject(-1).toString();
- return result;
- }
- catch(Exception e){
- return result;
- }
- }
- public static ScriptManager getInstance(){
- if(theInstance==null){
- theInstance=new ScriptManager();
- }
- return theInstance;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement