'nothing happen when i select the song to upload from my android app to firebase realtime database

I was creating an app for my semester project to upload songs from mobile storage to firebase's realtime database. app run correctly but when i select the songs to upload nothing happens and the app also does not crash. my main activity code is:

    public class MainActivity extends AppCompatActivity {
private boolean checkPermission = false;
Uri uri;
String songName, songUrl;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



    }
    //Create 2 function
    //onCreate option menu to initialize menu
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.custom_menu , menu);
        return super.onCreateOptionsMenu(menu);
    }
    //2nd function is onoption item selected (button sy reloated sari coding yaha hogi

    @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        if (item.getItemId()==R.id.nav_upload){
            if (validatePermission()){

               picksongs();
            }
        }
        return super.onOptionsItemSelected(item);
    }



    private void picksongs() {
        Intent intent_upload = new Intent();
        intent_upload.setType("audio/*");
        intent_upload.setAction(Intent.ACTION_GET_CONTENT);

        startActivityForResult(intent_upload , 1);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        if(requestCode == 1){
            if (requestCode==RESULT_OK){
                uri = data.getData();
                Cursor mcursor = getApplicationContext().getContentResolver().query(uri , null, null, null , null);
                int indexName = mcursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
                songName = mcursor.getString(indexName);
                mcursor.close();
                uploadSong();
            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

    private void uploadSong() {
        StorageReference storageReference = FirebaseStorage.getInstance().getReference().child("Songs").child(uri.getLastPathSegment());
        ProgressDialog progressDialog = new ProgressDialog(this);
        progressDialog.show();
        //upload files to firebase
        
        storageReference.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                Task<Uri> uriTask = taskSnapshot.getStorage().getDownloadUrl();
                while (!uriTask.isComplete());
                Uri urlSong  =uriTask.getResult();
                songUrl = urlSong.toString();
                uploadtoDataBase();
                progressDialog.dismiss();
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Toast.makeText(MainActivity.this, e.getMessage().toString(), Toast.LENGTH_SHORT).show();
                progressDialog.dismiss();
            }
        }).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onProgress(@NonNull UploadTask.TaskSnapshot tasksnapshot) {
                double progress = (100.0*tasksnapshot.getBytesTransferred())/tasksnapshot.getTotalByteCount();
                int currentProgress = (int)progress;
                progressDialog.setMessage("Uploaded "+ currentProgress+"%");
            }
        });
    }
private void uploadtoDataBase(){

        Song songobj = new Song(songName , songUrl);
    FirebaseDatabase.getInstance().getReference("Songs").push().setValue(songobj).addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()){
                Toast.makeText(MainActivity.this, "Uploaded Successfully", Toast.LENGTH_SHORT).show();
            }
        }
    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Toast.makeText(MainActivity.this, e.getMessage().toString(), Toast.LENGTH_SHORT).show();
        }
    });

}
    private boolean validatePermission(){
        Dexter.withActivity(this)
        //Dexter.withActivity(MainActivity.this)
        .withPermission(Manifest.permission.READ_EXTERNAL_STORAGE)
                .withListener(new PermissionListener() {
                    @Override
                    public void onPermissionGranted(PermissionGrantedResponse permissionGrantedResponse) {
                        checkPermission=true;
                    }

                    @Override
                    public void onPermissionDenied(PermissionDeniedResponse permissionDeniedResponse) {
                         checkPermission=false;
                    }

                    @Override
                    public void onPermissionRationaleShouldBeShown(PermissionRequest permissionRequest, PermissionToken permissionToken) {
                        permissionToken.continuePermissionRequest();
                    }
                }).check();
        return checkPermission;
    }
}

please help me to find where i made a mistake. but their is 1 problem startActivityForResult(android.content.Intent, int)' is deprecated is that cause the problem? if yes then how can i solve this



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source