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**
**Lint report after**
## 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)
}
}