// Path: library/src/main/java/com/nostra13/universalimageloader/utils/L.java
// public final class L {
// 
// 	private static final String LOG_FORMAT = "%1$s\n%2$s";
// 	private static volatile boolean writeDebugLogs = false;
// 	private static volatile boolean writeLogs = true;
// 
// 	private L() {
// 	}
// 
// 	/**
// 	 * 打开日志打印 已废弃
// 	 * Enables logger (if {@link #disableLogging()} was called before)
// 	 *
// 	 * @deprecated Use {@link #writeLogs(boolean) writeLogs(true)} instead
// 	 */
// 	@Deprecated
// 	public static void enableLogging() {
// 		writeLogs(true);
// 	}
// 
// 	/**
// 	 * 关闭日志打印 已废弃
// 	 * Disables logger, no logs will be passed to LogCat, all log methods will do nothing
// 	 *
// 	 * @deprecated Use {@link #writeLogs(boolean) writeLogs(false)} instead
// 	 */
// 	@Deprecated
// 	public static void disableLogging() {
// 		writeLogs(false);
// 	}
// 
// 	/**
// 	 * 进行打开或者关闭调试日志打印功能
// 	 * Enables/disables detail logging of {@link ImageLoader} work.
// 	 * Consider {@link com.nostra13.universalimageloader.utils.L#disableLogging()} to disable
// 	 * ImageLoader logging completely (even error logs)<br />
// 	 * Debug logs are disabled by default.
// 	 */
// 	public static void writeDebugLogs(boolean writeDebugLogs) {
// 		L.writeDebugLogs = writeDebugLogs;
// 	}
// 
// 	/**
// 	 * Enables/disables logging of {@link ImageLoader} completely (even error logs).
// 	 * 打开或者关闭所有日志打印功能
// 	 */
// 	public static void writeLogs(boolean writeLogs) {
// 		L.writeLogs = writeLogs;
// 	}
// 
// 	public static void d(String message, Object... args) {
// 		if (writeDebugLogs) {
// 			log(Log.DEBUG, null, message, args);
// 		}
// 	}
// 
// 	public static void i(String message, Object... args) {
// 		log(Log.INFO, null, message, args);
// 	}
// 
// 	public static void w(String message, Object... args) {
// 		log(Log.WARN, null, message, args);
// 	}
// 
// 	public static void e(Throwable ex) {
// 		log(Log.ERROR, ex, null);
// 	}
// 
// 	public static void e(String message, Object... args) {
// 		log(Log.ERROR, null, message, args);
// 	}
// 
// 	public static void e(Throwable ex, String message, Object... args) {
// 		log(Log.ERROR, ex, message, args);
// 	}
// 
// 	/**
// 	 * 日志格式转换 以及输出
// 	 * @param priority
// 	 * @param ex
// 	 * @param message
// 	 * @param args
// 	 */
// 	private static void log(int priority, Throwable ex, String message, Object... args) {
// 		if (!writeLogs) return;
// 		if (args.length > 0) {
// 			message = String.format(message, args);
// 		}
// 
// 		String log;
// 		if (ex == null) {
// 			log = message;
// 		} else {
// 			String logMessage = message == null ? ex.getMessage() : message;
// 			String logBody = Log.getStackTraceString(ex);
// 			log = String.format(LOG_FORMAT, logMessage, logBody);
// 		}
// 		Log.println(priority, ImageLoader.TAG, log);
// 	}
// }


