16a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang/* 26a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * Copyright (C) 2010 The Android Open Source Project 36a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * 46a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * Licensed under the Apache License, Version 2.0 (the "License"); 56a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * you may not use this file except in compliance with the License. 66a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * You may obtain a copy of the License at 76a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * 86a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * http://www.apache.org/licenses/LICENSE-2.0 96a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * 106a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * Unless required by applicable law or agreed to in writing, software 116a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * distributed under the License is distributed on an "AS IS" BASIS, 126a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * See the License for the specific language governing permissions and 146a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * limitations under the License. 156a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang */ 166a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 176a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huangpackage com.android.gallery3d.photoeditor.actions; 186a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 196a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huangimport android.content.Context; 206a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huangimport android.util.AttributeSet; 216a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 226a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huangimport com.android.gallery3d.photoeditor.filters.SharpenFilter; 236a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 246a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang/** 256a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang * An action handling sharpen effect. 266a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang */ 276a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huangpublic class SharpenAction extends EffectAction { 286a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 296a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang private static final float DEFAULT_SCALE = 0.5f; 306a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 316a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang private ScaleSeekBar scalePicker; 326a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 336a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang public SharpenAction(Context context, AttributeSet attrs) { 346a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang super(context, attrs); 356a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang } 366a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 376a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang @Override 386a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang public void doBegin() { 396a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang final SharpenFilter filter = new SharpenFilter(); 406a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 416a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang scalePicker = factory.createScalePicker(EffectToolFactory.ScalePickerType.GENERIC); 426a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang scalePicker.setOnScaleChangeListener(new ScaleSeekBar.OnScaleChangeListener() { 436a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 446a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang @Override 456a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang public void onProgressChanged(float progress, boolean fromUser) { 466a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang if (fromUser) { 47738e82e163f90e1fe7aeef8bd153dc7763631f30Yuli Huang filter.setScale(progress); 486a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang notifyFilterChanged(filter, true); 496a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang } 506a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang } 516a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang }); 526a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang scalePicker.setProgress(DEFAULT_SCALE); 536a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 54738e82e163f90e1fe7aeef8bd153dc7763631f30Yuli Huang filter.setScale(DEFAULT_SCALE); 556a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang notifyFilterChanged(filter, true); 566a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang } 576a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang 586a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang @Override 596a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang public void doEnd() { 606a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang scalePicker.setOnScaleChangeListener(null); 616a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang } 626a12ad70df5da5052a8381e2cdda79e6a314cee9Yuli Huang} 63