diff --git a/app/src/main/java/com/simplemobiletools/camera/MainActivity.java b/app/src/main/java/com/simplemobiletools/camera/MainActivity.java index 69bfad36..ab42f194 100644 --- a/app/src/main/java/com/simplemobiletools/camera/MainActivity.java +++ b/app/src/main/java/com/simplemobiletools/camera/MainActivity.java @@ -2,6 +2,7 @@ package com.simplemobiletools.camera; import android.Manifest; import android.content.Intent; +import android.content.pm.PackageManager; import android.content.res.Resources; import android.hardware.Camera; import android.hardware.Sensor; @@ -40,11 +41,13 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen public static int orientation; private static final int CAMERA_STORAGE_PERMISSION = 1; + private static final int AUDIO_PERMISSION = 2; private static SensorManager sensorManager; private Preview preview; private int currCamera; private boolean isFlashEnabled; private boolean isPhoto; + private boolean isAskingPermissions; private int currVideoRecTimer; private Handler timerHandler; @@ -91,6 +94,7 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); + isAskingPermissions = false; if (requestCode == CAMERA_STORAGE_PERMISSION) { if (hasCameraAndStoragePermission()) { @@ -99,6 +103,12 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen Utils.showToast(getApplicationContext(), R.string.no_permissions); finish(); } + } else if (requestCode == AUDIO_PERMISSION) { + if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { + toggleVideo(); + } else { + Utils.showToast(getApplicationContext(), R.string.no_audio_permissions); + } } } @@ -167,6 +177,11 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen @OnClick(R.id.toggle_videocam) public void toggleVideo() { + if (!Utils.hasAudioPermission(getApplicationContext())) { + ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, AUDIO_PERMISSION); + isAskingPermissions = true; + return; + } disableFlash(); hideTimer(); isPhoto = !isPhoto; @@ -251,7 +266,7 @@ public class MainActivity extends AppCompatActivity implements SensorEventListen @Override protected void onPause() { super.onPause(); - if (!hasCameraAndStoragePermission()) + if (!hasCameraAndStoragePermission() || isAskingPermissions) return; hideTimer(); diff --git a/app/src/main/java/com/simplemobiletools/camera/Utils.java b/app/src/main/java/com/simplemobiletools/camera/Utils.java index 6a92ceaf..87616235 100644 --- a/app/src/main/java/com/simplemobiletools/camera/Utils.java +++ b/app/src/main/java/com/simplemobiletools/camera/Utils.java @@ -104,4 +104,8 @@ public class Utils { public static boolean hasStoragePermission(Context cxt) { return ContextCompat.checkSelfPermission(cxt, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED; } + + public static boolean hasAudioPermission(Context cxt) { + return ContextCompat.checkSelfPermission(cxt, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED; + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f87993da..355e0e99 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5,6 +5,7 @@ Simple Videos Simple Photos Not much to do without accessing your camera and storage + We need the audio permission for recording videos About