-
Notifications
You must be signed in to change notification settings - Fork 3k
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
feat(Android): setup background task #54616
Open
szymonrybczak
wants to merge
35
commits into
Expensify:main
Choose a base branch
from
callstack-internal:szymonrybczak/feat/android/setup-background-task
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
feat(Android): setup background task #54616
szymonrybczak
wants to merge
35
commits into
Expensify:main
from
callstack-internal:szymonrybczak/feat/android/setup-background-task
+660
−0
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
szymonrybczak
force-pushed
the
szymonrybczak/feat/android/setup-background-task
branch
from
December 27, 2024 11:53
756438d
to
33d2010
Compare
Reviewer Checklist
Screenshots/VideosAndroid: NativeAndroid: mWeb ChromeiOS: NativeiOS: mWeb SafariMacOS: Chrome / SafariMacOS: Desktop |
🚧 @mountiny has triggered a test build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
modules/background-task/expensify-react-native-background-task.podspec
Outdated
Show resolved
Hide resolved
szymonrybczak
force-pushed
the
szymonrybczak/feat/android/setup-background-task
branch
from
January 7, 2025 22:57
99250b5
to
f3c9360
Compare
szymonrybczak
changed the title
[HOLD App#51475] feat(Android): setup background task
feat(Android): setup background task
Jan 7, 2025
@szymonrybczak Can you fix the lint? |
🚧 @Beamanator has triggered a test build. You can view the workflow run here. |
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪 |
szymonrybczak
force-pushed
the
szymonrybczak/feat/android/setup-background-task
branch
from
January 9, 2025 23:52
bdd2b44
to
2e8d5ba
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Explanation of Change
Warning
This Pull Request is rebased on top of the Upgrade to React Native 0.76 Pull Request because it's using a new type-safe way of creating EventEmitters available only in 0.76, and relevant PR for iOS because it shares the same JS specs
Adds an implementation of background task on Android. This implemenation leverages JobScheduler API for scheduling tasks.
From the more technical perspective it's a C++ TurboModule that was bootstrapped as a Local Library so it's linked inside
package.json
.For now, we're scheduling new tasks in 15-minute intervals after the execution of the previous one.
How to test it?
You can view scheduled background task when running
adb shell dumpsys jobscheduler
:To force execution of the background task can execute following command on attached device:
specified id is a hash code of the
FLUSH-SEQUENTIAL-QUEUE-BACKGROUND-FETCH
string.Here's a video presenting this behaviour:
CleanShot.2024-12-27.at.12.38.54.mp4
Fixed Issues
$ #50140
PROPOSAL: #50140
Tests
Offline tests
QA Steps
Note: take into account that could some time for the first time, this times will be improved and vary depending on the app usage on the device. We set the interval between tasks to 15 minutes but at the end of the day Android decides when to execute it.
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
MacOS: Desktop