Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.23 KB | None | 0 0
  1. package com.elepher.watch.os.watchface;
  2.  
  3. import com.badlogic.gdx.Gdx;
  4. import com.badlogic.gdx.utils.TimeUtils;
  5.  
  6. import org.apache.commons.lang3.StringEscapeUtils;
  7. import org.keplerproject.luajava.LuaState;
  8. import org.keplerproject.luajava.LuaStateFactory;
  9. import org.mozilla.javascript.Context;
  10. import org.mozilla.javascript.EcmaError;
  11. import org.mozilla.javascript.Scriptable;
  12. import org.mozilla.javascript.ScriptableObject;
  13.  
  14. import java.text.SimpleDateFormat;
  15. import java.util.Calendar;
  16. import java.util.Date;
  17. import java.util.HashMap;
  18. import java.util.Locale;
  19. import java.util.Map;
  20.  
  21.  
  22.  
  23. /**
  24.  * Created by nicky on 20-Jan-16.
  25.  */
  26. public class ScriptManager {
  27.     private static ScriptManager theInstance;
  28.     private Calendar calendar;
  29.     //tags
  30.     private float drh;
  31.     private float drh24;
  32.     private float drm;
  33.     private float drs;
  34.     private float drss;
  35.     private int dd;
  36.     private String ddw;
  37.     private Date date;
  38.     private int bl;
  39.     private SimpleDateFormat simpleDateFormat;
  40.     private Map<String,Object >tags = new HashMap<String,Object>();
  41.     private Map<String,Object >cachedtags = new HashMap<String,Object>();
  42.     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,";
  43.     LuaState L ;
  44.     //endtags
  45.     private ScriptManager(){
  46.  
  47.     }
  48.     public void resume(){
  49.         Gdx.app.log("rhino","rhino resuming");
  50.         L = LuaStateFactory.newLuaState();
  51.         L.openMath();
  52.         calendar = Calendar.getInstance();
  53.         date = new Date();
  54.         String[] _watchmakervars = watchMakerVars.split(",");
  55.         for(String var : _watchmakervars){
  56.            tags.put(var,0);
  57.         }
  58.     }
  59.     public void update(){
  60.         long time = TimeUtils.millis();
  61.         calendar.setTimeInMillis(TimeUtils.millis());
  62.         int mYear = calendar.get(Calendar.YEAR);
  63.         int mMonth = calendar.get(Calendar.MONTH);
  64.         int mDay = calendar.get(Calendar.DAY_OF_MONTH);
  65.         float mSeconds = calendar.get(Calendar.SECOND);
  66.         int mHour = calendar.get(Calendar.HOUR);
  67.         int mMinutes = calendar.get(Calendar.MINUTE);
  68.         float mMillis = calendar.get(Calendar.MILLISECOND);
  69.         dd = calendar.get(Calendar.DAY_OF_MONTH);
  70.         drss=((mSeconds*1000f)+(mMillis))*(360f/60000f);
  71.         drm=(360/60)*mMinutes;
  72.         drh=(360/12)*mHour;
  73.         drs=(360/60)*mSeconds;
  74.         drh24=(360f/24f)*calendar.get(Calendar.HOUR_OF_DAY);
  75.         simpleDateFormat = new SimpleDateFormat("EEE", Locale.US);
  76.         date = new Date(TimeUtils.millis());
  77.         ddw=simpleDateFormat.format(date);
  78.         tags.put("dd",dd);
  79.         tags.put("drss",drss);
  80.         tags.put("drm",drm);
  81.         tags.put("drh",drh);
  82.         tags.put("drs",drs);
  83.         tags.put("drh24",drh24);
  84.         tags.put("ddw",ddw);
  85.  
  86.         tags.put("var_screen",0);
  87.         updateProperties();
  88.         //Gdx.app.log("fps","took:"+TimeUtils.timeSinceMillis(time)+"ms to update properties");
  89.     }
  90.     private void updateProperties(){
  91.         for(Map.Entry<String, Object> entry : tags.entrySet()){
  92.             if(!cachedtags.containsKey(entry.getKey())||!cachedtags.get(entry.getKey()).equals(entry.getValue())){
  93.                 L.LdoString(entry.getKey()+"="+entry.getValue());
  94.  
  95.             }
  96.  
  97.  
  98.         }
  99.         cachedtags.putAll(tags);
  100.  
  101.     }
  102.     public String eval(String script){
  103.         //Gdx.app.log("rhino","eval called :"+script);
  104.         if(script==null){
  105.             return "0";
  106.         }
  107.         if(script==""){
  108.             return "0";
  109.         }
  110.         if(script.contains("{")||script.contains("var_")){
  111.             script = script.replaceAll("\\{", "").replaceAll("\\}", "").trim();
  112.             if(tags.containsKey(script)){
  113.  
  114.                 return tags.get(script).toString();
  115.             }
  116.         }
  117.         else{
  118.             return script;
  119.         }
  120.         String result="0";
  121.         try {
  122.             //result = rhino.toString(rhino.evaluateString(scope, script + ";", "<cmd>", 1, null));
  123.             L.LdoString("return ( "+script+" )");
  124.             result = L.toJavaObject(-1).toString();
  125.             return result;
  126.  
  127.         }
  128.         catch(Exception e){
  129.             return result;
  130.         }
  131.  
  132.     }
  133.     public static ScriptManager getInstance(){
  134.         if(theInstance==null){
  135.             theInstance=new ScriptManager();
  136.         }
  137.         return theInstance;
  138.  
  139.     }
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement