diff --git a/app/build.gradle b/app/build.gradle index 024db50..45697a7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 24 - buildToolsVersion "24.0.2" + compileSdkVersion 25 + buildToolsVersion "25.0.2" defaultConfig { applicationId "cafe.adriel.androidaudiorecorder.example" minSdkVersion 15 - targetSdkVersion 24 + targetSdkVersion 25 versionCode 1 versionName "1.0" } @@ -19,8 +19,11 @@ android { } dependencies { - compile 'com.android.support:appcompat-v7:24.2.1' + compile 'com.android.support:appcompat-v7:25.3.0' compile project(':lib') + compile ('com.karumi:dexter:2.3.1'){ + exclude group: 'com.android.support' + } // compile 'com.github.adrielcafe:AndroidAudioRecorder:0.1.0' } diff --git a/app/src/main/java/cafe/adriel/androidaudiorecorder/example/MainActivity.java b/app/src/main/java/cafe/adriel/androidaudiorecorder/example/MainActivity.java index 177baa1..6d988b0 100644 --- a/app/src/main/java/cafe/adriel/androidaudiorecorder/example/MainActivity.java +++ b/app/src/main/java/cafe/adriel/androidaudiorecorder/example/MainActivity.java @@ -10,6 +10,14 @@ import android.view.View; import android.widget.Toast; +import com.karumi.dexter.Dexter; +import com.karumi.dexter.MultiplePermissionsReport; +import com.karumi.dexter.PermissionToken; +import com.karumi.dexter.listener.PermissionRequest; +import com.karumi.dexter.listener.multi.MultiplePermissionsListener; + +import java.util.List; + import cafe.adriel.androidaudiorecorder.AndroidAudioRecorder; import cafe.adriel.androidaudiorecorder.model.AudioChannel; import cafe.adriel.androidaudiorecorder.model.AudioSampleRate; @@ -19,19 +27,33 @@ public class MainActivity extends AppCompatActivity { private static final int REQUEST_RECORD_AUDIO = 0; private static final String AUDIO_FILE_PATH = Environment.getExternalStorageDirectory().getPath() + "/recorded_audio.wav"; + private boolean hasPermission = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + Dexter.initialize(this.getApplicationContext()); + if (getSupportActionBar() != null) { getSupportActionBar().setBackgroundDrawable( new ColorDrawable(ContextCompat.getColor(this, R.color.colorPrimaryDark))); } - Util.requestPermission(this, Manifest.permission.RECORD_AUDIO); - Util.requestPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE); + Dexter.checkPermissions(new MultiplePermissionsListener() { + @Override + public void onPermissionsChecked(MultiplePermissionsReport report) { + if (report.areAllPermissionsGranted()){ + hasPermission = true; + } + } + + @Override + public void onPermissionRationaleShouldBeShown(List permissions, PermissionToken token) { + token.continuePermissionRequest(); + } + }, Manifest.permission.RECORD_AUDIO, Manifest.permission.WRITE_EXTERNAL_STORAGE); } @Override @@ -47,6 +69,10 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { } public void recordAudio(View v) { + if (! hasPermission){ + Toast.makeText(this, "no permission", Toast.LENGTH_SHORT).show(); + return; + } AndroidAudioRecorder.with(this) // Required .setFilePath(AUDIO_FILE_PATH) diff --git a/app/src/main/java/cafe/adriel/androidaudiorecorder/example/Util.java b/app/src/main/java/cafe/adriel/androidaudiorecorder/example/Util.java deleted file mode 100644 index a2b0c82..0000000 --- a/app/src/main/java/cafe/adriel/androidaudiorecorder/example/Util.java +++ /dev/null @@ -1,17 +0,0 @@ -package cafe.adriel.androidaudiorecorder.example; - -import android.app.Activity; -import android.content.pm.PackageManager; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat; - -public class Util { - - public static void requestPermission(Activity activity, String permission) { - if (ContextCompat.checkSelfPermission(activity, permission) - != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions(activity, new String[]{permission}, 0); - } - } - -} \ No newline at end of file diff --git a/build.gradle b/build.gradle index ccb76fa..ad64a7a 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.2.0' + classpath 'com.android.tools.build:gradle:2.3.0' } } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2fac210..21c9f92 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip diff --git a/lib/build.gradle b/lib/build.gradle index 2a9c22c..88472d2 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -1,12 +1,12 @@ apply plugin: 'com.android.library' android { - compileSdkVersion 24 - buildToolsVersion "24.0.2" + compileSdkVersion 25 + buildToolsVersion "25.0.2" defaultConfig { minSdkVersion 15 - targetSdkVersion 24 + targetSdkVersion 25 versionCode 1 versionName "1.0" } @@ -19,7 +19,7 @@ android { } dependencies { - compile 'com.android.support:appcompat-v7:24.2.1' + compile 'com.android.support:appcompat-v7:25.3.0' compile 'com.kailashdabhi:om-recorder:1.1.0' compile 'com.cleveroad:audiovisualization:1.0.0' } \ No newline at end of file