package org.vimgadgets.linebreak; import java.io.File; import com.easyview.ebook.reader.engine.core.ERManager; import com.easyview.ebook.reader.engine.core.IEngineService; import com.easyview.ebook.reader.engine.util.EngineConfig; import com.easyview.ebook.reader.engine.util.Logger; public final class LineBreaker { static private final String TAG = "LineBreaker-v2"; // modify by zenki-zha-xxx static { IEngineService ies = (IEngineService) ERManager .getService(ERManager.ERENGINE_SERVICE); String libPath = ies.getConfig().getLibraryPath(); String soPath = libPath + File.separator + "libLineBreak-v2.so"; try { if (libPath.equals(EngineConfig.DEFAULT_LIBRARY_LOCAL)) { System.loadLibrary("LineBreak-v2"); } else { System.load(soPath); } } catch (Exception e) { Logger.eLog("EREngine", "load libLineBreak-v2.so = " + e.getMessage()); } init(); } public static final char MUSTBREAK = 0; public static final char ALLOWBREAK = 1; public static final char NOBREAK = 2; public static final char INSIDEACHAR = 3; private static native void init(); private static native void setLineBreaksForCharArray(char[] data, int offset, int length, String lang, byte[] breaks); private static native void setLineBreaksForString(String data, String lang, byte[] breaks); private final String myLanguage; public LineBreaker(String lang) { myLanguage = lang; } public void setLineBreaks(char[] data, int offset, int length, byte[] breaks) { setLineBreaksForCharArray(data, offset, length, myLanguage, breaks); } public void setLineBreaks(String data, byte[] breaks) { setLineBreaksForString(data, myLanguage, breaks); } }