From b8be2bfd5d250021961399e6c62e6adc6f60d48a Mon Sep 17 00:00:00 2001 From: Gangphon Date: Thu, 14 Mar 2024 21:48:08 +0800 Subject: [PATCH] player --- .../com/xixun/xixunplayer/MainActivity.java | 21 +++++++++++++------ .../main/java/com/xixun/xixunplayer/Prog.java | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java index ecc5f5f..dc5ede5 100644 --- a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java +++ b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/MainActivity.java @@ -274,7 +274,7 @@ public class MainActivity extends ComponentActivity implements Choreographer.Fra var ms = System.currentTimeMillis(); if(ms-lastMs<1000) return; lastMs = ms; - Util.makeText(MainActivity.this, "MEDIA_MOUNTED path: "+path).show(); + Util.makeText(MainActivity.this, "MEDIA_MOUNTED path: "+path+"\nImporting 正在导入 ...").show(); new Thread(()->{ try { var zip = new ZipFile(path+"/program.zip"); @@ -311,7 +311,7 @@ public class MainActivity extends ComponentActivity implements Choreographer.Fra var json = progJson.toByteArray(); runOnUiThread(() -> { Util.println("Import Succeed"); - Util.makeText(MainActivity.this, "Import Succeed").show(); + Util.makeText(MainActivity.this, "Import Succeed 导入成功\nDon't shut down within 1 minute, otherwise the program may be lost\n不要在 1 分钟内关机,否则节目可能丢失").show(); initProg(json); }); } catch (Exception e) { @@ -349,14 +349,21 @@ public class MainActivity extends ComponentActivity implements Choreographer.Fra } public void initProg() { try { - var task = JSMap.fromClose(new BufferedInputStream(new FileInputStream(Util.programDir + "/program"))).jsmap("task"); + Util.println("\nParse Prog Json"); + var root = JSMap.fromClose(new BufferedInputStream(new FileInputStream(Util.programDir + "/program"))); + var task = root.jsmap("task"); if(task==null) { - state = 3; - return; + if(! root.containsKey("layers")) { + state = 3; + Util.println(" Error: task==null\n"); + return; + } + task = new JSMap("items", new JSList<>(new JSMap("repeatTimes", 1, "_program", root))); } var view = new Prog(task, this); if(view.getChildCount()==0) { state = 3; + Util.println(" Error: ChildCount==0\n"); return; } if(progView!=null) progView.release(); @@ -627,7 +634,9 @@ public class MainActivity extends ComponentActivity implements Choreographer.Fra writer.append("\n"); writer.append(" Launch: ").append(Fmt.format(launchMilli)).append("\n"); writer.append(" Sync: ").append(Fmt.format(syncMs)).append("\n"); - writer.append("Page End: ").append(progView==null || progView.avas.isEmpty() ? "0" : Fmt.format(page(progView.curAva).endMilli)).append(" CurPage: ").append(String.valueOf(progView.curAva)).append(" / ").append(progView==null || progView.avas.isEmpty() ? "0" : String.valueOf(progView.avas.get(progView.curAva))).append("\n"); + if(progView==null) writer.append(" ProgView is Null\n"); + else if(progView.avas.isEmpty()) writer.append(" No Avas\n"); + else writer.append("Page End: ").append(Fmt.format(page(progView.curAva).endMilli)).append(" CurPage: ").append(String.valueOf(progView.curAva)).append(" / ").append(String.valueOf(progView.avas.get(progView.curAva))).append("\n"); writer.append(" Current: ").append(Fmt.format(System.currentTimeMillis())).append("\n"); var statFs = new StatFs(Environment.getExternalStorageDirectory().getPath()); writer.append(" Disk: ").append(String.valueOf(statFs.getTotalBytes()/1000000)).append(" ").append(String.valueOf(statFs.getAvailableBytes()/1000000)).append(" ").append(String.valueOf(statFs.getFreeBytes()/1000000)).append(" (total avail free)\n"); diff --git a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java index cb84fca..21fc3b9 100644 --- a/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java +++ b/XixunPlayer/app/src/main/java/com/xixun/xixunplayer/Prog.java @@ -160,7 +160,7 @@ public class Prog extends AbsLayout { var id = source.str("id"); var fileExt = source.stnn("fileExt"); - if(id!=null && fileExt.startsWith(".") && ! new File(Util.programDir + "/" + id).exists() && new File(Util.programDir + "/" + id + fileExt).exists()) id += fileExt; + if(id!=null && fileExt.startsWith(".") && new File(Util.programDir + "/" + id + fileExt).exists()) id += fileExt; src.view = null; if(src.type.equals("Image")) { if(id==null) continue;