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