Java - shouldn't registerForActivityResult wait until permissions request are done?

111 views Asked by At

I have this simple code:

public class MainActivity externds AppCompatActivity {

    final String[] PERMISSIONS = {
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.BLUETOOTH_CONNECT
    };

    private ActivityResultLauncher<String[]> permission = registerForActivityResult(
            new ActivityResultContracts.RequestMultiplePermissions(),
            isGranted -> { System.out.println("PERMISSIONS - " + isGranted ); } 
    );
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        binding = ActivityMainBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        permission.launch(PERMISSIONS);

        binding.fab.setOnClickListener(new View.OnClickListener() { .... });
        
    }
}

as I read somewhere about registerForActivityResult (due the old onRequestPermissionsResult is deprecated...) it should wait until user has completed grant/refuse permissions requests but in my debug it looks like it doesn't wait....shall I have missed something when I am threatening isGranted variable? Thanks in advance! Cheers! :-)

0

There are 0 answers