Skip to content

Fix #3506, #5950, #5951: Add support for remote platform parameters [Blocked: #6062]#6061

Draft
BenHenning wants to merge 11 commits intofix-work-manager-and-app-initfrom
add-support-for-remote-platform-parameters
Draft

Fix #3506, #5950, #5951: Add support for remote platform parameters [Blocked: #6062]#6061
BenHenning wants to merge 11 commits intofix-work-manager-and-app-initfrom
add-support-for-remote-platform-parameters

Conversation

@BenHenning
Copy link
Copy Markdown
Member

TODO: Finish one PR is actually code complete.

Explanation

Essential Checklist

  • The PR title and explanation each start with "Fix #bugnum: " (If this PR fixes part of an issue, prefix the title with "Fix part of #bugnum: ...".)
  • Any changes to scripts/assets files have their rationale included in the PR explanation.
  • The PR follows the style guide.
  • The PR does not contain any unnecessary code changes from Android Studio (reference).
  • The PR is made from a branch that's not called "develop" and is up-to-date with "develop".
  • The PR is assigned to the appropriate reviewers (reference).

For UI-specific PRs only

If your PR includes UI-related changes, then:

  • Add screenshots for portrait/landscape for both a tablet & phone of the before & after UI changes
  • For the screenshots above, include both English and pseudo-localized (RTL) screenshots (see RTL guide)
  • Add a video showing the full UX flow with a screen reader enabled (see accessibility guide)
  • For PRs introducing new UI elements or color changes, both light and dark mode screenshots must be included
  • Add a screenshot demonstrating that you ran affected Espresso tests locally & that they're passing

This includes a bunch of troubleshooting and testing for workers which
have been found to be broken. Also, additional work is needed to make
the production side of remote parameter syncing work. However, syncing
does work with the backup migration server on developer builds.
@github-actions
Copy link
Copy Markdown

Thanks for submitting this pull request! Some main reviewers have taken time off for the next few weeks, so it may take a little while before we can look at this PR. We appreciate your patience while some of our team members recharge. We'll be fully returning on 05 January 2026.

@oppiabot
Copy link
Copy Markdown

oppiabot bot commented Jan 7, 2026

Hi @BenHenning, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you!

@oppiabot oppiabot bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Jan 7, 2026
@oppiabot oppiabot bot closed this Jan 14, 2026
…ote-platform-parameters

Conflicts:
	app/src/main/AndroidManifest.xml
	app/src/main/java/org/oppia/android/app/application/AbstractOppiaApplication.kt
	app/src/main/java/org/oppia/android/app/application/dev/DeveloperApplicationComponent.kt
	domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorker.kt
	domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorkerFactory.kt
	domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkManagerInitializer.kt
	domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/LogUploadWorkerFactory.kt
	domain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkManagerInitializer.kt
	domain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerFactory.kt
	domain/src/main/java/org/oppia/android/domain/workmanager/WorkManagerConfigurationModule.kt
There are still a bunch of test failures but they all relate to the
changes either on this branch or its parent.
@BenHenning BenHenning reopened this Feb 26, 2026
@oppiabot oppiabot bot removed the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Feb 26, 2026
@BenHenning BenHenning changed the base branch from develop to fix-work-manager-and-app-init February 26, 2026 00:16
@BenHenning BenHenning closed this Feb 26, 2026
@BenHenning BenHenning reopened this Feb 26, 2026
@BenHenning BenHenning self-assigned this Feb 26, 2026
@BenHenning BenHenning changed the title Fix #3506, #5950, #5951: Add support for remote platform parameters Fix #3506, #5950, #5951: Add support for remote platform parameters [Blocked: #6062] Feb 26, 2026
Copy link
Copy Markdown
Contributor

@adhiamboperes adhiamboperes left a comment

Choose a reason for hiding this comment

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

Thanks @BenHenning, I took a look at all the changes, but should probably wait until the PR is out of draft for the rest.

private val context: Context
) : CustomPropertyRetriever {
private val packageName = "org.oppia.android"
private val contentResolver by lazy { context.contentResolver }
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Is there benefit to contentResolver being lazy delegated?

@oppiabot
Copy link
Copy Markdown

oppiabot bot commented Mar 8, 2026

Hi @BenHenning, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you!

@oppiabot oppiabot bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Mar 8, 2026
@BenHenning
Copy link
Copy Markdown
Member Author

Not stale.

@oppiabot oppiabot bot removed the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Mar 9, 2026
@oppiabot
Copy link
Copy Markdown

oppiabot bot commented Mar 16, 2026

Hi @BenHenning, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you! If you're unsure how to reassign this PR to a reviewer, please make sure to review the wiki page that details the Guidance on submitting PRs.

@oppiabot oppiabot bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Mar 16, 2026
This improves debuggability and improves coroutine failure resilience,
though much of that will probably be removed from this change.
Otherwise, this properly fixes trying to sync parameters when offline
and fixes actual syncing so that it works.
…ote-platform-parameters

Conflicts:
	data/src/main/java/org/oppia/android/data/backends/gae/NetworkLoggingInterceptor.kt
@BenHenning
Copy link
Copy Markdown
Member Author

Note for now that in order to test the platform parameters you need to use ADB shell to set app-specific settings then trigger a re-download (either via time or the developer options menu), only in //:oppia_dev:

adb shell settings put global org.oppia.android.android_min_supported_version_code 23
adb shell settings put global org.oppia.android.android_min_supported_version_code 9999
adb shell settings delete global org.oppia.android.android_min_supported_version_code
adb shell settings put global org.oppia.android.android_min_version_code_for_recommending_app_update 9999
adb shell settings delete global org.oppia.android.android_min_version_code_for_recommending_app_update
adb shell settings put global org.oppia.android.android_min_supported_api_level 40
adb shell settings delete global org.oppia.android.android_min_supported_api_level
adb shell settings put global org.oppia.android.android_enable_fast_language_switching_in_lesson true
adb shell settings delete global org.oppia.android.android_enable_fast_language_switching_in_lesson

@oppiabot oppiabot bot removed the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Mar 31, 2026
@oppiabot
Copy link
Copy Markdown

oppiabot bot commented Apr 7, 2026

Hi @BenHenning, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue.
If you are still working on this PR, please make a follow-up commit within 3 days (and submit it for review, if applicable). Please also let us know if you are stuck so we can help you! If you're unsure how to reassign this PR to a reviewer, please make sure to review the wiki page that details the Guidance on submitting PRs.

@oppiabot oppiabot bot added the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Apr 7, 2026
@BenHenning
Copy link
Copy Markdown
Member Author

Not stale.

@oppiabot oppiabot bot removed the stale Corresponds to items that haven't seen a recent update and may be automatically closed. label Apr 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants