forked from oppia/oppia-android
-
Notifications
You must be signed in to change notification settings - Fork 0
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
Update PR #4383 to latest develop #4
Merged
KevinGitonga
merged 58 commits into
KevinGitonga:fix-all-checkbox-uncheck-issue
from
BenHenning:update-4383-to-latest-develop
Sep 26, 2022
Merged
Update PR #4383 to latest develop #4
KevinGitonga
merged 58 commits into
KevinGitonga:fix-all-checkbox-uncheck-issue
from
BenHenning:update-4383-to-latest-develop
Sep 26, 2022
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
* Update CODEOWNERS Remove anandwana001 from codeowners. * Update CODEOWNERS Correct instrumentation codeowner pattern. This is needed now that broad test ownership is no longer defined.
…oppia#4204) * add enableEditAccountsOptions feature flag * add flag to module; add companion object to be used in test to force platform parameter values * use enableEditAccount flag to control visibilty * add specific tests to check visibility by forcing feature flag values * remove test module and directly force feature flag value using companion object * add PlatformParameterForceMode class to explicitly define force method * add forceMode parameter to functions * optimise import after merge with develop * move companion object to TestPlatformParameterModule.kt * copy platform parameters for this test module * simple code changes since older implementation was removed * optimise imports and lint * add enable edit account parameter explicity * update changes to the other OptionsFragmentTest.kt * testplatformparametermodule is a dependency for administratorcontrolactivitytest and optionsFragmentTest * nits * revert all changes to TestPlatformParameterModule * Use PlatformParameterModule instead, with visibility annotation for testing * Use PlatformParameterModule instead in tests like before * lint * change no longer needed * add kdoc * add accidently removed line * move companion object back to TestPlatformParameterModule.kt. * use testplatform parameter module as suggested * lint * remove extra resources * lint * fix bazel * adjust for merge updates from develop * lint * resolve bazel issues * add force method for learner study analytics and use it * lint * lint * remove test parameter platform module (not required) * nits * nit
…and Exploration (oppia#4382) * added dark mode for input interaction * updated naming convention * added error_color * added hint color * changes cursor color * changed cursor color * updated cursor_color * resolving failing checks * resolving failing checks * added new hint color
oppia#4336) * qualifiers and constants for metric record and upload times * comments * dagger provides for flags * rename to enablePerformanceMetricCollection * initial proto * nit fixes * nit fixes * comments. * nits * nit * updates. * updates. * nits. * metric log inclusion. * name correction. * nits. * storage comment * pss comment * network usage comment. * network usage comment - part 2. * metric addition in proto definitions. * metricLog --> loggableMetric * wording update for transmission * memory and storage tier updates
* add number_of_logins field to profile proto * add increment login count function * add tests * init number of logins to 0 when new profile is added * shorten test name for lint issue * shorten test name for lint issue * use suggested approach for login count increment * use suggested approach for login count increment + lint fix * fix test name and logic as suggested * modify test to check for login count = 2 after 2 logins * nit * lint * rename test * nit - add full stop
…tivity, MarkStoriesCompletedActivity and MarkTopicsCompletedActivity (oppia#4442) * dark_mode * added mark_completed_text color
* change speaker icon to headset icon * add headset-off icon and delete old icons * use hex value instead of resource * use hex value instead of resource because CI was failing * refactor name of the drawable resource to match others * reformat
…nPlayer and Exploration (oppia#4382)" (oppia#4478) This reverts commit c3b42a4.
* Rich text changed for hyperlink text * Failing test fixed * klint issue fixed
…summary (oppia#4444) * Blank space removed by setting importantForAccessibility * Handled edge case when description is empty * updated other xml files and optimized code * import optimized * Changed logic * changed logic to handle empty description and added tests * removed unused import * Optimized imports
* Removed repetitive content description * Updated topic_lessons_story_summary.xml for landscape * Fixed klint issues * KDoc added * Removed changed onclick * Updated tests * Updated testcases * Drop-down-icon clicklistener added * klint issue fixed * Optimized code for lessons flow * Added tests * Klint issue fixed * Nit changes * Updated logic and testcases * fixed error * Rerun ci checks
…text size in extra large (oppia#4385) * fixed_continue_action_button * fixed_continue_action_button * add layout width * removed continue_submit_button_width dimens
…ts. (oppia#4493) * Update wording for item_selection_text to prevent confusion to students. * Revert changes to String resources in other langs as translator will assist to correctly do this.
…a application component (oppia#4414) ## Explanation Fixes part of oppia#4410, oppia#4300, and oppia#2432. This PR refactors the existing approach for managing application-level build dependencies by splitting up OppiaApplication ApplicationComponent into two: one for the developer build, and one for alpha. The existing OppiaApplication was retrofitted to be a base abstract class for both of the flavor-specific applications, and also for the e2e test TestApplication class (which subsequently simplified that). This has overall resulted in a decrease in complexity since it now allows us to select specific dependencies per flavor of the app which should significantly simplify ongoing release automation work, plus other flavor-specific gating that we may want to do in the future without having to rely on a human to manually enable/disable certain modules during release time. A few other small things of note: - ApplicationContext was removed since it seems to be barely used, and is confusing compared to the regular Context binding that's used almost everywhere - This PR has led to the app module application package having its own Bazel BUILD file (which is a nice help toward continued modularization work) - Most of this PR is tested by observing that the corresponding builds still work as expected, other than the changes to the manifest transformation utility - A bunch of the new classes have been exempted for requiring tests since they (mostly) cannot be effectively tested, or are maintaining the status quo for testing these classes ## 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 N/A -- This is an infrastructure-only change. Commits: * Create dedicated alpha application component. This simplifies application component management significantly and allows individual build flavors to have their own unique module lists. * Fix broken test per earlier changes. * Update TransformAndroidManifestTest.kt Correct typos.
## Explanation Fixes oppia#4410 This PR builds on oppia#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 (oppia#4419 is tracking this). - This PR is a recreation of oppia#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 - [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 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). Commits: * Create dedicated alpha application component. This simplifies application component management significantly and allows individual build flavors to have their own unique module lists. * Fix broken test per earlier changes. * Add Kenya study-specific alpha build flavor. This new build flavor automatically enables the study-specific learner study feature flag. Cherry-pick of eef2f4c from the original oppia#4420. * Update build_flavors.bzl Remove beta version declaration since that doesn't belong in this branch. * Post-CP fixes. * Fix Gradle builds. * Update TransformAndroidManifestTest.kt Correct typos.
* Hint bulb animation * Udpated animation * Lint fixes * Lint fixes * Import fix * Switch animation to bounce instead of pulse. Co-authored-by: Ben Henning <[email protected]>
## Explanation Fixes oppia#4492 by introducing a complete revamp of the hint & solution management flow in the app (see designs below). Fixes oppia#3537 by merging the hint summary layouts. Note that one part of oppia#4492 isn't implemented: pausing the hint timer while hints are being viewed. Ensuring this is properly implemented is being tracked as part of oppia#4510. Two new test exemptions were added: one for a new view model file (which seems sensible since most of the changes in this PR are aesthetic and not functional), and a second for a new hints configuration module that's specific to the alpha user study build of the app (which is temporary and we generally don't test thoroughly, anyway). **Designs** https://xd.adobe.com/view/3dca36c2-5115-419c-b25e-0f10526b077c-6899/screen/619724cc-0ecf-4c32-a452-432fded803f5/specs/ https://xd.adobe.com/view/3dca36c2-5115-419c-b25e-0f10526b077c-6899/screen/5311124a-b143-4916-aa46-6e318aca5650/specs/ https://xd.adobe.com/view/3dca36c2-5115-419c-b25e-0f10526b077c-6899/screen/545c6f32-2fec-4a8b-bb53-cecfb8e52f31/specs/ ## 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 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](https://github.com/oppia/oppia-android/wiki/RTL-Guidelines)) - Add a video showing the full UX flow with a screen reader enabled (see [accessibility guide](https://github.com/oppia/oppia-android/wiki/Accessibility-(A11y)-Guide)) - Add a screenshot demonstrating that you ran affected Espresso tests locally & that they're passing ## Mobile Portrait <img src="https://user-images.githubusercontent.com/9396084/184692122-20fe436f-9665-4870-865a-08df78c41200.png" width="250" /> <img src="https://user-images.githubusercontent.com/9396084/184692133-f9415819-06eb-4ab2-b4b1-729c7d7bb0ae.png" width="250" /> <img src="https://user-images.githubusercontent.com/9396084/184692140-19016b5b-9911-4b69-a990-032ba417f33b.png" width="250" /> <img src="https://user-images.githubusercontent.com/9396084/184692143-62899a72-7b89-4e0f-b32f-0bc98f62785a.png" width="250" /> <img src="https://user-images.githubusercontent.com/9396084/184692144-cba61f52-e37f-40b9-ac0c-b58287974699.png" width="250" /> <img src="https://user-images.githubusercontent.com/9396084/184692145-71a50dc6-e91c-464e-967a-778d62a6c81d.png" width="250" /> ## Mobile Landscape <img src="https://user-images.githubusercontent.com/9396084/184692403-51e1929e-b99f-4af5-b2cf-c3d61cb0e242.png" width="350" /> <img src="https://user-images.githubusercontent.com/9396084/184692422-7d8c37d2-683b-4ac9-ad2b-f1d96344f1be.png" width="350" /> <img src="https://user-images.githubusercontent.com/9396084/184692426-94573514-6caf-4237-b9b4-f413675aa19c.png" width="350" /> <img src="https://user-images.githubusercontent.com/9396084/184692432-22435a68-c266-46d0-baf3-5f2662ab33d4.png" width="350" /> ## Tablet <img src="https://user-images.githubusercontent.com/9396084/184694579-b4fbaf8e-44b3-4321-8464-def773cd5e6d.png" width="250" /> <img src="https://user-images.githubusercontent.com/9396084/184694593-19870c10-81be-4b9e-a737-86954358f5aa.png" width="250" /> ## Return to Lesson button **NOTE**: This button was created later on that's why not all screenshots contain this button but the below screenshot should suffice. It is fully functional too. <img src="https://user-images.githubusercontent.com/9396084/184706834-1cfa14c7-24a5-42f7-be46-252ab48ec536.png" width="250" /> <img src="https://user-images.githubusercontent.com/9396084/184706842-07fcdfcb-4413-48bf-9aaf-5d1da4dde12e.png" width="250" /> <img src="https://user-images.githubusercontent.com/9396084/184706856-cc76720b-7ccb-41c8-83b7-742e9820a70c.png" width="250" /> <img src="https://user-images.githubusercontent.com/9396084/184706853-510c4b6c-c964-439c-8013-426feceb5116.png" width="450" /> ## Dark Mode (Not Implemented) Do not have designs for dark mode ## RTL Support <img src="https://user-images.githubusercontent.com/9396084/184695143-6852926b-d380-424f-9105-a10a05de8836.png" width="250" /> ## Accessibility Output There are few issues but not solving them right now. ## Video Output https://user-images.githubusercontent.com/9396084/184695958-d23f1d77-a2f0-43bd-848a-43483f11fb04.mp4 Commits: * UI for xml files * Removed divider * Removed const value * Multie expand issue fixed * Tablet UI changes * Added return to topic button * Removed index multiplier from tests * Updated tests * nit fixes * nit fixes * Fixed implementation * Updated tests * Fixed test case * Bazel fix * Minor suggested changes * Nit fixes * Revert back string change for hint button. * Fix broken hints. Update hint delay times for the Kenya-specific alpha build of the app. Co-authored-by: Ben Henning <[email protected]>
oppia#4446: Miscellaneous alpha MR5 fixes (oppia#4506) ## Explanation Fixes oppia#4495 Fixes part of oppia#3088 Fixes oppia#4467 Fixes oppia#4505 Fixes oppia#4266 Fixes oppia#4446 This PR fixes a number of key blockers for the upcoming Alpha MR5 release of the app. In particular: - It fixes oppia#4266 by reformatting one XML file that Rajat left a comment for during his post-merge reviews of Alpha MR4 PRs. - It mitigates oppia#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 oppia#3088 since the mitigation will help make that situation better. - It addresses oppia#4467 by logging stringified versions of all supported answer types upon answer submission (rather than just whether the answer is correct). - It addresses oppia#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). oppia#4509 is tracking this future work. - It addresses oppia#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. oppia#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. oppia#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 oppia#4507), and adds it to CI since the assumption in oppia#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 oppia#4274 (comment). This is part of addressing oppia#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.
…ppia#4430) * add number_of_logins field to profile proto * add increment login count function * add tests * init number of logins to 0 when new profile is added * hide promoted stories for the first time user * add cta text * modify header text * shorten line length * modify tests so that number of logins are two * modify tests so that number of logins are two * modify tests so that number of logins are two * modify tests so that number of logins are two * shorten lines: optional nit * remove all topics string resource * add new test for not displaying promoted stories * remove unused resource (build was failing) * add new test case * use suggested method to reduce function size * change tests to account for changing the loginIntoProfile method inside profileTestHelper.kt * correction: change tests to account for changing the loginIntoProfile method inside profileTestHelper.kt
…ity, ReadingTextSizeActivity, AppLanguageActivity (oppia#4415) * fixed text cut off * fix text cutoff in all layouts * add proper naming * implement darkmode AudioLanguage,ReadingTextSize,AppLanguage Activities * minor fixes * develop updated * minor changes * fixed build error * Tests Failed Fixed * Update color_defs.xml * added EOL
…a#3852) * fix color and null checks * added number formatter for numbered list * Update LiTagHandler.kt * Update CustomHtmlContentHandler.kt * Update CustomHtmlContentHandler.kt * added files to build.bazel * Update test_file_exemptions.textproto * fixed ci errors * fix lints * Add local for number formatter * Update LiTagHandler.kt * fix lint checks * fix policy-type declaration failure * Added number formatter * Update MachineLocaleImpl.kt * Update BUILD.bazel * Trigger Build * fix html build * Update BUILD.bazel * Update app/src/main/res/values/strings.xml Co-authored-by: Ben Henning <[email protected]> * Update utility/src/main/java/org/oppia/android/util/parser/html/PolicyType.kt Co-authored-by: Ben Henning <[email protected]> * Update utility/src/main/java/org/oppia/android/util/parser/html/PolicyType.kt Co-authored-by: Ben Henning <[email protected]> * fixed nits * fixed html parser * fixed bulletspan * fixed lint * fixed conflicts * Update HtmlParserTest.kt * fixed lint * Update HtmlParser.kt * Fixed ci failure for customContentHandler * fixed lints * Update BUILD.bazel * Update BUILD.bazel * Update BUILD.bazel * Fixed taghandler error * fixed listener dependencies * Update ListItemLeadingMarginSpan.kt * Update BUILD.bazel * Fixed failing tests in utility * fixed lint * fix tests * Update utility/src/main/java/org/oppia/android/util/parser/html/HtmlParser.kt Co-authored-by: Ben Henning <[email protected]> * Update arguments.proto * fix number formatting * Fixed bullet gap and failing tests * Update MachineLocaleImplTest.kt * fixed errors * Update HtmlParserTest.kt * Update HtmlParserTest.kt * Add 2 create methods with and without loading image * Update HtmlParserTest.kt * add displaylocale to utility * Update HtmlParserTest.kt * fixed nits * fix lint * Update HtmlParserTest.kt * Update LiTagHandler.kt * Update MachineLocaleImpl.kt * Update HtmlParserTest.kt * added tests in bazel * fixed locale in tests * Update BUILD.bazel * removed test from bazel * fix bazel format * Update AppLanguageResourceHandler.kt * Update BUILD.bazel * Update BUILD.bazel * Update BUILD.bazel * Update CODEOWNERS * Delete BulletTagHandler.kt * Update app/src/main/res/values/strings.xml Co-authored-by: Ben Henning <[email protected]> * Update app/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt Co-authored-by: Ben Henning <[email protected]> * moved strings file to utility * fixed changes * removed unused import * Update MachineLocaleImplTest.kt * fixed testcases * Update PoliciesFragmentTest.kt * Update file_content_validation_checks.textproto * Update file_content_validation_checks.textproto * Update BUILD.bazel * fixed file validations errors * Update BUILD.bazel * Update BUILD.bazel * Update BUILD.bazel * Update BUILD.bazel * removed test resources from domain * Update BUILD.bazel * Update DisplayLocaleImplTest.kt * Update utility/src/main/java/org/oppia/android/util/parser/html/CustomHtmlContentHandler.kt Co-authored-by: Ben Henning <[email protected]> * Update utility/src/main/java/org/oppia/android/util/parser/html/LiTagHandler.kt Co-authored-by: Ben Henning <[email protected]> * Update utility/src/main/java/org/oppia/android/util/parser/html/ListItemLeadingMarginSpan.kt Co-authored-by: Ben Henning <[email protected]> * Update utility/src/main/java/org/oppia/android/util/parser/html/LiTagHandler.kt Co-authored-by: Ben Henning <[email protected]> * optimized code * fixed errors in tests * fixed tests * fixed testcases * fixed nit * fixed nits * Update CustomHtmlContentHandlerTest.kt * Update Project.xml * Update BUILD.bazel * fixed testcases * Update ListItemLeadingMarginSpan.kt * Fixed create html parser create method * fixed indentation * Update ListItemLeadingMarginSpan.kt * Update ListItemLeadingMarginSpanTest.kt * Update LiTagHandlerTest.kt * fixed issues * removed list from custom tag handler * fixed strings file * Update CustomHtmlContentHandlerTest.kt * fixed tests * fixed lints * Update DisplayLocaleImplTest.kt * fixed gradle for test class * fixed dependencies * Update BUILD.bazel * Update BUILD.bazel * Update BUILD.bazel * removed exception * Update BUILD.bazel * Working on tests. * Update BUILD.bazel * fixed tests * remove unused code * fixed Litaghandler tests * Update LiTagHandler.kt * Update ListItemLeadingMarginSpanTest.kt * fixing build file * Update BUILD.bazel * Update BUILD.bazel * Update BUILD.bazel * Update BUILD.bazel * fixing build file * Update BUILD.bazel * Update BUILD.bazel * fix test resource path * add test dependencies * fix lint error * Update DisplayLocaleImplTest.kt * Update DisplayLocaleImplTest.kt * commented unused code * Update DisplayLocaleImplTest.kt * Update BUILD.bazel * Add utility dependency to test bazel * Update DisplayLocaleImplTest.kt * added locale in custom package * fixing tests * Update DisplayLocaleImplTest.kt * Update DisplayLocaleImplTest.kt * changed import to locale * Remove R import * Update app/src/sharedTest/java/org/oppia/android/app/parser/ListItemLeadingMarginSpanTest.kt Co-authored-by: Ben Henning <[email protected]> * fix bazel and span class * Update app/src/sharedTest/java/org/oppia/android/app/parser/ListItemLeadingMarginSpanTest.kt Co-authored-by: Ben Henning <[email protected]> * fixed issues related to tests * Update ListItemLeadingMarginSpanTest.kt * Update ListItemLeadingMarginSpanTest.kt * Update ListItemLeadingMarginSpanTest.kt * compute x for RTL * fixed nit * Update LiTagHandler.kt * Update LiTagHandler.kt * Fixed lint errors * Update LiTagHandler.kt * Update ListItemLeadingMarginSpan.kt * fixed extention method and tos and faq strings * Update DisplayLocaleImpl.kt * fixed rtl in html parser * fixed lint errors * Update PoliciesFragmentTest.kt * fixed tests for rtl * Update HtmlParserTest.kt * Update HtmlParser.kt * Update LiTagHandler.kt * Update LiTagHandler.kt * Update LiTagHandler.kt * Update utility/src/main/java/org/oppia/android/util/locale/OppiaLocale.kt Co-authored-by: Ben Henning <[email protected]> * fixed nit * Update LiTagHandler.kt * Fixed canvas width in test * Update ListItemLeadingMarginSpanTest.kt * Update ListItemLeadingMarginSpanTest.kt * Update ListItemLeadingMarginSpanTest.kt * Update ListItemLeadingMarginSpanTest.kt * Update ListItemLeadingMarginSpanTest.kt Co-authored-by: Ben Henning <[email protected]>
…nteraction (oppia#4497) * content description added * tests updated * KDoc and comment added * textproto updated * kdoc comment updated * @param changed to @Property in kdoc
oppia#4415 (oppia#4534) * fixed text cut off * fix text cutoff in all layouts * add proper naming * implement darkmode AudioLanguage,ReadingTextSize,AppLanguage Activities * minor fixes * develop updated * minor changes * fixed build error * Tests Failed Fixed * Update color_defs.xml * added EOL * alert dialog dark mode
…d ExplorationPlayer (oppia#4540) * dark_mode_suuport_to_input_interactions * nit_changes * added cursor color
… collection (oppia#4388) * qualifiers and constants for metric record and upload times * comments * dagger provides for flags * rename to enablePerformanceMetricCollection * initial proto * nit fixes * nit fixes * comments. * nits * nit * updates. * updates. * nits. * metric log inclusion. * base setup. * name correction. * nits. * nits. * storage comment * pss comment * network usage comment. * network usage comment - part 2. * metric addition in proto definitions. * metricLog --> loggableMetric * proto definitions in oppiaLogger * wording update for transmission * dependency/api updates. * nits. * metric controller and oppiaLogger * nits * logger-controller pattern, single utils * nits * comments * performance metric event logger nits. * nits. * deleting unused interfaces. * log generator to metric log scheduler * nits * worker functions to schedule logging, renaming * nits. * clearing up build errors. * nits. * removal of dependency from oppiaLogger and basing the entire implementation on Logger-Controller * performanceMetricController tests + fakeLogger * fakeLogger tests * nits * tests for the new logger. * tests for the worker + renaming of package to logScheduler * tests for work manager initializer * initial base setup for utils test * nits * nits * performanceMetricsUtils tests * nits * renamed logUpload to logReport + nits * nits * review updates. * nit * review updates - 2 * isAppInForeground revamp * isAppInForeground revamp * nits * domain tests repair * app tests repair * nits. * nits. * nits. * nits. * nit * test update. * test update. * nit * todo issue number update -- static check * comments. * nits. * utils test + nits * utils test + nits * nits * test rearrangement * nits * test fixes. * nits * memory and storage tier updates * memory and storage tier updates * updates. * nits * test file exemptions refactor due to file renaming. * additional tests, nit fixes. * activity manager shadow and assessor test * nit * nit * shadow traffic stats + assessor test fix. * custom shadow tests * module deps * tests * nits * metricLogScheduler refactor and test * exemption removal * nits * updates. * variable nits + parameterized test exemption * app component dependencies. * nits * logging module bazel build, config module creation * testing robolectric bazel module update * domain bazel build fixes * working oppia bazel build * nits. * nits. * nit for bazel building * addition of test file for module * bazel tests fixes * more fixes. * reformatting * nits * nits * dep fix * deps fix * deps fix * nit * nits * nits * test fixes -- renaming. * deps addition * previous merge correction * nits * updates. * nits * bazel update. * nit * nits.
…ppia#4552) * Update selection_interaction_item.xml * Update selection_interaction_item.xml * Update return_to_topic_button_item.xml * Update return_to_topic_button_item.xml * Update image_region_selection_interaction_item.xml * Update image_region_selection_interaction_item.xml * Update ListItemLeadingMarginSpanTest.kt
…c logs (oppia#4399) * qualifiers and constants for metric record and upload times * comments * dagger provides for flags * rename to enablePerformanceMetricCollection * initial proto * nit fixes * nit fixes * comments. * nits * nit * updates. * updates. * nits. * metric log inclusion. * base setup. * name correction. * nits. * nits. * storage comment * pss comment * network usage comment. * network usage comment - part 2. * metric addition in proto definitions. * metricLog --> loggableMetric * proto definitions in oppiaLogger * wording update for transmission * dependency/api updates. * nits. * metric controller and oppiaLogger * nits * logger-controller pattern, single utils * nits * comments * log uploading support * nits * nits * performance metric event logger nits. * nits. * logger reinstated. * nits * deleting unused interfaces. * log generator to metric log scheduler * nits * nits -- kdoc, code placing, readability * nits -- kdoc, code placing, readability * worker functions to schedule logging, renaming * nits. * clearing up build errors. * nits. * fixing build errors. * removal of dependency from oppiaLogger and basing the entire implementation on Logger-Controller * performanceMetricController tests + fakeLogger * fakeLogger tests * nits * tests for the new logger. * tests for the worker + renaming of package to logScheduler * tests for work manager initializer * initial base setup for utils test * nits * nits * nit * worker and initializer tests * event bundle creator tests * module tests * nits * performanceMetricsUtils tests * nits * renamed logUpload to logReport + nits * nits * nits * review updates. * nit * review updates - 2 * isAppInForeground revamp * isAppInForeground revamp * nits * domain tests repair * app tests repair * nits. * nits. * nits. * nits. * nit * test update. * test update. * nit * todo issue number update -- static check * comments. * nits. * utils test + nits * utils test + nits * nits * test rearrangement * nits * test fixes. * nits * nits * nits * memory and storage tier updates * memory and storage tier updates * updates. * nits * test file exemptions refactor due to file renaming. * additional tests, nit fixes. * activity manager shadow and assessor test * nit * nit * shadow traffic stats + assessor test fix. * custom shadow tests * module deps * tests * nits * metricLogScheduler refactor and test * exemption removal * nits * updates. * variable nits + parameterized test exemption * app component dependencies. * nits * logging module bazel build, config module creation * testing robolectric bazel module update * domain bazel build fixes * working oppia bazel build * nits. * nits. * nit for bazel building * addition of test file for module * bazel tests fixes * more fixes. * reformatting * nits * nits * dep fix * deps fix * deps fix * nit * nits * nits * gradle test fix. * bazel oppia build * test fixes -- renaming. * deps addition * previous merge correction * nits * updates. * nits * bazel update. * nit * nits.
…ate notices and build flavors (oppia#4417) ## Explanation Fixes oppia#4300 Fixes oppia#2432 This PR introduces support for showing notices when users change from certain flavors of the app to the beta and/or GA (general availability) flavors (both of which are newly introduced in this PR). The user behavior is as follows: - Changing from any flavor _to_ beta will result in the beta notice showing for the user the *first* time they open the app. - Changing from alpha or beta flavors _to_ the GA flavor will result in the GA notice being shown. - The user will always see the notice after the first open following one of these transitions, and in no other cases (including the first open for beta). - The user will not see one or both notices if they select the "never show again" checkbox(es) prior to dismissing the notice(s). - The app deprecation notice will always take logical precedence over other notices (i.e. it will always show in cases when the app is deprecated regardless of flavor transitions). In addition to the above, text was added to the splash screen for the developer, alpha, and beta flavors of the app to make it a bit more explicit to the user. The alpha and beta splash experiences have been configured to wait 2 seconds so that the user has a moment to see the actual text before the app finishes loading. Note also that existing alpha users will not see the beta notice after installing the first beta version (since no flavor has been recorded). While this is technically fixable, it doesn't seem worthwhile given the current small user audience that would be affected. Subsequent transitions from alpha to beta will work as expected (and lead to the beta notice being shown). As a side note: oppia#2432 is fixed as of this PR since the final planned build flavors are being introduced here. While more flavors may be added in the future, it seems sufficient to consider "build flavors are introduced" to be done now that there are developer, alpha, beta, and GA flavors of the app. Technical things of note: - The splash screen now has a contingency fallback of 5 seconds in case the startup state doesn't ever load/the app gets stuck (it will fall back to a default state). - The transitions required a new BuildFlavor proto to be included and bound to Dagger. For tests and the e2e test application component, a new testing-specific flavor has been introduced (though it's never expected to correspond to a distributable build of the app). - The existing 'deprecation' package under the app module has been repurposed to be the location for all notices in the app (including the two new ones). We'll likely add more here in the future, as well (such as the GA deprecation notices). - The new beta and GA flavors of the app have been added to the build_tests CI workflow--you can see the artifacts of the workflow in this PR or on develop after the PR is merged for downloads to the corresponding built AABs. - The Kenya-specific alpha version of the app has the same 'alpha' build flavor as the default alpha version of the app since there doesn't seem to be any reason why they should differ here. - Some places were updated to use Application instead of Context to make things a bit tighter in expectation for *what* type of context is available to use (for cases when casting to injector providers is used). This helps to avoid a particularly challenging bug that I ran into during test development wherein the wrong context was being used after creating a new application (since that application's application context was pointing to the original application). This means that ``Application.getApplicationContext()`` may actually not return itself in instrumentation cases. The changes help avoid this leading to actual issues in tests (but they should have no impact on the app's behavior in production environments). - PersistentCacheStore had a few significant changes to better facilitate the needs of this PR's domain changes: - Changes in the store are only published to its in-memory cache (and subsequently notified to subscribers of the store) if the cache store actually changes. - The store's existing two priming functions were combined into a single new one with more flexibility as it can be used to tweak both changing the on-disk cache and publishing the in-memory one. The documentation around priming has also been significantly improved in terms of detail as I now think it's a legitimate use case that we'll want to use in more places in the future. - InMemoryBlockingCache was updated to include publishing before-and-after values to its registered observer callback to avoid over-notifying for alterations to the cache that don't logically change it (this can actually lead to subtle differences in behavior that may not always be expected, so the change should improve robustness of the cache). Details regarding test changes & exemptions: - SplashActivityTest and AppStartupStateControllerTest were updated to enable parameterized testing since they have to test many different cases of build flavor transitions. - The only test exemptions were: renames (deprecation notice classes), files that can't be tested (applications, application components, and listeners), and files that are not conventionally tested (test activities and fragment presenters). - A new BUILD file was added for PersistentCacheStoreTest (which made development a bit easier when verifying some of the changes that ended up breaking the test suite). - One of SplashActivityTest's error case tests were removed since it now seems impossible to trigger a situation that could actually cause it. Similarly, the pending case with 5-second timeout also seems impossible to test, though it's theoretically possible to occur if something catastrophically goes wrong in a production environment with a real clock. ## 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 This PR absolutely should include screenshots & a demo video, but for the sake of optimizing time this will be done post-merge. Commits: * Create dedicated alpha application component. This simplifies application component management significantly and allows individual build flavors to have their own unique module lists. * Add beta & GA update notices. This also introduces dedicated beta & GA build flavors which is a necessary prerequisite. It also introduces an extra beta, alpha, and dev mode labels for the splash screen (the latter 2 were extra) with 2 second minimum wait timers for beta and alpha to ensure they are seen. A 5-second safety timer was added to ensure the splash screen can always be passed even if something goes wrong at the domain level (since there are now quite a few moving pieces to determine the user's current onboarding state). * Add build tests for the new beta & GA flavors. * Fix broken test per earlier changes. * Fix general broken tests & builds. Tests broken due to changes to the app startup experience haven't yet been fixed. * Lint fixes. * First part of adding tests for GA notices. There's a bunch left to do here, this is mainly needed so that I can transfer changes to a different machine. * Update TransformAndroidManifestTest.kt Correct typos. * Fix tests & static checks. This also removes temporary debug code and TODOs, and finishes the tests for SplashActivity. * Post-merge fixes. * Test fixes. * Fix Gradle test. * Follow-up adjustments after self-review.
…#4563) ## Explanation Fixes part of oppia#4562. This PR introduces two new scripts: - One for computing how many strings are not yet translated for Arabic, Brazilian Portuguese, and Swahili (as compared to the base English strings) - One for verifying newline consistency between the English & non-English strings (based on number of lines) The latter was also added as one of the jobs to be run during the static checks CI workflow, and is specifically useful to ensure newlines weren't inadvertently added by translators (see the updated translation strings for an idea on how often this has happened). Note that, as part of fixing these strings, the source string for lets_get_started was updated to no longer include a newline. This seems reasonable given that we should never use newlines for spacing/styling unless it's for logical splits (like paragraphs). However, I can't verify whether actual style changes are needed since this string is used as part of the unreleased app walkthrough feature. I expect that we'll re-audit the UI of that feature when we revisit it. This PR also includes a major performance fix for RepositoryFile that will benefit all checks that use it. Kotlin's built-in file tree walker is built to implicitly follow symlinks on the filesystem. For Bazel builds, this expands the codebase to >1M files (since directory filtering happens *after* the files are known). Since scripts don't actually need to follow symlinks, the utility was updated to specifically not follow them (using Java NIO's file tree walk routine) which led to an observed ~10x performance improvement. Further optimizations could be done by building our own tree-walker and filtering directories during search (which will probably be necessary if we ever _do_ need to follow symlinks, but it probably won't be needed for a long time since the current performance is quite solid). The former script is useful when manually auditing the translation progress using the codebase as the source of truth rather than Translatewiki. For now, it's been helpful in beta MR1 planning but longer-term it may also be useful as a badge on the repo's README. Finally, the Kotlin stdlib dependency was updated to point to jdk8 instead of jdk7 (since a specific feature was needed from the former, and the codebase can rely on higher Java SDK versions than 7 given that the minimum Java version is 1.8). ## 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 N/A -- this is a developer infrastructure-only PR, except for all of the string newline fixes (which just result in a more correct UI for non-English), and the changed English string (which is inaccessible to demonstrate). Screenshots could be uploaded, but the newlines need to be removed regardless so it doesn't seem specifically useful here (plus those languages may not be obvious to verify for reviewers). Commits: * Create dedicated alpha application component. This simplifies application component management significantly and allows individual build flavors to have their own unique module lists. * Add beta & GA update notices. This also introduces dedicated beta & GA build flavors which is a necessary prerequisite. It also introduces an extra beta, alpha, and dev mode labels for the splash screen (the latter 2 were extra) with 2 second minimum wait timers for beta and alpha to ensure they are seen. A 5-second safety timer was added to ensure the splash screen can always be passed even if something goes wrong at the domain level (since there are now quite a few moving pieces to determine the user's current onboarding state). * Add build tests for the new beta & GA flavors. * Fix broken test per earlier changes. * Fix general broken tests & builds. Tests broken due to changes to the app startup experience haven't yet been fixed. * Lint fixes. * First part of adding tests for GA notices. There's a bunch left to do here, this is mainly needed so that I can transfer changes to a different machine. * Update TransformAndroidManifestTest.kt Correct typos. * Fix tests & static checks. This also removes temporary debug code and TODOs, and finishes the tests for SplashActivity. * Post-merge fixes. * Test fixes. * Fix Gradle test. * Add some string resource checks/tools. Also, fixes major performance issue with all file-based CI checks. * Ensure newline consistency in translated strings. Also, fix reporting in new validation check script. * Add tests & fix static checks. * Follow-up adjustments after self-review.
…astructure (oppia#4421) ## Explanation Fixes oppia#4389 Fixes oppia#4407 This PR "future-proofs" the learner analytics logging infrastructure by: - Introducing separate event names that should be more understandable to data analysts than used in the Kenya version of the app (though compatibility is still kept with existing Kenya logged metrics by means of a separate implementation used only in that build of the app). - Logging a new ``event_type`` parameter that contains the actual proto integer of the event rather than just logging a string representation (so that we can rename both the events in code, and the corresponding strings logged to Firebase). The event names, at this point, act as a nice point-of-reference while analyzing events but are no longer meant to be the primary identifying keys for events (``event_type`` should be used for this purpose, instead). - The device's Android SDK version, the app's version name, and the app's version code are now logged with all events for better event dimension slicing and analysis. - Effort is now made to ensure event names don't exceed 40 characters (Firebase's limit) to help avoid events being potentially rejected during upload. Specifics about tests and exemptions: - ``EventTypeToHumanReadableNameConverter`` is exempted from tests since it's an interface. - ``KenyaAlphaEventTypeToHumanReadableNameConverterImpl`` is exempted from tests since it's temporary, and its values are at least indirectly tested through ``KenyaAlphaEventBundleCreatorTest``. - ``KenyaAlphaEventBundleCreatorTest`` was added as a fork of ``EventBundleCreatorTest`` to ensure the existing Kenya-specific event names are properly logged, but it will be removed in the future (as tracked by oppia#4419). Note that this suite wasn't updated to verify the new fields like ``EventBundleCreatorTest`` was. - A BUILD.bazel file was added for the existing logging/firebase and logging/performancemetrics tests since one was added for the tests under logging/ (and subpackages must also have BUILD files if parent packages do). ## 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 N/A -- This is a metrics infrastructure change that will have zero effect on the UI (except maybe how events are displayed in the developer options menu, but that's not important to include here since it isn't end user-facing). Commits: * Create dedicated alpha application component. This simplifies application component management significantly and allows individual build flavors to have their own unique module lists. * Add beta & GA update notices. This also introduces dedicated beta & GA build flavors which is a necessary prerequisite. It also introduces an extra beta, alpha, and dev mode labels for the splash screen (the latter 2 were extra) with 2 second minimum wait timers for beta and alpha to ensure they are seen. A 5-second safety timer was added to ensure the splash screen can always be passed even if something goes wrong at the domain level (since there are now quite a few moving pieces to determine the user's current onboarding state). * Add build tests for the new beta & GA flavors. * Add Kenya study-specific alpha build flavor. This new build flavor automatically enables the study-specific learner study feature flag. * Future-proof metrics infrastructure. This is mainly done by: 1. Logging an immutable event type for each event and de-coupling the event names so that the latter can be changed over time to improve event management quality-of-life. 2. Logging the Android SDK version, app version name, and app version code with each event. 3. Ensuring the existing Kenya-specific alpha versions of the app continue to use their existing event names so that historical data can be matched (since those queries rely on event names rather than this new event type). * Fix broken test per earlier changes. * Fix general broken tests & builds. Tests broken due to changes to the app startup experience haven't yet been fixed. * Lint fixes. * First part of adding tests for GA notices. There's a bunch left to do here, this is mainly needed so that I can transfer changes to a different machine. * Update TransformAndroidManifestTest.kt Correct typos. * Fix tests & static checks. This also removes temporary debug code and TODOs, and finishes the tests for SplashActivity. * Fix & add testing. * Static check fixes + missing tests. * Post-merge fixes. * Test fixes. * Fix failing tests. * Fix Gradle test. * Post-merge fixes. * Follow-up adjustments after self-review.
…nslations support to titles & descriptions (oppia#4555) ## Explanation Fixes oppia#4224 Fixes oppia#4306 Fixes part of oppia#1051 This PR introduces expanded support for translating content strings. In particular, previous support for written content translations only extended as far as exploration state content and interactions. Now, all topics, stories, chapters, exploration, and revision cards titles and descriptions now also support translations. When considered in conjunction with app string translations, this now means that nearly the entire app is translatable. ### Technical approach At a high-level, this PR expands the existing pattern for content translations for titles and descriptions for structures: explorations, topics, revision cards (subtopics), stories, and chapters (story nodes). This required changing existing structures (and corresponding test assets) to use ``SubtitledHtml`` instead of raw strings for their titles and descriptions, and to now include written translation tables. New ephemeral structures have been introduced to compute the translations that can be consumed by the UI to ensure the correct string is displayed. Note that the test JSON assets have not been updated since it was a bit easier to just translate the title/description strings into ``SubtitledHtml``s during parsing time (which seems like a reasonable stopgap since the JSON loading pipeline is temporary and only developer-facing). Due to new ephemeral structures needing to be computed in a bunch of places, profile ID now needs to be passed in more places. This has led to some minor refactoring to push more UI components over to passing around the ``ProfileId`` structure rather than the internal integer ID. This PR also fixes part of oppia#1051 by migrating more fragment presenters over to injecting their view models rather than retrieving them from Jetpack's view model provider (which means each of these changed presenters no longer expose potential memory leaks in the corresponding view model). ### Caveats This PR doesn't technically directly address oppia#4224 and oppia#4306, but it does indirectly. The new structures are linked to the assets download script which has been subsequently updated to cross-reference the translations for topics, stories, chapters, and subtopics from Oppia web's repository (which has temporary hardcoded translations for many of the titles and descriptions). This means that: - Not everything will be translated despite the app now supporting it (example: revision card content isn't available to cross-reference). - Many translation languages are missing (the team is currently focusing on Brazilian Portuguese ahead of the upcoming Beta MR1 app launch). - Longer term, Oppia web will provide the translations directly with the structures like it does for explorations (this is an ongoing backend project). Another caveat is that this PR further reveals the specific need to be able to compute a ``DataProvider`` based on the result of another. This is a limitation that the current ``DataProviders`` utility methods cannot handle, and the workaround is to call ``retrieveData()`` on the computed ``DataProvider`` directly which has updating inconsistency issues. Some of the providers modified as part of this PR should be updated to leverage a new dynamic transform method (see oppia#4564 for the tracking issue). This was unfortunately dropped from the project due to limited time, but oppia#4484 is the WIP PR. ### Test changes (or lack thereof) Due to this PR being especially high priority, tests have been omitted from this PR in favor of merging it faster. Instead, tests will be added in a follow-up PR (oppia#4567 is tracking to make sure that this happens). The changes have been manually tested, and will be tested more prior to many users interacting with the new functionality. ## 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 While this PR is highly end user-facing, for the sake of time screenshots and video demonstrations have been omitted from the PR. They will be added at a later date (after the PR is merged), and oppia#4567 is tracking the work item to make sure that this happens. Commits: * Create dedicated alpha application component. This simplifies application component management significantly and allows individual build flavors to have their own unique module lists. * Add beta & GA update notices. This also introduces dedicated beta & GA build flavors which is a necessary prerequisite. It also introduces an extra beta, alpha, and dev mode labels for the splash screen (the latter 2 were extra) with 2 second minimum wait timers for beta and alpha to ensure they are seen. A 5-second safety timer was added to ensure the splash screen can always be passed even if something goes wrong at the domain level (since there are now quite a few moving pieces to determine the user's current onboarding state). * Add build tests for the new beta & GA flavors. * Initial support for dynamic data provider xforms. * Stabilization improvements. To ensure that the new dynamic DataProvider can't result in a soft lock if in-memory cache-backed providers (such as PersistentCacheStore) circularly reference each other (since they depend on a single thread), InMemoryBlockingCache was updated to use the standard background in conjunction with an actor channel. This ensures the lockless synchronization mechanism can continue without cross-cache contention occurring due to using a shared test. This commit also subsequently updates all blocking caches to use the same actor model, instead, and outright removes the blocking dispatcher to ensure these situations can never occur in the future. * Update codebase to Kotlin 1.6. * Add support for build-specific asset handling. * Fix build & Kotlin warnings (that are now errors). One test needed to be ignored due to the Kotlin coroutines update, so follow-up work will be needed to address this. Note that this commit also restricts access to the Kotlin reflection library (since it shouldn't be used broadly). This commit also updates Gradle to use Kotlin 1.6 (though only the app build has been verified). Proguard building support hasn't yet been verified. * Fix broken test per earlier changes. * Fix general broken tests & builds. Tests broken due to changes to the app startup experience haven't yet been fixed. * Lint fixes. * Introduce coordinated executors for tests. This commit replaces coroutine dispatchers with lower-level executors that perform the actual state management and coordination for all multi-threaded task handling in the app. This is actually a major simplification as it allows for: - Proper threading resource sharing between the app and its libraries (such as OkHttp) - Proper thread synchronization between executors and coroutines in tests without leveraging the extremely complicated CoroutineExecutorService - Less custom coroutine infrastructure which can be difficult to maintain * Fix broken tests & lint issues. * Post-merge & static check fixes. Does not include new tests that need to be added, or lint fixes. * Lots of test fixes. This also includes fixing some core issues in AsyncDataSubscriptionManager and InMemoryBlockingCache that went previously unnoticed. More tests still need to be added yet. * First part of new tests. (This is an in-progress commit that's needed so that I can transfer changes to a different machine). * First part of adding tests for GA notices. There's a bunch left to do here, this is mainly needed so that I can transfer changes to a different machine. * Update TransformAndroidManifestTest.kt Correct typos. * Fix tests & static checks. This also removes temporary debug code and TODOs, and finishes the tests for SplashActivity. * Post-merge fixes. * Test fixes. * Fix Gradle test. * Initial commit for expanded xlations support. This commit introduces the base changes needed to introduce translations support for all other content strings in the app outside core lessons. * Undo executors, Kotlin upgrade, and dynamic xform. This undoes the work of PRs oppia#4484 and others not yet created in order to isolate the expanded translations support directly off of the develop branch to expedite getting it finished for the upcoming beta release. * Part 1 of post-"rebase" fixes. * Some post-merge fixes. * Undo changes from oppia#4436. Isolating domain assets shouldn't be necessary for the expanded translations support, and it will be easier to manage this PR with fewer extra things being added to it. * Fix various tests & update test assets. Also, remove temporary TODOs. * Static fixes. * Add some string resource checks/tools. Also, fixes major performance issue with all file-based CI checks. * Ensure newline consistency in translated strings. Also, fix reporting in new validation check script. * Add tests & fix static checks. * Fix broken tests. * Update version codes & pt-BR strings. The strings were manually pulled Translatewiki. * Follow-up adjustments after self-review. * Undo changes from oppia#4565. This commit allows the PR to be "rebased" back onto develop so that it can be prepped for merging.
…reading text size support (oppia#4411) ## Explanation Fixes oppia#4285 Fixes oppia#4394 Fixes part of oppia#4437 This PR fixes two specific bugs related to in-lesson reading text support: 1. That changing the reading support requires leaving & reentering the lesson in order for it to apply. 2. That selecting a reading size when on a non-English language simply doesn't work if the reading text sizes have been translated. Issue (1) comes from the fact that, while ``FontScaleConfigurationUtil`` recomputes the scaled density for layouts, an actual recreation seems necessary for sp-related fields to actually recompute correctly. Simply adding a ``recreate()`` call in ``ExplorationFragmentPresenter`` seems to address the issue fully. Issue (2) comes from the fact that reading text sizes are managed by their user-readable text value. This inherently doesn't work for non-English languages since the string content will be different. The fix here is to introduce non-string, strong typing (in this case, a proto enum) to represent text sizes. However, since the text size needs to be passed through some fragment arguments and activity intents, various fragments and activities needed to be updated to use protos (fixing part of oppia#4437). This required broader changes than solving issue (1) alone. Some technical specifics: - The proto changes also required introducing a new ``ParentScreen`` proto enum for exploration activity to replace the existing backflow integer mechanism. This enum is actually shared by other activities that interact with exploration activity (such as recently played) which creates a strong semantic connection than just passing around an integer. - ``ReadingTextSizeActivity`` is providing a bundle as its result so that the calling activity can receive which size was set. I believe this is the first time we've used such a pattern in the codebase, and it may be nice to use more of it when the extra hop to receive an asynchronous result from the domain layer changing isn't worth the wait (e.g. due to user-perceived jank or transient inconsistencies that may arise during that small gap of time). Notes on tests/exemptions: - A lot of the behaviors changed in this PR are verified through existing reading text size selection tests. - More thorough testing is needed not only for verifying the specific issues fixed in this PR, but also to ensure the general reading text size selection flow works exactly as needed. These tests have been intentionally left out of this PR as a time saving mechanism, but oppia#4567 is tracking adding them in the longer term (after the PR has been merged). - A new ``hasProtoExtra`` Espresso matcher was added in a few of the tests that was mainly inspired by discussions in oppia#4511. This matcher has some room for improvement when it comes to error reporting (though Espresso makes this generally difficult to do well), but it provides a way to verify proto payloads passed into intents. ## 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 This PR doesn't change existing UIs, but does change UX flows (mainly for sighted users, so the accessibility cases aren't particularly interesting). Since there are no new layout changes, RTL and dark mode considerations are also not relevant. See the following videos for the (now working) UX flows: Text size correctly applies when navigating back to the exploration from the options menu, from a checkpoint, and after logging back into the profile: https://user-images.githubusercontent.com/12983742/189110927-9dd1e943-148e-438a-8d8d-b85294dc812f.mp4 Text size correctly applies when using a non-English language (such as Brazilian Portuguese): https://user-images.githubusercontent.com/12983742/189111036-68e233a1-b11f-4a9a-8366-76a5ae6fbd57.mp4 Espresso tests haven't changed as part of this PR (so far as I know), so there are no confirmation screenshots to include. Commits: * Improve reading text size support. Specifically: - This commit fixes reading text size not changing when selected for non-English languages. - This commit fixes reading text changes not actually changing when navigating back to the exploration. * Fix broken tests & static checks. * Small style spacing fix. * Post-merge fix.
* modify regex pattern to accept international characters, hyphens, dots, and apostrophes * add test * add regex functions * add regex functions * add tests for different profile names * modify regex pattern to allow .'- characters * lint * create name validator class * move name validation functions to NameValidator class * add nameValidatorTest * lint lint * add more descriptive variable names * move NameValidator.kt to profile package * add new android_library for name validator * replace assertThat with Truth assertion * modify name validation logic, make class injectable, refactor variable name * lint * add kdoc add kdoc * refactor variable and function names * refactor variable and function names * inject nameValidator * lint * edit BUILD.bazel for nameValidator * add NameValidatorUtil.kt * move and refactor variables * modify BUILD.bazel visibility for nameValidator * lint * add tests specific to behaviour * rename * use isAlphabetic instead of regex * make profile name validator injectable and inject it * modify test cases for using isAlphabetic instead of regex * lint, refactor file names, correct variable name * add JavaDoc * bazel config for profile name validator * add dep [bazel] for profile_name_validator * fix build.bazel * lint * use suggested implementation * lint * remove ProfileNameValidator and profile name validator module * update bazel config * rename ProfileNameValidatorImpl to ProfileNameValidator.kt * update bazel config for these changes * add module annotation * use as a singleton * correct the improper merge with develop * lint * remove tests from ProfileManagementControllerTest.kt that were duplicated in ProfileNameValidatorTest * remove duplicate line * remove Singleton annotation (nit) * nits * add test for "Jerry" * make test roboelectric * convert to parameterised tests * add EOF newline * add exemption for parameterised test * add imports * remove trailing comma * add BUILD.bazel [problem] * fix bazel issues * fix bazel lint * BUILD.bazel working session * working session * add profilenamevalidator to ProfileRenameFragmentPresenter.kt * lint * Fix broken tests. Co-authored-by: Ben Henning <[email protected]>
* fixed text cut off * fix text cutoff in all layouts * add proper naming * develop updated * minor changes * dark_mode: Confetti * Change color name Co-authored-by: Ben Henning <[email protected]> * build failed fixed Co-authored-by: Ben Henning <[email protected]>
…pear when the keyboard is closed (oppia#4556) * fix unexpected hint problems * add todos * lint
…pia#4575) ## Explanation Fixes oppia#3821 This PR introduces the following end-user visible changes: - It adds Brazilian Portuguese as an option when selecting a default audio language. - It removes the 'No Audio' option from the list since it's confusing and presently defaults to 'English' when playing audio voiceovers, anyway. - It changes the display names of the default audio languages to be localized to their own locale to make the languages easier to read by native speakers. - It fixes a bug in the tablet version of OptionsActivity wherein switching between audio & reading text would result in fragment stacking (i.e. you could see the bottom of the longer fragment when on the shorter one). This entailed changing fragment 'adds' to 'replaces' for the options fragment transactions. Technical details: - This PR migrates the audio language pattern from using a string over to using the AudioLanguage proto enum, similar to the recent change for ReadingTextSize. This was preferred since changing everywhere to support a localized name of each language seemed non-ideal. - A few models & listeners needed to be split between app & audio languages due to the previous approaching having a lot of codesharing between the two that's no longer applicable with strong types. Exemptions: - AppLanguageResourceHandler is now allowed to use ``Locale`` directly so that it can produce localized display names for each audio language. In the future, this could be moved to MachineLocale maybe. - AppLanguageResourceHandlerTest is now allowed to use parameterized tests. The new parameterized tests that were added are technically violating the principle of now parameterizing the expected output of the test, but these are medium-term tests that will go away when the new language selector is added. - The test file exemptions aren't technically "new" in the sense that they're just preserving the existing exemptions except that the exemptions are now split in the same way as the new app/audio versions of the classes. ## 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 This section will be filled in post-merge (oppia#4567 is tracking ensuring that the description is finished later). Commits: * Add pt-Br as option for default voiceover audio. This also makes some infrastructural improvements, a small UX improvement (removing the 'No Audio' option), and fixed a tablet bug in the options menu. * Update app/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt
## Explanation Fixes oppia#4413 This PR updates the placeholder launcher icon with something that better fits the adaptive icon expectations. Note that this PR is removing the rounded icon per the advice of the adaptive icon support page (that it should be preferred not to be used unless necessary), and it's removing the play store icon since it shouldn't be needed. It's also inverting the colors of the icon since that seems to be less visually jarring for the circle-in-circle icon cases. Note that this PR is introducing more binary files to the history, but they're small. Longer term we can look into rendering these PNGs during build time, but it's not an option right now. ## 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 This section will be filled in post-merge (oppia#4567 is tracking ensuring that the description is finished later).
…ing in the latest pt-BR translations (oppia#4565) ## Explanation Fixes oppia#4348 This PR performs the final preparation tasks necessary for the MR1 Beta release to be cut. Specifically: - It updates the version codes & minor version. - It pulls the latest pt-BR translations (for the ones that didn't make it in the automatic Thursday Translatewiki push). - It addresses the final open comments from oppia#4081 which included me needing to do the pt-BR translation for 2 strings related to profile names (I used Google Translate then made minor modifications). There are no tests affected directly by these changes (though we could consider adding some in the future). ## 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 For the most part this PR is not UI-tied (though obviously the 1 English string change and all of the pt-BR string changes affect UIs). I'm deciding not to include screenshots for string-only changes since they aren't very interesting in this case (i.e. they don't seem like they would actually break the UI to warrant including screenshots). Commits: * Create dedicated alpha application component. This simplifies application component management significantly and allows individual build flavors to have their own unique module lists. * Add beta & GA update notices. This also introduces dedicated beta & GA build flavors which is a necessary prerequisite. It also introduces an extra beta, alpha, and dev mode labels for the splash screen (the latter 2 were extra) with 2 second minimum wait timers for beta and alpha to ensure they are seen. A 5-second safety timer was added to ensure the splash screen can always be passed even if something goes wrong at the domain level (since there are now quite a few moving pieces to determine the user's current onboarding state). * Add build tests for the new beta & GA flavors. * Fix broken test per earlier changes. * Fix general broken tests & builds. Tests broken due to changes to the app startup experience haven't yet been fixed. * Lint fixes. * First part of adding tests for GA notices. There's a bunch left to do here, this is mainly needed so that I can transfer changes to a different machine. * Update TransformAndroidManifestTest.kt Correct typos. * Fix tests & static checks. This also removes temporary debug code and TODOs, and finishes the tests for SplashActivity. * Post-merge fixes. * Test fixes. * Fix Gradle test. * Add some string resource checks/tools. Also, fixes major performance issue with all file-based CI checks. * Ensure newline consistency in translated strings. Also, fix reporting in new validation check script. * Add tests & fix static checks. * Update version codes & pt-BR strings. The strings were manually pulled Translatewiki. * Follow-up adjustments after self-review. * Add latest translated pt-BR strings. * Address comments from oppia#4081.
…ppia#4573) * Fixed UX for users with visual imparity * klint issue fixed
…ppia#4570) * fixed text cut off * fix text cutoff in all layouts * add proper naming * develop updated * minor changes * dark_mode:info section * changes: minor requested
…inebreak (oppia#4547) * Reduce MarginStart and MarginEnd. * Update maxLines to automatically to show extra text on new line. * Update maxLines for other portrait layouts. * Make changes as requested on review. * Make more changes as advised by reviewer.
…, ConceptCardFragment and AudioFragment. (oppia#4545) * Added dark mode * removed extra blank line
* base setup. * name correction. * nits. * nits. * storage comment * pss comment * network usage comment. * network usage comment - part 2. * metric addition in proto definitions. * metricLog --> loggableMetric * proto definitions in oppiaLogger * wording update for transmission * dependency/api updates. * nits. * metric controller and oppiaLogger * nits * logger-controller pattern, single utils * nits * comments * log uploading support * nits * nits * performance metric event logger nits. * nits. * logger reinstated. * nits * deleting unused interfaces. * log generator to metric log scheduler * nits * nits -- kdoc, code placing, readability * nits -- kdoc, code placing, readability * worker functions to schedule logging, renaming * nits. * clearing up build errors. * nits. * fixing build errors. * removal of dependency from oppiaLogger and basing the entire implementation on Logger-Controller * performanceMetricController tests + fakeLogger * fakeLogger tests * nits * tests for the new logger. * tests for the worker + renaming of package to logScheduler * tests for work manager initializer * initial base setup for utils test * nits * nits * nit * worker and initializer tests * event bundle creator tests * module tests * nits * performanceMetricsUtils tests * nits * renamed logUpload to logReport + nits * nits * nits * review updates. * nit * review updates - 2 * isAppInForeground revamp * isAppInForeground revamp * nits * domain tests repair * app tests repair * nits. * nits. * nits. * nits. * nit * test update. * test update. * nit * todo issue number update -- static check * initial draft logging * comments. * nits. * utils test + nits * utils test + nits * nits * test rearrangement * nits * test fixes. * impl removal * impl removal * introduction of activity lifecycle callbacks for latency logging and active ui monitoring. * nit * tests for new observer * worker tests * nits * nits * nits * nits * nits * nits * test fixes. * memory and storage tier updates * memory and storage tier updates * updates. * nits * test file exemptions refactor due to file renaming. * additional tests, nit fixes. * delta calculation, nits. * currentActivity update. * nits * nit * proto update. * activity manager shadow and assessor test * nit * nit * observer updates and test fixes * nits. * shadow traffic stats + assessor test fix. * custom shadow tests * module deps * tests * nits * metricLogScheduler refactor and test * exemption removal * nits * updates. * updates. * nit. * variable nits + parameterized test exemption * app component dependencies. * nits * logging module bazel build, config module creation * testing robolectric bazel module update * domain bazel build fixes * working oppia bazel build * nits. * nits. * nit for bazel building * addition of test file for module * bazel tests fixes * more fixes. * reformatting * nits * nits * deps added * dep fix * deps fix * deps fix * nit * nits * nits * review changes. * nits * gradle test fix. * bazel oppia build * utitlity bazel building. * test fixes -- renaming. * deps addition * bazel correction * previous merge correction * all activities with attached proto enums. * nit * nits. * tests for checking screenName in intents. * nits * updates. * nits * bazel update. * nit * post review updates * nits * nits + backgrounding change * extractCurrentAppScreenName change * test file correction * nits * nits. * activity lifecycle tests update. * nits. * null case for screen name + tests for decorator * nits * exhaustive when + test fixes. * nits * nit * test fix * nit * bazel fix * tests fix * regex checks for verifying screen names in activities + tests * bazel test fix * nits * regex tests * nits * todo addition * bazel file formatting * nits. * additional todo update. * parameterized tests for analytics name * nits * background dispatcher for logging * nits * nits * nits * bazel fixes. * regex fixes. * nits * nit * nit * nit * nits * nit * nit fixes. * regex fixes * nits
…nner (oppia#4587) * Fixed text-scaling issue by setting min Height and width * Navigation drawer scaling fixed * text-scaling fixed in promoted-story-card * Removed minHeight=48dp * Fixed more text scaling issues * Optimized code resume lesson * layout_height set to 0dp * Updated promoted_story_card
…ppia#4535) * add locked lesson view, modify completed lesson view * add borders, not started chapter view, recycler multi adapter * add divider item decoration * commit before checkout -- all design modified * add divider item decoration grey color * modify chapter recycler items to have 0 margins * remove unused lines * add in-progress chapter view item * use frame layout to make dotted line thinner * lint * remove unused resources and code analysis * lint * rename file to more describing name * add tests and correct some errors * suggested changes + fix some problems * rename resources * lint * lint * add missing eof * add private identifier to enum * remove 0dp margin * commit requested changes * add framelayout to sw600dp-land for tablets + lint fix for file * rename resources * lint * switch to constraint layout * remove the "period sign" in chapter index. * add field to topicsummary proto, and complete the func for opening chapter list by default * lint * update test * update logic * merge with develop and fix minor bug * these two tests together validate that chapter list is expanded by default * lint * ci fail check * nits * add suggested changes
…ons tab (oppia#4535)" (oppia#4603) This reverts commit e91de5d.
…ard Tab) (oppia#4571) * fixed text cut off * fix text cutoff in all layouts * add proper naming * develop updated * minor changes * dark_mode: topic revision fragment * review: minor chages
@KevinGitonga PTAL. I think this needs to get merged before #3 can be reviewed since develop has a lot of changes to bring in (which makes the review of #3 nearly impossible). |
6 tasks
@BenHenning i have merged the changes to update oppia#4383 to latest develop. |
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
This updates oppia#4383 to the latest develop (in preparation for #3).
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: ...".)For UI-specific PRs only
N/A -- This is just bringing forward the destination branch to include the latest Oppia Android develop changes.