OSDN Git Service

Fixed BasicEditor NPE.
[android-x86/packages-apps-Gallery2.git] / src / com / android / gallery3d / filtershow / editors / BasicEditor.java
1 /*
2  * Copyright (C) 2012 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.editors;
18
19 import com.android.gallery3d.R;
20 import com.android.gallery3d.filtershow.filters.ImageFilter;
21
22 import android.content.Context;
23 import android.util.Log;
24 import android.view.View;
25 import android.widget.FrameLayout;
26 import android.widget.SeekBar;
27 import android.widget.SeekBar.OnSeekBarChangeListener;
28
29 /**
30  * The basic editor that all the one parameter filters
31  */
32 public class BasicEditor extends Editor implements OnSeekBarChangeListener {
33     public static int ID = R.id.basicEditor;
34     private SeekBar mSeekBar;
35     private final String LOGTAG = "Editor";
36
37     public BasicEditor() {
38         super(ID);
39     }
40
41     @Override
42     public void createEditor(Context context, FrameLayout frameLayout) {
43         super.createEditor(context, frameLayout);
44         unpack(R.id.basicEditor, R.layout.filtershow_default_editor);
45         mSeekBar = (SeekBar) mView.findViewById(R.id.filterSeekBar);
46         mSeekBar.setOnSeekBarChangeListener(this);
47     }
48
49     @Override
50     public void reflectCurrentFilter() {
51         ImageFilter filter = mImageShow.getCurrentFilter();
52         if (filter == null) {
53             return;
54         }
55         boolean f = filter.showParameterValue();
56         mSeekBar.setVisibility((f) ? View.VISIBLE : View.INVISIBLE);
57         int parameter = filter.getParameter();
58         int maxp = filter.getMaxParameter();
59         int minp = filter.getMinParameter();
60         mSeekBar.setMax(maxp - minp);
61         mSeekBar.setProgress(parameter - minp);
62     }
63
64     @Override
65     public void onProgressChanged(SeekBar sbar, int progress, boolean arg2) {
66         ImageFilter filter = mImageShow.getCurrentFilter();
67         if (filter == null) {
68             return;
69         }
70         int minp = filter.getMinParameter();
71         int value = progress + minp;
72         mImageShow.onNewValue(value);
73         mView.invalidate();
74         if (filter.showParameterValue()) {
75             mPanelController.onNewValue(value);
76         }
77
78         Log.v(LOGTAG, "    #### progress=" + value);
79     }
80
81     @Override
82     public void onStartTrackingTouch(SeekBar arg0) {
83     }
84
85     @Override
86     public void onStopTrackingTouch(SeekBar arg0) {
87     }
88 }