From cfce93c26bd3a22bcb80313908b36bb26f8aabae Mon Sep 17 00:00:00 2001 From: XichengSpencer <74568012+XichengSpencer@users.noreply.github.com> Date: Fri, 22 Sep 2023 12:21:13 -0400 Subject: [PATCH 01/32] Fix #3843 Split Concatenated TextView (#5151) ## Explanation Fix #3843 Instead of using 1 textview to display a concatenated string, now have 1 textview for story progress, 1 for bar separator, and 1 for topic progress. ## 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 |LTR|RTL| |---|---| |![Screenshot_20230913_170309](https://github.com/oppia/oppia-android/assets/74568012/5d10ee41-41cb-46f1-b37d-b368e247c108)|![Screenshot_20230913_170148](https://github.com/oppia/oppia-android/assets/74568012/d5ee32ce-1899-4e5c-825c-3070f5e132ad)| |![Screenshot_20230913_165312](https://github.com/oppia/oppia-android/assets/74568012/4435074e-41b3-4b0b-9dd1-7cfc1b3bfd72)|![Screenshot_20230913_170218](https://github.com/oppia/oppia-android/assets/74568012/476060ea-15b8-4636-afa0-89fdb130d05b)| ## Tests ![Screenshot 2023-09-15 101749](https://github.com/oppia/oppia-android/assets/74568012/2ee79906-22e8-42a0-b3b6-b71676b50f92) --------- Co-authored-by: Adhiambo Peres <59600948+adhiamboperes@users.noreply.github.com> --- .../drawer/NavigationDrawerHeaderViewModel.kt | 37 ++++++++------ .../layout/nav_header_navigation_drawer.xml | 51 +++++++++++++++---- .../NavigationDrawerActivityProdTest.kt | 30 +++++++++-- 3 files changed, 89 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerHeaderViewModel.kt b/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerHeaderViewModel.kt index b46e7a63275..d75c0d03287 100644 --- a/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerHeaderViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerHeaderViewModel.kt @@ -22,7 +22,10 @@ class NavigationDrawerHeaderViewModel @Inject constructor( val profile = ObservableField(Profile.getDefaultInstance()) private var ongoingTopicCount = DEFAULT_ONGOING_TOPIC_COUNT private var completedStoryCount = DEFAULT_COMPLETED_STORY_COUNT - val profileProgressText: ObservableField = ObservableField(computeProfileProgressText()) + val profileTopicProgressText: ObservableField = + ObservableField(computeProfileTopicProgressText()) + val profileStoryProgressText: ObservableField = + ObservableField(computeProfileStoryProgressText()) fun onHeaderClicked() { routeToProfileProgressListener.routeToProfileProgress(profile.get()!!.id.internalId) @@ -30,25 +33,29 @@ class NavigationDrawerHeaderViewModel @Inject constructor( fun setOngoingTopicProgress(ongoingTopicCount: Int) { this.ongoingTopicCount = ongoingTopicCount - profileProgressText.set(computeProfileProgressText()) + profileTopicProgressText.set(computeProfileTopicProgressText()) } fun setCompletedStoryProgress(completedStoryCount: Int) { this.completedStoryCount = completedStoryCount - profileProgressText.set(computeProfileProgressText()) + profileStoryProgressText.set(computeProfileStoryProgressText()) } - private fun computeProfileProgressText(): String { - // TODO(#3843): Either combine these strings into one or use separate views to display them. - val completedStoryCountText = - resourceHandler.getQuantityStringInLocaleWithWrapping( - R.plurals.completed_story_count, completedStoryCount, completedStoryCount.toString() - ) - val ongoingTopicCountText = - resourceHandler.getQuantityStringInLocaleWithWrapping( - R.plurals.ongoing_topic_count, ongoingTopicCount, ongoingTopicCount.toString() - ) - val barSeparator = resourceHandler.getStringInLocale(R.string.bar_separator) - return "$completedStoryCountText$barSeparator$ongoingTopicCountText" + private fun computeProfileStoryProgressText(): String { + return resourceHandler.getQuantityStringInLocaleWithWrapping( + R.plurals.completed_story_count, + completedStoryCount, + completedStoryCount.toString() + ) + } + + fun getBarSeparator() = resourceHandler.getStringInLocale(R.string.bar_separator) + + private fun computeProfileTopicProgressText(): String { + return resourceHandler.getQuantityStringInLocaleWithWrapping( + R.plurals.ongoing_topic_count, + ongoingTopicCount, + ongoingTopicCount.toString() + ) } } diff --git a/app/src/main/res/layout/nav_header_navigation_drawer.xml b/app/src/main/res/layout/nav_header_navigation_drawer.xml index eb9d9a0ccad..d85e97e337b 100644 --- a/app/src/main/res/layout/nav_header_navigation_drawer.xml +++ b/app/src/main/res/layout/nav_header_navigation_drawer.xml @@ -27,10 +27,10 @@ - + android:orientation="horizontal"> + + + + + + + diff --git a/app/src/sharedTest/java/org/oppia/android/app/testing/NavigationDrawerActivityProdTest.kt b/app/src/sharedTest/java/org/oppia/android/app/testing/NavigationDrawerActivityProdTest.kt index bce54aac8a1..08512202fb7 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/testing/NavigationDrawerActivityProdTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/testing/NavigationDrawerActivityProdTest.kt @@ -256,7 +256,7 @@ class NavigationDrawerActivityProdTest { } @Test - fun testNavDrawer_openNavDrawer_oneTopicInProgress_profileProgressIsDisplayedCorrectly() { + fun testNavDrawer_openNavDrawer_oneTopicInProgress_profileStoryProgressIsDisplayedCorrectly() { storyProfileTestHelper.markCompletedRatiosStory1Exp0( ProfileId.newBuilder().setInternalId( internalProfileId @@ -270,10 +270,32 @@ class NavigationDrawerActivityProdTest { it.openNavigationDrawer() onView( allOf( - withId(R.id.profile_progress_text_view), - isDescendantOfA(withId(R.id.header_linear_layout)) + withId(R.id.profile_story_progress_text_view), + isDescendantOfA(withId(R.id.progress_linear_layout)) + ) + ).check(matches(withText("1 Story Completed"))) + } + } + + @Test + fun testNavDrawer_openNavDrawer_oneTopicInProgress_profileTopicProgressIsDisplayedCorrectly() { + storyProfileTestHelper.markCompletedRatiosStory1Exp0( + ProfileId.newBuilder().setInternalId( + internalProfileId + ).build(), + timestampOlderThanOneWeek = false + ) + launch( + createNavigationDrawerActivityIntent(internalProfileId) + ).use { + testCoroutineDispatchers.runCurrent() + it.openNavigationDrawer() + onView( + allOf( + withId(R.id.profile_topic_progress_text_view), + isDescendantOfA(withId(R.id.progress_linear_layout)) ) - ).check(matches(withText("1 Story Completed | 1 Topic in Progress"))) + ).check(matches(withText("1 Topic in Progress"))) } } From 08981272a8136b8da0be7c4197480790c36bf100 Mon Sep 17 00:00:00 2001 From: aayushimathur6 <92685651+aayushimathur6@users.noreply.github.com> Date: Sun, 24 Sep 2023 09:28:47 +0530 Subject: [PATCH 02/32] Fix #3841: Combine time and quantity plurals (#5153) ## Explanation Fixes #3841 This PR involves Combining plurals and quantity strings from: ` %s ago` and ``` a minute %s minutes ``` to ``` a minute ago %s minutes ago ``` ## 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 | AFTER | | ------------- | ------------- | | ![Before](https://github.com/oppia/oppia-android/assets/92685651/f3daf711-b96d-4ca7-8e49-d13c14769fb4)| ![after](https://github.com/oppia/oppia-android/assets/92685651/e303564a-9961-49fb-8258-75743bc5fb51) | | ![arabicbefore](https://github.com/oppia/oppia-android/assets/92685651/9c9d5c34-9ebb-42c3-9176-f69775f28e58) |![afterarabic](https://github.com/oppia/oppia-android/assets/92685651/471799da-10e9-4691-beb5-3b87edea1e8f) | --------- Co-authored-by: Adhiambo Peres <59600948+adhiamboperes@users.noreply.github.com> --- .../databinding/TextViewBindingAdapters.java | 14 +++++-------- app/src/main/res/values/strings.xml | 20 +++++++++---------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/oppia/android/app/databinding/TextViewBindingAdapters.java b/app/src/main/java/org/oppia/android/app/databinding/TextViewBindingAdapters.java index 349c680f221..591e8c88738 100644 --- a/app/src/main/java/org/oppia/android/app/databinding/TextViewBindingAdapters.java +++ b/app/src/main/java/org/oppia/android/app/databinding/TextViewBindingAdapters.java @@ -83,13 +83,13 @@ private static String getTimeAgo(View view, long lastVisitedTimestamp) { } else if (timeDifferenceMillis < TimeUnit.MINUTES.toMillis(50)) { return getPluralString( resourceHandler, - R.plurals.minutes, + R.plurals.minutes_ago, (int) TimeUnit.MILLISECONDS.toMinutes(timeDifferenceMillis) ); } else if (timeDifferenceMillis < TimeUnit.DAYS.toMillis(1)) { return getPluralString( resourceHandler, - R.plurals.hours, + R.plurals.hours_ago, (int) TimeUnit.MILLISECONDS.toHours(timeDifferenceMillis) ); } else if (timeDifferenceMillis < TimeUnit.DAYS.toMillis(2)) { @@ -97,7 +97,7 @@ private static String getTimeAgo(View view, long lastVisitedTimestamp) { } return getPluralString( resourceHandler, - R.plurals.days, + R.plurals.days_ago, (int) TimeUnit.MILLISECONDS.toDays(timeDifferenceMillis) ); } @@ -107,13 +107,9 @@ private static String getPluralString( @PluralsRes int pluralsResId, int count ) { - // TODO(#3841): Combine these strings together. - return resourceHandler.getStringInLocaleWithWrapping( - R.string.time_ago, - resourceHandler.getQuantityStringInLocaleWithWrapping( + return resourceHandler.getQuantityStringInLocaleWithWrapping( pluralsResId, count, String.valueOf(count) - ) - ); + ); } private static long ensureTimestampIsInMilliseconds(long lastVisitedTimestamp) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 408a4095aca..3f48fef86cc 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -468,7 +468,6 @@ just now recently - %s ago yesterday Return to topic Return to lesson @@ -481,17 +480,18 @@ Up Down %s %s - - a minute - %s minutes + + 0 minutes ago + a minute ago + %s minutes ago - - an hour - %s hours + + an hour ago + %s hours ago - - a day - %s days + + a day ago + %s days ago topic_revision_recyclerview_tag From 42ee1bdf74de28f79d9424c3ee90b3713198f332 Mon Sep 17 00:00:00 2001 From: masclot <103062089+masclot@users.noreply.github.com> Date: Thu, 28 Sep 2023 02:51:48 +0200 Subject: [PATCH 03/32] Fixes #4539: Replace CaseSensitiveEquals by Equals in dev assets (#5154) ## Explanation Fixes #4539: Replace the rule type CaseSensitiveEquals by Equals in dev assets. This only affects the topics used in dev environment. The rule type CaseSensitiveEquals is no longer supported. ## 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 **Videos** |current|new| |-|-| |[fix_for_CaseSensitiveEquals_current.webm](https://github.com/oppia/oppia-android/assets/103062089/0ad9f1e9-a991-4908-8576-1aba964fadcb)|[fix_for_CaseSensitiveEquals_new.webm](https://github.com/oppia/oppia-android/assets/103062089/298270d9-6af2-4cb8-a9f0-6445e5abfdd6)| **Screenshots** |current|new| |-|-| |![Screenshot fix_for_CaseSensitiveEquals_current](https://github.com/oppia/oppia-android/assets/103062089/b135fce1-270e-46d9-b819-82833011988d)|![Screenshot fix_for_CaseSensitiveEquals_new](https://github.com/oppia/oppia-android/assets/103062089/443f966f-717b-4fab-b17a-11d52e817737)| --------- Co-authored-by: Adhiambo Peres <59600948+adhiamboperes@users.noreply.github.com> --- domain/src/main/assets/2mzzFVDLuAj8.json | 6 +++--- domain/src/main/assets/2mzzFVDLuAj8.textproto | 6 +++--- domain/src/main/assets/5NWuolNcwH6e.json | 4 ++-- domain/src/main/assets/5NWuolNcwH6e.textproto | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/domain/src/main/assets/2mzzFVDLuAj8.json b/domain/src/main/assets/2mzzFVDLuAj8.json index 9a7eed87bb2..4e5fa088efd 100644 --- a/domain/src/main/assets/2mzzFVDLuAj8.json +++ b/domain/src/main/assets/2mzzFVDLuAj8.json @@ -2463,7 +2463,7 @@ } } }, { - "rule_type": "CaseSensitiveEquals", + "rule_type": "Equals", "inputs": { "x": { "contentId": "14186351-eee4-40fa-8f20-960306cfe465", @@ -2818,7 +2818,7 @@ } } }, { - "rule_type": "CaseSensitiveEquals", + "rule_type": "Equals", "inputs": { "x": { "contentId": "c78bf24e-b510-4bac-a107-28a03dfa1c22", @@ -2826,7 +2826,7 @@ } } }, { - "rule_type": "CaseSensitiveEquals", + "rule_type": "Equals", "inputs": { "x": { "contentId": "338cb82a-5e6f-460a-8fa0-5a2510c1a31e", diff --git a/domain/src/main/assets/2mzzFVDLuAj8.textproto b/domain/src/main/assets/2mzzFVDLuAj8.textproto index dcd355095d0..f8cdd2299d4 100644 --- a/domain/src/main/assets/2mzzFVDLuAj8.textproto +++ b/domain/src/main/assets/2mzzFVDLuAj8.textproto @@ -3011,7 +3011,7 @@ states { } } } - rule_type: "CaseSensitiveEquals" + rule_type: "Equals" } } answer_groups { @@ -3472,7 +3472,7 @@ states { } } } - rule_type: "CaseSensitiveEquals" + rule_type: "Equals" } rule_specs { input { @@ -3484,7 +3484,7 @@ states { } } } - rule_type: "CaseSensitiveEquals" + rule_type: "Equals" } } answer_groups { diff --git a/domain/src/main/assets/5NWuolNcwH6e.json b/domain/src/main/assets/5NWuolNcwH6e.json index d334766c022..dcf1da3fe0f 100644 --- a/domain/src/main/assets/5NWuolNcwH6e.json +++ b/domain/src/main/assets/5NWuolNcwH6e.json @@ -861,7 +861,7 @@ } } }, { - "rule_type": "CaseSensitiveEquals", + "rule_type": "Equals", "inputs": { "x": { "contentId": "947c6855-b9e6-459d-a8f6-2b239e51d37f", @@ -2176,7 +2176,7 @@ } } }, { - "rule_type": "CaseSensitiveEquals", + "rule_type": "Equals", "inputs": { "x": { "contentId": "5d0d1769-2754-4f6a-9690-ba3675ce953d", diff --git a/domain/src/main/assets/5NWuolNcwH6e.textproto b/domain/src/main/assets/5NWuolNcwH6e.textproto index cac4f82089f..3b8c323fd19 100644 --- a/domain/src/main/assets/5NWuolNcwH6e.textproto +++ b/domain/src/main/assets/5NWuolNcwH6e.textproto @@ -1121,7 +1121,7 @@ states { } } } - rule_type: "CaseSensitiveEquals" + rule_type: "Equals" } } default_outcome { @@ -2807,7 +2807,7 @@ states { } } } - rule_type: "CaseSensitiveEquals" + rule_type: "Equals" } rule_specs { input { From 41f74fc2bbc1d6f909d38ab3e6ee4da0f322bd06 Mon Sep 17 00:00:00 2001 From: "Mr. 17" Date: Fri, 29 Sep 2023 20:32:05 +0530 Subject: [PATCH 04/32] Fix #5079: Gradle Build Failed - Task :utility:kaptGenerateStubsDebugKotlin FAILED (#5162) ## Explanation Fixes #5079 The error message indicates that there's a compatibility issue with the Java version being used for the project. The `Unsupported class file major version 59` suggests that the code in the model.jar (project :model) file is compiled with a Java version higher than the one being used by the project. This PR explicitly set the source and target compatibility to Java 8 for the project. This ensures that the project uses Java 8, which is compatible with class files compiled with major version 59 (Java 15). By making this change, we ensure that the project's Java version aligns with the Java version used to compile the model.jar file, thus resolving the compatibility issue and allowing the build process to proceed without errors. ## 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 --- model/build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/model/build.gradle b/model/build.gradle index 619f1237d8b..f68c303c551 100644 --- a/model/build.gradle +++ b/model/build.gradle @@ -38,3 +38,8 @@ sourceSets { } } } + +java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +} From 9bbf94aa3ca4a775f658c5dfe7f3e38fca402cc6 Mon Sep 17 00:00:00 2001 From: "Mr. 17" Date: Sat, 30 Sep 2023 09:27:29 +0530 Subject: [PATCH 05/32] Fix #5136: Modifies all caps buttons to sentence case (#5157) ## Explanation Fixes #5136 This PR changes all caps buttons to sentence case. All buttons mentioned in this [comment](https://github.com/oppia/oppia-android/issues/5136#issuecomment-1731446317) are changed either by directly changing its `android:textAllCaps` to `false` in the layout files or by changing its style in the `styles.xml` file. ## 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 ## Screenshots ### _layout_ |Screen / Dialog|Button ID|Screenshots| |--|--|--| |`activity_input_interaction_view_test.xml`|`submit_button`| |`add_profile_activity.xml`|`add_profile_activity_create_button`| |`admin_auth_activity.xml`|`admin_auth_submit_button`| |`admin_pin_activity.xml`|`submit_button`| |`concept_card_fragment_test_activity.xml`|`open_dialog_0` `open_dialog_1`| |`exploration_test_activity.xml`|`play_exploration_button`| |`hint_summary.xml`|`reveal_hint_button`|![image](https://github.com/oppia/oppia-android/assets/84731134/fa55e84f-df00-47fc-9064-6ba57dc91337)| |`math_expression_parser_fragment.xml`|`parse_math_expression_button`|![image](https://github.com/oppia/oppia-android/assets/84731134/97678f0a-294f-40e9-a057-cd59843a07c9)| |`onboarding_slide_final.xml`|`get_started_button`|![image](https://github.com/oppia/oppia-android/assets/84731134/44dab2e5-af61-42b6-a9be-977f0c3487a3)| |`profile_list_control_buttons.xml`|`learner_analytics_share_ids_and_events_button` `learner_analytics_upload_logs_now_button`| |`profile_rename_fragment.xml`|`profile_rename_save_button`|![image](https://github.com/oppia/oppia-android/assets/84731134/6834670a-6225-45a1-a845-f41bc464a711)| |`profile_reset_pin_fragment.xml`|`profile_reset_save_button`| |`replay_button_item.xml`|`replay_button`| |`return_to_lesson_button_item.xml`|`return_to_lesson_button`|![image](https://github.com/oppia/oppia-android/assets/84731134/fa55e84f-df00-47fc-9064-6ba57dc91337)| |`return_to_topic_button_item.xml`|`return_to_topic_button`| |`solution_summary.xml`|`show_solution_button`| |`state_fragment_test_activity.xml`|`play_test_exploration_button`| |`submit_button_item.xml`|`submit_answer_button`|![image](https://github.com/oppia/oppia-android/assets/84731134/eed9fb84-b4d8-4d65-a665-813c641debc5)| |`topic_practice_footer_view.xml`|`topic_practice_start_button`| |`walkthrough_welcome_fragment.xml`|`walkthrough_welcome_next_button`| ### _layout-land_ |Screen / Dialog|Button ID|Screenshots| |--|--|--| |`onboarding_slide_final.xml`|`get_started_button`|![image](https://github.com/oppia/oppia-android/assets/84731134/ce6df192-62ee-481b-83ea-49a56a4dfbe3)| |`walkthrough_welcome_fragment.xml`|`walkthrough_welcome_next_button`| ### _layout-sw600dp-land_ |Screen / Dialog|Button ID| |--|--| |`onboarding_slide_final.xml`|`get_started_button`| ### _layout-sw600dp-port_ |Screen / Dialog|Button ID| |--|--| |`onboarding_slide_final.xml`|`get_started_button`| --------- Co-authored-by: Adhiambo Peres <59600948+adhiamboperes@users.noreply.github.com> --- app/src/main/res/layout-land/onboarding_slide_final.xml | 1 + app/src/main/res/layout-land/resume_lesson_fragment.xml | 4 ++-- .../res/layout-sw600dp-land/onboarding_slide_final.xml | 1 + .../res/layout-sw600dp-land/resume_lesson_fragment.xml | 4 ++-- .../res/layout-sw600dp-port/onboarding_slide_final.xml | 1 + app/src/main/res/layout/add_profile_activity.xml | 1 - .../res/layout/concept_card_fragment_test_activity.xml | 6 ++++-- app/src/main/res/layout/exploration_test_activity.xml | 3 ++- app/src/main/res/layout/hint_summary.xml | 1 + .../main/res/layout/math_expression_parser_fragment.xml | 1 - app/src/main/res/layout/onboarding_slide_final.xml | 1 + app/src/main/res/layout/profile_rename_fragment.xml | 1 - app/src/main/res/layout/profile_reset_pin_fragment.xml | 1 - app/src/main/res/layout/resume_lesson_fragment.xml | 4 ++-- app/src/main/res/layout/solution_summary.xml | 1 + app/src/main/res/layout/state_fragment_test_activity.xml | 1 + app/src/main/res/values-v21/themes.xml | 1 + app/src/main/res/values/strings.xml | 8 ++++---- app/src/main/res/values/styles.xml | 6 +++--- app/src/main/res/values/themes.xml | 2 ++ .../oppia/android/app/player/audio/AudioFragmentTest.kt | 2 +- .../app/player/exploration/ExplorationActivityTest.kt | 2 +- .../android/app/player/state/StateFragmentLocalTest.kt | 2 +- 23 files changed, 32 insertions(+), 23 deletions(-) diff --git a/app/src/main/res/layout-land/onboarding_slide_final.xml b/app/src/main/res/layout-land/onboarding_slide_final.xml index 6881cdcbcce..a62021edc69 100644 --- a/app/src/main/res/layout-land/onboarding_slide_final.xml +++ b/app/src/main/res/layout-land/onboarding_slide_final.xml @@ -79,6 +79,7 @@ android:text="@string/get_started" android:textColor="@color/component_color_shared_secondary_4_text_color" android:textSize="14sp" + android:textAllCaps="false" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/slide_image_view" app:layout_constraintTop_toBottomOf="@id/slide_description_text_view" /> diff --git a/app/src/main/res/layout-land/resume_lesson_fragment.xml b/app/src/main/res/layout-land/resume_lesson_fragment.xml index 41675fc3d42..e317a2eff27 100644 --- a/app/src/main/res/layout-land/resume_lesson_fragment.xml +++ b/app/src/main/res/layout-land/resume_lesson_fragment.xml @@ -81,7 +81,7 @@ android:minWidth="144dp" android:minHeight="@dimen/clickable_item_min_height" android:text="@string/start_over_lesson_button" - android:textAllCaps="true" + android:textAllCaps="false" android:textColor="@color/component_color_shared_secondary_button_background_trim_color" android:textSize="14sp" app:backgroundTint="@null" @@ -100,7 +100,7 @@ android:minWidth="144dp" android:minHeight="@dimen/clickable_item_min_height" android:text="@string/resume_lesson_button" - android:textAllCaps="true" + android:textAllCaps="false" android:textColor="@color/component_color_shared_secondary_4_text_color" android:textSize="14sp" app:backgroundTint="@null" diff --git a/app/src/main/res/layout-sw600dp-land/onboarding_slide_final.xml b/app/src/main/res/layout-sw600dp-land/onboarding_slide_final.xml index 2877085c736..b33f3480486 100644 --- a/app/src/main/res/layout-sw600dp-land/onboarding_slide_final.xml +++ b/app/src/main/res/layout-sw600dp-land/onboarding_slide_final.xml @@ -73,6 +73,7 @@ android:text="@string/get_started" android:textColor="@color/component_color_shared_secondary_4_text_color" android:textSize="14sp" + android:textAllCaps="false" app:layout_constraintEnd_toEndOf="@+id/slide_title_text_view" app:layout_constraintStart_toStartOf="@+id/slide_title_text_view" app:layout_constraintTop_toBottomOf="@id/slide_description_text_view" /> diff --git a/app/src/main/res/layout-sw600dp-land/resume_lesson_fragment.xml b/app/src/main/res/layout-sw600dp-land/resume_lesson_fragment.xml index bd3bad52c20..5997f1069a4 100644 --- a/app/src/main/res/layout-sw600dp-land/resume_lesson_fragment.xml +++ b/app/src/main/res/layout-sw600dp-land/resume_lesson_fragment.xml @@ -111,7 +111,7 @@ android:minWidth="144dp" android:minHeight="@dimen/clickable_item_min_height" android:text="@string/start_over_lesson_button" - android:textAllCaps="true" + android:textAllCaps="false" android:textColor="@color/component_color_shared_secondary_button_background_trim_color" android:textSize="14sp" app:backgroundTint="@null" @@ -130,7 +130,7 @@ android:minWidth="144dp" android:minHeight="@dimen/clickable_item_min_height" android:text="@string/resume_lesson_button" - android:textAllCaps="true" + android:textAllCaps="false" android:textColor="@color/component_color_shared_secondary_4_text_color" android:textSize="14sp" app:backgroundTint="@null" diff --git a/app/src/main/res/layout-sw600dp-port/onboarding_slide_final.xml b/app/src/main/res/layout-sw600dp-port/onboarding_slide_final.xml index ce4f739f08d..7d56635942f 100644 --- a/app/src/main/res/layout-sw600dp-port/onboarding_slide_final.xml +++ b/app/src/main/res/layout-sw600dp-port/onboarding_slide_final.xml @@ -80,6 +80,7 @@ android:text="@string/get_started" android:textColor="@color/component_color_shared_secondary_4_text_color" android:textSize="20sp" + android:textAllCaps="false" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/slide_description_text_view" /> diff --git a/app/src/main/res/layout/add_profile_activity.xml b/app/src/main/res/layout/add_profile_activity.xml index 6a0c53c3282..417092d77a1 100644 --- a/app/src/main/res/layout/add_profile_activity.xml +++ b/app/src/main/res/layout/add_profile_activity.xml @@ -237,7 +237,6 @@ android:enabled="@{viewModel.isButtonActive()}" android:gravity="center" android:text="@string/add_profile_create_btn" - android:textAllCaps="true" android:textColor="@{viewModel.isButtonActive() ? @color/component_color_shared_secondary_4_text_color : @color/component_color_shared_button_inactive_text_color }" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@+id/add_profile_activity_pin_constraint_layout" /> diff --git a/app/src/main/res/layout/concept_card_fragment_test_activity.xml b/app/src/main/res/layout/concept_card_fragment_test_activity.xml index 9fbbdcb7b6f..4894aac319d 100644 --- a/app/src/main/res/layout/concept_card_fragment_test_activity.xml +++ b/app/src/main/res/layout/concept_card_fragment_test_activity.xml @@ -7,11 +7,13 @@ android:id="@+id/open_dialog_0" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Concept Card 1" /> + android:text="Concept Card 1" + android:textAllCaps="false"/>