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

test #1

Conversation

shubham419
Copy link
Owner

@shubham419 shubham419 commented Dec 27, 2022

Explanation

We can successfully set a profile image from the gallery.

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).

After

After.mp4
after.mp4

bhaktideshmukh and others added 30 commits June 7, 2022 01:53
…4380)

* added dark mode for pin_password

* renamed show string color

* added error color

* added show_hide_eye icon color
…a fragment (#4029)

* added multipane.

* added fragment ProfileEditFragment opening in multipane window

* added ImageButton in administrator_controls_activity.xml
added logic by implementing listeners and handlers for  ProfileEditFragment.

* nit fixes.

* removed a error creating code.

* added functionality for extra controls title.

* nit fixes.

* added back button in extra title.

* added back button in extra title.

* tried to implement back stack management.

* formatted the code.

* added the backstack count.

* formatted the code.

* added back stack support and also added kotlin fragment dependency in build.gradle(:app).

* changed camel case to snake case of one color property in administrator_controls_activity.xml.

* added route to ProfileEditActivity

* added route to ProfileEdit.

* reformatted the code.

* added listener in app/bazel in LISTENERS.

* nit fixes.

* nit fixes.

* added backstack name tag.

* removed an unused dependency of AdministratorControlsFragmentPresenter.

* nit fix.

* fixed ClassCastException.

* fixed Route in listeners of app/bazel.

* nit fixes for Kdocs.

* nit fixes.

* nit fixes.

* added test files Liststers in test_file_exemptions.textproto

* shorten character length.

* added kdocs for methods.

* nit fixes for regex validation.

* shifted tests to AdministratorControlsFragmentTest.kt.

* nit fixes.

* added the backstack name for AdministratorControlsFragment Backstack.

* created a ProfileEditFragmentTest file and added tests in it
added activity label check in ProfileEditActivityTest
added a test in AdministratorControlsFragmentTest.kt to check for the back button is gone.

* nit fixes.

* nit fixes.

* added import references

* added tests for profile_edit_tablet.

* nit fixes for formatting.

* added Coroutines Dispatcher in the test and other nit fixes.

* used constructor injection instead of field injection in ProfileEditFragmentPresenter.kt

* added ProfileEditViewModel observer code.

* formatted the code.

* changed the view model scope from activity to fragment.

* nit fixes.

* removed some files in kdoc_validity_exemptions.textproto

* added Kdocs for AdministratorControlsActivity.kt

* added Kdocs for AdministratorControlsActivityPresenter.kt

* more Kdocs

* nit fixes

* nit fixes

* nit fixes

* nit fixes

* nit fix for Kdoc

* removed the back stack.

* removed the onResume in AdministratorControlsActivity.kt.

* added custom implementation for backstack.

* added new implementation for back button.

* bug fix for back button listener.

* nit formatting fixes.

* nit fixes.

* nit fixes.

* nit fixes.

* nit fixes.

* starting to implement saved state

* completed state handling on configuration change.

* nit fixes.

* added some tests and updated the test rule.

* updated ProfileEditFragmentTest.kt test rule.

* broken down the checking and performing action in two steps.

* Update app/src/main/java/org/oppia/android/app/administratorcontrols/LoadProfileEditListener.kt

Co-authored-by: Ben Henning <[email protected]>

* Update app/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsViewModel.kt

Co-authored-by: Ben Henning <[email protected]>

* nit fixes.

* used replace instead of add in fragment transactions.

* nit fixes.

* nit fixes.

* added two tests for configuration change of tablet.

* fixed configuration changes and added back button support.

* added test coroutines dispatchers.

* fixed typo for LoadProfileEditListener.kt

* added support for configuration change of ProfileEditDeletionDialogFragment in tablet mode.

* refactored names of declared listeners and also added then in app/build.bazel listeners

* added tests for ProfileDeletion in tablet in AdministratorControlsFragmentTest.kt

* nit fixes.

* added some activity related tests in AdministratorControlsActivityTest.kt

* nit fixes.

* added listeners to test_file_exemptions.textproto

* sorted test_file_exemptions.textproto

* nit fixes.

* nit fixes.

* nit fixes.

* removed unused imports.

* added coroutine dispatchers.

* nit fixes.

* created test activity wrapper
also added the test activity and presenter file in test and kdoc exemptions
shifted and migrated tests accordingly for the Fragment and Activity of ProfileEdit.

* nit fixes.

* optimised and shifted some test cases.

* made some helper functions shortened some tests and some nits.

* nit fixes.

* added a label in the activity.

* Update app/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivity.kt

Co-authored-by: Ben Henning <[email protected]>

* Update app/src/main/java/org/oppia/android/app/settings/profile/LoadProfileEditDeletionDialogListener.kt

Co-authored-by: Ben Henning <[email protected]>

* nit fixes.

* added a wrapper test activity for AdministratorControlsFragmentTest.kt

* nit fixes.

* added label and nits.

* fixed the test activity for AdministratorControlsFragment.kt

* Apply suggestions from code review

Co-authored-by: Ben Henning <[email protected]>

* added helper functions for tests in AdministratorControlsFragmentTest.kt
and some nit changes.

* nit fixes.

* Apply suggestions from code review

Co-authored-by: Ben Henning <[email protected]>

* nit fixes.

* removed the implementation of the overridden function in AdministratorControlsFragmentTestActivity.kt

* nit fixes.

* Apply suggestions from code review

Co-authored-by: Akshay Nandwana <[email protected]>

* removed unused methods in test activity for AdministratorControlsFragment class.kt

* Update app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt

Co-authored-by: Ben Henning <[email protected]>

* nit fixes.

* nit fixes.

* nit formatting fixes.

* added some missing view dependencies in app/BUILD.bazel

* added required modules for ProfileEditFragmentTest.kt in Dependency graph.

* nit fixes.

Co-authored-by: Ben Henning <[email protected]>
Co-authored-by: Akshay Nandwana <[email protected]>
…4379)

* added dark mode for onboarding

* optimised component_colors

* changed fillColor in landscape files

* nit change
* qualifiers and constants for metric record and upload times

* comments

* dagger provides for flags

* rename to enablePerformanceMetricCollection

* nit fixes

* nits

* nit

* updates.

* nits.

