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