Skip to content
Open
Show file tree
Hide file tree
Changes from all 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/content_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 @@ -63,7 +62,6 @@
app:explorationViewPaddingBottom="@{@dimen/content_item_exploration_view_padding_bottom}"
app:explorationViewPaddingEnd="@{@dimen/content_item_exploration_view_padding_end}"
app:explorationViewPaddingStart="@{@dimen/content_item_exploration_view_padding_start}"
app:explorationViewPaddingTop="@{@dimen/content_item_exploration_view_padding_top}"
tools:targetApi="23"/>
app:explorationViewPaddingTop="@{@dimen/content_item_exploration_view_padding_top}" />
</FrameLayout>
</layout>
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>
Loading
Loading