diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 33f54765791..39bee0869ca 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
package="org.oppia.android">
+ android:targetSdkVersion="36" />
diff --git a/app/src/main/AppAndroidManifest.xml b/app/src/main/AppAndroidManifest.xml
index 4c15ca1f14c..7b96cea3793 100644
--- a/app/src/main/AppAndroidManifest.xml
+++ b/app/src/main/AppAndroidManifest.xml
@@ -1,5 +1,5 @@
+ android:targetSdkVersion="36" />
diff --git a/app/src/main/DatabindingAdaptersManifest.xml b/app/src/main/DatabindingAdaptersManifest.xml
index 63cdc2a5f2b..fac77236c71 100644
--- a/app/src/main/DatabindingAdaptersManifest.xml
+++ b/app/src/main/DatabindingAdaptersManifest.xml
@@ -1,5 +1,5 @@
+ android:targetSdkVersion="36" />
diff --git a/app/src/main/DatabindingResourcesManifest.xml b/app/src/main/DatabindingResourcesManifest.xml
index ae17458dc3f..ab0bc42bc41 100644
--- a/app/src/main/DatabindingResourcesManifest.xml
+++ b/app/src/main/DatabindingResourcesManifest.xml
@@ -1,5 +1,5 @@
+ android:targetSdkVersion="36" />
diff --git a/app/src/main/RecyclerviewAdaptersManifest.xml b/app/src/main/RecyclerviewAdaptersManifest.xml
index ce15d95f5c2..5a6cdc2a2a4 100644
--- a/app/src/main/RecyclerviewAdaptersManifest.xml
+++ b/app/src/main/RecyclerviewAdaptersManifest.xml
@@ -1,5 +1,5 @@
+ android:targetSdkVersion="36" />
diff --git a/app/src/main/ViewModelManifest.xml b/app/src/main/ViewModelManifest.xml
index a839f49c55d..b5416abbbae 100644
--- a/app/src/main/ViewModelManifest.xml
+++ b/app/src/main/ViewModelManifest.xml
@@ -3,5 +3,5 @@
+ android:targetSdkVersion="36" />
diff --git a/app/src/main/ViewModelsManifest.xml b/app/src/main/ViewModelsManifest.xml
index b96420da2fb..55189735a49 100644
--- a/app/src/main/ViewModelsManifest.xml
+++ b/app/src/main/ViewModelsManifest.xml
@@ -3,5 +3,5 @@
+ android:targetSdkVersion="36" />
diff --git a/app/src/main/ViewsManifest.xml b/app/src/main/ViewsManifest.xml
index 33bafb86383..b5b1aa96921 100644
--- a/app/src/main/ViewsManifest.xml
+++ b/app/src/main/ViewsManifest.xml
@@ -3,5 +3,5 @@
+ android:targetSdkVersion="36" />
diff --git a/app/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt b/app/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt
index 3de39cee276..70fac52537d 100644
--- a/app/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt
@@ -180,7 +180,9 @@ class AudioViewModel @Inject constructor(
if (languageCodeForDataSource != null) {
// TODO(#3791): Remove this dependency.
- val locale = Locale(languageCodeForDataSource)
+ val locale = Locale.Builder()
+ .setLanguage(languageCodeForDataSource)
+ .build()
selectedLanguageName.set(locale.getDisplayLanguage(locale))
audioPlayerController.changeDataSource(
diff --git a/app/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt b/app/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt
index e9c4a44a6c5..6a964b4cf36 100644
--- a/app/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt
+++ b/app/src/main/java/org/oppia/android/app/translation/AppLanguageResourceHandler.kt
@@ -188,7 +188,10 @@ class AppLanguageResourceHandler @Inject constructor(
private fun getLocalizedDisplayName(languageCode: String, regionCode: String = ""): String {
// TODO(#3791): Remove this dependency.
- val locale = Locale(languageCode, regionCode)
+ val locale = Locale.Builder()
+ .setLanguage(languageCode)
+ .setRegion(regionCode)
+ .build()
return locale.getDisplayLanguage(locale).replaceFirstChar {
if (it.isLowerCase()) it.titlecase(locale) else it.toString()
}
diff --git a/build_flavors.bzl b/build_flavors.bzl
index 004ee00ae95..d4a56197c95 100644
--- a/build_flavors.bzl
+++ b/build_flavors.bzl
@@ -37,7 +37,7 @@ _FLAVOR_METADATA = {
"dev": {
"manifest": "//app:src/main/AndroidManifest.xml",
"min_sdk_version": 21,
- "target_sdk_version": 35,
+ "target_sdk_version": 36,
"multidex": "native",
"proguard_specs": [], # Developer builds are not optimized.
"production_release": False,
@@ -51,7 +51,7 @@ _FLAVOR_METADATA = {
"alpha": {
"manifest": "//app:src/main/AndroidManifest.xml",
"min_sdk_version": 21,
- "target_sdk_version": 35,
+ "target_sdk_version": 36,
"multidex": "native",
"proguard_specs": _PRODUCTION_PROGUARD_SPECS,
"production_release": True,
@@ -66,7 +66,7 @@ _FLAVOR_METADATA = {
"beta": {
"manifest": "//app:src/main/AndroidManifest.xml",
"min_sdk_version": 21,
- "target_sdk_version": 35,
+ "target_sdk_version": 36,
"multidex": "native",
"proguard_specs": _PRODUCTION_PROGUARD_SPECS,
"production_release": True,
@@ -81,7 +81,7 @@ _FLAVOR_METADATA = {
"ga": {
"manifest": "//app:src/main/AndroidManifest.xml",
"min_sdk_version": 21,
- "target_sdk_version": 35,
+ "target_sdk_version": 36,
"multidex": "native",
"proguard_specs": _PRODUCTION_PROGUARD_SPECS,
"production_release": True,
diff --git a/build_vars.bzl b/build_vars.bzl
index dd42c348fe1..9390073de4e 100644
--- a/build_vars.bzl
+++ b/build_vars.bzl
@@ -1,3 +1,3 @@
-BUILD_SDK_VERSION = 35
-BUILD_TOOLS_VERSION = "34.0.0"
+BUILD_SDK_VERSION = 36
+BUILD_TOOLS_VERSION = "36.0.0"
KOTLIN_COMPILER_VERSION = "1.6.10"
diff --git a/config/src/java/org/oppia/android/config/AndroidManifest.xml b/config/src/java/org/oppia/android/config/AndroidManifest.xml
index 6d109f4176e..d5ccaf2f5de 100644
--- a/config/src/java/org/oppia/android/config/AndroidManifest.xml
+++ b/config/src/java/org/oppia/android/config/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/data/src/main/AndroidManifest.xml b/data/src/main/AndroidManifest.xml
index 60e55b61953..9bf811aadaf 100644
--- a/data/src/main/AndroidManifest.xml
+++ b/data/src/main/AndroidManifest.xml
@@ -2,5 +2,5 @@
-
+
diff --git a/domain/src/main/AndroidManifest.xml b/domain/src/main/AndroidManifest.xml
index 6ec09858172..f30b84798b5 100644
--- a/domain/src/main/AndroidManifest.xml
+++ b/domain/src/main/AndroidManifest.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/scripts/src/java/org/oppia/android/scripts/lint/LintModelCreator.kt b/scripts/src/java/org/oppia/android/scripts/lint/LintModelCreator.kt
index 027882e140a..a21f6a9da55 100644
--- a/scripts/src/java/org/oppia/android/scripts/lint/LintModelCreator.kt
+++ b/scripts/src/java/org/oppia/android/scripts/lint/LintModelCreator.kt
@@ -41,7 +41,7 @@ class LintModelCreator(
// Build configurations for Android app layer configuration
private const val PACKAGE_PREFIX = "org.oppia.android"
private const val MIN_SDK_VERSION = "21"
- private const val TARGET_SDK_VERSION = "35"
+ private const val TARGET_SDK_VERSION = "36"
// Model directories are stable and won't change frequently therefore a longer TTL
private const val MODEL_CACHE_TTL_HOURS = 24L // 24 hours
diff --git a/scripts/src/javatests/org/oppia/android/scripts/common/AndroidBuildSdkPropertiesTest.kt b/scripts/src/javatests/org/oppia/android/scripts/common/AndroidBuildSdkPropertiesTest.kt
index c2668a1b650..1b07cb4929d 100644
--- a/scripts/src/javatests/org/oppia/android/scripts/common/AndroidBuildSdkPropertiesTest.kt
+++ b/scripts/src/javatests/org/oppia/android/scripts/common/AndroidBuildSdkPropertiesTest.kt
@@ -19,14 +19,14 @@ class AndroidBuildSdkPropertiesTest {
fun testBuildSdkVersion_isTheCorrectSdkVersion() {
val properties = AndroidBuildSdkProperties()
- assertThat(properties.buildSdkVersion).isEqualTo(35)
+ assertThat(properties.buildSdkVersion).isEqualTo(36)
}
@Test
fun testBuildToolsVersion_isTheCorrectVersion() {
val properties = AndroidBuildSdkProperties()
- assertThat(properties.buildToolsVersion).isEqualTo("34.0.0")
+ assertThat(properties.buildToolsVersion).isEqualTo("36.0.0")
}
@Test
diff --git a/scripts/src/javatests/org/oppia/android/scripts/lint/AndroidLintRunnerTest.kt b/scripts/src/javatests/org/oppia/android/scripts/lint/AndroidLintRunnerTest.kt
index c6e98971b8e..5637ace02aa 100644
--- a/scripts/src/javatests/org/oppia/android/scripts/lint/AndroidLintRunnerTest.kt
+++ b/scripts/src/javatests/org/oppia/android/scripts/lint/AndroidLintRunnerTest.kt
@@ -44,7 +44,7 @@ class AndroidLintRunnerTest {
companion object {
private const val JAVA_VERSION = "11.0.6"
private const val MIN_SDK_VERSION = "21"
- private const val TARGET_SDK_VERSION = "35"
+ private const val TARGET_SDK_VERSION = "36"
}
@Before
diff --git a/scripts/src/javatests/org/oppia/android/scripts/lint/LintModelCreatorTest.kt b/scripts/src/javatests/org/oppia/android/scripts/lint/LintModelCreatorTest.kt
index 33711e27001..8ec4ce2c335 100644
--- a/scripts/src/javatests/org/oppia/android/scripts/lint/LintModelCreatorTest.kt
+++ b/scripts/src/javatests/org/oppia/android/scripts/lint/LintModelCreatorTest.kt
@@ -70,7 +70,7 @@ class LintModelCreatorTest {
assertThat(content).contains("
+ android:targetSdkVersion="36" />
diff --git a/utility/src/main/AndroidManifest.xml b/utility/src/main/AndroidManifest.xml
index 89cd43f020b..0fe889b0a55 100644
--- a/utility/src/main/AndroidManifest.xml
+++ b/utility/src/main/AndroidManifest.xml
@@ -1,5 +1,5 @@
+ android:targetSdkVersion="36" />
diff --git a/utility/src/main/java/org/oppia/android/util/accessibility/AccessibilityServiceImpl.kt b/utility/src/main/java/org/oppia/android/util/accessibility/AccessibilityServiceImpl.kt
index 892c3e3f154..c66f0f876eb 100644
--- a/utility/src/main/java/org/oppia/android/util/accessibility/AccessibilityServiceImpl.kt
+++ b/utility/src/main/java/org/oppia/android/util/accessibility/AccessibilityServiceImpl.kt
@@ -17,6 +17,11 @@ class AccessibilityServiceImpl @Inject constructor(
return accessibilityManager.isEnabled
}
+ // TODO : Replace deprecated View.announceForAccessibility() with a direct
+ // AccessibilityManager.sendAccessibilityEvent(TYPE_ANNOUNCEMENT) call.
+ // Suppressed temporarily to unblock the Android 16 (SDK 36) target upgrade.
+
+ @Suppress("DEPRECATION")
override fun announceForAccessibilityForView(view: View, text: CharSequence) {
view.announceForAccessibility(text)
}
diff --git a/utility/src/main/java/org/oppia/android/util/locale/AndroidLocaleProfile.kt b/utility/src/main/java/org/oppia/android/util/locale/AndroidLocaleProfile.kt
index 9c96ec0f8fc..c2b48ea568b 100644
--- a/utility/src/main/java/org/oppia/android/util/locale/AndroidLocaleProfile.kt
+++ b/utility/src/main/java/org/oppia/android/util/locale/AndroidLocaleProfile.kt
@@ -56,7 +56,11 @@ sealed class AndroidLocaleProfile {
}
}
- override fun computeAndroidLocale(): Locale = Locale(languageCode, regionCode)
+ override fun computeAndroidLocale(): Locale =
+ Locale.Builder()
+ .setLanguage(languageCode)
+ .setRegion(regionCode)
+ .build()
}
/**
@@ -73,7 +77,10 @@ sealed class AndroidLocaleProfile {
override fun matches(otherProfile: AndroidLocaleProfile): Boolean =
otherProfile is RegionOnlyProfile && regionCode == otherProfile.regionCode
- override fun computeAndroidLocale(): Locale = Locale(/* language = */ "", regionCode)
+ override fun computeAndroidLocale(): Locale =
+ Locale.Builder()
+ .setRegion(regionCode)
+ .build()
}
/**
@@ -95,7 +102,10 @@ sealed class AndroidLocaleProfile {
}
}
- override fun computeAndroidLocale(): Locale = Locale(languageCode)
+ override fun computeAndroidLocale(): Locale =
+ Locale.Builder()
+ .setLanguage(languageCode)
+ .build()
}
/**
@@ -119,7 +129,10 @@ sealed class AndroidLocaleProfile {
}
}
- override fun computeAndroidLocale(): Locale = Locale(languageCode)
+ override fun computeAndroidLocale(): Locale =
+ Locale.Builder()
+ .setLanguage(languageCode)
+ .build()
}
/**