1a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard/* 2a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * Copyright (C) 2012 The Android Open Source Project 3a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * 4a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * Licensed under the Apache License, Version 2.0 (the "License"); 5a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * you may not use this file except in compliance with the License. 6a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * You may obtain a copy of the License at 7a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * 8a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * http://www.apache.org/licenses/LICENSE-2.0 9a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * 10a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * Unless required by applicable law or agreed to in writing, software 11a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * distributed under the License is distributed on an "AS IS" BASIS, 12a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * See the License for the specific language governing permissions and 14a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard * limitations under the License. 15a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard */ 16a9f280f938b5fd5891c5cfe0999f8f1d4945d7a1nicolasroard 175448bf8095483574649afcc2add7f153670c7450nicolasroardpackage com.android.gallery3d.filtershow.cache; 185448bf8095483574649afcc2add7f153670c7450nicolasroard 195448bf8095483574649afcc2add7f153670c7450nicolasroardimport android.graphics.Bitmap; 205448bf8095483574649afcc2add7f153670c7450nicolasroardimport android.graphics.Rect; 215448bf8095483574649afcc2add7f153670c7450nicolasroard 225448bf8095483574649afcc2add7f153670c7450nicolasroardimport com.android.gallery3d.filtershow.presets.ImagePreset; 235448bf8095483574649afcc2add7f153670c7450nicolasroard 245448bf8095483574649afcc2add7f153670c7450nicolasroardpublic class ZoomCache { 255448bf8095483574649afcc2add7f153670c7450nicolasroard 265448bf8095483574649afcc2add7f153670c7450nicolasroard private ImagePreset mImagePreset = null; 275448bf8095483574649afcc2add7f153670c7450nicolasroard private Bitmap mBitmap = null; 285448bf8095483574649afcc2add7f153670c7450nicolasroard private Rect mBounds = null; 295448bf8095483574649afcc2add7f153670c7450nicolasroard 305448bf8095483574649afcc2add7f153670c7450nicolasroard // TODO: move the processing to a background thread... 315448bf8095483574649afcc2add7f153670c7450nicolasroard public Bitmap getImage(ImagePreset preset, Rect bounds) { 325448bf8095483574649afcc2add7f153670c7450nicolasroard if (mBounds != bounds) { 335448bf8095483574649afcc2add7f153670c7450nicolasroard return null; 345448bf8095483574649afcc2add7f153670c7450nicolasroard } 355448bf8095483574649afcc2add7f153670c7450nicolasroard if (mImagePreset == null) { 365448bf8095483574649afcc2add7f153670c7450nicolasroard return null; 375448bf8095483574649afcc2add7f153670c7450nicolasroard } 385448bf8095483574649afcc2add7f153670c7450nicolasroard if (!mImagePreset.same(preset)) { 395448bf8095483574649afcc2add7f153670c7450nicolasroard return null; 405448bf8095483574649afcc2add7f153670c7450nicolasroard } 415448bf8095483574649afcc2add7f153670c7450nicolasroard return mBitmap; 425448bf8095483574649afcc2add7f153670c7450nicolasroard } 435448bf8095483574649afcc2add7f153670c7450nicolasroard 445448bf8095483574649afcc2add7f153670c7450nicolasroard public void setImage(ImagePreset preset, Rect bounds, Bitmap bitmap) { 455448bf8095483574649afcc2add7f153670c7450nicolasroard mBitmap = bitmap; 465448bf8095483574649afcc2add7f153670c7450nicolasroard mBounds = bounds; 475448bf8095483574649afcc2add7f153670c7450nicolasroard mImagePreset = preset; 485448bf8095483574649afcc2add7f153670c7450nicolasroard } 495448bf8095483574649afcc2add7f153670c7450nicolasroard 505448bf8095483574649afcc2add7f153670c7450nicolasroard public void reset(ImagePreset imagePreset) { 515448bf8095483574649afcc2add7f153670c7450nicolasroard if (imagePreset == mImagePreset) { 525448bf8095483574649afcc2add7f153670c7450nicolasroard mBitmap = null; 535448bf8095483574649afcc2add7f153670c7450nicolasroard } 545448bf8095483574649afcc2add7f153670c7450nicolasroard } 555448bf8095483574649afcc2add7f153670c7450nicolasroard} 56