// // Latex Project Public Licence (lppl1.3) applies // Originally written by Kwanleung Tse // First Release : 1st July, 2014 // Last Update : 27th September, 2014 // package worker4math.hktex2; import java.util.ArrayList; import android.util.SparseArray; import android.util.SparseBooleanArray; public final class Block { public static volatile SparseArray> subblock = new SparseArray>(); public static volatile SparseArray> subblockwidth = new SparseArray>(); public static volatile SparseArray> subblockheight = new SparseArray>(); public static volatile SparseArray> subblockdepth = new SparseArray>(); public static volatile SparseArray> subblockxpos = new SparseArray>(); public static volatile SparseArray> subblockypos = new SparseArray>(); public static volatile SparseArray> subblockattribute = new SparseArray>(); public static volatile SparseArray> blockwidth = new SparseArray>(); public static volatile SparseArray> blockheight = new SparseArray>(); public static volatile SparseArray> blockdepth = new SparseArray>(); public static volatile SparseArray> subblock2 = new SparseArray>(); public static volatile SparseArray> subblockxpos2 = new SparseArray>(); public static volatile SparseArray> subblockypos2 = new SparseArray>(); public static volatile SparseArray> subblockattribute2 = new SparseArray>(); public static volatile SparseArray blockwidth2 = new SparseArray(); public static volatile SparseArray blockheight2 = new SparseArray(); public static volatile SparseArray blockdepth2 = new SparseArray(); public static volatile SparseBooleanArray error = new SparseBooleanArray(); public static volatile SparseArray errormessage = new SparseArray(); public void initerror(int tid){ error.put(tid, false); errormessage.put(tid, ""); return; } public void result(int tid, int blocknumber, ArrayList> sb, ArrayList> sbw, ArrayList> sbh, ArrayList> sbd, ArrayList> sbx, ArrayList> sby, ArrayList> sba, ArrayList bw, ArrayList bh, ArrayList bd){ int tid2=tid*100; synchronized(this){ blockwidth.put(tid, new ArrayList()); blockheight.put(tid, new ArrayList()); blockdepth.put(tid, new ArrayList()); for (int i=0;i<=blocknumber;i++){ int index=tid2+i; subblock.put(index, new ArrayList()); subblockwidth.put(index, new ArrayList()); subblockheight.put(index, new ArrayList()); subblockdepth.put(index, new ArrayList()); subblockxpos.put(index, new ArrayList()); subblockypos.put(index, new ArrayList()); subblockattribute.put(index, new ArrayList()); for (int ii=0;ii<=sb.get(i).size()-1;ii++){ subblock.get(index).add(sb.get(i).get(ii)); subblockwidth.get(index).add(sbw.get(i).get(ii)); subblockheight.get(index).add(sbh.get(i).get(ii)); subblockdepth.get(index).add(sbd.get(i).get(ii)); subblockxpos.get(index).add(sbx.get(i).get(ii)); subblockypos.get(index).add(sby.get(i).get(ii)); subblockattribute.get(index).add(sba.get(i).get(ii)); } blockwidth.get(tid).add(bw.get(i)); blockheight.get(tid).add(bh.get(i)); blockdepth.get(tid).add(bd.get(i)); } int l=subblock.get(tid2).size(); subblock2.put(tid, new ArrayList()); subblockxpos2.put(tid, new ArrayList()); subblockypos2.put(tid, new ArrayList()); subblockattribute2.put(tid, new ArrayList()); for (int i=0;i<=l-1;i++){ if (!(subblock.get(tid2).get(i).equals("!dno ")) || i==0){ subblock2.get(tid).add(subblock.get(tid2).get(i)); subblockxpos2.get(tid).add(subblockxpos.get(tid2).get(i)); subblockypos2.get(tid).add(subblockypos.get(tid2).get(i)); subblockattribute2.get(tid).add(subblockattribute.get(tid2).get(i)); } } blockwidth2.put(tid,blockwidth.get(tid).get(0)); blockheight2.put(tid,blockheight.get(tid).get(0)); blockdepth2.put(tid,blockdepth.get(tid).get(0)); error.put(tid, false); errormessage.put(tid, ""); } } }