package com.alxth.supertrubka.flashlight;
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
//Инициализация используемых переменных/констант
private Button flashlight_toggle;
private TextView flashlight_status;
private Camera CameraBook;
private boolean isFlashLightEnabled = false;
final static String APPLICATION_LOG_TAG = "FlashLight control";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Пишем функцию запуска нашего кода - вкл/выкл фонарика
func_InitData();
}
private void func_InitData () {
//Пишем функцию инициализации камеры
func_InitCamera();
//Присваиваем обьявленой клавише ID c /res/layout/activity_main.xml
flashlight_toggle = (Button) findViewById(R.id.flashlight_toggle);
//При старте астивити наш фонарик выключен. Поэтому установим нужную надпись на кнопке
flashlight_toggle.setText("Включить");
//Тоже самое для TextView. Тут у нас будет отображатся текстовое сообщение о статусе фонарика
flashlight_status = (TextView) findViewById(R.id.flashlight_status);
//При старте астивити наш фонарик выключен. Поэтому установим нужную надпись под кнопкой
flashlight_status.setText("Привет! Это твое первое приложение? Нажми на кнопку
");
//Пишем функцию включения/выключения фонарика
func_InitToggleButton();
}
private void func_InitCamera (){
CameraBook = Camera.open();
}
private void func_InitToggleButton (){
//Собственно с названия все понятно. После инициализации камеры - получаем ее параметры
final Parameters CameraBook_params = CameraBook.getParameters();
/*Аналог SoftKey_SetAction Sony Ericsson
* Привязываем к нашей кнопке flashlight_toggle действие
*/
flashlight_toggle.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if (isFlashLightEnabled) {
//Фонарик включен. Выключаем его
//Пишем в лог отладочную информацию:
Log.i(APPLICATION_LOG_TAG, "Фонарик выключен!");
//Основной код работы с фонариком. Меняем флаг настроек в параметрах камеры
CameraBook_params.setFlashMode(Parameters.FLASH_MODE_OFF);
//Посылаем камере новые параметры
CameraBook.setParameters(CameraBook_params);
CameraBook.stopPreview();
//Устанавливаем статус сообщение под нашей кнопкой. Описали мы ее выше, помните?
flashlight_status.setText("Фонарик выключен!\nНажмите на клавишу ВКЛ чтоб включить его");
//Меняем надпись на кнопке
flashlight_toggle.setText("Включить");
//Меняем значение переменной с которой считываем данные:
isFlashLightEnabled = false;
} else {
//Фонарик выключен. Включаем его
//Пишем в лог отладочную информацию:
Log.i(APPLICATION_LOG_TAG, "Фонарик включен!");
//Меняем флаг настроек в параметрах камеры
CameraBook_params.setFlashMode(Parameters.FLASH_MODE_TORCH);
//Посылаем камере новые параметры
CameraBook.setParameters(CameraBook_params);
CameraBook.startPreview();
//Устанавливаем статус сообщение под нашей кнопкой. Описали мы ее выше, помните?
flashlight_status.setText("Фонарик включен!\nНажмите на клавишу ВЫКЛ чтоб выключить его");
//Меняем надпись на кнопке
flashlight_toggle.setText("Выключить");
//Меняем значение переменной с которой считываем данные:
isFlashLightEnabled = true;
}
}
});
}
@Override
//Этот метод вызывается в случае выхода из приложения
protected void onStop() {
//Выполняем стандартные процедуры метода
super.onStop();
//Если наша CameraBook не равна null, то есть используется - прибиваем ее
if (CameraBook != null) {
CameraBook.release();
}
}
}