Skip to content

Commit 9f7ab80

Browse files
committed
add permission Checker
1 parent 34e49ab commit 9f7ab80

File tree

13 files changed

+58
-113
lines changed

13 files changed

+58
-113
lines changed

.idea/gradle.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ android {
66
defaultConfig {
77
applicationId "com.werb.mediautilsdemo"
88
minSdkVersion 16
9-
targetSdkVersion 22
9+
targetSdkVersion 25
1010
versionCode 1
1111
versionName "1.0"
1212
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -26,4 +26,5 @@ dependencies {
2626
})
2727
compile 'com.android.support:appcompat-v7:25.0.1'
2828
testCompile 'junit:junit:4.12'
29+
compile 'com.werb.permissionschecker:permissionschecker:0.0.1-beta2'
2930
}

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
<uses-permission android:name="android.permission.CAMERA"/>
66
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
77
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
8+
<uses-feature android:name="android.hardware.camera" />
9+
<uses-feature android:name="android.hardware.camera.autofocus" />
810

911
<application
1012
android:allowBackup="true"
Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,34 @@
11
package com.werb.mediautilsdemo.activity;
22

3+
import android.Manifest;
34
import android.content.Intent;
5+
import android.support.annotation.NonNull;
46
import android.support.v7.app.AppCompatActivity;
57
import android.os.Bundle;
68
import android.view.View;
79
import android.widget.Button;
810

911
import com.werb.mediautilsdemo.R;
12+
import com.werb.permissionschecker.PermissionChecker;
1013

1114
public class MainActivity extends AppCompatActivity {
1215

16+
static final String[] PERMISSIONS = new String[]{
17+
Manifest.permission.RECORD_AUDIO,
18+
Manifest.permission.CAMERA,
19+
Manifest.permission.READ_EXTERNAL_STORAGE
20+
};
1321
private Button audio,video;
22+
private PermissionChecker permissionChecker;
23+
private int type;
1424

1525
@Override
1626
protected void onCreate(Bundle savedInstanceState) {
1727
super.onCreate(savedInstanceState);
1828
setContentView(R.layout.activity_main);
1929

30+
permissionChecker = new PermissionChecker(this); // initialize,must need
31+
2032
audio = (Button) findViewById(R.id.btn_audio);
2133
video = (Button) findViewById(R.id.btn_video);
2234

@@ -27,19 +39,54 @@ protected void onCreate(Bundle savedInstanceState) {
2739
View.OnClickListener audioClick = new View.OnClickListener() {
2840
@Override
2941
public void onClick(View v) {
30-
Intent intent = new Intent();
31-
intent.setClass(MainActivity.this,AudioRecorderActivity.class);
32-
startActivity(intent);
42+
type = 1;
43+
if (permissionChecker.isLackPermissions(PERMISSIONS)) {
44+
permissionChecker.requestPermissions();
45+
} else {
46+
startAudio();
47+
}
3348
}
3449
};
3550

3651
View.OnClickListener videoClick = new View.OnClickListener() {
3752
@Override
3853
public void onClick(View v) {
39-
Intent intent = new Intent();
40-
intent.setClass(MainActivity.this,VideoRecorderActivity.class);
41-
startActivity(intent);
54+
type = 2;
55+
if (permissionChecker.isLackPermissions(PERMISSIONS)) {
56+
permissionChecker.requestPermissions();
57+
} else {
58+
startVideo();
59+
}
4260
}
4361
};
4462

63+
private void startAudio(){
64+
Intent intent = new Intent();
65+
intent.setClass(MainActivity.this,AudioRecorderActivity.class);
66+
startActivity(intent);
67+
}
68+
69+
private void startVideo(){
70+
Intent intent = new Intent();
71+
intent.setClass(MainActivity.this,VideoRecorderActivity.class);
72+
startActivity(intent);
73+
}
74+
75+
@Override
76+
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
77+
switch (requestCode) {
78+
case PermissionChecker.PERMISSION_REQUEST_CODE:
79+
if (permissionChecker.hasAllPermissionsGranted(grantResults)) {
80+
if(type == 1){
81+
startAudio();
82+
}else if(type == 2){
83+
startVideo();
84+
}
85+
} else {
86+
permissionChecker.showDialog();
87+
}
88+
break;
89+
}
90+
}
91+
4592
}

mediautils/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

mediautils/build.gradle

Lines changed: 0 additions & 31 deletions
This file was deleted.

mediautils/proguard-rules.pro

Lines changed: 0 additions & 17 deletions
This file was deleted.

mediautils/src/androidTest/java/com/werb/mediautils/ExampleInstrumentedTest.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

mediautils/src/main/AndroidManifest.xml

Lines changed: 0 additions & 8 deletions
This file was deleted.

mediautils/src/main/res/values/strings.xml

Lines changed: 0 additions & 3 deletions
This file was deleted.

mediautils/src/test/java/com/werb/mediautils/ExampleUnitTest.java

Lines changed: 0 additions & 17 deletions
This file was deleted.

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
include ':app', ':mediautils'
1+
include ':app'

0 commit comments

Comments
 (0)