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 17 package com.android.gallery3d.filtershow.filters; 18 19 import com.android.gallery3d.filtershow.editors.ImageOnlyEditor; 20 21 public class FilterFxRepresentation extends FilterRepresentation { 22 private static final String LOGTAG = "FilterFxRepresentation"; 23 // TODO: When implementing serialization, we should find a unique way of 24 // specifying bitmaps / names (the resource IDs being random) 25 private int mBitmapResource = 0; 26 private int mNameResource = 0; 27 28 public FilterFxRepresentation(String name, int bitmapResource, int nameResource) { 29 super(name); 30 setFilterClass(ImageFilterFx.class); 31 mBitmapResource = bitmapResource; 32 mNameResource = nameResource; 33 setFilterType(FilterRepresentation.TYPE_FX); 34 setTextId(nameResource); 35 setEditorId(ImageOnlyEditor.ID); 36 setShowParameterValue(false); 37 setSupportsPartialRendering(true); 38 } 39 40 @Override 41 public String toString() { 42 return "FilterFx: " + hashCode() + " : " + getName() + " bitmap rsc: " + mBitmapResource; 43 } 44 45 @Override 46 public FilterRepresentation copy() { 47 FilterFxRepresentation representation = new FilterFxRepresentation(getName(),0,0); 48 copyAllParameters(representation); 49 return representation; 50 } 51 52 @Override 53 protected void copyAllParameters(FilterRepresentation representation) { 54 super.copyAllParameters(representation); 55 representation.useParametersFrom(this); 56 } 57 58 @Override 59 public synchronized void useParametersFrom(FilterRepresentation a) { 60 if (a instanceof FilterFxRepresentation) { 61 FilterFxRepresentation representation = (FilterFxRepresentation) a; 62 setName(representation.getName()); 63 setSerializationName(representation.getSerializationName()); 64 setBitmapResource(representation.getBitmapResource()); 65 setNameResource(representation.getNameResource()); 66 } 67 } 68 69 @Override 70 public boolean equals(FilterRepresentation representation) { 71 if (!super.equals(representation)) { 72 return false; 73 } 74 if (representation instanceof FilterFxRepresentation) { 75 FilterFxRepresentation fx = (FilterFxRepresentation) representation; 76 if (fx.mNameResource == mNameResource 77 && fx.mBitmapResource == mBitmapResource) { 78 return true; 79 } 80 } 81 return false; 82 } 83 84 @Override 85 public boolean same(FilterRepresentation representation) { 86 if (!super.same(representation)) { 87 return false; 88 } 89 return equals(representation); 90 } 91 92 @Override 93 public boolean allowsSingleInstanceOnly() { 94 return true; 95 } 96 97 public int getNameResource() { 98 return mNameResource; 99 } 100 101 public void setNameResource(int nameResource) { 102 mNameResource = nameResource; 103 } 104 105 public int getBitmapResource() { 106 return mBitmapResource; 107 } 108 109 public void setBitmapResource(int bitmapResource) { 110 mBitmapResource = bitmapResource; 111 } 112 } 113