Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.oppia.android">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/AppAndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.app.ui">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion app/src/main/DatabindingAdaptersManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.databinding.adapters">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion app/src/main/DatabindingResourcesManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.app.databinding">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion app/src/main/RecyclerviewAdaptersManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.app.recyclerview.adapters">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion app/src/main/ViewModelManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
<!-- TODO(#1632): Remove manifest -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.app.vm">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion app/src/main/ViewModelsManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
<!-- TODO(#1632): Remove manifest -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.app.view.models">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion app/src/main/ViewsManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
<!-- TODO(#1632): Remove manifest -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.app.views">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
</manifest>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.app.thirdparty">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
</manifest>
6 changes: 2 additions & 4 deletions app/src/main/res/layout/feedback_item.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
xmlns:app="http://schemas.android.com/apk/res-auto">

<data>

Expand Down Expand Up @@ -62,7 +61,6 @@
app:explorationViewPaddingBottom="@{@dimen/feedback_item_exploration_view_padding_bottom}"
app:explorationViewPaddingEnd="@{@dimen/feedback_item_exploration_view_padding_end}"
app:explorationViewPaddingStart="@{@dimen/feedback_item_exploration_view_padding_start}"
app:explorationViewPaddingTop="@{@dimen/feedback_item_exploration_view_padding_top}"
tools:targetApi="23"/>
app:explorationViewPaddingTop="@{@dimen/feedback_item_exploration_view_padding_top}" />
</FrameLayout>
</layout>
2 changes: 1 addition & 1 deletion app/src/test/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.oppia.android.app.test">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="30" />

<application>
Expand Down
8 changes: 4 additions & 4 deletions build_flavors.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ _PRODUCTION_PROGUARD_SPECS = [
_FLAVOR_METADATA = {
"dev": {
"manifest": "//app:src/main/AndroidManifest.xml",
"min_sdk_version": 21,
"min_sdk_version": 23,
"target_sdk_version": 36,
"multidex": "native",
"proguard_specs": [], # Developer builds are not optimized.
Expand All @@ -50,7 +50,7 @@ _FLAVOR_METADATA = {
},
"alpha": {
"manifest": "//app:src/main/AndroidManifest.xml",
"min_sdk_version": 21,
"min_sdk_version": 23,
"target_sdk_version": 36,
"multidex": "native",
"proguard_specs": _PRODUCTION_PROGUARD_SPECS,
Expand All @@ -65,7 +65,7 @@ _FLAVOR_METADATA = {
},
"beta": {
"manifest": "//app:src/main/AndroidManifest.xml",
"min_sdk_version": 21,
"min_sdk_version": 23,
"target_sdk_version": 36,
"multidex": "native",
"proguard_specs": _PRODUCTION_PROGUARD_SPECS,
Expand All @@ -80,7 +80,7 @@ _FLAVOR_METADATA = {
},
"ga": {
"manifest": "//app:src/main/AndroidManifest.xml",
"min_sdk_version": 21,
"min_sdk_version": 23,
"target_sdk_version": 36,
"multidex": "native",
"proguard_specs": _PRODUCTION_PROGUARD_SPECS,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.config">

<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="36" />
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion data/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
<!-- TODO(#6010): Remove this manifest. -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.data">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="36" />
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion data/src/test/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.oppia.android.data">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="30" />

<application>
Expand Down
2 changes: 1 addition & 1 deletion domain/domain_assets.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ def local_assets_library(
'<?xml version="1.0" encoding="utf-8"?>',
'<manifest xmlns:android="http://schemas.android.com/apk/res/android"',
' package="org.oppia.android.domain.assets.%s">' % name,
' <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="%d" />' % BUILD_SDK_VERSION,
' <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="%d" />' % BUILD_SDK_VERSION,
"</manifest>",
],
)
Expand Down
2 changes: 1 addition & 1 deletion domain/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.domain">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="36" />
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion domain/src/test/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.oppia.android.domain">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="30" />

<application>
Expand Down
2 changes: 1 addition & 1 deletion instrumentation/src/javatests/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.app.instrumentation">
<uses-sdk
android:minSdkVersion="21"
android:minSdkVersion="23"
android:targetSdkVersion="30" />
<instrumentation
android:targetPackage="org.oppia.android"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ class LintAnalysisReporter(private val repoRoot: File) {
// TODO(#5930): Remove this once lint no longer falsely triggers on Iterable#forEach.
FalsePositiveIssue(
issueId = "NewApi",
message = "Call requires API level 24 (current min is 21): `java.lang.Iterable#forEach`",
message = "Call requires API level 24 (current min is 23): `java.lang.Iterable#forEach`",
severity = LintSeverity.ERROR,
workaroundMessage = "Use safeForEach from IterableExtensions.kt instead of directly" +
" calling forEach to avoid known lint false positives on API < 24."
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,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 MIN_SDK_VERSION = "23"
private const val TARGET_SDK_VERSION = "36"

// Model directories are stable and won't change frequently therefore a longer TTL
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ class AndroidLintRunnerTest {

companion object {
private const val JAVA_VERSION = "11.0.6"
private const val MIN_SDK_VERSION = "21"
private const val MIN_SDK_VERSION = "23"
private const val TARGET_SDK_VERSION = "35"
}

Expand Down Expand Up @@ -683,12 +683,14 @@ class AndroidLintRunnerTest {
val output = outputStream.toString()
assertThat(output).contains("NewApi")
assertThat(output)
.doesNotContain("val network2 = cm.activeNetwork")
assertThat(output).contains("Line: 11")
.contains("val localeList = LocaleList.getDefault()")
assertThat(output)
.doesNotContain("val localeList2 = LocaleList.getDefault()")
assertThat(output).contains("Line: 10")
assertThat(output)
.contains(
"Call requires API level 23 (current min is 21): " +
"`android.net.ConnectivityManager#getActiveNetwork`"
"Call requires API level 24 (current min is 23): " +
"`android.os.LocaleList#getDefault`"
)
assertThat(exception.message).contains("${RED}ANDROID LINT CHECK ${BOLD}FAILED$RESET")

Expand All @@ -713,7 +715,7 @@ class AndroidLintRunnerTest {
assertThat(output).contains("line=\"14\"")
assertThat(output)
.contains(
"Field requires API level 29 (current min is 21):" +
"Field requires API level 29 (current min is 23):" +
" `android.media.MediaFormat#MIMETYPE_AUDIO_AC4`"
)

Expand Down Expand Up @@ -1079,15 +1081,14 @@ class AndroidLintRunnerTest {

import android.annotation.SuppressLint
import android.content.Context
import android.net.ConnectivityManager
import android.os.Build
import android.os.LocaleList

@SuppressLint("MissingPermission")
fun test(context: Context) {
val cm = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val network = cm.activeNetwork
if (Build.VERSION.SDK_INT >= 23) {
val network2 = cm.activeNetwork // OK
val localeList = LocaleList.getDefault()
if (Build.VERSION.SDK_INT >= 24) {
val localeList2 = LocaleList.getDefault() // OK
}
}
""".trimIndent()
Expand Down Expand Up @@ -1491,4 +1492,54 @@ class AndroidLintRunnerTest {

return jarFile
}

@Test
fun testMain_noArguments_throwsSecurityException() {
val exception = assertThrows<SecurityException> {
main()
}
assertThat(exception).hasMessageThat().contains("System.exit()")
}

@Test
fun testMain_nonExistentRepoRoot_throwsSecurityException() {
val exception = assertThrows<SecurityException> {
main("non_existent_directory_12345")
}
assertThat(exception).hasMessageThat().contains("System.exit()")
}

@Test
fun testMain_invalidProtoExtension_throwsSecurityException() {
val exception = assertThrows<SecurityException> {
main(tempFolder.root.absolutePath, "--proto=invalid.txt")
}
assertThat(exception).hasMessageThat().contains("System.exit()")
}

@Test
fun testMain_validArgs_checkScriptConsistencyMode_throwsSecurityExceptionOnExitZero() {
val exception = assertThrows<SecurityException> {
main(
tempFolder.root.absolutePath,
"--mode=check-script-consistency",
"--processTimeout=10",
"--proto=$pathToProtoBinary",
"--checks=HardcodedText",
"--group_by_severity",
"--timer"
)
}
assertThat(exception).hasMessageThat().contains("System.exit()")
val output = outputStream.toString()
assertThat(output).contains("CHECK PASSED: LintCheckCatalog")
}

@Test
fun testMain_invalidModeString_printsStacktraceAndExitsWithSecurityException() {
val exception = assertThrows<SecurityException> {
main(tempFolder.root.absolutePath, "--mode=invalid-mode")
}
assertThat(exception).hasMessageThat().contains("System.exit()")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -809,7 +809,7 @@ class LintAnalysisReporterTest {
LintIssue(
id = "NewApi",
severity = LintSeverity.ERROR,
message = "Call requires API level 24 (current min is 21): `java.lang.Iterable#forEach`",
message = "Call requires API level 24 (current min is 23): `java.lang.Iterable#forEach`",
category = "Correctness",
explanation = "This check scans through all the Android API " +
"calls in the application and warns about any calls that are not available",
Expand Down Expand Up @@ -839,7 +839,7 @@ class LintAnalysisReporterTest {
)
assertThat(output).contains(
"Message: Call requires API level 24 " +
"(current min is 21): `java.lang.Iterable#forEach`"
"(current min is 23): `java.lang.Iterable#forEach`"
)
assertThat(output).contains(
"Workaround:\n"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ class LintModelCreatorTest {
val content = variantXmlFile.readText()
assertThat(content).contains("<variant")
assertThat(content).contains("name=\"main\"")
assertThat(content).contains("minSdkVersion=\"21\"")
assertThat(content).contains("minSdkVersion=\"23\"")
assertThat(content).contains("targetSdkVersion=\"36\"")
assertThat(content).contains("debuggable=\"true\"")
assertThat(content).contains("package=\"org.oppia.android.app\"")
Expand Down
2 changes: 1 addition & 1 deletion testing/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.testing">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />

<application>
Expand Down
2 changes: 1 addition & 1 deletion testing/src/test/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.oppia.android.testing">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="30" />

<application>
Expand Down
2 changes: 1 addition & 1 deletion tools/download_assets.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ def downloaded_assets_library(name, download_config, pinned_versions, output_log
'<?xml version="1.0" encoding="utf-8"?>',
'<manifest xmlns:android="http://schemas.android.com/apk/res/android"',
' package="org.oppia.android.domain.assets.%s">' % name,
' <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="%d" />' % BUILD_SDK_VERSION,
' <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="%d" />' % BUILD_SDK_VERSION,
"</manifest>",
],
tags = tags,
Expand Down
2 changes: 1 addition & 1 deletion utility/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.oppia.android.util">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="36" />
</manifest>
2 changes: 1 addition & 1 deletion utility/src/test/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.oppia.android.util">
<uses-sdk android:minSdkVersion="21"
<uses-sdk android:minSdkVersion="23"
android:targetSdkVersion="30" />

<application>
Expand Down
Loading