1f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard/* 2f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * Copyright (C) 2013 The Android Open Source Project 3f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * 4f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * Licensed under the Apache License, Version 2.0 (the "License"); 5f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * you may not use this file except in compliance with the License. 6f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * You may obtain a copy of the License at 7f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * 8f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * http://www.apache.org/licenses/LICENSE-2.0 9f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * 10f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * Unless required by applicable law or agreed to in writing, software 11f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * distributed under the License is distributed on an "AS IS" BASIS, 12f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * See the License for the specific language governing permissions and 14f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard * limitations under the License. 15f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard */ 16f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 17f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardpackage com.android.gallery3d.filtershow.category; 18f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 19f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.content.Context; 20f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.graphics.Bitmap; 21f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.graphics.BitmapFactory; 22f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.graphics.Canvas; 23f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.graphics.Matrix; 24f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.graphics.Paint; 25f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.graphics.Rect; 26f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport android.graphics.RectF; 2732cc4dd751569721aa19218b4d947145577060d0nicolasroardimport android.util.Log; 28fa474a198019851ecc3824a1dfbac94cd1928efcnicolasroardimport android.widget.ArrayAdapter; 29fa474a198019851ecc3824a1dfbac94cd1928efcnicolasroardimport android.widget.ListAdapter; 3032cc4dd751569721aa19218b4d947145577060d0nicolasroard 3132cc4dd751569721aa19218b4d947145577060d0nicolasroardimport com.android.gallery3d.R; 3232cc4dd751569721aa19218b4d947145577060d0nicolasroardimport com.android.gallery3d.filtershow.FilterShowActivity; 33edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroardimport com.android.gallery3d.filtershow.filters.FilterDrawRepresentation; 34fa474a198019851ecc3824a1dfbac94cd1928efcnicolasroardimport com.android.gallery3d.filtershow.filters.FilterUserPresetRepresentation; 35ce9ceff5776a9b0479c30cbeb2a9388b44df1865nicolasroardimport com.android.gallery3d.filtershow.pipeline.RenderingRequest; 36ce9ceff5776a9b0479c30cbeb2a9388b44df1865nicolasroardimport com.android.gallery3d.filtershow.pipeline.RenderingRequestCaller; 37f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport com.android.gallery3d.filtershow.filters.FilterRepresentation; 38f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardimport com.android.gallery3d.filtershow.imageshow.MasterImage; 39ce9ceff5776a9b0479c30cbeb2a9388b44df1865nicolasroardimport com.android.gallery3d.filtershow.pipeline.ImagePreset; 40f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 41f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroardpublic class Action implements RenderingRequestCaller { 42f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 43f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private static final String LOGTAG = "Action"; 44f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private FilterRepresentation mRepresentation; 45f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private String mName; 46f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private Rect mImageFrame; 47f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private Bitmap mImage; 48fa474a198019851ecc3824a1dfbac94cd1928efcnicolasroard private ArrayAdapter mAdapter; 49f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public static final int FULL_VIEW = 0; 50f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public static final int CROP_VIEW = 1; 5155a0279ee420c649606edd7815403d3ca1820c07nicolasroard public static final int ADD_ACTION = 2; 5255a0279ee420c649606edd7815403d3ca1820c07nicolasroard public static final int SPACER = 3; 53f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private int mType = CROP_VIEW; 54f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private Bitmap mPortraitImage; 55f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private Bitmap mOverlayBitmap; 5632cc4dd751569721aa19218b4d947145577060d0nicolasroard private FilterShowActivity mContext; 5755a0279ee420c649606edd7815403d3ca1820c07nicolasroard private boolean mCanBeRemoved = false; 5832cc4dd751569721aa19218b4d947145577060d0nicolasroard private int mTextSize = 32; 59edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard private boolean mIsDoubleAction = false; 6055a0279ee420c649606edd7815403d3ca1820c07nicolasroard 6132cc4dd751569721aa19218b4d947145577060d0nicolasroard public Action(FilterShowActivity context, FilterRepresentation representation, int type, 6255a0279ee420c649606edd7815403d3ca1820c07nicolasroard boolean canBeRemoved) { 6355a0279ee420c649606edd7815403d3ca1820c07nicolasroard this(context, representation, type); 6455a0279ee420c649606edd7815403d3ca1820c07nicolasroard mCanBeRemoved = canBeRemoved; 6532cc4dd751569721aa19218b4d947145577060d0nicolasroard mTextSize = context.getResources().getDimensionPixelSize( 6632cc4dd751569721aa19218b4d947145577060d0nicolasroard R.dimen.category_panel_text_size); 6755a0279ee420c649606edd7815403d3ca1820c07nicolasroard } 68f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 6932cc4dd751569721aa19218b4d947145577060d0nicolasroard public Action(FilterShowActivity context, FilterRepresentation representation, int type) { 7055a0279ee420c649606edd7815403d3ca1820c07nicolasroard this(context, type); 71f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard setRepresentation(representation); 7255a0279ee420c649606edd7815403d3ca1820c07nicolasroard } 7355a0279ee420c649606edd7815403d3ca1820c07nicolasroard 7432cc4dd751569721aa19218b4d947145577060d0nicolasroard public Action(FilterShowActivity context, int type) { 7555a0279ee420c649606edd7815403d3ca1820c07nicolasroard mContext = context; 76f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard setType(type); 7732cc4dd751569721aa19218b4d947145577060d0nicolasroard mContext.registerAction(this); 78f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 79f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 8032cc4dd751569721aa19218b4d947145577060d0nicolasroard public Action(FilterShowActivity context, FilterRepresentation representation) { 81f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard this(context, representation, CROP_VIEW); 82f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 83f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 84edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard public boolean isDoubleAction() { 85edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard return mIsDoubleAction; 86edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard } 87edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard 88edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard public void setIsDoubleAction(boolean value) { 89edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard mIsDoubleAction = value; 90edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard } 91edf4b095a1d904df6c02d49e3ec575c5c3c9c749nicolasroard 9255a0279ee420c649606edd7815403d3ca1820c07nicolasroard public boolean canBeRemoved() { 9355a0279ee420c649606edd7815403d3ca1820c07nicolasroard return mCanBeRemoved; 9455a0279ee420c649606edd7815403d3ca1820c07nicolasroard } 9555a0279ee420c649606edd7815403d3ca1820c07nicolasroard 96a0cd22d21474c112ad78b011fbd6f0be977400e6nicolasroard public int getType() { 97a0cd22d21474c112ad78b011fbd6f0be977400e6nicolasroard return mType; 98a0cd22d21474c112ad78b011fbd6f0be977400e6nicolasroard } 99a0cd22d21474c112ad78b011fbd6f0be977400e6nicolasroard 100f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public FilterRepresentation getRepresentation() { 101f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return mRepresentation; 102f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 103f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 104f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void setRepresentation(FilterRepresentation representation) { 105f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mRepresentation = representation; 106f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mName = representation.getName(); 107f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 108f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 109f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public String getName() { 110f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return mName; 111f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 112f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 113f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void setName(String name) { 114f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mName = name; 115f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 116f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 1172332f652d86e98887996505002d34b4f7940c34anicolasroard public void setImageFrame(Rect imageFrame, int orientation) { 118f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mImageFrame != null && mImageFrame.equals(imageFrame)) { 119f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return; 120f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 12132cc4dd751569721aa19218b4d947145577060d0nicolasroard if (getType() == Action.ADD_ACTION) { 12232cc4dd751569721aa19218b4d947145577060d0nicolasroard return; 12332cc4dd751569721aa19218b4d947145577060d0nicolasroard } 12432cc4dd751569721aa19218b4d947145577060d0nicolasroard Bitmap temp = MasterImage.getImage().getTemporaryThumbnailBitmap(); 12532cc4dd751569721aa19218b4d947145577060d0nicolasroard if (temp != null) { 12632cc4dd751569721aa19218b4d947145577060d0nicolasroard mImage = temp; 12732cc4dd751569721aa19218b4d947145577060d0nicolasroard } 12832cc4dd751569721aa19218b4d947145577060d0nicolasroard Bitmap bitmap = MasterImage.getImage().getThumbnailBitmap(); 129f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (bitmap != null) { 130f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mImageFrame = imageFrame; 131f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard int w = mImageFrame.width(); 132f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard int h = mImageFrame.height(); 13332cc4dd751569721aa19218b4d947145577060d0nicolasroard postNewIconRenderRequest(w, h); 134f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 135f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 136f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 137f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public Bitmap getImage() { 138f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return mImage; 139f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 140f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 141f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void setImage(Bitmap image) { 142f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mImage = image; 143f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 144f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 145fa474a198019851ecc3824a1dfbac94cd1928efcnicolasroard public void setAdapter(ArrayAdapter adapter) { 146f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mAdapter = adapter; 147f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 148f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 149f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void setType(int type) { 150f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mType = type; 151f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 152f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 15332cc4dd751569721aa19218b4d947145577060d0nicolasroard private void postNewIconRenderRequest(int w, int h) { 15432cc4dd751569721aa19218b4d947145577060d0nicolasroard if (mRepresentation != null) { 155f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard ImagePreset preset = new ImagePreset(); 156f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard preset.addFilter(mRepresentation); 15732cc4dd751569721aa19218b4d947145577060d0nicolasroard RenderingRequest.postIconRequest(mContext, w, h, preset, this); 158f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 159f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 160f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 161f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard private void drawCenteredImage(Bitmap source, Bitmap destination, boolean scale) { 16232cc4dd751569721aa19218b4d947145577060d0nicolasroard int minSide = Math.min(destination.getWidth(), destination.getHeight()); 163f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard Matrix m = new Matrix(); 16432cc4dd751569721aa19218b4d947145577060d0nicolasroard float scaleFactor = minSide / (float) Math.min(source.getWidth(), source.getHeight()); 16532cc4dd751569721aa19218b4d947145577060d0nicolasroard 16632cc4dd751569721aa19218b4d947145577060d0nicolasroard float dx = (destination.getWidth() - source.getWidth() * scaleFactor) / 2.0f; 16732cc4dd751569721aa19218b4d947145577060d0nicolasroard float dy = (destination.getHeight() - source.getHeight() * scaleFactor) / 2.0f; 16832cc4dd751569721aa19218b4d947145577060d0nicolasroard if (mImageFrame.height() > mImageFrame.width()) { 16932cc4dd751569721aa19218b4d947145577060d0nicolasroard // if portrait 17032cc4dd751569721aa19218b4d947145577060d0nicolasroard dy -= mTextSize; 17132cc4dd751569721aa19218b4d947145577060d0nicolasroard } 17232cc4dd751569721aa19218b4d947145577060d0nicolasroard m.setScale(scaleFactor, scaleFactor); 17332cc4dd751569721aa19218b4d947145577060d0nicolasroard m.postTranslate(dx, dy); 174f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard Canvas canvas = new Canvas(destination); 1755c57134ef2636f452bd6ec907d6510840390d982nicolasroard canvas.drawBitmap(source, m, new Paint(Paint.FILTER_BITMAP_FLAG)); 176f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 177f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 178f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard @Override 179f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void available(RenderingRequest request) { 18032cc4dd751569721aa19218b4d947145577060d0nicolasroard clearBitmap(); 181f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mImage = request.getBitmap(); 182f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mImage == null) { 18332cc4dd751569721aa19218b4d947145577060d0nicolasroard mImageFrame = null; 184f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return; 185f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 186f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mRepresentation.getOverlayId() != 0 && mOverlayBitmap == null) { 187f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mOverlayBitmap = BitmapFactory.decodeResource( 188f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mContext.getResources(), 189f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mRepresentation.getOverlayId()); 190f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 191f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mOverlayBitmap != null) { 1923cb106ddd7ad0f8494ac9c7a33660831c1694295Ruben Brunk if (getRepresentation().getFilterType() == FilterRepresentation.TYPE_BORDER) { 19300259461be82e601b58d3e970afbf0c012c5f3e7nicolasroard Canvas canvas = new Canvas(mImage); 19400259461be82e601b58d3e970afbf0c012c5f3e7nicolasroard canvas.drawBitmap(mOverlayBitmap, new Rect(0, 0, mOverlayBitmap.getWidth(), mOverlayBitmap.getHeight()), 19500259461be82e601b58d3e970afbf0c012c5f3e7nicolasroard new Rect(0, 0, mImage.getWidth(), mImage.getHeight()), new Paint()); 19600259461be82e601b58d3e970afbf0c012c5f3e7nicolasroard } else { 19700259461be82e601b58d3e970afbf0c012c5f3e7nicolasroard Canvas canvas = new Canvas(mImage); 19800259461be82e601b58d3e970afbf0c012c5f3e7nicolasroard canvas.drawARGB(128, 0, 0, 0); 19900259461be82e601b58d3e970afbf0c012c5f3e7nicolasroard drawCenteredImage(mOverlayBitmap, mImage, false); 20000259461be82e601b58d3e970afbf0c012c5f3e7nicolasroard } 201f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 202f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard if (mAdapter != null) { 203f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mAdapter.notifyDataSetChanged(); 204f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 205f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 206f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 207f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void setPortraitImage(Bitmap portraitImage) { 208f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mPortraitImage = portraitImage; 209f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 210f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 211f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public Bitmap getPortraitImage() { 212f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return mPortraitImage; 213f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 214f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 215f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public Bitmap getOverlayBitmap() { 216f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard return mOverlayBitmap; 217f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 218f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard 219f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard public void setOverlayBitmap(Bitmap overlayBitmap) { 220f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard mOverlayBitmap = overlayBitmap; 221f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard } 22232cc4dd751569721aa19218b4d947145577060d0nicolasroard 22332cc4dd751569721aa19218b4d947145577060d0nicolasroard public void clearBitmap() { 22432cc4dd751569721aa19218b4d947145577060d0nicolasroard if (mImage != null 22532cc4dd751569721aa19218b4d947145577060d0nicolasroard && mImage != MasterImage.getImage().getTemporaryThumbnailBitmap()) { 22632cc4dd751569721aa19218b4d947145577060d0nicolasroard MasterImage.getImage().getBitmapCache().cache(mImage); 22732cc4dd751569721aa19218b4d947145577060d0nicolasroard } 22832cc4dd751569721aa19218b4d947145577060d0nicolasroard mImage = null; 22932cc4dd751569721aa19218b4d947145577060d0nicolasroard } 230f5eedf1635eba7edfa7d41fd4e991cced978c4b2nicolasroard} 231