package com.ptrprograms.flashlight;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.ToggleButton;
public class MainActivity extends Activity {
private boolean mFlashlightOn = false;
private Camera mCamera;
private Camera.Parameters mParameters;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFlashlightButton();
}
private void initFlashlightButton() {
ToggleButton button = (ToggleButton) findViewById( R.id.button_flashlight );
button.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
if( getPackageManager().hasSystemFeature( PackageManager.FEATURE_CAMERA_FLASH ) )
{
if( mFlashlightOn )
deactivateFlashlight();
else
activateFlashlight();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
protected void onDestroy() {
super.onDestroy();
if( mCamera == null )
return;
mCamera.release();
}
private void deactivateFlashlight()
{
if( mCamera == null || mParameters == null )
return;
mParameters = mCamera.getParameters();
mParameters.setFlashMode( Camera.Parameters.FLASH_MODE_OFF );
mCamera.setParameters( mParameters );
mFlashlightOn = false;
}
private void activateFlashlight()
{
if( mCamera == null )
mCamera = Camera.open();
mParameters = mCamera.getParameters();
mParameters.setFlashMode( Camera.Parameters.FLASH_MODE_TORCH );
mCamera.setParameters(mParameters);
mFlashlightOn = true;
}
}