Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- String userChoosenTask;
- /**Called when activity is first created. */
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Button button = findViewById(R.id.btnSelectPhoto);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- selectImage(view);
- }
- });
- }
- //Method for selecting image from camera or gallery
- private void selectImage(View view){
- final CharSequence[] items = {"Take Photo", "Choose from Library","Cancel"};
- AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
- builder.setTitle("Add Photo!");
- builder.setItems(items, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- boolean result = Utility.checkPermission(MainActivity.this);
- if (items[i].equals("Take Photo")) {
- userChoosenTask = "Take Photo";
- if (result) {
- cameraIntent();
- }
- }
- else if (items[i].equals("Choose from library")){
- userChoosenTask = "Choose from library";
- if(result)
- galleryIntent();
- }
- else if(items[i].equals("Cancel")){
- dialogInterface.dismiss();
- }
- }
- });
- builder.show();
- }
- //Gallery Intent Method
- public static final int SELECT_FILE =2;
- private void galleryIntent()
- {
- Intent intent = new Intent();
- intent.setType("image/*");
- intent.setAction(Intent.ACTION_GET_CONTENT);
- startActivityForResult(Intent.createChooser(intent, "Select File"), SELECT_FILE);
- }
- // Camera Intent Method
- public static final int REQUEST_IMAGE_CAPTURE =1;
- private void cameraIntent()
- {
- Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
- }
- //Requesting Permission at run time
- public class Utility {
- public static final int MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 123;
- public static boolean checkPermission(final Context context) {
- int currentAPIVersion = Build.VERSION.SDK_INT;
- if (currentAPIVersion >= Build.VERSION_CODES.M) {
- if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
- if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) context, Manifest.permission.READ_EXTERNAL_STORAGE)) {
- AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
- alertBuilder.setCancelable(true);
- alertBuilder.setTitle("Permission necessary");
- alertBuilder.setMessage("External storage permission is necessary");
- alertBuilder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialogInterface, int i) {
- ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
- }
- });
- AlertDialog alert = alertBuilder.create();
- alert.show();
- } else {
- ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);
- }
- return false;
- } else {
- return true;
- }
- } else {
- return true;
- }
- }
- //Gallery Intent Method
- public static final int SELECT_FILE =2;
- private void galleryIntent()
- {
- Intent intent = new Intent();
- intent.setType("image/*");
- intent.setAction(Intent.ACTION_GET_CONTENT);
- startActivityForResult(Intent.createChooser(intent, "Select File"), SELECT_FILE);
- }
- }
- break;
- }
Add Comment
Please, Sign In to add comment