-
Notifications
You must be signed in to change notification settings - Fork 10
/
DemoActivity.java
79 lines (71 loc) · 2.73 KB
/
DemoActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package com.kishan.runtimepermission;
import android.Manifest;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.kishan.askpermission.AskPermission;
import com.kishan.askpermission.ErrorCallback;
import com.kishan.askpermission.PermissionCallback;
import com.kishan.askpermission.PermissionInterface;
public class DemoActivity extends AppCompatActivity implements PermissionCallback, ErrorCallback {
private static final String TAG = "DemoActivity";
private static final int REQUEST_PERMISSIONS = 20;
private Button reqButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
reqButton = (Button) findViewById(R.id.requestButton);
reqButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
reqPermission();
}
});
}
private void reqPermission() {
new AskPermission.Builder(this).setPermissions(Manifest.permission.READ_CONTACTS,
Manifest.permission.WRITE_EXTERNAL_STORAGE)
.setCallback(this)
.setErrorCallback(this)
.request(REQUEST_PERMISSIONS);
}
@Override
public void onPermissionsGranted(int requestCode) {
Toast.makeText(this, "Permissions Received.", Toast.LENGTH_LONG).show();
}
@Override
public void onPermissionsDenied(int requestCode) {
Toast.makeText(this, "Permissions Denied.", Toast.LENGTH_LONG).show();
}
@Override
public void onShowRationalDialog(final PermissionInterface permissionInterface, int requestCode) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("We need permissions for this app.");
builder.setPositiveButton(R.string.btn_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
permissionInterface.onDialogShown();
}
});
builder.setNegativeButton(R.string.btn_cancel, null);
builder.show();
}
@Override
public void onShowSettings(final PermissionInterface permissionInterface, int requestCode) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("We need permissions for this app. Open setting screen?");
builder.setPositiveButton(R.string.btn_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
permissionInterface.onSettingsShown();
}
});
builder.setNegativeButton(R.string.btn_cancel, null);
builder.show();
}
}