More reckless refactoring and code style tweaks -- mostly adding braces around condit...
[zxing.git] / androidtest / src / com / google / zxing / client / androidtest / CameraTestActivity.java
1 /*
2  * Copyright (C) 2008 ZXing authors
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.google.zxing.client.androidtest;
18
19 import android.app.Activity;
20 import android.os.Bundle;
21 import android.os.Handler;
22 import android.os.Message;
23 import android.view.KeyEvent;
24 import android.view.SurfaceHolder;
25 import android.view.SurfaceView;
26 import android.view.Window;
27 import android.view.WindowManager;
28 import android.widget.Toast;
29
30 public final class CameraTestActivity extends Activity implements SurfaceHolder.Callback {
31
32   private SaveThread mSaveThread;
33
34   @Override
35   public void onCreate(Bundle icicle) {
36     super.onCreate(icicle);
37     requestWindowFeature(Window.FEATURE_NO_TITLE);
38
39     Window window = getWindow();
40     window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
41     window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
42     setContentView(R.layout.camera_test);
43
44     CameraManager.init(getApplication());
45
46     SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
47     SurfaceHolder surfaceHolder = surfaceView.getHolder();
48     surfaceHolder.addCallback(this);
49     surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
50   }
51
52   @Override
53   protected void onResume() {
54     super.onResume();
55     if (mSaveThread == null) {
56       mSaveThread = new SaveThread(this, CameraManager.get().getFramingRect());
57       mSaveThread.start();
58     }
59   }
60
61   @Override
62   protected void onPause() {
63     super.onPause();
64
65     CameraManager.get().stopPreview();
66     if (mSaveThread != null) {
67       Message quit = Message.obtain(mSaveThread.mHandler, R.id.quit);
68       quit.sendToTarget();
69       try {
70         mSaveThread.join();
71       } catch (InterruptedException e) {
72       }
73       mSaveThread = null;
74     }
75     CameraManager.get().closeDriver();
76   }
77
78   public final Handler mHandler = new Handler() {
79     @Override
80     public void handleMessage(Message message) {
81       switch (message.what) {
82         case R.id.auto_focus:
83           // Do not continuously auto focus
84           break;
85         case R.id.save_succeeded:
86           Toast.makeText(CameraTestActivity.this, R.string.save_succeeded, 500).show();
87           break;
88         case R.id.save_failed:
89           Toast.makeText(CameraTestActivity.this, R.string.save_failed, 2000).show();
90           break;
91       }
92     }
93   };
94
95   @Override
96   public boolean onKeyDown(int keyCode, KeyEvent event) {
97     if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
98       if (event.getRepeatCount() == 0) {
99         CameraManager.get().requestAutoFocus(mHandler, R.id.auto_focus);
100       }
101       return true;
102     } else if (keyCode == KeyEvent.KEYCODE_CAMERA) {
103       if (event.getRepeatCount() == 0) {
104         CameraManager.get().requestPreviewFrame(mSaveThread.mHandler, R.id.save);
105       }
106       return true;
107     }
108     return super.onKeyDown(keyCode, event);
109   }
110
111   public void surfaceCreated(SurfaceHolder holder) {
112     CameraManager.get().openDriver(holder);
113     CameraManager.get().startPreview();
114   }
115
116   public void surfaceDestroyed(SurfaceHolder holder) {
117
118   }
119
120   public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
121
122   }
123
124 }