FiltersManager.java revision ebd3dbd2cea94c6cf1fd84c24de073f937b2fb3a
1/*
2 * Copyright (C) 2013 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.gallery3d.filtershow.filters;
18
19import android.content.Context;
20import android.content.res.Resources;
21import android.graphics.Color;
22
23import com.android.gallery3d.R;
24
25import java.util.HashMap;
26import java.util.Vector;
27
28public class FiltersManager extends BaseFiltersManager {
29    private static FiltersManager sInstance = null;
30    private static FiltersManager sPreviewInstance = null;
31    private static FiltersManager sHighresInstance = null;
32    private static int mImageBorderSize = 4; // in percent
33    public FiltersManager() {
34        init();
35    }
36
37    public static FiltersManager getPreviewManager() {
38        if (sPreviewInstance == null) {
39            sPreviewInstance = new FiltersManager();
40        }
41        return sPreviewInstance;
42    }
43
44    public static FiltersManager getManager() {
45        if (sInstance == null) {
46            sInstance = new FiltersManager();
47        }
48        return sInstance;
49    }
50
51    @Override
52    public void addBorders(Context context, Vector<FilterRepresentation> representations) {
53
54        // Do not localize
55        String[] serializationNames = {
56                "FRAME_4X5",
57                "FRAME_BRUSH",
58                "FRAME_GRUNGE",
59                "FRAME_SUMI_E",
60                "FRAME_TAPE",
61                "FRAME_BLACK",
62                "FRAME_BLACK_ROUNDED",
63                "FRAME_WHITE",
64                "FRAME_WHITE_ROUNDED",
65                "FRAME_CREAM",
66                "FRAME_CREAM_ROUNDED"
67        };
68
69        int i = 0;
70        // Regular borders
71        FilterRepresentation rep = new FilterImageBorderRepresentation(R.drawable.filtershow_border_4x5);
72        rep.setSerializationName(serializationNames[i++]);
73        representations.add(rep);
74
75        rep = new FilterImageBorderRepresentation(R.drawable.filtershow_border_brush);
76        rep.setSerializationName(serializationNames[i++]);
77        representations.add(rep);
78
79        rep = new FilterImageBorderRepresentation(R.drawable.filtershow_border_grunge);
80        rep.setSerializationName(serializationNames[i++]);
81        representations.add(rep);
82
83        rep = new FilterImageBorderRepresentation(R.drawable.filtershow_border_sumi_e);
84        rep.setSerializationName(serializationNames[i++]);
85        representations.add(rep);
86
87        rep = new FilterImageBorderRepresentation(R.drawable.filtershow_border_tape);
88        rep.setSerializationName(serializationNames[i++]);
89        representations.add(rep);
90
91        rep = new FilterColorBorderRepresentation(Color.BLACK, mImageBorderSize, 0);
92        rep.setSerializationName(serializationNames[i++]);
93        representations.add(rep);
94
95        rep = new FilterColorBorderRepresentation(Color.BLACK, mImageBorderSize,
96                mImageBorderSize);
97        rep.setSerializationName(serializationNames[i++]);
98        representations.add(rep);
99
100        rep = new FilterColorBorderRepresentation(Color.WHITE, mImageBorderSize, 0);
101        rep.setSerializationName(serializationNames[i++]);
102        representations.add(rep);
103
104        rep = new FilterColorBorderRepresentation(Color.WHITE, mImageBorderSize,
105                mImageBorderSize);
106        rep.setSerializationName(serializationNames[i++]);
107        representations.add(rep);
108
109        int creamColor = Color.argb(255, 237, 237, 227);
110        rep = new FilterColorBorderRepresentation(creamColor, mImageBorderSize, 0);
111        rep.setSerializationName(serializationNames[i++]);
112        representations.add(rep);
113
114        rep = new FilterColorBorderRepresentation(creamColor, mImageBorderSize,
115                mImageBorderSize);
116        rep.setSerializationName(serializationNames[i++]);
117        representations.add(rep);
118    }
119
120    public static FiltersManager getHighresManager() {
121        if (sHighresInstance == null) {
122            sHighresInstance = new FiltersManager();
123        }
124        return sHighresInstance;
125    }
126
127    public static void reset() {
128        sInstance = null;
129        sPreviewInstance = null;
130        sHighresInstance = null;
131    }
132
133    public static void setResources(Resources resources) {
134        FiltersManager.getManager().setFilterResources(resources);
135        FiltersManager.getPreviewManager().setFilterResources(resources);
136        FiltersManager.getHighresManager().setFilterResources(resources);
137    }
138}
139