react-native-releases icon indicating copy to clipboard operation
react-native-releases copied to clipboard

[0.80] Fix request permission is not always resolving in Android 16

Open jensdev opened this issue 2 months ago • 1 comments

Target Branch

0.80

Link to commit or PR to be picked

https://github.com/facebook/react-native/commit/39ede959211e10032f147d2b0b7af783cba049c8

Description

In the latest Android 16 update, requesting permissions does not always change the app's state (the onPause and onResume functions aren't called). For instance, when you deny permission 3 times, the last promise won't resolve until you move the app to the background. The current logic inside the ReactActivityDelegate assumes that Android will call onResume after receiving permission state information from the system, which is no longer the case.

jensdev avatar Dec 02 '25 13:12 jensdev

Thank you for opening a new pick-request for React Native. Those are the criterias we follow when accepting/rejecting a pick request (source).

If your pick does not satisfy the criteria below, please close it as it will not be considered.

✅ Which pick requests we accept
  1. ✅ Fixes for regressions to core APIs. Examples:
    • A core component is behaving differently between version 0.X and 0.X-1
    • The TurboModule.getEnforcing function is throwing an assertion error which is not expected.
  2. ✅ Fixes to bugs in the core React Native’s experience. Examples:
    • Breakpoints in React Native DevTools not working correctly in the debugger
    • Fast Refresh not working as expected
    • Metro bundler not starting properly or ignoring the configuration file
    • Buttons that are not clickable
  3. ✅ Fixes to APIs used by 3P libraries and Out-of-tree platforms. Examples:
    • An API that is used by react-native-macos is not behaving as expected or regressing
  4. ✅ Bump of patch version of dependencies. Example:
    • Bump Gradle from 8.11.0 to 8.11.1
  5. ✅ Fixes for Low/High Security Vulnerability. Example:
    • Bump Gradle from 8.11.0 to 8.12.0 if there is a security vulnerability in 8.11 and there is no version 8.11.x which would contain the same fix.
  6. ✅ Fixes and reverts of accidental breaking changes. Example:
    • Reverting or fix-forwarding a migration to Kotlin of a file (say ReactRootView.java ) if that is causing a breaking change for the whole React Native ecosystem.
  7. ✅ Performance improvements picks. Examples:
    • Fixing unnecessary rendering on FlatList.
  8. ✅ Any pick if the release is still in RC0 (after RC1 the previous listed criteria applies)
❌ Which pick requests we don’t accept
  1. ❌ Any pick that will introduce a breaking change after RC1. Example:
    • A bugfix that contains a refactoring, resulting in changes to the public API of a class
  2. ❌ Any pick that introduces a new feature after RC1. Example:
    • A commit that introduces a new API or a specific feature for a component.
  3. ❌ Bump of major/minor version of dependencies. Example:
    • Bump Gradle from 8.11.0 to 8.12.0
    • Bump Gradle from 8.11.0 to 9.0.0
  4. ❌Bump of a dependency to a non stable/alpha/beta version. Example:
    • Bump Gradle from 8.11.0 to 8.11.1-beta.1
  5. ❌Any pick that introduces changes to the testing infrastructure of React Native after RC1. Examples:
    • Changes to the GitHub Actions workflows to optimize it, even if they’re on main.
    • Changes to the logic used to publish packages to NPM or Maven Central
  6. ❌ Pick composed by various commits that has several merge conflicts
    • If your pick is too complicated to apply on the release branch, we’re going to reject it.
  7. ❌ Any other non-critical improvement that landed on main.
    • In general those will ship in the following version unless they fit in one of the criteria above
  8. ❌ Any other pick which is considered “small enough” to make it into a release.
    • If your pick is a one liner but is a ‘nice to have’, we won’t be picking it, as it has the risk of destabilizing the release and further delaying the release.
ℹ️ What makes for a good pick

In order for your pick to be considered, please do the following:

  • ℹ️ Have a pick that contains only one commit from main, or only one PR against the release branch.
  • ℹ️ Have a clear explanation of why your pick should be considered, ideally referencing one of the criteria above.
  • ℹ️ Target only one minor version of React Native (e.g. [0.76]). If you want your pick to be applied to more versions, please open different picks.

react-native-bot avatar Dec 02 '25 13:12 react-native-bot

@react-native-bot merge 39ede959211e10032f147d2b0b7af783cba049c8 0.80-stable

chrfalch avatar Jan 26 '26 13:01 chrfalch

❌ I failed to process your request with this error:

Failed to cherry-pick 39ede959211e10032f147d2b0b7af783cba049c8 on branch 0.80-stable with: 1 with 'Command failed: cd react-native; git cherry-pick 39ede959211e10032f147d2b0b7af783cba049c8'

console output:

On branch 0.80-stable
You are currently cherry-picking commit 39ede95921.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java

no changes added to commit (use "git add" and/or "git commit -a")

react-native-bot avatar Jan 26 '26 13:01 react-native-bot

Picked manually

chrfalch avatar Jan 26 '26 16:01 chrfalch