From e151bbd06b21d2b8211b4f56cde3cb4a6c2673c4 Mon Sep 17 00:00:00 2001 From: Sergei Shchurov <71126152+sichchurov@users.noreply.github.com> Date: Fri, 20 Oct 2023 21:10:46 +0300 Subject: [PATCH] Fix part of #5195: RestrictedApi. Using a private API (#5198) ## Explanation Fix part of #5195: I have modified method setButtonTint to avoid an error due to using a restricted API. This method(bindingAdapter) is not set in any of the layouts. Only test is written for it. So it is safety to modify the test also. If not modify a test - it is failed then. **Lint report before** callingNewApiBefore **Lint report after** callingNewApiBefore ## 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)) - For PRs introducing new UI elements or color changes, both light and dark mode screenshots must be included - Add a screenshot demonstrating that you ran affected Espresso tests locally & that they're passing --- .../app/databinding/AppCompatCheckBoxBindingAdapters.java | 3 ++- .../app/databinding/AppCompatCheckBoxBindingAdaptersTest.kt | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdapters.java b/app/src/main/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdapters.java index b704faa86e2..4e7f59b0bb3 100644 --- a/app/src/main/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdapters.java +++ b/app/src/main/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdapters.java @@ -4,6 +4,7 @@ import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.appcompat.widget.AppCompatCheckBox; +import androidx.core.widget.CompoundButtonCompat; import androidx.databinding.BindingAdapter; /** @@ -13,6 +14,6 @@ public final class AppCompatCheckBoxBindingAdapters { /** Sets the button tint for the specified checkbox, via data-binding. */ @BindingAdapter("app:buttonTint") public static void setButtonTint(@NonNull AppCompatCheckBox checkBox, @ColorInt int colorRgb) { - checkBox.setSupportButtonTintList(ColorStateList.valueOf(colorRgb)); + CompoundButtonCompat.setButtonTintList(checkBox, ColorStateList.valueOf(colorRgb)); } } diff --git a/app/src/sharedTest/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdaptersTest.kt b/app/src/sharedTest/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdaptersTest.kt index 57586237166..9fcf2bd1e47 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdaptersTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdaptersTest.kt @@ -127,7 +127,7 @@ class AppCompatCheckBoxBindingAdaptersTest { activityRule.scenario.onActivity { val appCompatCheckBox: AppCompatCheckBox = getAppCompatCheckBox(it) setButtonTint(appCompatCheckBox, colorRgb) - assertThat(appCompatCheckBox.supportButtonTintList?.defaultColor).isEqualTo(colorRgb) + assertThat(appCompatCheckBox.buttonTintList?.defaultColor).isEqualTo(colorRgb) } }