Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(android): splash open animation sometimes stutters on cold start #11139

Merged
merged 3 commits into from Aug 20, 2019

Conversation

jquick-axway
Copy link
Contributor

JIRA:
https://jira.appcelerator.org/browse/TIMOB-27328

Summary:

  • This is an issue on Google's end caused by opening another activity while the 1st one (the splash) is still going through its open animation on cold start. In mid-transition, the 1st activity restarts the animation using child activity's transition which is the cause of the "stutter".
  • Solved by always overriding transitions when opening an activity from root activity (the splash). Changed to use a fade-in effect, which looks better than a slide-up animation from splash.
  • Note that this issue was always happening on Android P and older OS versions before. First child window displayed from splash wrongly used fade-in effect instead of default slide-up if the 1st window was opened fast enough on startup.
  • This is a much more noticeable issue in Android Q beta 4.

Test:

  1. Acquire a Pixel 3 device/emulator with Android Q beta 4 or newer.
  2. Download kitchensink-v2 project from here.
  3. Build and run on the Pixel 3.
  4. Verify that splash does not "stutter" as shown in GIF in TIMOB-27328.
  5. To re-test, "force-quit" the app and relaunch.

- [TIMOB-27328] Fixed bug where opening a window while splash is in mid-transition causes splash to adopt child window's transition. Causes noticeable stutter.
  * Especially an issue as of Android Q beta 4.
  * Modified so that activity windows launched from splash override pending transition with fade-in transition instead. (Looks better than slide-up animation anyways.)
@build
Copy link
Contributor

build commented Aug 12, 2019

Messages
📖

✅ All tests are passing
Nice one! All 2239 tests are passing.
(There are 227 tests skipped)

📖 ✊ The commits in this PR match our conventions! Feel free to Rebase and Merge this PR when ready.

Generated by 🚫 dangerJS against 7a493ef

Copy link
Contributor

@garymathews garymathews left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CR: PASS

@ssjsamir ssjsamir self-requested a review August 19, 2019 14:29
Copy link
Contributor

@ssjsamir ssjsamir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FR Passed: No longer able to see the stutter on the splash screen using the test steps above.

Test environment

MacOS Mojave version 10.14.4
Node.js: 8.11.3
Pixl 3 Sim (Android Q)
"NPM":"4.2.14","CLI":"7.1.1-master.2"
Java Version: 1.8.0_131
NDK: 12.1.2977051

@sgtcoolguy sgtcoolguy merged commit 616d6bc into tidev:master Aug 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants