• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.camera.ui;
18 
19 import android.graphics.RectF;
20 import android.view.GestureDetector;
21 import android.view.TextureView;
22 import android.view.View;
23 
24 /**
25  * This interface defines a listener that watches preview status, including SurfaceTexture
26  * change and preview gestures.
27  */
28 public interface PreviewStatusListener extends TextureView.SurfaceTextureListener {
29     /**
30      * The preview status listener needs to provide an
31      * {@link android.view.GestureDetector.OnGestureListener} in order to listen
32      * to the touch events that happen on preview.
33      *
34      * @return a listener that listens to touch events
35      */
getGestureListener()36     public GestureDetector.OnGestureListener getGestureListener();
37 
38     /**
39      * An {@link android.view.View.OnTouchListener} can be provided in addition to
40      * or instead of a {@link android.view.GestureDetector.OnGestureListener}
41      * for listening to touch events on the preview.  The listener is called whenever
42      * there is a touch event on the {@link com.android.camera.ui.PreviewOverlay}.
43      */
getTouchListener()44     public View.OnTouchListener getTouchListener();
45 
46     /**
47      * Gets called when preview TextureView gets a layout change call.
48      */
onPreviewLayoutChanged(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom)49     public void onPreviewLayoutChanged(View v, int left, int top, int right,
50             int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom);
51 
52     /**
53      * This listener gets notified when the actual preview frame changes due
54      * to a transform matrix being applied to the TextureView
55      */
56     public interface PreviewAreaChangedListener {
onPreviewAreaChanged(RectF previewArea)57         public void onPreviewAreaChanged(RectF previewArea);
58     }
59 
60     /**
61      * The preview status listener needs to know for the specific module whether
62      * preview TextureView should automatically adjust its transform matrix based
63      * on the current aspect ratio, width and height of the TextureView.
64      *
65      * @return whether transform matrix should be automatically adjusted
66      */
shouldAutoAdjustTransformMatrixOnLayout()67     public boolean shouldAutoAdjustTransformMatrixOnLayout();
68 
69     /**
70      * Gets called when the preview is flipped (i.e. 180-degree rotated).
71      */
onPreviewFlipped()72     public void onPreviewFlipped();
73 
74     /**
75      * This listener gets notified when the preview aspect ratio is changed.
76      */
77     public interface PreviewAspectRatioChangedListener {
onPreviewAspectRatioChanged(float aspectRatio)78         public void onPreviewAspectRatioChanged(float aspectRatio);
79     }
80 }
81