/* This file is part of BeepMe. BeepMe is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. BeepMe is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with BeepMe. If not, see <http://www.gnu.org/licenses/>. Copyright 2012-2014 Michael Glanznig http://beepme.yourexp.at */ package com.glanznig.beepme.helper; import android.content.Context; import android.graphics.Bitmap; import android.os.Handler; import java.lang.ref.WeakReference; public class AsyncImageScaler extends Thread { public static final int MSG_SUCCESS = 32; public static final int MSG_ERROR = 33; private static final String TAG = "AsyncImageScaler"; private String srcUri; private String destUri; private int destWidth; private int destHeight; private int name; private Handler handler; private WeakReference<Context> ctx; public AsyncImageScaler(Context ctx, String srcUri, String destUri, int name, int destWidth, int destHeight, Handler handler) { this.ctx = new WeakReference<Context>(ctx); this.srcUri = srcUri; this.destUri = destUri; this.destWidth = destWidth; this.destHeight = destHeight; this.handler = handler; this.name = name; } @Override public void run() { Bitmap photo = null; if (ctx.get() != null) { photo = PhotoUtils.scalePhoto(ctx.get(), srcUri, destUri, destWidth, destHeight); } if (handler != null) { if (photo != null) { handler.obtainMessage(MSG_SUCCESS, name, 0, photo).sendToTarget(); } else { handler.obtainMessage(MSG_ERROR).sendToTarget(); } } } }