From 188916f05a997c085073a913f5b0d70194c5e0ec Mon Sep 17 00:00:00 2001 From: Sergei Shchurov <71126152+sichchurov@users.noreply.github.com> Date: Thu, 19 Oct 2023 11:58:26 +0300 Subject: [PATCH] Fix part of #5195: Changed method for compatibility with API < 26 (#5190) ## Explanation Fix part of #5195: For providing compatibility with API < 26, I added the else-if operator. If API 26 and higher use java.util.Base64 class else use android.util.Base64 class **Lint report before** callingNewApiBefore **Lint report after** callingNewApAfter ## 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 --- .../learneranalytics/ControlButtonsViewModel.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ControlButtonsViewModel.kt b/app/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ControlButtonsViewModel.kt index 5a2970e9652..7bfc41a7ffe 100644 --- a/app/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ControlButtonsViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/administratorcontrols/learneranalytics/ControlButtonsViewModel.kt @@ -3,6 +3,7 @@ package org.oppia.android.app.administratorcontrols.learneranalytics import android.annotation.SuppressLint import android.content.ActivityNotFoundException import android.content.Intent +import android.os.Build import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData @@ -228,7 +229,11 @@ class ControlButtonsViewModel private constructor( val compressedMessage = ByteArrayOutputStream().also { byteOutputStream -> GZIPOutputStream(byteOutputStream).use(::writeTo) }.toByteArray() - return Base64.getEncoder().encodeToString(compressedMessage) + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + Base64.getEncoder().encodeToString(compressedMessage) + } else { + android.util.Base64.encodeToString(compressedMessage, 0) + } } private fun String.computeSha1Hash(machineLocale: OppiaLocale.MachineLocale): String {