mirror of
https://github.com/SimpleMobileTools/Simple-Flashlight.git
synced 2025-04-15 02:42:05 +02:00
102 lines
2.5 KiB
Java
102 lines
2.5 KiB
Java
package flashlight.simplemobiletools.com;
|
|
|
|
import android.graphics.Color;
|
|
import android.graphics.PorterDuff;
|
|
import android.hardware.Camera;
|
|
import android.os.Bundle;
|
|
import android.support.v7.app.AppCompatActivity;
|
|
import android.view.View;
|
|
import android.widget.ImageView;
|
|
|
|
public class MainActivity extends AppCompatActivity {
|
|
private Camera camera;
|
|
private Camera.Parameters params;
|
|
private boolean isFlashlightOn;
|
|
private ImageView toggleBtn;
|
|
|
|
@Override
|
|
protected void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
setContentView(R.layout.activity_main);
|
|
|
|
setupToggleButton();
|
|
setupCamera();
|
|
toggleFlashlight();
|
|
}
|
|
|
|
private void setupToggleButton() {
|
|
toggleBtn = (ImageView) findViewById(R.id.toggle_btn);
|
|
toggleBtn.setOnClickListener(new View.OnClickListener() {
|
|
@Override
|
|
public void onClick(View v) {
|
|
toggleFlashlight();
|
|
}
|
|
});
|
|
}
|
|
|
|
private void toggleFlashlight() {
|
|
isFlashlightOn = !isFlashlightOn;
|
|
|
|
if (isFlashlightOn) {
|
|
enableFlashlight();
|
|
} else {
|
|
disableFlashlight();
|
|
}
|
|
}
|
|
|
|
private void setupCamera() {
|
|
if (camera == null) {
|
|
camera = Camera.open();
|
|
params = camera.getParameters();
|
|
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
|
|
camera.setParameters(params);
|
|
|
|
if (isFlashlightOn)
|
|
enableFlashlight();
|
|
}
|
|
}
|
|
|
|
private void enableFlashlight() {
|
|
params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
|
|
camera.setParameters(params);
|
|
toggleBtn.getDrawable().setColorFilter(Color.GREEN, PorterDuff.Mode.SRC_ATOP);
|
|
}
|
|
|
|
private void disableFlashlight() {
|
|
params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
|
|
camera.setParameters(params);
|
|
toggleBtn.getDrawable().setColorFilter(Color.RED, PorterDuff.Mode.SRC_ATOP);
|
|
}
|
|
|
|
private void releaseCamera() {
|
|
if (camera != null) {
|
|
camera.release();
|
|
camera = null;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
protected void onStart() {
|
|
super.onStart();
|
|
setupCamera();
|
|
}
|
|
|
|
@Override
|
|
protected void onResume() {
|
|
super.onResume();
|
|
setupCamera();
|
|
}
|
|
|
|
@Override
|
|
protected void onPause() {
|
|
super.onPause();
|
|
releaseCamera();
|
|
}
|
|
|
|
@Override
|
|
protected void onStop() {
|
|
super.onStop();
|
|
releaseCamera();
|
|
}
|
|
}
|