* name correction.
…ios and proportional reasoning (#4386)

* fixed text cut off

* fix text cutoff in all layouts

* add proper naming

* fixed title cutoff

* minor fix

* minor changes
…les (#4205)

* added regex checks

* reverted unnecessary code change

* debugging regex

* added double backslash instead of one

* debugging regex

* regex debugging

* extended regex pattern to include >@

* fixing RegexPatternValidationCheckTest

* fixed regex checks

* added regex for color_defs not having raw hex values

* Added ColorsValidationCheck.kt script

* lint fixes

* added to ColorsValidationCheck.kt

* removed unnecessary semicolons

* added eof

* reverted added scripts

* reverted changes

* updated color name

* added file prefix check

* added all regex checks

* fixed nit errors

* reverted /x to /w

* added file names to test names

* reverted adding file name to one test during line length exceeding

* fixed color names in tests

* fixed failing regex checks test

* lint fix

* renamed a test

* added requested changes

* fixed failed static checks due to wrong color names
…ionPlayer (#4404)

* added dark mode to buttons & progress bar

* add submit_text_color

* resolving failing static checks
…ptCardFragment and AudioFragment (#4395)

* added dark mode

* Rearranged code in concept_card_fragment.xml

* corrected
…t, ConceptCardFragment and AudioFragment (#4395)" (#4428)

This reverts commit 3441214.
* Update CODEOWNERS

Remove anandwana001 from codeowners.

* Update CODEOWNERS

Correct instrumentation codeowner pattern.

This is needed now that broad test ownership is no longer defined.
* 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
…xploration (#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
)

* 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
…y, MarkStoriesCompletedActivity and MarkTopicsCompletedActivity (#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
* Rich text changed for hyperlink text

* Failing test fixed

* klint issue fixed
…ry (#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
…size in extra large (#4385)

* fixed_continue_action_button

* fixed_continue_action_button

* add layout width

* removed continue_submit_button_width dimens
…ts. (#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.
…omponent (#4414)

## Explanation
Fixes part of #4410, #4300, and #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 #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 (#4419 is tracking this).
- This PR is a recreation of #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 #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 #4492 by introducing a complete revamp of the hint & solution management flow in the app (see designs below).

Fixes #3537 by merging the hint summary layouts.

Note that one part of #4492 isn't implemented: pausing the hint timer while hints are being viewed. Ensuring this is properly implemented is being tracked as part of #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]>
…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.
translatewiki and others added 27 commits November 9, 2022 10:05
## Explanation
Fixes #4586: Changed layout_width to sp instead of dp as per this
[comment](#4586 (comment)).
This actually solves the problem of text scaling. Improved text scaling
by setting layout_height and layout_width to wrap_content and setting
min_height = 48dp and min_width = 48dp (may vary in some cases).
Introduced a tests which will make sure that width is set in SP not in
DP.

Note: In accessibility scanner it still shows to improve text scaling
but visually or practically this solution looks accurate.

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [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)).

## Screenshots For Mobile (Promoted Story Card)

Default Fonts          |  Large Fonts
:-------------------------:|:-------------------------:
![Screenshot from 2022-11-05
01-27-47](https://user-images.githubusercontent.com/43074241/200065857-3408aca5-7cac-484b-bef8-91aac6a35047.png)
| ![Screenshot from 2022-11-05
01-28-36](https://user-images.githubusercontent.com/43074241/200065890-89013801-4b13-4fec-a53c-e77b802eedde.png)
![Screenshot from 2022-11-05
01-30-00](https://user-images.githubusercontent.com/43074241/200066086-30a9b533-5a29-4f86-919d-a0fdc3ab8e9b.png)
| ![Screenshot from 2022-11-05
01-29-23](https://user-images.githubusercontent.com/43074241/200066127-8718ce6c-d22f-4d7d-96b4-9f2698bc3185.png)

## Screenshots for Tablet (Promoted Story Card)
Default Fonts          |  Large Fonts
:-------------------------:|:-------------------------:
![Screenshot from 2022-11-05
01-31-14](https://user-images.githubusercontent.com/43074241/200066306-d0ebedeb-af87-43e4-9509-a7a50e95d77e.png)
| ![Screenshot from 2022-11-05
01-31-36](https://user-images.githubusercontent.com/43074241/200066339-6f52bd98-012a-42c7-ab44-ea6ca1593554.png)
![Screenshot from 2022-11-05
01-24-34](https://user-images.githubusercontent.com/43074241/200066489-10dcf823-b6bd-4704-9dba-9bdc6d0cf44e.png)
| ![Screenshot from 2022-11-05
01-25-16](https://user-images.githubusercontent.com/43074241/200066530-6c43a78e-8465-4693-8cdf-7438b23e8b3a.png)

Failing robolectric tests when we change the width in dp. 
![Screenshot from 2022-11-07
14-39-57](https://user-images.githubusercontent.com/43074241/200274329-2040e1bc-ae14-465f-a0a2-3c562e53fb66.png)
## Explanation
Fixes #4641
Fixes #4674
Fixes #4579
Fixes #4591

Miscellaneous fixes for Beta MR2. Specifically:
- #4641 is addressed by updating the terms of service wording. No test
is needed here since manual verification is sufficient.
- #4674 is addressed by replacing the existing automatic topic updates
platform with a generic "all downloads" one (which will be used for all
downloads gating moving forward). Admin controls, add profile, and
profile edit pages have been updated to only show downloads-related
settings if this flag is enabled. Corresponding tests have been updated.
FAQ question 8 was also removed since it asks about how to download
lessons, and this support isn't in the app yet. Some strings referencing
downloads have also been updated.
- #4579 is addressed by properly handling the case where unpublish
topics with previous progress would cause the topic list to fail to
load. A test was added to verify the fix, but it required a new
FakeAssetRepository to be introduced.
- #4591 is addressed by fixing
FractionInputHasIntegerPartEqualToRuleClassifierProvider's input type
(which should be SIGNED_INT but was incorrectly NON_NEGATIVE_INT before;
this seems to have been wrong since the classifier was introduced).

Test exemption: FakeAssetRepository doesn't have a test added since it
uses a real production AssetRepository, and tests don't yet exist for
that). They ought to be tested together.

## 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
Screenshots showing the before & after changes due to hiding downloads
options:
| | Without changes | With changes |

|------------------|-----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
| Profile creation |
![image](https://user-images.githubusercontent.com/12983742/200823396-bd12d392-a2f4-4881-b12a-b4dc4168d078.png)
|
![image](https://user-images.githubusercontent.com/12983742/200821992-9ec50696-80f3-47d7-aa13-515f7317ab9a.png)
|
| Profile edit |
![image](https://user-images.githubusercontent.com/12983742/200823563-694a82e8-67e7-4568-b4f0-7a17967f82b1.png)
|
![image](https://user-images.githubusercontent.com/12983742/200822179-8fc84d83-7add-49f4-a2db-6ddb8c7150eb.png)
|
| Admin controls |
![image](https://user-images.githubusercontent.com/12983742/200823499-3e5f5e92-db98-455a-a8e6-56b26b562554.png)
|
![image](https://user-images.githubusercontent.com/12983742/200822125-7243faad-78e1-40e6-8c09-c0610c7a01f6.png)
|

Espresso test rules for affected UI tests:
| Affected Test | Test Results |

|-----------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| AdministratorControlsActivityTest | (Skipped since there are tablet
tests to also run, so the suite won't actually pass cleanly) |
| ProfileEditActivityTest | (Same as above) |
| AdministratorControlsFragmentTest |
![oppia_assorted_beta_fixes_passing_admin_controls_fragment_test](https://user-images.githubusercontent.com/12983742/200824315-2f54ee80-570e-45f9-85ce-a2c094bf5058.png)
|
| ProfileEditFragmentTest |
![oppia_assorted_beta_fixes_passing_profile_edit_fragment_test](https://user-images.githubusercontent.com/12983742/200824336-949122e8-f718-4a02-9f13-5559ba8a2726.png)
|

New Robolectric tests failing for corresponding regressions:
| Issue | Test Suite | Failure Specifics | Failure Results |

|-------|--------------------------------------------------------------|-------------------|---------------------------------------------------------------------------------------------------------------------------------------|
| #4579 | TopicListControllerTest | 1/36 tests fail |
![failing_topic_list_test](https://user-images.githubusercontent.com/12983742/200827182-dde7ab82-f6e2-4e58-b116-073653673441.png)
|
| #4591 | FractionInputHasIntegerPartEqualToRuleClassifierProviderTest |
22/23 tests fail |
![oppia_failing_fraction_test](https://user-images.githubusercontent.com/12983742/200826395-e0c384ab-920c-45b5-be88-82b19c3bfed0.png)
|

Missing artifacts:
- Accessibility: not particularly relevant to these changes since the
user-facing changes are either crash fixes or removing UI elements
(except in the case of terms of service, but that doesn't require
additional a11y testing coverage or demonstration here).
- RTL: nothing in this change affects RTL specifically.
- Landscape: since the main UI changes are removing elements, the
changes to tablet aren't very "interesting" to show off.
- Tablet: same rationale as for landscape.
- Internationalization: same rationale as RTL.
)

## Explanation
Fixes #4628
Fixes #4667

The core fix for #4628 is splitting the language configuration between
"all languages the app supports" and "production-ready languages." This
is now configurable per-binary where all pre-beta binaries include all
languages, and the beta & GA binaries only include production-ready
languages (those are, languages for which we always aim to have 100%
content translations). Tests use the "all languages" configuration, by
default, for parity with the developer version of the app. This required
a small change where we define the language proto as part of the shared
``//model`` module rather than as a separate package. As was before,
this proto is only loaded in Bazel builds of the app since our Gradle
pipeline doesn't support automatically textproto->binary proto
conversion during build time.

To ensure that the app strings are filtered out, the supported languages
configuration proto that's included in the app is passed through a new
script that strips out all resources (including non-strings) from the
binary. This has actually removed ~400KiB even from the pre-release
binaries since our third-party assets include a bunch of strings outside
our core languages.

New output now shows when building the app with Bazel to make it clearer
what sorts of resources are being dropped due to incompatible languages:
```
82 resources are being removed that are tied to unsupported languages: [af, am, as, az, be, bg, bn, bs, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-IN, en-XC, es, es-419, es-US, et, eu, fa, fi, fr, fr-CA, gl, gu, hr, hu, hy, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, or, pa, pl, pt, pt-PT, ro, ru, si, sk, sl, sq, sr, sr-Latn, sv, ta, te, th, tl, tr, uk, ur, uz, vi, zh-CN, zh-HK, zh-TW, zu] (size reduction: 391239 bytes).
```
(When building oppia_dev)

```
85 resources are being removed that are tied to unsupported languages: [af, am, ar, as, az, be, bg, bn, bs, ca, cs, da, de, el, en-AU, en-CA, en-GB, en-IN, en-XC, es, es-419, es-US, et, eu, fa, fi, fr, fr-CA, gl, gu, hi, hr, hu, hy, in, is, it, iw, ja, ka, kk, km, kn, ko, ky, lo, lt, lv, mk, ml, mn, mr, ms, my, nb, ne, nl, or, pa, pl, pt, pt-PT, ro, ru, si, sk, sl, sq, sr, sr-Latn, sv, sw, ta, te, th, tl, tr, uk, ur, uz, vi, zh-CN, zh-HK, zh-TW, zu] (size reduction: 351087 bytes).
```
(When building oppia_beta)

#4667 is included in this PR despite it being an asset downloader-only
fix out of convenience & since it's a related issue. The problem in the
downloader was that translations were being incorrectly copied over to
the new proto structure for lessons (which isn't used in the app yet,
but is used for image downloading) which led to non-English images not
being scraped from content HTMLs and thus not downloaded and included in
the embedded assets for releases. We'll be adding a manual QA test to
make sure that non-English content images load correctly.

## 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
Screenshots showing how English, Brazilian Portuguese, and Swahili are
handled with the changes in this PR (between developer and beta builds
of the app):

| | Dev flavor -- with PR changes | Beta flavor -- with PR changes |

|----------------------|-----------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|
| English |
![image](https://user-images.githubusercontent.com/12983742/200829756-bbae1ab4-c40f-4b96-8404-eb12fdecb418.png)
|
![image](https://user-images.githubusercontent.com/12983742/200831324-0b03a8c5-654d-41b5-bbfd-206a5a4b143f.png)
|
| Brazilian Portuguese |
![image](https://user-images.githubusercontent.com/12983742/200829980-7025ce6b-5861-4a61-aff1-86b4c66fe774.png)
|
![image](https://user-images.githubusercontent.com/12983742/200831480-73ba6d73-2685-4dab-895d-ed915bcb6f65.png)
|
| Swahili |
![image](https://user-images.githubusercontent.com/12983742/200830150-7b3c5568-deaa-46af-83b2-e3da813e984a.png)
|
![image](https://user-images.githubusercontent.com/12983742/200831722-d5cc7ebf-1521-412a-947b-f2d9dc899957.png)
|

As can be seen from the table, all three languages are fully supported
except when using beta with the changes introduced by this PR (where
Swahili is dropped since it's not yet a 100% supported, production-ready
language for the app). Note that in the case of Swahili, it falls back
to English simply because that's how my device was configured at the
time (it will fall back to whatever the system-secondary language is set
to).

Note that other typical screenshots/tests are not included in this PR,
including for Espresso. From a high-level perspective, the main
difference in this PR is which app and content strings are ultimately
included and supported within the app. Given this is
inclusion/exclusion, the screenshots above + manual verification via e2e
tests are sufficient. Beyond that, properly testing these changes would
require e2e tests that can use the production assets (which current
Espresso tests don't have access to).
## Explanation
Fixes #4632
Fixes #3779

Adds support for upgrading checkpoints to support the latest versions of
explorations if the checkpoint was saved for an older version, in cases
where it's very likely reasonable to upgrade the checkpoints. The
methodology applied is to simulate "replaying" the full lesson using the
past answers that were submitted in the checkpointing, and verifying
that the same outcome would more or less be achieved by ensuring:
- The content IDs for received feedback haven't changed (but the HTML
might, e.g. for typos).
- The destination of a state hasn't changed.
- The pending & all completed states still exist.

The cases that currently can't be handled (but may be reasonable to in
the future):
- State renaming (these are treated as failures).
- Reconstituting a compatible hint/solution state (the state is just
reset for now so the user can re-trigger the hints if they get stuck
after returning to the lesson).

As part of testing this:
- A bunch of new assets were introduced to directly demonstrate
upgrading flows that lead to both compatibilities and incompatibilities
(these were generated).
- A fake ``ExplorationRetriever`` needed to be introduced in order to
support proxying exploration loading (so that newer versions can be
force-loaded). This required splitting the existing ExplorationRetriever
into an interface & implementation.
- ``ExplorationStorageModule`` has been moved one package up for better
organization (which led to a bunch of other files being changed).
- Test-only checkpoint database storage sizes have been 150 bytes in all
related tests, so this has been made as the test-specific constant in
the new ExplorationStorageTestModule.

Separately, ExplorationRetriever was updated to mostly force background
thread interaction by using a suspend method for actual exploration
loading (which led to some small test changes).

#3779 was also fixed (since I was changing this code, anyway) by
returning a default details object instead of failing whenever a
checkpoint can't be found for a given exploration. Note that no test was
added for this solution since doing so would be a bit painful (as it
requires loading and verifying an exploration at the activity level
where a bunch of the lower-level tools from StateFragment{Local}Test
aren't available), and the failure case here is something that will
definitely be caught by e2e tests so the risk is low for a serious
regression.

## 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 does affect UI flows for checkpoints, I'm opting to not
include a walkthrough since it's difficult and time consuming to
simulate the local upgrade flow. We'll be testing this specially during
manual QA testing for this release to ensure it works as expected.

Similarly, app module tests haven't changed in a major way so I'm
skipping showing Espresso results here. The Robolectric tests results
ought to be a sufficiently good proxy for correctness.
## Explanation
Fixes #4405: 
Refactoring EventLogger to AnalyticsEventLogger to make it more
specific, in line with refactoring other event loggers.

Changes to:
- [x] Application files: all implementations and usages
- [x] Dagger files
- [x] Rename associated test files, imports and variables
- [x] EventLogger Fakes and the DebugEventLogger

Did not make changes to the following, given they are already pretty
specific:
- [ ] PerformanceMetricsEventLogger

Refactored `scripts/assets/test_file_exemptions.textproto` to update the
new path of `DebugAnalyticsEventLogger`, `FirebaseAnalyticsEventLogger`
and `AnalyticsEventLogger` to exempt them from corresponding file
checks.
Refactored `file_content_validation_checks.textproto` to exempt
`FirebaseAnalyticsEventLogger` from prohibited _Locale_ use check.

## 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)).

Co-authored-by: Joshua Murigi <[email protected]>
Co-authored-by: MAZAKPE <[email protected]>
Co-authored-by: Ben Henning <[email protected]>
Co-authored-by: Vraj Desai <[email protected]>
Co-authored-by: translatewiki.net <[email protected]>
## Explanation
Bumps the minor version & APK version codes to prepare for the upcoming
beta MR2 release.

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [ ] ~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 -- Version code-only change (doesn't affect user-facing
functionality).
…ed during binary optimizations (#4731)

## Explanation
Fixes #4712

Proguard was renaming CoordinatorLayout behaviors and removing
implementation constructors, where both can be referenced via reflection
in CoordinatorLayout. We haven't run into this issue before since it
seems the new bottom navigation component introduced in #4482 is the
first time we actually started using CoordinatorLayout behaviors.

Note that this is inherently difficult to test as it requires verifying
runtime functionality in a Proguard-optimized build. Hence, it's only
testable with end-to-end tests (and our own end-to-end tests currently
are manual tests) so no new unit/integration tests are being added.

Note also that this PR will be cherry-picked for the upcoming beta MR2
release.

## 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 doesn't seem particularly valuable to fill out here--the video
would just show the options menu opening as it should (and does for
developer builds). I've verified it works locally, and #4712 will
require reverifying once the PR is merged,
… no next revision card (#4743)

## Explanation
Fixes #4645 

This PR hides the "Continue Studying" text when there is only one
revision card in the list. It does so by adding a condition to the
visibility of this view inside the corresponding xml file. This PR is
backed up by unit tests.

## 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

Before

![image](https://user-images.githubusercontent.com/64526117/202563107-452cbbf0-aa14-43cb-91c6-6b256061851f.png)

After

![image](https://user-images.githubusercontent.com/64526117/202565577-00b2299e-f92f-4dcf-9f0a-30830641e191.png)
)

## Explanation
Fixes #4709

This reverts commit 846657e from PR
#4392. See
#4709 (comment)
for a detailed explanation for why this reversion is the correct
approach.

Note that this PR will be cherry-picked into the 0.10 release branch for
the upcoming MR2 beta release.

## 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 is a mostly clean reversion of #4392, so see that PR for an idea on
how marquees behaved prior to that PR (as this PR returns the app to
that behavior).
## Explanation
Updates version codes for RC02 of Beta MR2 (since cherry-picks were
needed).

## 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: ...".)~
- [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".
- [ ] ~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 infrastructural change that doesn't affect the user
experience.
## Explanation
Fixes #4746

This PR updates the app to target SDK 31 instead of 30 as this is now
required for continued Play Store releases.

Verification from the PR standpoint heavily relies on CI checks passing.
Beyond that, manual testing is needed to ensure no Android behavior
changes have led to regressions or new breakages.

This PR does NOT include updating Robolectric tests to run on SDK 31
since it's actually much harder than I had expected, and would lead to
potential production-affecting changes (as it would require updating
Kotlin & potentially other dependencies). #4748 is tracking fixing this
in the long-term.

## 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, mostly. While this is an infrastructure change, Android component
behaviors change with different target SDKs so it's quite possible for
there to be UI regressions or issues. Fortunately, most of the UI used
by the app is material and Jetpack (meaning it ships with the app and
will be mostly unaffected by target SDK changes).
<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation
<!--
- Explain what your PR does. If this PR fixes an existing bug, please
include
- "Fixes #bugnum:" in the explanation so that GitHub can auto-close the
issue
  - when this PR is merged.
  -->
Fixes #4445

This PR is part of the GSoC project: Interactive Onboarding Flow which
fixes #4445. It does so by creating a new custom view which connects to
the `ContinueInteractionItemViewModel`, which receives a flag to start
animating from the explorationProgressController. We wait for 45 seconds
when the first card of a lesson is opened by the user, and then start
the animation for the continue button.

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [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
<!-- Delete these section if this PR does not include UI-related
changes. -->
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


https://user-images.githubusercontent.com/64526117/202579860-643e2d20-b969-438d-be86-f690630b8278.mp4

Co-authored-by: Ben Henning <[email protected]>
Co-authored-by: Ben Henning <[email protected]>
## Explanation

Fixes #2546 

Rename instances of ../recentlyplayed/OngoingStory to PromotedStory.

- [x] ongoingStoryListSummaryResultLiveData =>
promotedStoryListSummaryResultLiveData
- [x] fun subscribeToOngoingStoryList => fun
subscribeToPromotedStoryList in RecentlyPlayedFragmentPresenter
- [x] fun subscribeToOngoingStoryList => fun
subscribeToPromotedStoryList in RecentlyPlayedFragment
- [x] class name OngoingStoryViewModel => PromotedStoryViewModel
- [x] class name OngoingListAdapter => PromotedStoryListAdapter
- [x] private class OngoingStoryViewHolder => PromotedStoryViewHolder
- [x] interface name OngoingStoryClickListener =>
PromotedStoryClickListener

Note: `ongoing_story_card` is used to show stories in the "recently
played screen", under "Played within the last week and recommended
stories", shown when a user clicks "View all promoted stories" from the
home screen. I have renamed it to `recently_played_story_card.xml`.

`promoted_story_card.xml` is the layout file used to show promoted
stories on the home page.

I removed `PromotedStoryClickListener`, `PromotedStoryListAdapter` and
`PromotedStoryViewModel` from Kdoc excemption since the kdocs have been
added.

## 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)).

Co-authored-by: Ben Henning <[email protected]>
…nctionality (#4699)

<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation
<!--
- Explain what your PR does. If this PR fixes an existing bug, please
include
- "Fixes #bugnum:" in the explanation so that GitHub can auto-close the
issue
  - when this PR is merged.
  -->
fixes #4452
fixes #4453
fixes #4454
fixes #4455
fixes #4456
fixes #4457
fixes #4458 
fixes #4459

This PR introduces the SpotlightFragment into the codebase, which is
essentially a powerful, robust API that can highlight or 'spotlight'
certain parts of the UI to create an onboarding experience for the same.
We introduce the [Spotlight
library](https://github.com/TakuSemba/Spotlight) into the codebase
handles the highlighting of certain elements on screen. The work done in
this PR augments the functionality of the library, by dynamically adding
arrows and hints which create an over-all Spotlight onboarding
experience to the app, beautifully surfacing some functionalities of the
app to a new user.

We also work on making sure that the spotlight is only shown to a user
only once - the protocol buffers are used to save which spotlight has
already been seen.

The purpose of this PR is to introduce an API that the future
contributors can use to seamlessly integrate spotlights onto UI elements
as and when needed, with minimal coding.

This PR also implements spotlights for the onboarding, home, topic and
exploration screens that are required at this time.

For accessibility, the content descriptions of all the elements on which
spotlights are required today are updated. If talkback is turned on, the
spotlights will not show up.

The entire spotlight functionality is also gated behind a feature flag.
This entire PR is backed by tests.

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [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
<!-- Delete these section if this PR does not include UI-related
changes. -->
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

Co-authored-by: Ben Henning <[email protected]>
Co-authored-by: madhurgera2 <[email protected]>
Co-authored-by: JishnuGoyal <[email protected]>
## Explanation
Fixes #4750

This PR fixes issues that were introduced in #4747 when trying to use
the app on an actual API 31 device. The problems come from two breaking
changes in Android 12:
- Public activities, services, and providers must be marked as exported
(this only affected our SplashActivity).
- PendingIntents must be explicitly marked as mutable/immutable (this
only affects WorkManager, but that's tricky for us).

The WorkManager issue was fixed in version 2.7.0 (where we currently
depend on version 2.4.0), but we can't actually updated in a way that
would be low-risk to cherry-pick (since it would require updating our
Kotlin SDK to 1.5.x instead of 1.4.x). A safer option is to disable
WorkManager outright, but while doing this I discovered that we have
unrestricted getInstance() calls that will force WorkManager to get
created regardless. This was fixed by introducing a new
analytics-specific application creation listener and ensuring those do
not get called for SDK 31+. #4751 is tracking fixing this longer term.
Approximately 9% of our users will have analytics disabled until we
properly fix it & push a new release.

Note that I opted for a fix-forward instead of rolling back #4747 since
these are small PRs that need to be easily cherry-picked, and it's
guaranteed that the target SDK change be isolated to SDK 31 devices (so
developers would still be able to use the app on lower versions).

Proper testing for ensuring this works requires manual testing, for now
(as we don't have automated end-to-end tests). I manually verified that
the app opens and can be used on Android 12. One test exemption was
added for the new listener since it's an interface and thus not
testable.

A new regex check was also added to ensure WorkManager.getInstance calls
always go through the new listener to avoid future situations where they
can accidentally trigger an instance creation when it's not wanted.

## 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 is mainly an infrastructural change as it's literally fixing
whether the app can open at all on SDK 31+ devices, so there's not much
to show.
## Explanation
Fixes #4756

This PR introduces a new event for tracking individual play sessions
where a learner has reached a level of 'invested' engagement, where
'invested' here is considered to be strong engagement with a likelihood
of continuing at least with that play session.

This metric is planned to be used as one of the team's conversion
metrics to better help track the user marketing pipeline by helping to
determine how we can better reach learners who are more likely to reach
this level of engagement with lessons (and, thus, hopefully learn what
they need to).

Note that the event is based on a single play session, not a profile or
even a single exploration (so if a user pauses and resumes an
exploration, the count for engagement resets **from that point**).
Engagement means completing _and_ moving past at minimum 3 cards (which
may just be simple 'Continue' button interactions).

For simplicity, this PR keeps the new event name the same between the
Kenya & non-Kenya styles of naming events.

I've verified that the event is logging as expected using Firebase's
DebugView:


![image](https://user-images.githubusercontent.com/12983742/203501899-dbccd386-4e04-4966-82bc-a4646b3b742c.png)

## 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 is introducing a log and has no impact on the UI or UX of the
app.
<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation
<!--
- Explain what your PR does. If this PR fixes an existing bug, please
include
- "Fixes #bugnum:" in the explanation so that GitHub can auto-close the
issue
  - when this PR is merged.
  -->

fixes #4764 

Updated screenshots:

![WhatsApp Image 2022-11-26 at 5 07 26 PM
(1)](https://user-images.githubusercontent.com/64526117/204086939-e5433525-0f28-4686-b599-4515e26cb173.jpeg)
![WhatsApp Image 2022-11-26 at 5 07 26
PM](https://user-images.githubusercontent.com/64526117/204086940-3fd0bb20-e15d-4a6f-a7b5-bd7237f0350c.jpeg)
![WhatsApp Image 2022-11-26 at 5 07 25 PM
(1)](https://user-images.githubusercontent.com/64526117/204086942-64611338-c428-4e11-9646-65fdea536c61.jpeg)
![WhatsApp Image 2022-11-26 at 5 07 25
PM](https://user-images.githubusercontent.com/64526117/204086943-5f09b2a3-c4d5-4c8d-974b-bcf74adfd8b9.jpeg)

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [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
<!-- Delete these section if this PR does not include UI-related
changes. -->
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

Portrait

![WhatsApp Image 2022-11-25 at 10 28 03 PM
(1)](https://user-images.githubusercontent.com/64526117/204029760-d312e050-72b6-42d1-84bf-5cf96080eee7.jpeg)
![WhatsApp Image 2022-11-25 at 10 28 03
PM](https://user-images.githubusercontent.com/64526117/204029764-c3d74f21-5670-4e13-ac37-79ba3843eec6.jpeg)
![WhatsApp Image 2022-11-25 at 10 28 04 PM
(1)](https://user-images.githubusercontent.com/64526117/204029767-943a2fb9-831b-4917-a9bd-24b1d866ba0e.jpeg)
![WhatsApp Image 2022-11-25 at 10 28 04 PM
(2)](https://user-images.githubusercontent.com/64526117/204029770-8797e881-d388-49bc-a0e4-4fae0235f801.jpeg)
![WhatsApp Image 2022-11-25 at 10 28 04
PM](https://user-images.githubusercontent.com/64526117/204029773-367ee30f-75d0-472b-889d-ea791dae7f27.jpeg)
![WhatsApp Image 2022-11-25 at 10 28 05
PM](https://user-images.githubusercontent.com/64526117/204029774-b2591983-ac05-4607-9127-86423d1ac320.jpeg)
![WhatsApp Image 2022-11-25 at 10 31 51
PM](https://user-images.githubusercontent.com/64526117/204030109-73450d40-9317-4d27-872c-8daed98b5032.jpeg)

Land:

![WhatsApp Image 2022-11-25 at 10 35 15
PM](https://user-images.githubusercontent.com/64526117/204030662-c6c18c7b-80bd-48aa-904c-e50a435d883b.jpeg)
![WhatsApp Image 2022-11-25 at 10 35 16 PM
(1)](https://user-images.githubusercontent.com/64526117/204030668-1c944b62-22f2-4af9-8956-58f88a94c2d7.jpeg)
![WhatsApp Image 2022-11-25 at 10 35 16 PM
(2)](https://user-images.githubusercontent.com/64526117/204030672-90fcc908-1dd1-4a5c-8867-33598c43bb21.jpeg)
![WhatsApp Image 2022-11-25 at 10 35 16
PM](https://user-images.githubusercontent.com/64526117/204030673-39bba84b-f387-464e-b28d-7129297d93c4.jpeg)
![WhatsApp Image 2022-11-25 at 10 35 17 PM
(1)](https://user-images.githubusercontent.com/64526117/204030678-972298fa-e223-4b8f-8eb9-297f05745fce.jpeg)
![WhatsApp Image 2022-11-25 at 10 35 17
PM](https://user-images.githubusercontent.com/64526117/204030681-5260b61b-9bce-46b5-83d7-ee4a9c98c650.jpeg)

mobile rtl:
![WhatsApp Image 2022-11-25 at 10 44 58
PM](https://user-images.githubusercontent.com/64526117/204031771-f4e2d2e1-e91d-4505-b9e9-78cf148092c6.jpeg)
![WhatsApp Image 2022-11-25 at 10 44 59 PM
(1)](https://user-images.githubusercontent.com/64526117/204031775-452d7e7d-bcb0-4987-9431-3d38e07f5719.jpeg)
![WhatsApp Image 2022-11-25 at 10 44 59 PM
(2)](https://user-images.githubusercontent.com/64526117/204031779-f4e75421-f8fe-4325-9f2b-67970889eb73.jpeg)
![WhatsApp Image 2022-11-25 at 10 44 59
PM](https://user-images.githubusercontent.com/64526117/204031782-852b142e-4b89-47ba-9de8-39ae9f949442.jpeg)
![WhatsApp Image 2022-11-25 at 10 45 00 PM
(1)](https://user-images.githubusercontent.com/64526117/204031785-d5cfa361-815a-40cb-be42-0b52ac46e8d0.jpeg)
![WhatsApp Image 2022-11-25 at 10 45 00 PM
(2)](https://user-images.githubusercontent.com/64526117/204031787-b03affa8-08f2-41a3-8e4a-a2d00d535f20.jpeg)
![WhatsApp Image 2022-11-25 at 10 45 00
PM](https://user-images.githubusercontent.com/64526117/204031790-ccb3fde6-ad6d-45d6-8d10-5d158023287f.jpeg)

Tablet:

![image](https://user-images.githubusercontent.com/64526117/204032348-aabac5c6-7264-4b9b-9be8-c35b83329446.png)

![image](https://user-images.githubusercontent.com/64526117/204032377-a668902f-e585-49ab-801a-bf475abdc9e0.png)

![image](https://user-images.githubusercontent.com/64526117/204032427-36cb7df7-442e-44b6-8b0b-a0231466a61a.png)

![image](https://user-images.githubusercontent.com/64526117/204032539-44953af2-ed7c-463e-8896-71d90c567a4c.png)

![image](https://user-images.githubusercontent.com/64526117/204032581-b2fa1837-ec57-495c-97ef-76027556124b.png)

![image](https://user-images.githubusercontent.com/64526117/204032637-ac5e0d05-d0de-4d2e-a4f5-2a0bf0f1c4d1.png)

Video (spotlight experience):


https://user-images.githubusercontent.com/64526117/204033854-12f2f0ca-fb92-4ddc-8589-02e5b1e38c46.mp4

Video (Talkback):


https://user-images.githubusercontent.com/64526117/204034102-f420b8ef-972e-4517-a55d-dcd3d5fb5919.mp4

Co-authored-by: Ben Henning <[email protected]>
Co-authored-by: madhurgera2 <[email protected]>
Co-authored-by: JishnuGoyal <[email protected]>
<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation

**Mockups:**

Concept Card Default: 

https://xd.adobe.com/view/3dca36c2-5115-419c-b25e-0f10526b077c-6899/screen/2cc59921-923b-43ef-bf11-cf7cc5f7d903/specs/

Concept Card Dark Mode: 

https://xd.adobe.com/view/c05e9343-60f6-4c11-84ac-c756b75b940f-950d/screen/2ee531cf-c358-4a7d-b9dd-b772b51c3d3c/specs/

Hint Summary Default: 

https://xd.adobe.com/view/3dca36c2-5115-419c-b25e-0f10526b077c-6899/screen/99e9e4c3-6c5e-4c13-a9f2-6b92aee17392/specs/

Hint Summary Dark Mode:

https://xd.adobe.com/view/c05e9343-60f6-4c11-84ac-c756b75b940f-950d/screen/d43c5d96-945a-4b89-9552-c4fb482ce2f2/specs/

https://xd.adobe.com/view/c05e9343-60f6-4c11-84ac-c756b75b940f-950d/screen/a70b76a7-49ae-47b6-b5fe-f148b71ee620/specs/

Solution Summary Default:

https://xd.adobe.com/view/3dca36c2-5115-419c-b25e-0f10526b077c-6899/screen/545c6f32-2fec-4a8b-bb53-cecfb8e52f31/specs/

Solution Summary Dark Mode:

https://xd.adobe.com/view/c05e9343-60f6-4c11-84ac-c756b75b940f-950d/screen/5362a633-73cb-4288-aa7d-8c69e4eef349/specs/

https://xd.adobe.com/view/c05e9343-60f6-4c11-84ac-c756b75b940f-950d/screen/a50b0252-f883-451d-9729-dde8d34e2cc5/specs/



Fixed Hints & Solution and Concept Card Dark Mode

<!--
- Explain what your PR does. If this PR fixes an existing bug, please
include
- "Fixes #bugnum:" in the explanation so that GitHub can auto-close the
issue
  - when this PR is merged.
  -->



## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [ ] 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](https://github.com/oppia/oppia-android/tree/develop/scripts/assets)
files have their rationale included in the PR explanation.
- [ ] The PR follows the [style
guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).
- [ ] 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)).
- [ ] 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](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).

## For UI-specific PRs only

|**Default - Concept Card**|**Dark Mode - Concept Card**|

|:----------------------------------------:|:-----------------------------------------:|
|
![](https://user-images.githubusercontent.com/76530270/205581914-6db3574e-1194-4180-86cb-caeb92187185.png)
|
![](https://user-images.githubusercontent.com/76530270/205581905-dbeacc20-bdb0-4b4b-b991-405c1f5796d8.png)
|
|**Default - Hint Summary**|**Dark Mode - Hint Summary**|
|
![](https://user-images.githubusercontent.com/76530270/205582293-ae3bc35b-a9d7-48ea-bd5a-893b65891f17.png)
|
![](https://user-images.githubusercontent.com/76530270/205582318-a5f8ed46-a231-4326-98ba-9c4a42df1217.png)
|
|||
|
![](https://user-images.githubusercontent.com/76530270/205582650-02298c99-35e9-4165-94b3-3a60eaa645e6.png)
|
![](https://user-images.githubusercontent.com/76530270/205582668-8f0277ea-f3d7-4188-9e00-ed1a096094f0.png)
|
|**Default - Solution Summary**|**Dark Mode - Solution Summary**|
|
![](https://user-images.githubusercontent.com/76530270/205595119-1fbae1d3-1def-40f7-af4d-98aca98d2250.png)
|
![](https://user-images.githubusercontent.com/76530270/205595124-8162d7b6-5cdd-4fba-9ce1-c8e6d03beaff.png)
|
|||
|
![](https://user-images.githubusercontent.com/76530270/205595165-f08d6a8a-3f55-47de-bbf3-5aafd60ada79.png)
|
![](https://user-images.githubusercontent.com/76530270/205595160-d8549aff-c3e3-447e-a7b6-a44ebb505268.png)
|
|||
|
![](https://user-images.githubusercontent.com/76530270/205595210-88d2470f-c6de-4c13-a974-a56102f72ed2.png)
|
![](https://user-images.githubusercontent.com/76530270/205595204-f4ca6cba-b378-486a-b1a7-afeeb482fa70.png)
|



<!-- Delete these section if this PR does not include UI-related
changes. -->
<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation
<!--
- Explain what your PR does. If this PR fixes an existing bug, please
include
- "Fixes #bugnum:" in the explanation so that GitHub can auto-close the
issue
  - when this PR is merged.
  -->
fixes #4775 

This PR was created to investigate why 2 tests mentioned
[here](#4775 (comment))
were so flaky and fix these issues. From what I found, it seems that the
problem occurs in sequencing while adding spotlight targets:


>checkNotNull(activity.getSpotlightFragment()).requestSpotlight(firstSpotlightTarget)

checkNotNull(activity.getSpotlightFragment()).requestSpotlight(secondSpotlightTarget)


The addition of targets probably lead to a race condition? I haven't
really gotten as deep as to debug it though, but I assumed my
speculation was correct, and an easy fix was to add
`testCoroutineDispatchers.runCurrent()` between these two lines.

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [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)).

Co-authored-by: Ben Henning <[email protected]>
…re Home screen - Onboarding, ProfileChooser, PinPassword, AddProfile, AdminAuth, AdminPin (#4774)

<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation
<!--
- Explain what your PR does. If this PR fixes an existing bug, please
include
- "Fixes #bugnum:" in the explanation so that GitHub can auto-close the
issue
  - when this PR is merged.
  -->

Dark mode implementation - everything before Home screen - Onboarding,
ProfileChooser, PinPassword, AddProfile, AdminAuth, AdminPin

Fixes #4738 - Some views have very low visibility on add user profile
screen in dark mode [A11y]
Fixes #4381 : Different shades of fillColor used in portrait and
landscape of ic_onboarding_2.xml
Fixes #4734 : Contrast issue in show/hide password icon

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [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: ...".)
- [ ] 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

### Onboarding Screen

<img
src="https://user-images.githubusercontent.com/9396084/206449915-cfa457dd-bd09-42ba-8140-17879db7a743.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206449951-3b940616-a652-45d5-bc19-a34fb957906d.png"
height="400" />
<img
src="https://user-images.githubusercontent.com/9396084/206449932-b8f94c2c-d08f-4890-b510-97ac472fbf31.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206449956-90a05426-ee4f-4fea-b4ec-e9474b454031.png"
height="400" />
<img
src="https://user-images.githubusercontent.com/9396084/206449942-caf05f2f-85b2-4817-8abe-362e1fd94ccb.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206449958-31e43303-af47-4252-a2be-3831a8507446.png"
height="400" />
<img
src="https://user-images.githubusercontent.com/9396084/206449943-bdd66537-4685-47ee-abc2-fd1d75e643f4.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206449959-24b4a5da-113f-484d-a664-e7a3f00fcd33.png"
height="400" />

### Profile Chooser (Same for dark mode and light mode)

<img
src="https://user-images.githubusercontent.com/9396084/206450271-e5df8e5e-4c7c-486f-890a-9560762e89be.png"
height="400" />

### Add Admin Pin

<img
src="https://user-images.githubusercontent.com/9396084/206450496-67e629da-6378-4a9e-8fa5-18d4aad9e581.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206450484-41bc68c0-c86e-4a16-9919-60cb753913d2.png"
height="400" />
<img
src="https://user-images.githubusercontent.com/9396084/206450501-cd8af9b4-c9ff-4e1f-9309-8209dc4b1221.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206450509-fda81199-5cef-49d3-9c3a-dc19c36fa9db.png"
height="400" />

### Admin Auth 

<img
src="https://user-images.githubusercontent.com/9396084/206450721-8b226358-eb30-4577-8242-13297949028a.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206450695-7ff2009e-9408-4f33-8762-dc861d69e1e7.png"
height="400" />
<img
src="https://user-images.githubusercontent.com/9396084/206450706-541bd34b-d69b-4bc3-aa65-ca28ee08254b.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206450713-15e46f91-ac27-4bb5-bed7-30c97fe4f6ea.png"
height="400" />

### Pin Password
<img
src="https://user-images.githubusercontent.com/9396084/206451312-c940013e-1eb0-4160-ab3f-e9734f5d0f99.png"
height="400" /> <img
src="(https://user-images.githubusercontent.com/9396084/206451325-a846e17f-99c7-48b3-915c-9734a5dff5ed.png"
height="400" />
<img
src="https://user-images.githubusercontent.com/9396084/206451320-965d86e1-19c8-42f9-aaa0-58bb8d7bf992.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206451333-a0e104f6-89ef-45a9-9e8b-d5e30b55f9b6.png"
height="400" />

### Add Profile

<img
src="https://user-images.githubusercontent.com/9396084/206451514-8338a850-1d64-451c-9cb8-6c06450dc97c.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206451536-bd9e04b2-1913-4993-9413-264707f9cc03.png"
height="400" />
<img
src="https://user-images.githubusercontent.com/9396084/206451526-378f439e-b7f6-4c89-a638-fe9e0e2118f9.png"
height="400" /> <img
src="https://user-images.githubusercontent.com/9396084/206451545-f037a1a3-abfb-4177-9844-2790e0b33f88.png"
height="400" />


### Tablet Design Recording

[device-2022-12-08-183826.webm](https://user-images.githubusercontent.com/9396084/206454707-5075dee7-59a9-47db-abe9-eb47e314465e.webm)
…Played Screen, Promotional Cards, Profile Progress, Ongoing Topic List, Completed Story List (#4786)

<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation

Dark mode implementation - Home Screen, Recently Played Screen,
Promotional Cards, Profile Progress, Ongoing Topic List, Completed Story
List

Fixes #3122 : Dark theme make colors of the images distorted
Fixes #4600 : Doesn't have dark mode mock for promoted story  #cards

<!--
- Explain what your PR does. If this PR fixes an existing bug, please
include
- "Fixes #bugnum:" in the explanation so that GitHub can auto-close the
issue
  - when this PR is merged.
  -->

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [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: ...".)
- [ ] 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

### Home Screen

<img
src="https://user-images.githubusercontent.com/76530270/206965591-d5217df2-1b1b-4498-85b1-e11ba6e09937.png"
height="400" style="max-width: 100%"> <img
src="https://user-images.githubusercontent.com/76530270/206967336-8d2ffdaa-9e69-4295-ba65-1a456996a702.png"
height="400" style="max-width: 100%">

<img
src="https://user-images.githubusercontent.com/76530270/206965809-ef4356c1-a1d6-4d51-911b-091f852d307e.png"
height="400" style="max-width: 100%"> <img
src="https://user-images.githubusercontent.com/76530270/206967387-181e9699-1566-440a-9285-04a6eda290fe.png"
height="400" style="max-width: 100%">

### Recently Played Screen

<img
src="https://user-images.githubusercontent.com/76530270/206967520-e0f18ebc-07b2-4600-9a7d-36147169875b.png"
height="400" style="max-width: 100%"> <img
src="https://user-images.githubusercontent.com/76530270/206966202-acec138c-8643-49e1-8575-507c908f3549.png"
height="400" style="max-width: 100%">


### Promotional Screen

<img
src="https://user-images.githubusercontent.com/76530270/206966449-d97d08bf-ee5b-4573-8fea-3aaa89c20f5f.png"
height="400" style="max-width: 100%"> <img
src="https://user-images.githubusercontent.com/76530270/206966453-c5e2aac1-63e5-4712-bf6b-975005562d29.png"
height="400" style="max-width: 100%">

### Profile Progress

<img
src="https://user-images.githubusercontent.com/76530270/206966719-bb8966aa-8725-4858-8d0e-2517719767a3.png"
height="400" style="max-width: 100%"> <img
src="https://user-images.githubusercontent.com/76530270/206966713-884f8ea3-906a-4567-bb24-0e8b3d02c48c.png"
height="400" style="max-width: 100%">


### Ongoing Topic List

<img
src="https://user-images.githubusercontent.com/76530270/206966945-f7eea645-33bb-44ed-9c58-828203b66ddf.png"
height="400" style="max-width: 100%"> <img
src="https://user-images.githubusercontent.com/76530270/206966952-05de5e15-aacb-429d-b9eb-c20d68de4cd6.png"
height="400" style="max-width: 100%">


### Completed Story List

<img
src="https://user-images.githubusercontent.com/76530270/206967156-a84ea164-9090-4405-8376-255d82094a78.png"
height="400" style="max-width: 100%"> <img
src="https://user-images.githubusercontent.com/76530270/206967147-a2583718-e2f8-4695-bcf7-31070bc69ded.png"
height="400" style="max-width: 100%">










<!-- Delete these section if this PR does not include UI-related
changes. -->
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
…ofileReset, ProfileRename, AppVersion, ProfileList, ProfileEdit etc (#4795)

<!-- READ ME FIRST: Please fill in the explanation section below and
check off every point from the Essential Checklist! -->
## Explanation
<!--
- Explain what your PR does. If this PR fixes an existing bug, please
include
- "Fixes #bugnum:" in the explanation so that GitHub can auto-close the
issue
  - when this PR is merged.
  -->

This PR fixes dark mode for following activities:

**OptionsActivity**
- ReadingTextSizeActivity
- AudioLanguageActivity
- AppLanguageActivity

**HelpActivity**
- FAQListActivity
- FAQSingleActivity
- ThirdPartyDependencyActivity
- LicenseListActivity
- LicenseViewerActivity
- PolicyViewerActivity

**AdministratorControlsActivity**
- AppVersionActivity
- ProfilListActivity
- ProfilEditActivity
- ProfileRenameActivity
- ProfileResetPinActivity

There were a lot of issues with mocks, for example:
- Mocks were not available for reset, rename screens in light-mode
portrait mobile
- Dark mode mocks were not available for some internal screens
- Dark mode mocks were not available for tablet multi-pane screens.
- There were inconsistencies in designs of similar screen.

This PR makes sure that all the screens support dark-mode and also the
components across various screens should have consistent design
guidelines.

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [ ] 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](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

### Options Activity and its internal screens
| Before  | After |
| ------------- | ------------- |
|
![Screenshot_20221221_113351](https://user-images.githubusercontent.com/9396084/208833398-62bbc652-c1f3-4e3f-ab76-cf4dea8a0d80.png)
|
![Screenshot_20221221_113418](https://user-images.githubusercontent.com/9396084/208833421-c16247f3-dc66-4306-b8ef-91137c061c5b.png)
|
|
![Screenshot_20221221_113357](https://user-images.githubusercontent.com/9396084/208833407-80d0bddf-8abc-4bc5-8f4b-cc07a5b1dc9d.png)
|
![Screenshot_20221221_113424](https://user-images.githubusercontent.com/9396084/208833422-b538a03d-467d-4eda-b755-fd9d98d5effc.png)
|
|
![Screenshot_20221221_113403](https://user-images.githubusercontent.com/9396084/208833411-d782079b-25d3-4adc-a568-323c018cab73.png)
|
![Screenshot_20221221_113431](https://user-images.githubusercontent.com/9396084/208833426-b5a3da75-1669-4221-96aa-92391f7450ba.png)
|
|
![Screenshot_20221221_113836](https://user-images.githubusercontent.com/9396084/208833881-677f5fcf-73aa-4baa-b8b6-0553cb25988b.png)
|
![Screenshot_20221221_113853](https://user-images.githubusercontent.com/9396084/208833900-ced9d20d-b4bc-47f7-a321-5ed599201178.png)
|
|
![Screenshot_20221221_113842](https://user-images.githubusercontent.com/9396084/208833893-59fc6f90-851e-41f3-872b-228273635a37.png)
|
![Screenshot_20221221_113859](https://user-images.githubusercontent.com/9396084/208833908-acf8f250-b6a1-46d6-98e2-6ff687164ccc.png)
|


### Help Activity and its internal screens
| Before  | After |
| ------------- | ------------- |
|
![Screenshot_20221221_114027](https://user-images.githubusercontent.com/9396084/208834433-61151329-24ab-4534-aa1e-99d49841ae25.png)
|
![Screenshot_20221221_114152](https://user-images.githubusercontent.com/9396084/208834533-12a0faee-96f4-4e1b-bf7c-d88d92bf8108.png)
|
|
![Screenshot_20221221_114034](https://user-images.githubusercontent.com/9396084/208834442-3f393097-a998-48bf-9524-969da517cbdb.png)
|
![Screenshot_20221221_114157](https://user-images.githubusercontent.com/9396084/208834538-e96da89d-e51a-4bff-ac69-e19fbfc34ddd.png)
|
|
![Screenshot_20221221_114039](https://user-images.githubusercontent.com/9396084/208834448-2fd10433-0552-4541-b045-cbfa2e36f2e6.png)
|
![Screenshot_20221221_114203](https://user-images.githubusercontent.com/9396084/208834546-b19e34c3-2305-4bdb-b355-ff9cca9ba355.png)
|
|
![Screenshot_20221221_114045](https://user-images.githubusercontent.com/9396084/208834454-50244d2a-a997-4039-a212-c85e27151386.png)
|
![Screenshot_20221221_114210](https://user-images.githubusercontent.com/9396084/208834556-b16b1f2a-290a-4fc1-bb57-0bfe99c5c812.png)
|
|
![Screenshot_20221221_114051](https://user-images.githubusercontent.com/9396084/208834458-ca15df60-7cd1-4883-80e3-37460610920a.png)
|
![Screenshot_20221221_114214](https://user-images.githubusercontent.com/9396084/208834560-7f8437da-858e-4a2c-b0ad-597e44a4cc7c.png)
|
|
![Screenshot_20221221_114100](https://user-images.githubusercontent.com/9396084/208834460-1e8f2102-0990-49cd-87ba-b1310a56f424.png)
|
![Screenshot_20221221_114221](https://user-images.githubusercontent.com/9396084/208834561-a3d7da09-81dd-427d-a480-0c3122b93b98.png)
|
|
![Screenshot_20221221_114110](https://user-images.githubusercontent.com/9396084/208834467-0f8a28f9-9e76-44cd-93ae-5a6086ffcc8e.png)
|
![Screenshot_20221221_114227](https://user-images.githubusercontent.com/9396084/208834569-d19d8a9d-3e96-4b47-824e-1bcfe51d7a2a.png)
|
|
![Screenshot_20221221_114114](https://user-images.githubusercontent.com/9396084/208834473-b92f7596-4ad7-4fb1-92b9-8c133491537a.png)
|
![Screenshot_20221221_114234](https://user-images.githubusercontent.com/9396084/208834573-7a6c8e61-d669-4c2b-8d0b-a7aae5dd3311.png)
|
|
![Screenshot_20221221_114615](https://user-images.githubusercontent.com/9396084/208836157-4d76fb84-00dd-4205-a269-a9731ffde7f3.png)
|
![Screenshot_20221221_114724](https://user-images.githubusercontent.com/9396084/208836177-e51093aa-2eaa-47fb-a852-0f89566b8335.png)
|
|
![Screenshot_20221221_114621](https://user-images.githubusercontent.com/9396084/208836171-912ae660-02fe-4bff-9937-b092ff06bc9b.png)
|
![Screenshot_20221221_114728](https://user-images.githubusercontent.com/9396084/208836182-46a4f95f-e2b7-4c1c-bf17-395fc468f5d4.png)
|
|
![Screenshot_20221221_114627](https://user-images.githubusercontent.com/9396084/208836296-67c59c63-bf6c-43df-a89b-ac67adbb8e8a.png)
|
![Screenshot_20221221_114731](https://user-images.githubusercontent.com/9396084/208836304-1050f7ca-1b87-4413-b88b-afbda2932cae.png)
|
|
![Screenshot_20221221_114632](https://user-images.githubusercontent.com/9396084/208836302-1e85e6d6-472a-471a-b1c2-8d9a749705de.png)
|
![Screenshot_20221221_114736](https://user-images.githubusercontent.com/9396084/208836308-6697299b-662b-4ebc-878b-7c496bc81a68.png)
|
|
![Screenshot_20221221_114641](https://user-images.githubusercontent.com/9396084/208836386-28361c9d-2e4a-41e0-b7f0-863afc21c1dc.png)
|
![Screenshot_20221221_114741](https://user-images.githubusercontent.com/9396084/208836408-634d4d59-f01d-4301-87d4-4d9c42e438e4.png)
|
![Screenshot_20221221_114649](https://user-images.githubusercontent.com/9396084/208836405-5f9bb5a5-6714-477c-8f56-d3c1384122ce.png)
|
![Screenshot_20221221_114749](https://user-images.githubusercontent.com/9396084/208836421-08cd87a9-d6b3-4b72-b70d-cf4039ee1442.png)
|
|
![Screenshot_20221221_114656](https://user-images.githubusercontent.com/9396084/208836537-82f8f0b4-a691-45bb-99dd-bdc4b554b545.png)
|
![Screenshot_20221221_114754](https://user-images.githubusercontent.com/9396084/208836566-1896f7e9-6620-4d95-847b-d5ce296caaca.png)
|


### Administrator Controls and its internal activities

| Before  | After |
| ------------- | ------------- |
|
![Screenshot_20221221_115905](https://user-images.githubusercontent.com/9396084/208837106-b3a5f49e-740b-40db-8ab5-605537662cd9.png)
|
![Screenshot_20221221_115954](https://user-images.githubusercontent.com/9396084/208837118-fd248b4c-39fe-44ca-bc34-91424b5beaff.png)
|
|
![Screenshot_20221221_115912](https://user-images.githubusercontent.com/9396084/208837110-b971ad2b-cdb6-4334-9dbc-ade1577ad603.png)
|
![Screenshot_20221221_120004](https://user-images.githubusercontent.com/9396084/208837125-b3e74e6e-addb-4e3a-a7e1-6601b380eae1.png)
|
|
![Screenshot_20221221_115919](https://user-images.githubusercontent.com/9396084/208837145-b010da4e-2e42-43bf-a11d-b8afd15c7cab.png)
|![Screenshot_20221221_120009](https://user-images.githubusercontent.com/9396084/208837154-1f79bc22-a897-454d-ac01-da014f80954e.png)
|
|
![Screenshot_20221221_120012](https://user-images.githubusercontent.com/9396084/208837158-7d7e2ea6-31e1-4eca-9e17-e943884f0beb.png)
|
![Screenshot_20221221_115925](https://user-images.githubusercontent.com/9396084/208837151-f76d7ac9-a840-4ba0-aaa9-804ba4eb6841.png)
|
|
![Screenshot_20221221_115929](https://user-images.githubusercontent.com/9396084/208837184-a16716ad-e281-41ba-9142-158f1cc6dfe7.png)
|
![Screenshot_20221221_120018](https://user-images.githubusercontent.com/9396084/208837203-d8871ae3-2b7f-4023-a55f-da2f112f69bf.png)
|
|
![Screenshot_20221221_120022](https://user-images.githubusercontent.com/9396084/208837210-de60dfa1-0aa1-40f6-bf4e-59896ee7c225.png)
|
![Screenshot_20221221_115934](https://user-images.githubusercontent.com/9396084/208837188-00f8dd69-1f57-4a45-bf25-e33da059ac2a.png)
|
|
![Screenshot_20221221_120404](https://user-images.githubusercontent.com/9396084/208837701-32250f38-0124-42fd-b4d2-3a7468f3f7dd.png)
|
![Screenshot_20221221_120449](https://user-images.githubusercontent.com/9396084/208837727-2b77b62f-64db-4986-99c4-4a6bc9963219.png)
|
|
![Screenshot_20221221_120411](https://user-images.githubusercontent.com/9396084/208837720-51613f84-2ee5-4536-a584-9d46cb4f7e68.png)
|
![Screenshot_20221221_120455](https://user-images.githubusercontent.com/9396084/208837731-947b1206-ee10-4758-89ec-6bebc33222b1.png)
|
|
![Screenshot_20221221_120420](https://user-images.githubusercontent.com/9396084/208837746-d00429e6-7604-4663-9ed3-8ffdc0d34624.png)
|
![Screenshot_20221221_120500](https://user-images.githubusercontent.com/9396084/208837761-ecd4fdc3-51e8-489d-b8fd-9ece0e3c61ce.png)
|
|
![Screenshot_20221221_120426](https://user-images.githubusercontent.com/9396084/208837756-7417d5d9-e2dc-4c32-a0e5-116c907ab922.png)
|
![Screenshot_20221221_120505](https://user-images.githubusercontent.com/9396084/208837777-0d8b2730-69e2-4956-97cd-3f10068374e9.png)
|
![Screenshot_20221221_120433](https://user-images.githubusercontent.com/9396084/208837788-7dffc63c-88f0-45a8-a312-8f5107fbc1bc.png)
|
![Screenshot_20221221_120510](https://user-images.githubusercontent.com/9396084/208837796-348a71e4-8a0f-432a-9e4d-391eed628b06.png)
|
## Explanation
This PR does two things:
- It updates repository messaging to indicate multiple team members may
be unavailable until early January (which will show on all new/reopened
PRs once this is merged). I'll update existing PRs so that authors are
aware.
- It updates the build tests CI workflow to only upload the Oppia dev
APK (as this is the only one practically useful for developers since the
AABs can't be directly installed on a device).

## 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: ...".)~
- [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 -- Infrastructure-only change.
@shubham419 shubham419 changed the title Fix #4806, #4803 Solved a problem occurred after selecting a profile image Solved a problem occurred after selecting a profile image Dec 27, 2022
@shubham419 shubham419 closed this Dec 27, 2022
@shubham419 shubham419 changed the title Solved a problem occurred after selecting a profile image test Dec 27, 2022
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.