• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.camera;
18 
19 import android.view.KeyEvent;
20 import android.view.View;
21 
22 import com.android.camera.app.AppController;
23 import com.android.camera.app.CameraProvider;
24 import com.android.camera.app.CameraServices;
25 import com.android.camera.module.ModuleController;
26 
27 public abstract class CameraModule implements ModuleController {
28     /** Provides common services and functionality to the module. */
29     private final CameraServices mServices;
30     private final CameraProvider mCameraProvider;
31 
CameraModule(AppController app)32     public CameraModule(AppController app) {
33         mServices = app.getServices();
34         mCameraProvider = app.getCameraProvider();
35     }
36 
37     @Override
onBackPressed()38     public boolean onBackPressed() {
39         return false;
40     }
41 
42     @Override
onPreviewVisibilityChanged(int visibility)43     public void onPreviewVisibilityChanged(int visibility) {
44         // Do nothing.
45     }
46 
47     @Deprecated
onKeyDown(int keyCode, KeyEvent event)48     public abstract boolean onKeyDown(int keyCode, KeyEvent event);
49 
50     @Deprecated
onKeyUp(int keyCode, KeyEvent event)51     public abstract boolean onKeyUp(int keyCode, KeyEvent event);
52 
53     @Deprecated
onSingleTapUp(View view, int x, int y)54     public void onSingleTapUp(View view, int x, int y) {
55     }
56 
57     /**
58      * @return An instance containing common services to be used by the module.
59      */
getServices()60     protected CameraServices getServices() {
61         return mServices;
62     }
63 
64     /**
65      * @return An instance used by the module to get the camera.
66      */
getCameraProvider()67     protected CameraProvider getCameraProvider() {
68         return mCameraProvider;
69     }
70 
71     /**
72      * Requests the back camera through {@link CameraProvider}.
73      * This calls {@link
74      * com.android.camera.app.CameraProvider#requestCamera(int)}. The camera
75      * will be returned through {@link
76      * #onCameraAvailable(com.android.ex.camera2.portability.CameraAgent.CameraProxy)}
77      * when it's available. This is a no-op when there's no back camera
78      * available.
79      */
requestBackCamera()80     protected void requestBackCamera() {
81         int backCameraId = mCameraProvider.getFirstBackCameraId();
82         if (backCameraId != -1) {
83             mCameraProvider.requestCamera(backCameraId);
84         }
85     }
86 
onPreviewInitialDataReceived()87     public void onPreviewInitialDataReceived() {}
88 
89     /**
90      * Releases the back camera through {@link CameraProvider}.
91      * This calls {@link
92      * com.android.camera.app.CameraProvider#releaseCamera(int)}.
93      * This is a no-op when there's no back camera available.
94      */
releaseBackCamera()95     protected void releaseBackCamera() {
96         int backCameraId = mCameraProvider.getFirstBackCameraId();
97         if (backCameraId != -1) {
98             mCameraProvider.releaseCamera(backCameraId);
99         }
100     }
101 
102     /**
103      * @return An accessibility String to be announced during the peek animation.
104      */
getPeekAccessibilityString()105     public abstract String getPeekAccessibilityString();
106 
107     @Override
onShutterButtonLongPressed()108     public void onShutterButtonLongPressed() {
109         // noop
110     }
111 }
112