import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Looper;
import android.view.View;
import android.view.ViewGroup;
import com.nostra13.universalimageloader.core.assist.ViewScaleType;
import com.nostra13.universalimageloader.utils.L;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;

	/**
	 * 表示当前iamgeview引用是否被回收
	 * @return
	 */
	@Override
	public boolean isCollected() {
		return viewRef.get() == null;
	}

	@Override
	public int getId() {
		View view = viewRef.get();
		return view == null ? super.hashCode() : view.hashCode();
	}

	/**
	 * 切换主线程进行设置图片资源 drawable
	 * @param drawable
	 * @return
	 */
	@Override
	public boolean setImageDrawable(Drawable drawable) {
		if (Looper.myLooper() == Looper.getMainLooper()) {
			View view = viewRef.get();
			if (view != null) {
				setImageDrawableInto(drawable, view);
				return true;
			}
		} else {
// Path: library/src/main/java/com/nostra13/universalimageloader/utils/L.java
// public final class L {
// 
// 	private static final String LOG_FORMAT = "%1$s\n%2$s";
// 	private static volatile boolean writeDebugLogs = false;
// 	private static volatile boolean writeLogs = true;
// 
// 	private L() {
// 	}
// 
// 	/**
// 	 * 打开日志打印 已废弃
// 	 * Enables logger (if {@link #disableLogging()} was called before)
// 	 *
// 	 * @deprecated Use {@link #writeLogs(boolean) writeLogs(true)} instead
// 	 */
// 	@Deprecated
// 	public static void enableLogging() {
// 		writeLogs(true);
// 	}
// 
// 	/**
// 	 * 关闭日志打印 已废弃
// 	 * Disables logger, no logs will be passed to LogCat, all log methods will do nothing
// 	 *
// 	 * @deprecated Use {@link #writeLogs(boolean) writeLogs(false)} instead
// 	 */
// 	@Deprecated
// 	public static void disableLogging() {
// 		writeLogs(false);
// 	}
// 
// 	/**
// 	 * 进行打开或者关闭调试日志打印功能
// 	 * Enables/disables detail logging of {@link ImageLoader} work.
// 	 * Consider {@link com.nostra13.universalimageloader.utils.L#disableLogging()} to disable
// 	 * ImageLoader logging completely (even error logs)<br />
// 	 * Debug logs are disabled by default.
// 	 */
// 	public static void writeDebugLogs(boolean writeDebugLogs) {
// 		L.writeDebugLogs = writeDebugLogs;
// 	}
// 
// 	/**
// 	 * Enables/disables logging of {@link ImageLoader} completely (even error logs).
// 	 * 打开或者关闭所有日志打印功能
// 	 */
// 	public static void writeLogs(boolean writeLogs) {
// 		L.writeLogs = writeLogs;
// 	}
// 
// 	public static void d(String message, Object... args) {
// 		if (writeDebugLogs) {
// 			log(Log.DEBUG, null, message, args);
// 		}
// 	}
// 
// 	public static void i(String message, Object... args) {
// 		log(Log.INFO, null, message, args);
// 	}
// 
// 	public static void w(String message, Object... args) {
// 		log(Log.WARN, null, message, args);
// 	}
// 
// 	public static void e(Throwable ex) {
// 		log(Log.ERROR, ex, null);
// 	}
// 
// 	public static void e(String message, Object... args) {
// 		log(Log.ERROR, null, message, args);
// 	}
// 
// 	public static void e(Throwable ex, String message, Object... args) {
// 		log(Log.ERROR, ex, message, args);
// 	}
// 
// 	/**
// 	 * 日志格式转换 以及输出
// 	 * @param priority
// 	 * @param ex
// 	 * @param message
// 	 * @param args
// 	 */
// 	private static void log(int priority, Throwable ex, String message, Object... args) {
// 		if (!writeLogs) return;
// 		if (args.length > 0) {
// 			message = String.format(message, args);
// 		}
// 
// 		String log;
// 		if (ex == null) {
// 			log = message;
// 		} else {
// 			String logMessage = message == null ? ex.getMessage() : message;
// 			String logBody = Log.getStackTraceString(ex);
// 			log = String.format(LOG_FORMAT, logMessage, logBody);
// 		}
// 		Log.println(priority, ImageLoader.TAG, log);
// 	}
// }


// Path: library/src/main/java/com/nostra13/universalimageloader/core/imageaware/ViewAware.java
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Looper;
import android.view.View;
import android.view.ViewGroup;
import com.nostra13.universalimageloader.core.assist.ViewScaleType;
import com.nostra13.universalimageloader.utils.L;
import java.lang.ref.Reference;
import java.lang.ref.WeakReference;


	/**
	 * 表示当前iamgeview引用是否被回收
	 * @return
	 */
	@Override
	public boolean isCollected() {
		return viewRef.get() == null;
	}

	@Override
	public int getId() {
		View view = viewRef.get();
		return view == null ? super.hashCode() : view.hashCode();
	}

	/**
	 * 切换主线程进行设置图片资源 drawable
	 * @param drawable
	 * @return
	 */
	@Override
	public boolean setImageDrawable(Drawable drawable) {
		if (Looper.myLooper() == Looper.getMainLooper()) {
			View view = viewRef.get();
			if (view != null) {
				setImageDrawableInto(drawable, view);
				return true;
			}
		} else {
			L.w(WARN_CANT_SET_DRAWABLE);