PreviewStatusListener.java revision 70da918464276b110c43868caa272c97baadb89e
106db742814dd635d100639f977fcfdc904deb778Doris Liu/* 206db742814dd635d100639f977fcfdc904deb778Doris Liu * Copyright (C) 2013 The Android Open Source Project 306db742814dd635d100639f977fcfdc904deb778Doris Liu * 406db742814dd635d100639f977fcfdc904deb778Doris Liu * Licensed under the Apache License, Version 2.0 (the "License"); 506db742814dd635d100639f977fcfdc904deb778Doris Liu * you may not use this file except in compliance with the License. 606db742814dd635d100639f977fcfdc904deb778Doris Liu * You may obtain a copy of the License at 706db742814dd635d100639f977fcfdc904deb778Doris Liu * 806db742814dd635d100639f977fcfdc904deb778Doris Liu * http://www.apache.org/licenses/LICENSE-2.0 906db742814dd635d100639f977fcfdc904deb778Doris Liu * 1006db742814dd635d100639f977fcfdc904deb778Doris Liu * Unless required by applicable law or agreed to in writing, software 1106db742814dd635d100639f977fcfdc904deb778Doris Liu * distributed under the License is distributed on an "AS IS" BASIS, 1206db742814dd635d100639f977fcfdc904deb778Doris Liu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1306db742814dd635d100639f977fcfdc904deb778Doris Liu * See the License for the specific language governing permissions and 1406db742814dd635d100639f977fcfdc904deb778Doris Liu * limitations under the License. 1506db742814dd635d100639f977fcfdc904deb778Doris Liu */ 1606db742814dd635d100639f977fcfdc904deb778Doris Liu 1706db742814dd635d100639f977fcfdc904deb778Doris Liupackage com.android.camera.ui; 1806db742814dd635d100639f977fcfdc904deb778Doris Liu 1906db742814dd635d100639f977fcfdc904deb778Doris Liuimport android.view.GestureDetector; 2006db742814dd635d100639f977fcfdc904deb778Doris Liuimport android.view.TextureView; 214a010db8a60008b2bf67b93b64f77f63affc29f3Doris Liuimport android.view.View; 2206db742814dd635d100639f977fcfdc904deb778Doris Liu 2306db742814dd635d100639f977fcfdc904deb778Doris Liu/** 2406db742814dd635d100639f977fcfdc904deb778Doris Liu * This interface defines a listener that watches preview status, including SurfaceTexture 2506db742814dd635d100639f977fcfdc904deb778Doris Liu * change and preview gestures. 2606db742814dd635d100639f977fcfdc904deb778Doris Liu */ 2706db742814dd635d100639f977fcfdc904deb778Doris Liupublic interface PreviewStatusListener extends TextureView.SurfaceTextureListener { 2806db742814dd635d100639f977fcfdc904deb778Doris Liu /** 2906db742814dd635d100639f977fcfdc904deb778Doris Liu * The preview status listener needs to provide an 3006db742814dd635d100639f977fcfdc904deb778Doris Liu * {@link android.view.GestureDetector.OnGestureListener} in order to listen 3106db742814dd635d100639f977fcfdc904deb778Doris Liu * to the touch events that happen on preview. 3206db742814dd635d100639f977fcfdc904deb778Doris Liu * 3306db742814dd635d100639f977fcfdc904deb778Doris Liu * @return a listener that listens to touch events 3406db742814dd635d100639f977fcfdc904deb778Doris Liu */ 3506db742814dd635d100639f977fcfdc904deb778Doris Liu public GestureDetector.OnGestureListener getGestureListener(); 364a010db8a60008b2bf67b93b64f77f63affc29f3Doris Liu 374a010db8a60008b2bf67b93b64f77f63affc29f3Doris Liu /** 384a010db8a60008b2bf67b93b64f77f63affc29f3Doris Liu * Gets called when preview TextureView gets a layout change call. 394a010db8a60008b2bf67b93b64f77f63affc29f3Doris Liu */ 404a010db8a60008b2bf67b93b64f77f63affc29f3Doris Liu public void onPreviewLayoutChanged(View v, int left, int top, int right, 414a010db8a60008b2bf67b93b64f77f63affc29f3Doris Liu int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom); 4270da918464276b110c43868caa272c97baadb89eDoris Liu 4370da918464276b110c43868caa272c97baadb89eDoris Liu /** 4470da918464276b110c43868caa272c97baadb89eDoris Liu * This listener gets notified when the actual preview frame changes size due 4570da918464276b110c43868caa272c97baadb89eDoris Liu * to a transform matrix being applied to the TextureView 4670da918464276b110c43868caa272c97baadb89eDoris Liu */ 4770da918464276b110c43868caa272c97baadb89eDoris Liu public interface PreviewSizeChangedListener { 4870da918464276b110c43868caa272c97baadb89eDoris Liu public void onPreviewSizeChanged(float previewWidth, float previewHeight); 4970da918464276b110c43868caa272c97baadb89eDoris Liu } 5070da918464276b110c43868caa272c97baadb89eDoris Liu 5170da918464276b110c43868caa272c97baadb89eDoris Liu /** 5270da918464276b110c43868caa272c97baadb89eDoris Liu * The preview status listener needs to know for the specific module whether 5370da918464276b110c43868caa272c97baadb89eDoris Liu * preview TextureView should automatically adjust its transform matrix based 5470da918464276b110c43868caa272c97baadb89eDoris Liu * on the current aspect ratio, width and height of the TextureView. 5570da918464276b110c43868caa272c97baadb89eDoris Liu * 5670da918464276b110c43868caa272c97baadb89eDoris Liu * @return whether transform matrix should be automatically adjusted 5770da918464276b110c43868caa272c97baadb89eDoris Liu */ 5870da918464276b110c43868caa272c97baadb89eDoris Liu public boolean shouldAutoAdjustTransformMatrixOnLayout(); 5970da918464276b110c43868caa272c97baadb89eDoris Liu 6070da918464276b110c43868caa272c97baadb89eDoris Liu /** 6170da918464276b110c43868caa272c97baadb89eDoris Liu * The preview status listener needs to know for the specific module whether 6270da918464276b110c43868caa272c97baadb89eDoris Liu * bottom bar should be automatically adjusted when preview has changed size 6370da918464276b110c43868caa272c97baadb89eDoris Liu * or orientation. 6470da918464276b110c43868caa272c97baadb89eDoris Liu * 6570da918464276b110c43868caa272c97baadb89eDoris Liu * @return whether bottom bar should be automatically adjusted 6670da918464276b110c43868caa272c97baadb89eDoris Liu */ 6770da918464276b110c43868caa272c97baadb89eDoris Liu public boolean shouldAutoAdjustBottomBar(); 6806db742814dd635d100639f977fcfdc904deb778Doris Liu} 69