adding a couple safety checks for camera access and video saving

This commit is contained in:
tibbi
2016-06-13 23:41:23 +02:00
parent 9e0a11c5d7
commit 035a0d5dd9
3 changed files with 49 additions and 4 deletions

View File

@ -48,6 +48,7 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen
private boolean isFlashEnabled;
private boolean isPhoto;
private boolean isAskingPermissions;
private boolean isCameraAvailable;
private int currVideoRecTimer;
private Handler timerHandler;
@ -114,6 +115,10 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen
@OnClick(R.id.toggle_camera)
public void toggleCamera() {
if (!checkCameraAvailable()) {
return;
}
disableFlash();
hideTimer();
if (currCamera == Camera.CameraInfo.CAMERA_FACING_BACK) {
@ -131,6 +136,10 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen
@OnClick(R.id.toggle_flash)
public void toggleFlash() {
if (!checkCameraAvailable()) {
return;
}
if (isFlashEnabled) {
disableFlash();
} else {
@ -152,6 +161,10 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen
@OnClick(R.id.shutter)
public void shutterPressed() {
if (!checkCameraAvailable()) {
return;
}
if (isPhoto) {
preview.takePicture();
} else {
@ -177,6 +190,10 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen
@OnClick(R.id.toggle_videocam)
public void toggleVideo() {
if (!checkCameraAvailable()) {
return;
}
if (!Utils.hasAudioPermission(getApplicationContext())) {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, AUDIO_PERMISSION);
isAskingPermissions = true;
@ -295,6 +312,13 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen
}
private boolean checkCameraAvailable() {
if (!isCameraAvailable) {
Utils.showToast(getApplicationContext(), R.string.camera_unavailable);
}
return isCameraAvailable;
}
@Override
public void setFlashAvailable(boolean available) {
if (available) {
@ -304,4 +328,9 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen
disableFlash();
}
}
@Override
public void setIsCameraAvailable(boolean available) {
isCameraAvailable = available;
}
}