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 #4410: Introduce Kenya study alpha build flavor #4507

Merged
merged 12 commits into from
Aug 19, 2022

Conversation

BenHenning
Copy link
Sponsor Member

@BenHenning BenHenning commented Aug 18, 2022

Explanation

Fixes #4410

This PR builds on #4414 by introducing a new alpha component that's specific to the team's ongoing research project in Kenya. This build serves three benefits:

  1. It allows us to ensure end users can easily distinguish between alpha & study-specific alpha flavors of the app (since they will now have different build flavors).
  2. It ensures we can explicitly version the binaries such that the study binary always takes precedence on Play Store.
  3. It allows us to define study-specific parameters without needing manual changes during release (such as automatically enabling the learner study feature, which this PR is doing for the new build flavor).

A few important things to note:

  • There are no new tests for the new components since they are mostly uninteresting to test (similar to other build flavor components).
  • The new components are temporary are will be reoved (Remove Kenya user study specific constructs once study is over #4419 is tracking this).
  • This PR is a recreation of Fix #4410: Introduce Kenya study alpha build flavor #4420 since the new build flavor was being originally being introduced after the new beta & GA flavors (but this is no longer the case due to the beta release being delayed).
  • The new build flavor is not being added to CI build tests mainly because it's unlikely for this build to break versus the alpha build (as the two are so similar), and because of the temporary nature of this version of the app.
  • The new classes needed to be exempted for Gradle builds since Gradle was having difficulty with the fact that the new study-specific alpha component was a separate Dagger graph (our Gradle configuration, unlike Bazel, can't manage multiple Dagger graphs in the same build tree). This seems like a reasonable thing to do since the study-specific version of the app can't be built on Gradle, anyway.
    This

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

This PR has no user-facing side effects except the fact that the version name is different now for the study-specific version of the app (which doesn't seem particularly important to show a video/screenshot for).

This simplifies application component management significantly and
allows individual build flavors to have their own unique module lists.
This new build flavor automatically enables the study-specific learner
study feature flag.

Cherry-pick of eef2f4c from the
original #4420.
Remove beta version declaration since that doesn't belong in this branch.
Base automatically changed from create-dedicated-alpha-application-component to develop August 19, 2022 00:26
@BenHenning BenHenning self-assigned this Aug 19, 2022
@BenHenning BenHenning marked this pull request as ready for review August 19, 2022 00:46
@BenHenning
Copy link
Sponsor Member Author

Going ahead and merging this with the intent of post-merge review since this PR is highly time sensitive for an upcoming release.

@BenHenning BenHenning merged commit 17f2bcb into develop Aug 19, 2022
@BenHenning BenHenning deleted the introduce-alpha-kenya-build-flavor branch August 19, 2022 04:26
BenHenning added a commit that referenced this pull request Aug 19, 2022
…lpha MR5 fixes (#4506)

## Explanation
Fixes #4495
Fixes part of #3088
Fixes #4467
Fixes #4505
Fixes #4266
Fixes #4446

This PR fixes a number of key blockers for the upcoming Alpha MR5 release of the app. In particular:
- It fixes #4266 by reformatting one XML file that Rajat left a comment for during his post-merge reviews of Alpha MR4 PRs.
- It mitigates #4495 by introducing a banner for when correct audio can't be played (I did run into an actual bug where the wrong audio played once, but I couldn't repro it--most of the time the app will stop autoplaying if it can't find the correct language). This also fixes part of #3088 since the mitigation will help make that situation better.
- It addresses #4467 by logging stringified versions of all supported answer types upon answer submission (rather than just whether the answer is correct).
- It addresses #4446 by (1) introducing a new default hint text for text input, and (2) by ensuring hint text is fully readable by wrapping it when it extends to more than one line. However, another issue was discovered which would be really nice to fix (but is not feasible given the amount of time available for this PR). #4509 is tracking this future work.
- It addresses #4505 by disabling profile name verification when the learner study is enabled (as a stop-gap).

Note that there are no new tests being added in this PR since the fixes are mostly trivial and have been manually verified during development. #4510 is tracking adding automated tests for long-term app health.

Furthermore, AudioViewModel was allow-listed to reference Locale directly so that it can it include a localized language name in the fail-to-play audio notice. #3791 will fix this in the long-term.

This PR also includes version code & minor version bumps to prepare for the upcoming release. It also fixes the Kenya-specific alpha build flavor (which was unfortunately checked in as broken in #4507), and adds it to CI since the assumption in #4507 that it doesn't need to be covered is incorrect. The Gradle workaround for the new flavor was removed since it was a legitimate failure that wasn't being picked up by Bazel builds in CI.

## Essential Checklist
- [x] 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: ...".)
- [x] Any changes to [scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets) files have their rationale included in the PR explanation.
- [x] The PR follows the [style guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).
- [x] The PR does not contain any unnecessary code changes from Android Studio ([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)).
- [x] The PR is made from a branch that's **not** called "develop" and is up-to-date with "develop".
- [x] The PR is **assigned** to the appropriate reviewers ([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).

## For UI-specific PRs only
Creating profile names with normally forbidden characters (in this case, numbers):

https://user-images.githubusercontent.com/12983742/185594638-3bd653a4-916a-4471-963a-d00ab987f378.mp4

Demonstrating when English audio is sometimes unavailable & the new notice to make this clearer:

https://user-images.githubusercontent.com/12983742/185594719-896e428c-96b8-42f3-b53f-721352a90f14.mp4

Audio not being available can occur in all languages, not just English:

![audio_unavailable](https://user-images.githubusercontent.com/12983742/185594834-6f6127db-e54b-4a23-a734-7b3a6b849184.png)

Text input hints can now be multi-line to ensure that they're not cut off:

![oppia_multiline_text_input_hint](https://user-images.githubusercontent.com/12983742/185594908-4b4a07f3-cff7-44f7-a2c9-8dfb7a8ca784.png)

Commits:

* Address
#4274 (comment).

This is part of addressing #4266.

* Add audio notice for when language is missing.

* Disable invalid profile name rules for studies.

* Add analytics logging for submitted answers.

* Code health fixes.

* Add hint wrapping, and default text input hint.

* Fix broken tests.

* Test fixes.

* Fix broken Kenya-specific alpha build.

Also, bump version codes & minor versions in preparation for the
release.
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.

Create Kenya study-specific build flavor & version codes
1 participant