IndicatorControlBarContainer.java revision 507aaa672eb8ad5464159021f1b3596cafeede1d
1adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang/*
2adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang * Copyright (C) 2011 The Android Open Source Project
3adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang *
4adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang * Licensed under the Apache License, Version 2.0 (the "License");
5adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang * you may not use this file except in compliance with the License.
6adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang * You may obtain a copy of the License at
7adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang *
8adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang *      http://www.apache.org/licenses/LICENSE-2.0
9adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang *
10adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang * Unless required by applicable law or agreed to in writing, software
11adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang * distributed under the License is distributed on an "AS IS" BASIS,
12adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang * See the License for the specific language governing permissions and
14adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang * limitations under the License.
15adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang */
16adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
17adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wangpackage com.android.camera.ui;
18adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
19adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wangimport com.android.camera.CameraPreference.OnPreferenceChangedListener;
20adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wangimport com.android.camera.PreferenceGroup;
21adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wangimport com.android.camera.R;
22adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
23adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wangimport android.content.Context;
24adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wangimport android.util.AttributeSet;
25ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wangimport android.view.MotionEvent;
26adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wangimport android.view.View;
27adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wangimport android.view.animation.Animation;
28507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wangimport android.view.animation.Animation.AnimationListener;
29adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wangimport android.view.animation.AnimationUtils;
30adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
31adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang/**
32ed6373cd34393dfdda8d18a03705c83bfff1f535Chung-yih Wang * The IndicatorControlBarContainer is a IndicatorControl containing
33ed6373cd34393dfdda8d18a03705c83bfff1f535Chung-yih Wang * IndicatorControlBar, SecondIndicatorControlBar and ZoomControlBar for Phone UI.
34adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang */
35ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wangpublic class IndicatorControlBarContainer extends IndicatorControlContainer
36ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang        implements OnIndicatorEventListener {
37ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang    private static final String TAG = "IndicatorControlBarContainer";
38adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
39adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    private Animation mFadeIn, mFadeOut;
40507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang    private Animation mSecondLevelFadeIn, mSecondLevelFadeOut;
41ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang    private IndicatorControlBar mIndicatorControlBar;
42adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    private ZoomControlBar mZoomControlBar;
43d2202f9677fcc5f3f2b3e950c35aefe80da14a8aChung-yih Wang    private ZoomIndexBar mZoomIndexBar;
44ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang    private SecondLevelIndicatorControlBar mSecondLevelIndicatorControlBar;
45adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
46ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang    public IndicatorControlBarContainer(Context context, AttributeSet attrs) {
47adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang        super(context, attrs);
486176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang        mFadeIn = AnimationUtils.loadAnimation(
49507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang                context, R.anim.grow_fade_in_from_top);
506176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang        mFadeOut = AnimationUtils.loadAnimation(
51507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang                context, R.anim.shrink_fade_out_from_bottom);
52507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        mFadeOut.setAnimationListener(mAnimationListener);
53507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        mSecondLevelFadeIn = AnimationUtils.loadAnimation(
54507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang                context, R.anim.grow_fade_in_from_bottom);
55507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        mSecondLevelFadeOut = AnimationUtils.loadAnimation(
566176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang                context, R.anim.shrink_fade_out_from_top);
57507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        mSecondLevelFadeOut.setAnimationListener(mAnimationListener);
58adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    }
59adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
60adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    @Override
616176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang    protected void onFinishInflate() {
626176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang        mZoomControlBar = (ZoomControlBar) findViewById(R.id.zoom_control);
63adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang        mZoomControlBar.setOnIndicatorEventListener(this);
64d2202f9677fcc5f3f2b3e950c35aefe80da14a8aChung-yih Wang        mZoomIndexBar = (ZoomIndexBar) findViewById(R.id.zoom_index_bar);
65d2202f9677fcc5f3f2b3e950c35aefe80da14a8aChung-yih Wang        mZoomControlBar.setOnZoomIndexChangeListener(mZoomIndexBar);
660935e09bb12a1886a801713bbd78bbc20bf4ea4eChih-yu Huang        mIndicatorControlBar = (IndicatorControlBar)
670935e09bb12a1886a801713bbd78bbc20bf4ea4eChih-yu Huang                findViewById(R.id.indicator_bar);
68ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        mIndicatorControlBar.setOnIndicatorEventListener(this);
69ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        mSecondLevelIndicatorControlBar = (SecondLevelIndicatorControlBar)
70adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang                findViewById(R.id.second_level_indicator_bar);
71ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        mSecondLevelIndicatorControlBar.setOnIndicatorEventListener(this);
726176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang    }
73adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
746176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang    @Override
756176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang    public void initialize(Context context, PreferenceGroup group,
766176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang            String flashSetting, boolean isZoomSupported,
776176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang            String[] secondLevelKeys, String[] secondLevelOtherSettingKeys) {
786176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang
796176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang        // We need to show/hide the zoom slider icon accordingly.
806176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang        // From UI spec, we have camera_flash setting on the first level.
816176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang        mIndicatorControlBar.initialize(context, group, flashSetting,
826176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang                isZoomSupported);
836176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang
846176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang        mSecondLevelIndicatorControlBar.initialize(context, group,
856176dfc23f5a092ca1b2ee3d07d7076821ec6095Chung-yih Wang                secondLevelKeys, secondLevelOtherSettingKeys);
86adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    }
87adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
88adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    public void setDegree(int degree) {
89ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        mIndicatorControlBar.setDegree(degree);
90ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        mSecondLevelIndicatorControlBar.setDegree(degree);
91adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang        mZoomControlBar.setDegree(degree);
92d2202f9677fcc5f3f2b3e950c35aefe80da14a8aChung-yih Wang        mZoomIndexBar.setDegree(degree);
93adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    }
94adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
95ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang    @Override
96ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang    public boolean dispatchTouchEvent(MotionEvent event) {
97ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang        if (mIndicatorControlBar.getVisibility() == View.VISIBLE) {
98ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang            return mIndicatorControlBar.dispatchTouchEvent(event);
99ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang        } else if (mSecondLevelIndicatorControlBar.getVisibility() == View.VISIBLE) {
100ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang            return mSecondLevelIndicatorControlBar.dispatchTouchEvent(event);
101ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang        } else if (mZoomControlBar.getVisibility() == View.VISIBLE) {
102ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang            return mZoomControlBar.dispatchTouchEvent(event);
103ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang        }
104d2202f9677fcc5f3f2b3e950c35aefe80da14a8aChung-yih Wang        return true;
105ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang    }
106ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang
107507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang    private AnimationListener mAnimationListener = new AnimationListener() {
108507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        public void onAnimationEnd(Animation animation) {
109507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang            if (animation == mSecondLevelFadeOut) {
110507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang                mSecondLevelIndicatorControlBar.setVisibility(View.GONE);
111507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang            } else if (animation == mFadeOut) {
112507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang                mIndicatorControlBar.setVisibility(View.GONE);
113507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang            }
114507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        }
115507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang
116507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        public void onAnimationRepeat(Animation animation) {
117507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        }
118507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang
119507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        public void onAnimationStart(Animation animation) {
120507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang        }
121507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang    };
122507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang
123adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    public void onIndicatorEvent(int event) {
124adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang        switch (event) {
125adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang            case OnIndicatorEventListener.EVENT_ENTER_SECOND_LEVEL_INDICATOR_BAR:
126507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang                mIndicatorControlBar.startAnimation(mFadeOut);
127507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang                mSecondLevelIndicatorControlBar.startAnimation(mSecondLevelFadeIn);
128ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang                mSecondLevelIndicatorControlBar.setVisibility(View.VISIBLE);
129adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang                break;
130adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
131adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang            case OnIndicatorEventListener.EVENT_LEAVE_SECOND_LEVEL_INDICATOR_BAR:
132507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang                mIndicatorControlBar.startAnimation(mFadeIn);
133ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang                mIndicatorControlBar.setVisibility(View.VISIBLE);
134507aaa672eb8ad5464159021f1b3596cafeede1dChung-yih Wang                mSecondLevelIndicatorControlBar.startAnimation(mSecondLevelFadeOut);
135adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang                break;
136adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
137ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang            case OnIndicatorEventListener.EVENT_ENTER_ZOOM_CONTROL:
138ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang                mIndicatorControlBar.setVisibility(View.GONE);
139adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang                mZoomControlBar.setVisibility(View.VISIBLE);
140d2202f9677fcc5f3f2b3e950c35aefe80da14a8aChung-yih Wang                mZoomIndexBar.setVisibility(View.VISIBLE);
141ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang                mZoomControlBar.startZoomControl();
142adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang                break;
143adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
144ab2ffa88872149978823c3184d0af162d3cdca13Chung-yih Wang            case OnIndicatorEventListener.EVENT_LEAVE_ZOOM_CONTROL:
145adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang                mZoomControlBar.setVisibility(View.GONE);
146d2202f9677fcc5f3f2b3e950c35aefe80da14a8aChung-yih Wang                mZoomIndexBar.setVisibility(View.GONE);
147ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang                mIndicatorControlBar.setVisibility(View.VISIBLE);
148adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang                break;
149adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang        }
150adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    }
151adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
152adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    public void reloadPreferences() {
153ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        mIndicatorControlBar.reloadPreferences();
154ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        mSecondLevelIndicatorControlBar.reloadPreferences();
155adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    }
156adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
157adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    public void setListener(OnPreferenceChangedListener listener) {
158ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        mIndicatorControlBar.setListener(listener);
159ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        mSecondLevelIndicatorControlBar.setListener(listener);
160adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    }
161adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
162adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    @Override
163adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    public View getActiveSettingPopup() {
164ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        if (mIndicatorControlBar.getVisibility() == View.VISIBLE) {
165ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang            return mIndicatorControlBar.getActiveSettingPopup();
166ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        } else if (mSecondLevelIndicatorControlBar.getVisibility() == View.VISIBLE) {
167ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang            return mSecondLevelIndicatorControlBar.getActiveSettingPopup();
168adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang        }
169adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang        return null;
170adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    }
171adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang
172adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    public boolean dismissSettingPopup() {
173ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        if (mIndicatorControlBar.getVisibility() == View.VISIBLE) {
174ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang            return mIndicatorControlBar.dismissSettingPopup();
175ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        } else if (mSecondLevelIndicatorControlBar.getVisibility() == View.VISIBLE) {
176ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang            return mSecondLevelIndicatorControlBar.dismissSettingPopup();
177adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang        }
178adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang        return false;
179adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang    }
180ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang
181ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang    @Override
182ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang    public void overrideSettings(final String ... keyvalues) {
183ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        if (mSecondLevelIndicatorControlBar.getVisibility() == View.VISIBLE) {
184ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang            mSecondLevelIndicatorControlBar.overrideSettings(keyvalues);
185ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang        }
186ff45331706e2fe361b4ff736d90b0ad4af0e7be9Chung-yih Wang    }
187b1ce29490ec61847602ece16f3745417787d3d8fChung-yih Wang
188b1ce29490ec61847602ece16f3745417787d3d8fChung-yih Wang    @Override
189b1ce29490ec61847602ece16f3745417787d3d8fChung-yih Wang    public void setEnabled(boolean enabled) {
190b1ce29490ec61847602ece16f3745417787d3d8fChung-yih Wang        mIndicatorControlBar.setEnabled(enabled);
191b1ce29490ec61847602ece16f3745417787d3d8fChung-yih Wang        mSecondLevelIndicatorControlBar.setEnabled(enabled);
192b1ce29490ec61847602ece16f3745417787d3d8fChung-yih Wang    }
1930bb4487fcc7601118111d4545c31dae04651b456Wu-cheng Li
1940bb4487fcc7601118111d4545c31dae04651b456Wu-cheng Li    @Override
1950bb4487fcc7601118111d4545c31dae04651b456Wu-cheng Li    public void enableZoom(boolean enabled) {
1960bb4487fcc7601118111d4545c31dae04651b456Wu-cheng Li        mIndicatorControlBar.enableZoom(enabled);
1970bb4487fcc7601118111d4545c31dae04651b456Wu-cheng Li    }
198adab2bddc93bf4af535cb58e7167bf8690d97d8cChung-yih Wang}
199