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