1f93e60c1b334d510940406c736559895462aac31nicolasroard/*
2f93e60c1b334d510940406c736559895462aac31nicolasroard * Copyright (C) 2013 The Android Open Source Project
3f93e60c1b334d510940406c736559895462aac31nicolasroard *
4f93e60c1b334d510940406c736559895462aac31nicolasroard * Licensed under the Apache License, Version 2.0 (the "License");
5f93e60c1b334d510940406c736559895462aac31nicolasroard * you may not use this file except in compliance with the License.
6f93e60c1b334d510940406c736559895462aac31nicolasroard * You may obtain a copy of the License at
7f93e60c1b334d510940406c736559895462aac31nicolasroard *
8f93e60c1b334d510940406c736559895462aac31nicolasroard *      http://www.apache.org/licenses/LICENSE-2.0
9f93e60c1b334d510940406c736559895462aac31nicolasroard *
10f93e60c1b334d510940406c736559895462aac31nicolasroard * Unless required by applicable law or agreed to in writing, software
11f93e60c1b334d510940406c736559895462aac31nicolasroard * distributed under the License is distributed on an "AS IS" BASIS,
12f93e60c1b334d510940406c736559895462aac31nicolasroard * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f93e60c1b334d510940406c736559895462aac31nicolasroard * See the License for the specific language governing permissions and
14f93e60c1b334d510940406c736559895462aac31nicolasroard * limitations under the License.
15f93e60c1b334d510940406c736559895462aac31nicolasroard */
16f93e60c1b334d510940406c736559895462aac31nicolasroard
17f93e60c1b334d510940406c736559895462aac31nicolasroardpackage com.android.gallery3d.filtershow.filters;
18f93e60c1b334d510940406c736559895462aac31nicolasroard
194c792cc7b44be1ea0a2cfc2e7259828b81b0e4a4John Hofordimport android.content.Context;
203bc806a8575072c9459fe3698675d3713300d1d3nicolasroardimport android.content.res.Resources;
214c792cc7b44be1ea0a2cfc2e7259828b81b0e4a4John Hofordimport android.graphics.Color;
224c792cc7b44be1ea0a2cfc2e7259828b81b0e4a4John Hoford
234c792cc7b44be1ea0a2cfc2e7259828b81b0e4a4John Hofordimport com.android.gallery3d.R;
243bc806a8575072c9459fe3698675d3713300d1d3nicolasroard
255138b28530301bf751adecb87ed58a214cd55116John Hofordimport java.util.ArrayList;
265138b28530301bf751adecb87ed58a214cd55116John Hofordimport java.util.HashMap;
275138b28530301bf751adecb87ed58a214cd55116John Hofordimport java.util.Vector;
285138b28530301bf751adecb87ed58a214cd55116John Hoford
29f60760478ec7c78446be0e0c6bc5502d1557974cnicolasroardpublic class FiltersManager extends BaseFiltersManager {
3021a01faab1125c5c347a3dfbf6a71de6aec233a1Ruben Brunk    private static FiltersManager sInstance = null;
317706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard    private static FiltersManager sPreviewInstance = null;
32e29b57330be471dd74672a7bdc74a93dcae3a98bnicolasroard    private static FiltersManager sHighresInstance = null;
33b052e5c72d27c3da585e345d758170c3ab26cbc8nicolasroard
347706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard    public FiltersManager() {
357706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard        init();
367706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard    }
377706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard
387706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard    public static FiltersManager getPreviewManager() {
397706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard        if (sPreviewInstance == null) {
407706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard            sPreviewInstance = new FiltersManager();
417706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard        }
427706e506dc74fa634a69b9ce8c7e5e2c457f01fcnicolasroard        return sPreviewInstance;
4321a01faab1125c5c347a3dfbf6a71de6aec233a1Ruben Brunk    }
4471f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard
4571f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    public static FiltersManager getManager() {
4621a01faab1125c5c347a3dfbf6a71de6aec233a1Ruben Brunk        if (sInstance == null) {
4721a01faab1125c5c347a3dfbf6a71de6aec233a1Ruben Brunk            sInstance = new FiltersManager();
4871f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard        }
4921a01faab1125c5c347a3dfbf6a71de6aec233a1Ruben Brunk        return sInstance;
5021a01faab1125c5c347a3dfbf6a71de6aec233a1Ruben Brunk    }
5121a01faab1125c5c347a3dfbf6a71de6aec233a1Ruben Brunk
52e29b57330be471dd74672a7bdc74a93dcae3a98bnicolasroard    public static FiltersManager getHighresManager() {
53e29b57330be471dd74672a7bdc74a93dcae3a98bnicolasroard        if (sHighresInstance == null) {
54e29b57330be471dd74672a7bdc74a93dcae3a98bnicolasroard            sHighresInstance = new FiltersManager();
55e29b57330be471dd74672a7bdc74a93dcae3a98bnicolasroard        }
56e29b57330be471dd74672a7bdc74a93dcae3a98bnicolasroard        return sHighresInstance;
57e29b57330be471dd74672a7bdc74a93dcae3a98bnicolasroard    }
58e29b57330be471dd74672a7bdc74a93dcae3a98bnicolasroard
5921a01faab1125c5c347a3dfbf6a71de6aec233a1Ruben Brunk    public static void reset() {
6021a01faab1125c5c347a3dfbf6a71de6aec233a1Ruben Brunk        sInstance = null;
61ea5355e6aa782bb61fbf079f4811873a67a83808Ruben Brunk        sPreviewInstance = null;
62e29b57330be471dd74672a7bdc74a93dcae3a98bnicolasroard        sHighresInstance = null;
6371f04cbaedbb89e313e0b86b531640db2d3f6016nicolasroard    }
6438fc044a6d45e7283f05e6fe800bc5faf9f2e573nicolasroard
653bc806a8575072c9459fe3698675d3713300d1d3nicolasroard    public static void setResources(Resources resources) {
663bc806a8575072c9459fe3698675d3713300d1d3nicolasroard        FiltersManager.getManager().setFilterResources(resources);
673bc806a8575072c9459fe3698675d3713300d1d3nicolasroard        FiltersManager.getPreviewManager().setFilterResources(resources);
683bc806a8575072c9459fe3698675d3713300d1d3nicolasroard        FiltersManager.getHighresManager().setFilterResources(resources);
693bc806a8575072c9459fe3698675d3713300d1d3nicolasroard    }
70f93e60c1b334d510940406c736559895462aac31nicolasroard}
71