// Path: src/cn/yo2/aquarium/logutils/MyLog.java
// public final class MyLog {
// 	private static String TAG = "POCKET VOA";
// 	private static boolean LOG_ENABLE = true;
// 	private static boolean DETAIL_ENABLE = true;
// 
// 	private MyLog() {
// 	}
// 
// 	private static String buildMsg(String msg) {
// 		StringBuilder buffer = new StringBuilder();
// 
// 		if (DETAIL_ENABLE) {
// 			final StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[4];
// 
// 			buffer.append("[ ");
// 			buffer.append(Thread.currentThread().getName());
// 			buffer.append(": ");
// 			buffer.append(stackTraceElement.getFileName());
// 			buffer.append(": ");
// 			buffer.append(stackTraceElement.getLineNumber());
// 			buffer.append(": ");
// 			buffer.append(stackTraceElement.getMethodName());
// 		}
// 
// 		buffer.append("() ] _____ ");
// 
// 		buffer.append(msg);
// 
// 		return buffer.toString();
// 	}
// 
// 
// 	public static void v(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.VERBOSE)) {
// 			Log.v(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void d(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.DEBUG)) {
// 			Log.d(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void i(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.INFO)) {
// 			Log.i(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void w(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.WARN)) {
// 			Log.w(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void w(String msg, Exception e) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.WARN)) {
// 			Log.w(TAG, buildMsg(msg), e);
// 		}
// 	}
// 
// 
// 	public static void e(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.ERROR)) {
// 			Log.e(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void e(String msg, Exception e) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.ERROR)) {
// 			Log.e(TAG, buildMsg(msg), e);
// 		}
// 	}
// 
// 	public static void initLog(String tag, boolean logEnable, boolean detailEnable) {
// 		TAG = tag;
// 		LOG_ENABLE = logEnable;
// 		DETAIL_ENABLE = detailEnable;
// 	}
// }


import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Paint.FontMetricsInt;
import android.os.Handler;
import android.os.Message;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.Scroller;
import cn.yo2.aquarium.logutils.MyLog;
import cn.yo2.aquarium.pocketvoa.R;
	
	
	// The Lyric object
	private Lyric mLyric;	
	
	private List<LineBreak> mLineBreaks;
	
	private String mErrorMessage;
	private boolean mLyricLoaded;
	
	private boolean mOnLayoutCalled;
	
	private Handler mHandler = new Handler() {

		@Override
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case WHAT_LYRIC_LOAD_OK:
				requestLayout();
				break;

			default:
				break;
			}
			
		}
		
	};
	
	public boolean loadLyric(String lyricText, int width) {
// Path: src/cn/yo2/aquarium/logutils/MyLog.java
// public final class MyLog {
// 	private static String TAG = "POCKET VOA";
// 	private static boolean LOG_ENABLE = true;
// 	private static boolean DETAIL_ENABLE = true;
// 
// 	private MyLog() {
// 	}
// 
// 	private static String buildMsg(String msg) {
// 		StringBuilder buffer = new StringBuilder();
// 
// 		if (DETAIL_ENABLE) {
// 			final StackTraceElement stackTraceElement = Thread.currentThread().getStackTrace()[4];
// 
// 			buffer.append("[ ");
// 			buffer.append(Thread.currentThread().getName());
// 			buffer.append(": ");
// 			buffer.append(stackTraceElement.getFileName());
// 			buffer.append(": ");
// 			buffer.append(stackTraceElement.getLineNumber());
// 			buffer.append(": ");
// 			buffer.append(stackTraceElement.getMethodName());
// 		}
// 
// 		buffer.append("() ] _____ ");
// 
// 		buffer.append(msg);
// 
// 		return buffer.toString();
// 	}
// 
// 
// 	public static void v(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.VERBOSE)) {
// 			Log.v(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void d(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.DEBUG)) {
// 			Log.d(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void i(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.INFO)) {
// 			Log.i(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void w(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.WARN)) {
// 			Log.w(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void w(String msg, Exception e) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.WARN)) {
// 			Log.w(TAG, buildMsg(msg), e);
// 		}
// 	}
// 
// 
// 	public static void e(String msg) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.ERROR)) {
// 			Log.e(TAG, buildMsg(msg));
// 		}
// 	}
// 
// 
// 	public static void e(String msg, Exception e) {
// 		if (LOG_ENABLE && Log.isLoggable(TAG, Log.ERROR)) {
// 			Log.e(TAG, buildMsg(msg), e);
// 		}
// 	}
// 
// 	public static void initLog(String tag, boolean logEnable, boolean detailEnable) {
// 		TAG = tag;
// 		LOG_ENABLE = logEnable;
// 		DETAIL_ENABLE = detailEnable;
// 	}
// }


// Path: src/cn/yo2/aquarium/pocketvoa/lyric/LyricView2.java
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Align;
import android.graphics.Paint.FontMetricsInt;
import android.os.Handler;
import android.os.Message;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.Scroller;
import cn.yo2.aquarium.logutils.MyLog;
import cn.yo2.aquarium.pocketvoa.R;

	
	
	// The Lyric object
	private Lyric mLyric;	
	
	private List<LineBreak> mLineBreaks;
	
	private String mErrorMessage;
	private boolean mLyricLoaded;
	
	private boolean mOnLayoutCalled;
	
	private Handler mHandler = new Handler() {

		@Override
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case WHAT_LYRIC_LOAD_OK:
				requestLayout();
				break;

			default:
				break;
			}
			
		}
		
	};
	
	public boolean loadLyric(String lyricText, int width) {
		MyLog.d("in loadLyric");