From 20aa3580b3c0a08cd64c76aa1f88634f880f074d Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 02:39:12 +0000 Subject: [PATCH 01/14] First part in removing Gradle. This removes the actual Gradle build infrastructure and CI workflows. It also updates some TODO references to no longer reference Gradle (as there are additional blockers for that work) and updates CODEOWNERS and .gitignore accordingly. Some unnecesary files have also been removed. --- .github/CODEOWNERS | 19 - .github/workflows/main.yml | 161 --------- .gitignore | 4 - app/build.gradle | 329 ------------------ app/proguard-rules.pro | 21 -- app/src/main/ViewModelManifest.xml | 2 +- app/src/main/ViewModelsManifest.xml | 2 +- app/src/main/ViewsManifest.xml | 2 +- .../CompletedStoryListActivity.kt | 2 +- .../CompletedStoryListFragment.kt | 2 +- .../app/drawer/ExitProfileDialogFragment.kt | 2 +- .../help/faq/faqsingle/FAQSingleActivity.kt | 2 +- .../recentlyplayed/RecentlyPlayedActivity.kt | 2 +- .../OngoingTopicListActivity.kt | 2 +- .../OngoingTopicListFragment.kt | 2 +- .../android/app/options/OptionsActivity.kt | 2 +- .../player/exploration/ExplorationActivity.kt | 2 +- .../ProfileProgressActivity.kt | 2 +- .../app/resumelesson/ResumeLessonActivity.kt | 2 +- .../ProfileEditDeletionDialogFragment.kt | 2 +- .../android/app/shim/IntentFactoryShim.kt | 4 +- .../android/app/shim/IntentFactoryShimImpl.kt | 4 +- .../oppia/android/app/shim/ViewBindingShim.kt | 4 +- .../android/app/shim/ViewBindingShimImpl.kt | 4 +- .../ProfileChooserFragmentTestActivity.kt | 2 +- .../topic/revision/TopicRevisionFragment.kt | 2 +- app/src/test/resources/robolectric.properties | 3 - build.gradle | 32 -- data/build.gradle | 118 ------- data/proguard-rules.pro | 21 -- data/src/main/AndroidManifest.xml | 1 - .../src/test/resources/robolectric.properties | 3 - domain/build.gradle | 142 -------- domain/proguard-rules.pro | 21 -- .../src/test/resources/robolectric.properties | 3 - gradle.properties | 26 -- gradle/wrapper/gradle-wrapper.jar | Bin 54329 -> 0 bytes gradle/wrapper/gradle-wrapper.properties | 6 - gradlew | 172 --------- gradlew.bat | 84 ----- model/build.gradle | 45 --- settings.gradle | 1 - testing/build.gradle | 127 ------- .../src/test/resources/robolectric.properties | 3 - utility/build.gradle | 133 ------- utility/proguard-rules.pro | 21 -- .../NetworkConnectionDebugUtilModule.kt | 4 +- .../src/test/resources/robolectric.properties | 3 - 48 files changed, 27 insertions(+), 1526 deletions(-) delete mode 100644 .github/workflows/main.yml delete mode 100644 app/build.gradle delete mode 100644 app/proguard-rules.pro delete mode 100644 app/src/test/resources/robolectric.properties delete mode 100644 build.gradle delete mode 100644 data/build.gradle delete mode 100644 data/proguard-rules.pro delete mode 100644 data/src/main/AndroidManifest.xml delete mode 100644 data/src/test/resources/robolectric.properties delete mode 100644 domain/build.gradle delete mode 100644 domain/proguard-rules.pro delete mode 100644 domain/src/test/resources/robolectric.properties delete mode 100644 gradle.properties delete mode 100644 gradle/wrapper/gradle-wrapper.jar delete mode 100644 gradle/wrapper/gradle-wrapper.properties delete mode 100755 gradlew delete mode 100644 gradlew.bat delete mode 100644 model/build.gradle delete mode 100644 settings.gradle delete mode 100644 testing/build.gradle delete mode 100644 testing/src/test/resources/robolectric.properties delete mode 100644 utility/build.gradle delete mode 100644 utility/proguard-rules.pro delete mode 100644 utility/src/test/resources/robolectric.properties diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index fdf7a2db439..e75939dd62c 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -277,25 +277,6 @@ WORKSPACE @oppia/android-app-infrastructure-reviewers /testing/src/test/AndroidManifest.xml @oppia/android-dev-workflow-reviewers /utility/src/*/AndroidManifest.xml @oppia/android-dev-workflow-reviewers -################################################################################ -# Gradle infrastructure # -################################################################################ - -# Gradle build files. -*.gradle @oppia/android-app-infrastructure-reviewers -gradle.properties @oppia/android-app-infrastructure-reviewers -/gradlew @oppia/android-app-infrastructure-reviewers -/gradlew.bat @oppia/android-app-infrastructure-reviewers -/gradle/ @oppia/android-app-infrastructure-reviewers - -# Configuration files only used by Gradle builds. -/app/proguard-rules.pro @oppia/android-app-infrastructure-reviewers -/data/proguard-rules.pro @oppia/android-app-infrastructure-reviewers -/domain/proguard-rules.pro @oppia/android-app-infrastructure-reviewers -/utility/proguard-rules.pro @oppia/android-app-infrastructure-reviewers -*.properties @oppia/android-app-infrastructure-reviewers -/data/src/main/AndroidManifest.xml @oppia/android-app-infrastructure-reviewers - ################################################################################ # Sensitive file ownership # ################################################################################ diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 57bc0937991..00000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,161 +0,0 @@ -# Contains jobs corresponding to Gradle tests (particularly Robolectric unit tests). - -name: Unit Tests (Robolectric -- Gradle) - -# Controls when the action will run. Triggers the workflow on pull request -# events or push events in the develop branch. -on: - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} - cancel-in-progress: true - -# This workflow has the following jobs: -# robolectric_tests: Robolectric tests for all modules except the app module -# app_tests: Non-flaky Robolectric tests for the app module -jobs: - robolectric_tests: - name: Non-app Module Robolectric Tests - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-20.04] - steps: - - uses: actions/checkout@v2 - - uses: actions/cache@v4 - id: cache - with: - path: ~/.gradle - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-jars-{{ checksum "build.gradle" }} - - - name: Set up JDK 1.9 - uses: actions/setup-java@v1 - with: - java-version: 1.9 - - - name: Check Java version & path - run: | - which java - java -version - echo "Java home: $JAVA_HOME" - $JAVA_HOME/bin/java -version - - - name: Install Dependencies - if: steps.cache.outputs.cache-hit != 'true' - run: ./gradlew --full-stacktrace androidDependencies -Dorg.gradle.java.home=$JAVA_HOME - - - name: Check Gradle environment - run: ./gradlew -Dorg.gradle.java.home=$JAVA_HOME -v - - - name: Build App - # We require 'sudo' to avoid an error of the existing android sdk. See https://github.com/actions/starter-workflows/issues/58 - run: sudo ./gradlew --full-stacktrace assembleDebug -Dorg.gradle.java.home=$JAVA_HOME - - - name: Utility tests - # The expression if: ${{ !cancelled() }} runs a job or step regardless of its success or failure while responding to cancellations, - # serving as a cancellation-compliant alternative to if: ${{ always() }} in concurrent workflows. - if: ${{ !cancelled() }} - # We require 'sudo' to avoid an error of the existing android sdk. See https://github.com/actions/starter-workflows/issues/58 - run: sudo ./gradlew --full-stacktrace :utility:testDebugUnitTest -Dorg.gradle.java.home=$JAVA_HOME - - name: Upload Utility Test Reports - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} # IMPORTANT: Upload reports regardless of success or failure status - with: - name: utility reports - path: utility/build/reports - - - name: Data tests - # The expression if: ${{ !cancelled() }} runs a job or step regardless of its success or failure while responding to cancellations, - # serving as a cancellation-compliant alternative to if: ${{ always() }} in concurrent workflows. - if: ${{ !cancelled() }} - # We require 'sudo' to avoid an error of the existing android sdk. See https://github.com/actions/starter-workflows/issues/58 - run: sudo ./gradlew --full-stacktrace :data:testDebugUnitTest -Dorg.gradle.java.home=$JAVA_HOME - - name: Upload Data Test Reports - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} # IMPORTANT: Upload reports regardless of success or failure status - with: - name: data reports - path: data/build/reports - - - name: Domain tests - # The expression if: ${{ !cancelled() }} runs a job or step regardless of its success or failure while responding to cancellations, - # serving as a cancellation-compliant alternative to if: ${{ always() }} in concurrent workflows. - if: ${{ !cancelled() }} - # We require 'sudo' to avoid an error of the existing android sdk. See https://github.com/actions/starter-workflows/issues/58 - run: sudo ./gradlew --full-stacktrace :domain:testDebugUnitTest -Dorg.gradle.java.home=$JAVA_HOME - - name: Upload Domain Test Reports - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} # IMPORTANT: Upload reports regardless of success or failure status - with: - name: domain reports - path: domain/build/reports - - - name: Testing tests - # The expression if: ${{ !cancelled() }} runs a job or step regardless of its success or failure while responding to cancellations, - # serving as a cancellation-compliant alternative to if: ${{ always() }} in concurrent workflows. - if: ${{ !cancelled() }} - # We require 'sudo' to avoid an error of the existing android sdk. See https://github.com/actions/starter-workflows/issues/58 - run: sudo ./gradlew --full-stacktrace :testing:testDebugUnitTest -Dorg.gradle.java.home=$JAVA_HOME - - name: Upload Testing Test Reports - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} # IMPORTANT: Upload reports regardless of success or failure status - with: - name: testing reports - path: testing/build/reports - - run_app_module_test: - name: Run app module Robolectric test shard - runs-on: ubuntu-20.04 - strategy: - fail-fast: false - matrix: - shard: [shard0, shard1, shard2, shard3, shard4, shard5, shard6, shard7] - steps: - - uses: actions/checkout@v2 - - - uses: actions/cache@v4 - with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}-jars-{{ checksum "build.gradle" }} - - - name: Set up JDK 1.9 - uses: actions/setup-java@v1 - with: - java-version: 1.9 - - - name: Check Java version & path - run: | - which java - java -version - echo "Java home: $JAVA_HOME" - $JAVA_HOME/bin/java -version - - - name: Check Gradle environment - run: ./gradlew -Dorg.gradle.java.home=$JAVA_HOME -v - - - name: Robolectric tests - App Module - # We require 'sudo' to avoid an error of the existing android sdk. See https://github.com/actions/starter-workflows/issues/58 - run: | - sudo ./gradlew --full-stacktrace :app:testDebugUnitTest --${{ matrix.shard }} -Dorg.gradle.java.home=$JAVA_HOME - - name: Upload App Test Reports - uses: actions/upload-artifact@v4 - if: ${{ !cancelled() }} # IMPORTANT: Upload reports regardless of success or failure status - with: - name: app reports ${{ matrix.shard }} - path: app/build/reports - - app_tests: - name: App Module Robolectric Tests - needs: run_app_module_test - # The expression if: ${{ !cancelled() }} runs a job or step regardless of its success or failure while responding to cancellations, - # serving as a cancellation-compliant alternative to if: ${{ always() }} in concurrent workflows. - if: ${{ !cancelled() }} - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-20.04] - steps: - - name: Check tests passed (for tests that ran) - if: ${{ needs.run_app_module_test.result != 'success' }} - run: exit 1 diff --git a/.gitignore b/.gitignore index 224c3b3ef25..df850b9152c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ *.iml -.gradle /local.properties .idea/* !.idea/encodings.xml @@ -15,9 +14,6 @@ utility/build /build /captures .externalNativeBuild -gradle -gradlew -gradlew.bat .gitsecret/keys/random_seed !*.secret config/oppia-dev-workflow-remote-cache-credentials.json diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index bc5d6d4b15a..00000000000 --- a/app/build.gradle +++ /dev/null @@ -1,329 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'com.google.firebase.crashlytics' -apply plugin: 'com.google.gms.google-services' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' - -android { - compileSdkVersion 34 - buildToolsVersion "30.0.0" - defaultConfig { - applicationId "org.oppia.android" - minSdkVersion 21 - targetSdkVersion 34 - versionCode 1 - versionName "1.0" - multiDexEnabled true - testInstrumentationRunner "org.oppia.android.testing.OppiaTestRunner" - // https://developer.android.com/training/testing/junit-runner#ato-gradle - testInstrumentationRunnerArguments clearPackageData: 'true' - javaCompileOptions { - annotationProcessorOptions { - includeCompileClasspath true - } - } - vectorDrawables { useSupportLibrary true } - } - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 - useIR = true - freeCompilerArgs += ["-opt-in=kotlin.RequiresOptIn"] - } - buildFeatures { - compose true - } - composeOptions { - kotlinCompilerExtensionVersion compose_version - kotlinCompilerVersion kotlin_version - } - buildTypes { - release { - minifyEnabled true - shrinkResources true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - debug { - pseudoLocalesEnabled true - } - } - splits { - // See: https://developer.android.com/studio/build/configure-apk-splits - density { - enable false - } - } - dataBinding { - enabled = true - } - testOptions { - // https://developer.android.com/training/testing/junit-runner#ato-gradle - execution 'ANDROIDX_TEST_ORCHESTRATOR' - unitTests { - includeAndroidResources = true - all { - maxHeapSize = "4096m" - - // Enable forking to ensure each test is properly run in isolation. For context, see: - // https://discuss.gradle.org/t/36066/2 & https://github.com/oppia/oppia-android/issues/1942 - forkEvery = 1 - maxParallelForks = Runtime.getRuntime().availableProcessors() - - // https://discuss.gradle.org/t/29495/2 & https://stackoverflow.com/a/34299238. - testLogging { - events "passed", "skipped", "failed" - showExceptions = true - exceptionFormat = "full" - showCauses = true - showStackTraces = true - showStandardStreams = false - } - } - } - animationsDisabled = true - } - - // https://proandroiddev.com/isolated-fragments-unit-tests-that-run-both-instrumented-and-on-the-jvm-with-the-same-source-code-283db2e9be5d - sourceSets { - androidTest { - java.srcDirs += "src/sharedTest/java" - kotlin.srcDirs += "src/sharedTest/java" - } - test { - java.srcDirs += "src/sharedTest/java" - kotlin.srcDirs += "src/sharedTest/java" - java.exclude('**/DataBinderMapperImpl.java') // Bazel-specific file used to run tests - } - } -} - -// See notice for the excluded files in domain/build.gradle for an explanation on the -// language-related exclusions. The additional application component is excluded because Gradle -// isn't able to compile multiple Dagger graphs in the same build configuration. -def filesToExclude = [ - '**/*AppLanguageLocaleHandlerTest*.kt', - '**/*AppLanguageResourceHandlerTest*.kt', - '**/*AppLanguageWatcherMixinTest*.kt', - '**/*ActivityLanguageLocaleHandlerTest*.kt', - '**/*OptionsFragmentTest*.kt', // Excludes 2 tests. -] -_excludeSourceFiles(filesToExclude) - -// Check if sharding is being attempted and, if so, exclude all tests that aren't in the specified -// shard. The approach to using arguments was inspired by -// https://prandroid.dev/Parallel-unit-tests-in-android/. - -// NOTE TO DEVELOPER: You likely will need to clean before running any of these, and you can't run -// one shard after another without cleaning first (since Gradle doesn't handle file exclusion well, -// it expects files to be present corresponding to generated code, such as Dagger, from previous -// runs). -def appModuleShardCount = 8 -def shardIndexes = 0..(appModuleShardCount - 1) -shardIndexes.each { shardIndex -> - if (project.gradle.startParameter?.taskRequests?.args[0]?.remove("--shard$shardIndex".toString())) { - def filesToExcludeForShard = _computeTestsCorrespondingToShard(appModuleShardCount, shardIndex, true) - println("Excluding ${filesToExcludeForShard.size} tests for shard $shardIndex") - _excludeSourceFiles(filesToExcludeForShard.collect { - // Ensure the test paths are properly relative to the app module so that their exclusion - // filters match (but keep the unique relative paths to avoid accidentally skipping tests that - // share names). Note that the 'org/oppia/android/app' part is specifically included to ensure - // that cases where a path relative to org/oppia/android/app is fully overlapping with another - // path result in one of the tests being ignored in all shards. - def prefixToExclude = "org/oppia/android/app/" - "**/${it.substring(it.indexOf(prefixToExclude))}" - }) - } -} -if (project.gradle.startParameter?.taskRequests?.args[0]?.remove("--list-shards")) { - println() - println("The app module supports $appModuleShardCount shards") - println() - shardIndexes.each { shardIndex -> - def filesInShard = _computeTestsCorrespondingToShard(appModuleShardCount, shardIndex, false).sort() - println("Shard $shardIndex has ${filesInShard.size} tests:") - filesInShard.each { filePath -> - println("- $filePath") - } - println() - } - // This is a hacky way to make an 'information' command. - _excludeSourceFiles("**/*Test.kt") -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation( - 'androidx.appcompat:appcompat:1.0.2', - "androidx.compose.foundation:foundation:$compose_version", - "androidx.compose.foundation:foundation-layout:$compose_version", - "androidx.compose.material:material:$compose_version", - "androidx.compose.runtime:runtime:$compose_version", - "androidx.compose.runtime:runtime-livedata:$compose_version", - "androidx.compose.ui:ui:$compose_version", - "androidx.compose.ui:ui-tooling:$compose_version", - 'androidx.constraintlayout:constraintlayout:1.1.3', - 'androidx.core:core-ktx:1.0.2', - 'androidx.legacy:legacy-support-v4:1.0.0', - 'androidx.lifecycle:lifecycle-extensions:2.0.0', - 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0-alpha03', - 'androidx.navigation:navigation-fragment:2.0.0', - 'androidx.navigation:navigation-fragment-ktx:2.0.0', - 'androidx.navigation:navigation-ui:2.0.0', - 'androidx.navigation:navigation-ui-ktx:2.0.0', - "androidx.fragment:fragment:$fragment_version", - 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0-alpha03', - 'androidx.multidex:multidex:2.0.1', - 'androidx.recyclerview:recyclerview:1.0.0', - 'androidx.work:work-runtime-ktx:2.4.0', - 'com.github.bumptech.glide:glide:4.11.0', - 'com.google.android.flexbox:flexbox:3.0.0', - 'com.google.android.material:material:1.3.0', - "com.google.android.material:compose-theme-adapter:$compose_version", - 'com.google.dagger:dagger:2.41', - 'com.google.firebase:firebase-analytics:17.5.0', - 'com.google.firebase:firebase-analytics-ktx:17.5.0', - 'com.google.firebase:firebase-appcheck:16.0.0', - 'com.google.firebase:firebase-appcheck-debug:16.0.0', - 'com.google.firebase:firebase-appcheck-playintegrity:16.0.0', - 'com.google.firebase:firebase-core:17.5.0', - 'com.google.firebase:firebase-crashlytics:17.0.0', - 'com.google.firebase:firebase-firestore-ktx:24.2.1', - 'com.google.firebase:firebase-auth-ktx:19.3.1', - 'com.google.guava:guava:28.1-android', - 'com.google.protobuf:protobuf-javalite:3.17.3', - 'nl.dionsegijn:konfetti:1.2.5', - "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version", - 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4', - 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4', - 'org.mockito:mockito-core:2.7.22', - 'com.github.oppia:android-spotlight:cc23499d37dc8533a2876e45b5063e981a4583f4' - ) - compileOnly( - 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.2', - 'javax.annotation:javax.annotation-api:1.3.2', - 'org.glassfish.jaxb:jaxb-runtime:2.3.2', - ) - testImplementation( - "androidx.compose.ui:ui-test-junit4:$compose_version", - 'androidx.test:core:1.2.0', - 'androidx.test.espresso:espresso-contrib:3.1.0', - 'androidx.test.espresso:espresso-core:3.2.0', - 'androidx.test.espresso:espresso-intents:3.1.0', - 'androidx.test.ext:junit:1.1.1', - 'androidx.test.ext:truth:1.4.0', - 'androidx.work:work-testing:2.4.0', - 'com.github.bumptech.glide:mocks:4.11.0', - 'com.google.truth:truth:1.1.3', - 'com.google.truth.extensions:truth-liteproto-extension:1.1.3', - 'org.robolectric:annotations:4.5', - 'org.robolectric:robolectric:4.5', - 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4', - "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version", - 'org.mockito:mockito-core:2.7.22', - project(":testing"), - ) - androidTestImplementation( - "androidx.compose.ui:ui-test-junit4:$compose_version", - 'androidx.test:core:1.2.0', - 'androidx.test.espresso:espresso-contrib:3.1.0', - 'androidx.test.espresso:espresso-core:3.2.0', - 'androidx.test.espresso:espresso-intents:3.1.0', - 'androidx.test.ext:junit:1.1.1', - 'androidx.test.ext:truth:1.4.0', - 'com.github.bumptech.glide:mocks:4.11.0', - 'com.google.truth:truth:1.1.3', - 'androidx.work:work-testing:2.4.0', - 'com.google.truth.extensions:truth-liteproto-extension:1.1.3', - 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4', - 'org.mockito:mockito-android:2.7.22', - 'org.robolectric:annotations:4.5', - ) - // Adding the testing module directly causes duplicates of the below groups so we need to - // exclude them before adding the testing module to the androidTestImplementation dependencies - androidTestImplementation(project(":testing")) { - exclude group: 'org.apache.maven', module: 'maven-artifact' - exclude group: 'org.apache.maven', module: 'maven-artifact-manager' - exclude group: 'org.apache.maven', module: 'maven-model' - exclude group: 'org.apache.maven', module: 'maven-plugin-registry' - exclude group: 'org.apache.maven', module: 'maven-profile' - exclude group: 'org.apache.maven', module: 'maven-project' - exclude group: 'org.apache.maven', module: 'maven-settings' - exclude group: 'org.apache.maven', module: 'maven-error-diagnostics' - exclude group: 'org.apache.maven', module: 'maven-ant-tasks' - exclude group: "org.apache.maven.wagon" - exclude group: "org.codehaus.plexus" - exclude group: "org.robolectric" - } - androidTestUtil( - 'androidx.test:orchestrator:1.2.0', - ) - kapt( - 'com.google.dagger:dagger-compiler:2.41' - ) - kaptTest( - 'com.google.dagger:dagger-compiler:2.41' - ) - kaptAndroidTest( - 'com.google.dagger:dagger-compiler:2.41' - ) - // TODO(#59): Remove this once Bazel is introduced - api project(':data') - implementation project(":model") - testImplementation project(":model") - androidTestImplementation project(":model") - implementation project(":domain") - implementation project(":utility") -} -// The GeneratedMessageLite implementations of protobufs are depending on protobuf-java -// instead of protobuf-lite after Android Studio 3.5, -// The below command stops that from happening: https://github.com/google/tink/issues/282 -configurations { - all*.exclude module: 'protobuf-java' -} - -def _computeTestsCorrespondingToShard(shardCount, shardIndex, exclude) { - def allAppTestDirs = android.sourceSets.test.java.source + - android.sourceSets.test.kotlin.source + - android.sourceSets.androidTest.java.source + - android.sourceSets.androidTest.kotlin.source - def allAppTestFiles = [] - // https://stackoverflow.com/a/38899519/3689782 for file traversal in Groovy. - allAppTestDirs.unique().each { testSrcDir -> - def testSrcDirFile = testSrcDir instanceof File ? testSrcDir : new File(testSrcDir) - if (!testSrcDirFile.isAbsolute()) { - testSrcDirFile = new File(projectDir, testSrcDirFile.path).getAbsoluteFile() - } - if (testSrcDirFile.exists()) { - testSrcDirFile.traverse(type: groovy.io.FileType.FILES, nameFilter: ~/^.+?Test\.kt$/) { it -> - allAppTestFiles += new File(it.path).getAbsoluteFile() - } - } - } - def testFilePaths = allAppTestFiles.collect { - projectDir.toPath().relativize(it.toPath()).toFile().path - }.unique() - - // Use Random so that the division of tests is relatively even (using just the file path hash - // alone can result in some skew which may hamper performance). Since the random class is being - // reseeded this should be deterministic. It should also be consistent across different platforms - // since only relative paths are used. - def random = new Random() - return testFilePaths.findAll { - random.seed = it.hashCode() - def rolledIndex = random.nextInt(shardCount) - exclude ? rolledIndex != shardIndex : rolledIndex == shardIndex - }.sort() -} - -def _excludeSourceFiles(filesToExclude) { - tasks.withType(SourceTask.class).configureEach { - it.exclude(filesToExclude) - } - android.sourceSets.test.java.exclude(filesToExclude) - android.sourceSets.test.kotlin.exclude(filesToExclude) - android.sourceSets.androidTest.java.exclude(filesToExclude) - android.sourceSets.androidTest.kotlin.exclude(filesToExclude) -} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro deleted file mode 100644 index f1b424510da..00000000000 --- a/app/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/app/src/main/ViewModelManifest.xml b/app/src/main/ViewModelManifest.xml index 67e79d1f41d..98e7904f81e 100644 --- a/app/src/main/ViewModelManifest.xml +++ b/app/src/main/ViewModelManifest.xml @@ -1,5 +1,5 @@ - + - + - + companion object { - // TODO(#1655): Re-restrict access to fields in tests post-Gradle. + // TODO(#1655): Re-restrict access to fields in tests. /** Params key for OptionsActivity. */ const val OPTIONS_ACTIVITY_PARAMS_KEY = "OptionsActivity.params" diff --git a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt index d9519c01e2a..83b2105b18c 100755 --- a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt +++ b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivity.kt @@ -79,7 +79,7 @@ class ExplorationActivity : ) } - // TODO(#1655): Re-restrict access to fields in tests post-Gradle. + // TODO(#1655): Re-restrict access to fields in tests. companion object { private const val PARAMS_KEY = "ExplorationActivity.params" diff --git a/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt b/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt index b0066ad36f5..bcfd885a2a4 100644 --- a/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt +++ b/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivity.kt @@ -92,7 +92,7 @@ class ProfileProgressActivity : } companion object { - // TODO(#1655): Re-restrict access to fields in tests post-Gradle. + // TODO(#1655): Re-restrict access to fields in tests. fun createProfileProgressActivityIntent(context: Context, internalProfileId: Int): Intent { val profileId = ProfileId.newBuilder().setInternalId(internalProfileId).build() diff --git a/app/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.kt b/app/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.kt index 4e268b486c2..106afd80262 100644 --- a/app/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.kt +++ b/app/src/main/java/org/oppia/android/app/resumelesson/ResumeLessonActivity.kt @@ -53,7 +53,7 @@ class ResumeLessonActivity : ) } - // TODO(#1655): Re-restrict access to fields in tests post-Gradle. + // TODO(#1655): Re-restrict access to fields in tests. companion object { private const val PARAMS_KEY = "ResumeLessonActivity.params" diff --git a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt index 3f3a8a6c940..fdf9ac60a0b 100644 --- a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt +++ b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt @@ -16,7 +16,7 @@ import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extrac class ProfileEditDeletionDialogFragment : InjectableDialogFragment() { companion object { - // TODO(#1655): Re-restrict access to fields in tests post-Gradle. + // TODO(#1655): Re-restrict access to fields in tests. /** Argument key for pop up of Profile Deletion Dialog in [ProfileEditActivity]. */ const val PROFILE_DELETION_DIALOG_INTERNAL_PROFILE_ID_EXTRA_KEY = "ProfileEditDeletionDialogFragment.profile_deletion_dialog_internal_profile_id" diff --git a/app/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt b/app/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt index 208942cb9bb..d1bda5b4db2 100644 --- a/app/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt +++ b/app/src/main/java/org/oppia/android/app/shim/IntentFactoryShim.kt @@ -9,9 +9,9 @@ import android.content.Intent * by adding all Intent functionality here. * * Please note that this file is temporary and all functionality will be returned to its respective - * ViewModel once Gradle has been removed. + * ViewModel once Bazel modularization work has completed. */ -// TODO(#1619): Remove file post-Gradle +// TODO(#1619): Remove this file. interface IntentFactoryShim { /** * Creates a [TopicActivity] intent for [PromotedStoryViewModel] and passes necessary string diff --git a/app/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.kt b/app/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.kt index d07bd9c5cc6..ac641732f7e 100644 --- a/app/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.kt +++ b/app/src/main/java/org/oppia/android/app/shim/IntentFactoryShimImpl.kt @@ -13,9 +13,9 @@ import javax.inject.Inject * by adding all Intent functionality here. * * Please note that this file is temporary and all functionality will be returned to its respective - * ViewModel once Gradle has been removed. + * ViewModel once Bazel modularization work has completed. */ -// TODO(#1619): Remove file post-Gradle +// TODO(#1619): Remove this file. class IntentFactoryShimImpl @Inject constructor( private val topicActivityIntentFactory: TopicActivityIntentFactory, private val recentlyPlayedActivityIntentFactory: RecentlyPlayedActivityIntentFactory diff --git a/app/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt b/app/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt index acc6efcec4a..da9b523156e 100644 --- a/app/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt +++ b/app/src/main/java/org/oppia/android/app/shim/ViewBindingShim.kt @@ -21,9 +21,9 @@ import org.oppia.android.util.parser.html.HtmlParser * by adding all related functionality here. * * Please note that this file is temporary and all functionality will be returned to it's respective - * View once Gradle has been removed. + * ViewModel once Bazel modularization work has completed. */ -// TODO(#1619): Remove file post-Gradle +// TODO(#1619): Remove this file. interface ViewBindingShim { /** diff --git a/app/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt b/app/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt index 69b49ac4eea..f094f87796d 100644 --- a/app/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt +++ b/app/src/main/java/org/oppia/android/app/shim/ViewBindingShimImpl.kt @@ -34,9 +34,9 @@ import javax.inject.Inject * by adding all related functionality here. * * Please note that this file is temporary and all functionality will be returned to it's respective - * View once Gradle has been removed. + * ViewModel once Bazel modularization work has completed. */ -// TODO(#1619): Remove file post-Gradle +// TODO(#1619): Remove this file. class ViewBindingShimImpl @Inject constructor( private val translationController: TranslationController, private val appLanguageResourceHandler: AppLanguageResourceHandler diff --git a/app/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt b/app/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt index 39466a37416..526cbc0fe8e 100644 --- a/app/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt +++ b/app/src/main/java/org/oppia/android/app/testing/ProfileChooserFragmentTestActivity.kt @@ -19,7 +19,7 @@ class ProfileChooserFragmentTestActivity : InjectableAutoLocalizedAppCompatActiv } companion object { - // TODO(#1655): Re-restrict access to fields in tests post-Gradle. + // TODO(#1655): Re-restrict access to fields in tests. const val TAG_PROFILE_CHOOSER_FRAGMENT = "TAG_PROFILE_CHOOSER_FRAGMENT" } } diff --git a/app/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt b/app/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt index 6080bd65817..0cfd588b289 100755 --- a/app/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt +++ b/app/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionFragment.kt @@ -22,7 +22,7 @@ class TopicRevisionFragment : InjectableFragment(), RevisionSubtopicSelector { /** Arguments key for TopicRevisionFragment. */ const val TOPIC_REVISION_FRAGMENT_ARGUMENTS_KEY = "TopicRevisionFragment.arguments" - // TODO(#1655): Re-restrict access to fields in tests post-Gradle. + // TODO(#1655): Re-restrict access to fields in tests. const val TOPIC_REVISION_FRAGMENT_TAG = "TOPIC_REVISION_FRAGMENT_TAG" /** Returns a new [TopicRevisionFragment]. */ diff --git a/app/src/test/resources/robolectric.properties b/app/src/test/resources/robolectric.properties deleted file mode 100644 index 1a1a2f7bdd6..00000000000 --- a/app/src/test/resources/robolectric.properties +++ /dev/null @@ -1,3 +0,0 @@ -# app/src/test/resources/robolectric.properties -# TODO(#4748): Remove the need for this file after upgrading Robolectric tests to API 34 -sdk=30 diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 11bc8b058d6..00000000000 --- a/build.gradle +++ /dev/null @@ -1,32 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - ext.kotlin_version = '1.6.10' - ext.fragment_version = '1.2.0-rc01' - ext.compose_version = '1.1.1' - repositories { - google() - gradlePluginPortal() - } - dependencies { - classpath 'com.android.tools.build:gradle:4.2.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.17' - classpath 'com.google.gms:google-services:4.3.3' - classpath 'com.google.firebase:firebase-crashlytics-gradle:2.1.1' - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - google() - mavenCentral() - maven { url 'https://jitpack.io' } - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} diff --git a/data/build.gradle b/data/build.gradle deleted file mode 100644 index 3d93aa36af8..00000000000 --- a/data/build.gradle +++ /dev/null @@ -1,118 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' - -android { - compileSdkVersion 34 - buildToolsVersion "30.0.0" - - defaultConfig { - minSdkVersion 21 - targetSdkVersion 34 - versionCode 1 - versionName "1.0" - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - multiDexEnabled true - javaCompileOptions { - annotationProcessorOptions { - includeCompileClasspath true - } - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 - } - - testOptions { - unitTests { - includeAndroidResources = true - all { - // Enable forking to ensure each test is properly run in isolation. For context, see: - // https://discuss.gradle.org/t/36066/2 & https://github.com/oppia/oppia-android/issues/1942 - forkEvery = 1 - maxParallelForks = Runtime.getRuntime().availableProcessors() - - // https://discuss.gradle.org/t/29495/2 & https://stackoverflow.com/a/34299238. - testLogging { - events "passed", "skipped", "failed" - showExceptions = true - exceptionFormat = "full" - showCauses = true - showStackTraces = true - showStandardStreams = false - } - } - } - } - - buildTypes { - release { - minifyEnabled true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation( - 'androidx.appcompat:appcompat:1.0.2', - 'com.google.dagger:dagger:2.41', - 'com.google.guava:guava:28.1-android', - 'com.google.protobuf:protobuf-javalite:3.17.3', - 'com.squareup.moshi:moshi-kotlin:1.13.0', - 'com.squareup.okhttp3:okhttp:4.7.2', - 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4', - ) - compileOnly( - 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.2', - 'javax.annotation:javax.annotation-api:1.3.2', - 'org.glassfish.jaxb:jaxb-runtime:2.3.2', - ) - testImplementation( - 'androidx.test.ext:junit:1.1.1', - 'androidx.test.ext:truth:1.4.0', - 'com.google.dagger:dagger:2.41', - 'com.google.truth:truth:1.1.3', - 'com.google.truth.extensions:truth-liteproto-extension:1.1.3', - 'com.squareup.okhttp3:mockwebserver:4.7.2', - 'com.squareup.okhttp3:okhttp:4.7.2', - 'junit:junit:4.12', - 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4', - 'org.mockito:mockito-core:2.19.0', - 'org.robolectric:robolectric:4.5', - project(":testing"), - ) - // TODO(#59): Remove this once Bazel is introduced - // TODO(#97): Isolate retrofit-mock dependency from production - api( - 'com.squareup.retrofit2:converter-moshi:2.7.2', - 'com.squareup.retrofit2:retrofit:2.7.2', - 'com.squareup.retrofit2:retrofit-mock:2.7.2', - ) - androidTestImplementation('androidx.test:runner:1.2.0', - 'androidx.test.espresso:espresso-core:3.2.0') - kapt( - 'com.google.dagger:dagger-compiler:2.41', - 'com.squareup.moshi:moshi-kotlin-codegen:1.13.0' - ) - kaptTest( - 'com.google.dagger:dagger-compiler:2.41' - ) - - implementation project(":utility") - implementation project(":model") - testImplementation project(":model") -} -// The GeneratedMessageLite implementations of protobufs are depending on protobuf-java -// instead of protobuf-lite after Android Studio 3.5, -// The below command stops that from happening: https://github.com/google/tink/issues/282 -configurations { - all*.exclude module: 'protobuf-java' -} diff --git a/data/proguard-rules.pro b/data/proguard-rules.pro deleted file mode 100644 index f1b424510da..00000000000 --- a/data/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/data/src/main/AndroidManifest.xml b/data/src/main/AndroidManifest.xml deleted file mode 100644 index d6fa9e7e109..00000000000 --- a/data/src/main/AndroidManifest.xml +++ /dev/null @@ -1 +0,0 @@ - diff --git a/data/src/test/resources/robolectric.properties b/data/src/test/resources/robolectric.properties deleted file mode 100644 index 19419ffe423..00000000000 --- a/data/src/test/resources/robolectric.properties +++ /dev/null @@ -1,3 +0,0 @@ -# data/src/test/resources/robolectric.properties -# TODO(#4748): Remove the need for this file after upgrading Robolectric tests to API 33 -sdk=30 diff --git a/domain/build.gradle b/domain/build.gradle deleted file mode 100644 index efec77bb8d3..00000000000 --- a/domain/build.gradle +++ /dev/null @@ -1,142 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' - -android { - compileSdkVersion 34 - buildToolsVersion "30.0.0" - - defaultConfig { - minSdkVersion 21 - targetSdkVersion 34 - versionCode 1 - versionName "1.0" - javaCompileOptions { - annotationProcessorOptions { - includeCompileClasspath true - } - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 - freeCompilerArgs += [ - "-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi" - ] - } - - testOptions { - unitTests { - includeAndroidResources = true - all { - // Enable forking to ensure each test is properly run in isolation. For context, see: - // https://discuss.gradle.org/t/36066/2 & https://github.com/oppia/oppia-android/issues/1942 - forkEvery = 1 - maxParallelForks = Runtime.getRuntime().availableProcessors() - - // https://discuss.gradle.org/t/29495/2 & https://stackoverflow.com/a/34299238. - testLogging { - events "passed", "skipped", "failed" - showExceptions = true - exceptionFormat = "full" - showCauses = true - showStackTraces = true - showStandardStreams = false - } - } - } - } - - buildTypes { - release { - minifyEnabled true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } -} - -// These tests aren't supported in Gradle since they make use of test resources & AGP doesn't -// support merging resources for test builds, or they rely on a compile-time built proto -// configuration file which the current Gradle configuration doesn't support. This test runs -// correctly for Bazel & is included in the CI workflow that runs Bazel tests. -// https://stackoverflow.com/a/69141612 seems like the only solution that actually works (versus -// trying to exclude via sourceSets), so the following is an adapted version that ensures all -// generated sources that may reference the test also don't exist (such as Dagger running to -// generate a test application component). Note that this must exist in tandem with the sourceSet -// exclusion in order to properly work. -def filesToExclude = [ - '**/*LanguageConfigRetrieverTest*.kt', - '**/*LanguageConfigRetrieverProductionTest*.kt', - '**/*LocaleControllerTest*.kt', - '**/*TranslationControllerTest*.kt' -] -tasks.withType(SourceTask.class).configureEach { - it.exclude(filesToExclude) -} -android.sourceSets.test.java.exclude(filesToExclude) -android.sourceSets.test.kotlin.exclude(filesToExclude) - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation( - 'androidx.appcompat:appcompat:1.0.2', - 'androidx.exifinterface:exifinterface:1.0.0-rc01', - 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha03', - 'androidx.lifecycle:lifecycle-extensions:2.0.0', - 'androidx.work:work-runtime-ktx:2.4.0', - 'com.google.dagger:dagger:2.41', - 'com.google.firebase:firebase-analytics-ktx:17.5.0', - 'com.google.firebase:firebase-crashlytics:17.0.0', - 'com.google.firebase:firebase-firestore-ktx:24.2.1', - 'com.google.firebase:firebase-auth-ktx:19.3.1', - 'com.google.guava:guava:28.1-android', - 'com.google.protobuf:protobuf-javalite:3.17.3', - "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version", - 'org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.6.4' - ) - compileOnly( - 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.2', - 'javax.annotation:javax.annotation-api:1.3.2', - 'org.glassfish.jaxb:jaxb-runtime:2.3.2', - ) - testImplementation( - 'androidx.test.espresso:espresso-core:3.2.0', - 'androidx.test.ext:junit:1.1.1', - 'androidx.test.ext:truth:1.4.0', - 'androidx.work:work-testing:2.4.0', - 'com.google.dagger:dagger:2.41', - 'com.google.truth.extensions:truth-liteproto-extension:1.1.3', - 'com.google.truth:truth:1.1.3', - 'com.squareup.okhttp3:mockwebserver:4.7.2', - 'junit:junit:4.12', - "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version", - 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.4.2', - 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4', - 'org.mockito:mockito-core:3.9.0', - 'org.robolectric:robolectric:4.5', - project(":testing"), - ) - kapt( - 'com.google.dagger:dagger-compiler:2.41', - ) - kaptTest( - 'com.google.dagger:dagger-compiler:2.41', - ) - // TODO(#59): Avoid needing to expose data implementations to other modules in order to make Oppia symbols - // sufficiently visible for generated Dagger code. This can be done more cleanly via Bazel since dependencies can be - // controlled more directly than in Gradle. - api project(':data') - implementation project(':model') - implementation project(':utility') -} -// The GeneratedMessageLite implementations of protobufs are depending on protobuf-java -// instead of protobuf-lite after Android Studio 3.5, -// The below command stops that from happening: https://github.com/google/tink/issues/282 -configurations { - all*.exclude module: 'protobuf-java' -} diff --git a/domain/proguard-rules.pro b/domain/proguard-rules.pro deleted file mode 100644 index f1b424510da..00000000000 --- a/domain/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/domain/src/test/resources/robolectric.properties b/domain/src/test/resources/robolectric.properties deleted file mode 100644 index ea76247318e..00000000000 --- a/domain/src/test/resources/robolectric.properties +++ /dev/null @@ -1,3 +0,0 @@ -# domain/src/test/resources/robolectric.properties -# TODO(#4748): Remove the need for this file after upgrading Robolectric tests to API 34 -sdk=30 diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index 171b9cb7ba1..00000000000 --- a/gradle.properties +++ /dev/null @@ -1,26 +0,0 @@ -# Project-wide Gradle settings. -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx4096m -# Allows gradle to use build cache -org.gradle.caching=-true -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app's APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Automatically convert third-party libraries to use AndroidX -android.enableJetifier=false -# Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official -# Needed to enable Android data binding. -android.databinding.enableV2=true - diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index f6b961fd5a86aa5fbfe90f707c3138408be7c718..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54329 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

<5G2M1WZP5 zzqSuO91lJod(SBDDw<*sX(+F6Uq~YAeYV#2A;XQu_p=N5X+#cmu19Qk>QAnV=k!?wbk5I;tDWgFc}0NkvC*G=V+Yh1cyeJVq~9czZiDXe+S=VfL2g`LWo8om z$Y~FQc6MFjV-t1Y`^D9XMwY*U_re2R?&(O~68T&D4S{X`6JYU-pz=}ew-)V0AOUT1 zVOkHAB-8uBcRjLvz<9HS#a@X*Kc@|W)nyiSgi|u5$Md|P()%2(?olGg@ypoJwp6>m z*dnfjjWC>?_1p;%1brqZyDRR;8EntVA92EJ3ByOxj6a+bhPl z;a?m4rQAV1@QU^#M1HX)0+}A<7TCO`ZR_RzF}X9-M>cRLyN4C+lCk2)kT^3gN^`IT zNP~fAm(wyIoR+l^lQDA(e1Yv}&$I!n?&*p6?lZcQ+vGLLd~fM)qt}wsbf3r=tmVYe zl)ntf#E!P7wlakP9MXS7m0nsAmqxZ*)#j;M&0De`oNmFgi$ov#!`6^4)iQyxg5Iuj zjLAhzQ)r`^hf7`*1`Rh`X;LVBtDSz@0T?kkT1o!ijeyTGt5vc^Cd*tmNgiNo^EaWvaC8$e+nb_{W01j3%=1Y&92YacjCi>eNbwk%-gPQ@H-+4xskQ}f_c=jg^S-# zYFBDf)2?@5cy@^@FHK5$YdAK9cI;!?Jgd}25lOW%xbCJ>By3=HiK@1EM+I46A)Lsd zeT|ZH;KlCml=@;5+hfYf>QNOr^XNH%J-lvev)$Omy8MZ`!{`j>(J5cG&ZXXgv)TaF zg;cz99i$4CX_@3MIb?GL0s*8J=3`#P(jXF(_(6DXZjc@(@h&=M&JG)9&Te1?(^XMW zjjC_70|b=9hB6pKQi`S^Ls7JyJw^@P>Ko^&q8F&?>6i;#CbxUiLz1ZH4lNyd@QACd zu>{!sqjB!2Dg}pbAXD>d!3jW}=5aN0b;rw*W>*PAxm7D)aw(c*RX2@bTGEI|RRp}vw7;NR2wa;rXN{L{Q#=Fa z$x@ms6pqb>!8AuV(prv>|aU8oWV={C&$c zMa=p=CDNOC2tISZcd8~18GN5oTbKY+Vrq;3_obJlfSKRMk;Hdp1`y`&LNSOqeauR_ z^j*Ojl3Ohzb5-a49A8s|UnM*NM8tg}BJXdci5%h&;$afbmRpN0&~9rCnBA`#lG!p zc{(9Y?A0Y9yo?wSYn>iigf~KP$0*@bGZ>*YM4&D;@{<%Gg5^uUJGRrV4 z(aZOGB&{_0f*O=Oi0k{@8vN^BU>s3jJRS&CJOl3o|BE{FAA&a#2YYiX3pZz@|Go-F z|Fly;7eX2OTs>R}<`4RwpHFs9nwh)B28*o5qK1Ge=_^w0m`uJOv!=&!tzt#Save(C zgKU=Bsgql|`ui(e1KVxR`?>Dx>(rD1$iWp&m`v)3A!j5(6vBm*z|aKm*T*)mo(W;R zNGo2`KM!^SS7+*9YxTm6YMm_oSrLceqN*nDOAtagULuZl5Q<7mOnB@Hq&P|#9y{5B z!2x+2s<%Cv2Aa0+u{bjZXS);#IFPk(Ph-K7K?3i|4ro> zRbqJoiOEYo(Im^((r}U4b8nvo_>4<`)ut`24?ILnglT;Pd&U}$lV3U$F9#PD(O=yV zgNNA=GW|(E=&m_1;uaNmipQe?pon4{T=zK!N!2_CJL0E*R^XXIKf*wi!>@l}3_P9Z zF~JyMbW!+n-+>!u=A1ESxzkJy$DRuG+$oioG7(@Et|xVbJ#BCt;J43Nvj@MKvTxzy zMmjNuc#LXBxFAwIGZJk~^!q$*`FME}yKE8d1f5Mp}KHNq(@=Z8YxV}0@;YS~|SpGg$_jG7>_8WWYcVx#4SxpzlV9N4aO>K{c z$P?a_fyDzGX$Of3@ykvedGd<@-R;M^Shlj*SswJLD+j@hi_&_>6WZ}#AYLR0iWMK|A zH_NBeu(tMyG=6VO-=Pb>-Q#$F*or}KmEGg*-n?vWQREURdB#+6AvOj*I%!R-4E_2$ zU5n9m>RWs|Wr;h2DaO&mFBdDb-Z{APGQx$(L`if?C|njd*fC=rTS%{o69U|meRvu?N;Z|Y zbT|ojL>j;q*?xXmnHH#3R4O-59NV1j=uapkK7}6@Wo*^Nd#(;$iuGsb;H315xh3pl zHaJ>h-_$hdNl{+|Zb%DZH%ES;*P*v0#}g|vrKm9;j-9e1M4qX@zkl&5OiwnCz=tb6 zz<6HXD+rGIVpGtkb{Q^LIgExOm zz?I|oO9)!BOLW#krLmWvX5(k!h{i>ots*EhpvAE;06K|u_c~y{#b|UxQ*O@Ks=bca z^_F0a@61j3I(Ziv{xLb8AXQj3;R{f_l6a#H5ukg5rxwF9A$?Qp-Mo54`N-SKc}fWp z0T)-L@V$$&my;l#Ha{O@!fK4-FSA)L&3<${Hcwa7ue`=f&YsXY(NgeDU#sRlT3+9J z6;(^(sjSK@3?oMo$%L-nqy*E;3pb0nZLx6 z;h5)T$y8GXK1DS-F@bGun8|J(v-9o=42&nLJy#}M5D0T^5VWBNn$RpC zZzG6Bt66VY4_?W=PX$DMpKAI!d`INr) zkMB{XPQ<52rvWVQqgI0OL_NWxoe`xxw&X8yVftdODPj5|t}S6*VMqN$-h9)1MBe0N zYq?g0+e8fJCoAksr0af1)FYtz?Me!Cxn`gUx&|T;)695GG6HF7!Kg1zzRf_{VWv^bo81v4$?F6u2g|wxHc6eJQAg&V z#%0DnWm2Rmu71rPJ8#xFUNFC*V{+N_qqFH@gYRLZ6C?GAcVRi>^n3zQxORPG)$-B~ z%_oB?-%Zf7d*Fe;cf%tQwcGv2S?rD$Z&>QC2X^vwYjnr5pa5u#38cHCt4G3|efuci z@3z=#A13`+ztmp;%zjXwPY_aq-;isu*hecWWX_=Z8paSqq7;XYnUjK*T>c4~PR4W7 z#C*%_H&tfGx`Y$w7`dXvVhmovDnT>btmy~SLf>>~84jkoQ%cv=MMb+a{JV&t0+1`I z32g_Y@yDhKe|K^PevP~MiiVl{Ou7^Mt9{lOnXEQ`xY^6L8D$705GON{!1?1&YJEl#fTf5Z)da=yiEQ zGgtC-soFGOEBEB~ZF_{7b(76En>d}mI~XIwNw{e>=Fv)sgcw@qOsykWr?+qAOZSVrQfg}TNI ztKNG)1SRrAt6#Q?(me%)>&A_^DM`pL>J{2xu>xa$3d@90xR61TQDl@fu%_85DuUUA za9tn64?At;{`BAW6oykwntxHeDpXsV#{tmt5RqdN7LtcF4vR~_kZNT|wqyR#z^Xcd zFdymVRZvyLfTpBT>w9<)Ozv@;Yk@dOSVWbbtm^y@@C>?flP^EgQPAwsy75bveo=}T zFxl(f)s)j(0#N_>Or(xEuV(n$M+`#;Pc$1@OjXEJZumkaekVqgP_i}p`oTx;terTx zZpT+0dpUya2hqlf`SpXN{}>PfhajNk_J0`H|2<5E;U5Vh4F8er z;RxLSFgpGhkU>W?IwdW~NZTyOBrQ84H7_?gviIf71l`EETodG9a1!8e{jW?DpwjL? zGEM&eCzwoZt^P*8KHZ$B<%{I}>46IT%jJ3AnnB5P%D2E2Z_ z1M!vr#8r}1|KTqWA4%67ZdbMW2YJ81b(KF&SQ2L1Qn(y-=J${p?xLMx3W7*MK;LFQ z6Z`aU;;mTL4XrrE;HY*Rkh6N%?qviUGNAKiCB~!P}Z->IpO6E(gGd7I#eDuT7j|?nZ zK}I(EJ>$Kb&@338M~O+em9(L!+=0zBR;JAQesx|3?Ok90)D1aS9P?yTh6Poh8Cr4X zk3zc=f2rE7jj+aP7nUsr@~?^EGP>Q>h#NHS?F{Cn`g-gD<8F&dqOh-0sa%pfL`b+1 zUsF*4a~)KGb4te&K0}bE>z3yb8% zibb5Q%Sfiv7feb1r0tfmiMv z@^4XYwg@KZI=;`wC)`1jUA9Kv{HKe2t$WmRcR4y8)VAFjRi zaz&O7Y2tDmc5+SX(bj6yGHYk$dBkWc96u3u&F)2yEE~*i0F%t9Kg^L6MJSb&?wrXi zGSc;_rln$!^ybwYBeacEFRsVGq-&4uC{F)*Y;<0y7~USXswMo>j4?~5%Zm!m@i@-> zXzi82sa-vpU{6MFRktJy+E0j#w`f`>Lbog{zP|9~hg(r{RCa!uGe>Yl536cn$;ouH za#@8XMvS-kddc1`!1LVq;h57~zV`7IYR}pp3u!JtE6Q67 zq3H9ZUcWPm2V4IukS}MCHSdF0qg2@~ufNx9+VMjQP&exiG_u9TZAeAEj*jw($G)zL zq9%#v{wVyOAC4A~AF=dPX|M}MZV)s(qI9@aIK?Pe+~ch|>QYb+78lDF*Nxz2-vpRbtQ*F4$0fDbvNM#CCatgQ@z1+EZWrt z2dZfywXkiW=no5jus-92>gXn5rFQ-COvKyegmL=4+NPzw6o@a?wGE-1Bt;pCHe;34K%Z z-FnOb%!nH;)gX+!a3nCk?5(f1HaWZBMmmC@lc({dUah+E;NOros{?ui1zPC-Q0);w zEbJmdE$oU$AVGQPdm{?xxI_0CKNG$LbY*i?YRQ$(&;NiA#h@DCxC(U@AJ$Yt}}^xt-EC_ z4!;QlLkjvSOhdx!bR~W|Ezmuf6A#@T`2tsjkr>TvW*lFCMY>Na_v8+{Y|=MCu1P8y z89vPiH5+CKcG-5lzk0oY>~aJC_0+4rS@c@ZVKLAp`G-sJB$$)^4*A!B zmcf}lIw|VxV9NSoJ8Ag3CwN&d7`|@>&B|l9G8tXT^BDHOUPrtC70NgwN4${$k~d_4 zJ@eo6%YQnOgq$th?0{h`KnqYa$Nz@vlHw<%!C5du6<*j1nwquk=uY}B8r7f|lY+v7 zm|JU$US08ugor8E$h3wH$c&i~;guC|3-tqJy#T;v(g( zBZtPMSyv%jzf->435yM(-UfyHq_D=6;ouL4!ZoD+xI5uCM5ay2m)RPmm$I}h>()hS zO!0gzMxc`BPkUZ)WXaXam%1;)gedA7SM8~8yIy@6TPg!hR0=T>4$Zxd)j&P-pXeSF z9W`lg6@~YDhd19B9ETv(%er^Xp8Yj@AuFVR_8t*KS;6VHkEDKI#!@l!l3v6`W1`1~ zP{C@keuV4Q`Rjc08lx?zmT$e$!3esc9&$XZf4nRL(Z*@keUbk!GZi(2Bmyq*saOD? z3Q$V<*P-X1p2}aQmuMw9nSMbOzuASsxten7DKd6A@ftZ=NhJ(0IM|Jr<91uAul4JR zADqY^AOVT3a(NIxg|U;fyc#ZnSzw2cr}#a5lZ38>nP{05D)7~ad7JPhw!LqOwATXtRhK!w0X4HgS1i<%AxbFmGJx9?sEURV+S{k~g zGYF$IWSlQonq6}e;B(X(sIH|;52+(LYW}v_gBcp|x%rEAVB`5LXg_d5{Q5tMDu0_2 z|LOm$@K2?lrLNF=mr%YP|U-t)~9bqd+wHb4KuPmNK<}PK6e@aosGZK57=Zt+kcszVOSbe;`E^dN! ze7`ha3WUUU7(nS0{?@!}{0+-VO4A{7+nL~UOPW9_P(6^GL0h${SLtqG!} zKl~Ng5#@Sy?65wk9z*3SA`Dpd4b4T^@C8Fhd8O)k_4%0RZL5?#b~jmgU+0|DB%0Z) zql-cPC>A9HPjdOTpPC` zQwvF}uB5kG$Xr4XnaH#ruSjM*xG?_hT7y3G+8Ox`flzU^QIgb_>2&-f+XB6MDr-na zSi#S+c!ToK84<&m6sCiGTd^8pNdXo+$3^l3FL_E`0 z>8it5YIDxtTp2Tm(?}FX^w{fbfgh7>^8mtvN>9fWgFN_*a1P`Gz*dyOZF{OV7BC#j zQV=FQM5m>47xXgapI$WbPM5V`V<7J9tD)oz@d~MDoM`R^Y6-Na(lO~uvZlpu?;zw6 zVO1faor3dg#JEb5Q*gz4<W8tgC3nE2BG2jeIQs1)<{In&7hJ39x=;ih;CJDy)>0S1at*7n?Wr0ahYCpFjZ|@u91Zl7( zv;CSBRC65-6f+*JPf4p1UZ)k=XivKTX6_bWT~7V#rq0Xjas6hMO!HJN8GdpBKg_$B zwDHJF6;z?h<;GXFZan8W{XFNPpOj!(&I1`&kWO86p?Xz`a$`7qV7Xqev|7nn_lQuX ziGpU1MMYt&5dE2A62iX3;*0WzNB9*nSTzI%62A+N?f?;S>N@8M=|ef3gtQTIA*=yq zQAAjOqa!CkHOQo4?TsqrrsJLclXcP?dlAVv?v`}YUjo1Htt;6djP@NPFH+&p1I+f_ z)Y279{7OWomY8baT(4TAOlz1OyD{4P?(DGv3XyJTA2IXe=kqD)^h(@*E3{I~w;ws8 z)ZWv7E)pbEM zd3MOXRH3mQhks9 zv6{s;k0y5vrcjXaVfw8^>YyPo=oIqd5IGI{)+TZq5Z5O&hXAw%ZlL}^6FugH;-%vP zAaKFtt3i^ag226=f0YjzdPn6|4(C2sC5wHFX{7QF!tG1E-JFA`>eZ`}$ymcRJK?0c zN363o{&ir)QySOFY0vcu6)kX#;l??|7o{HBDVJN+17rt|w3;(C_1b>d;g9Gp=8YVl zYTtA52@!7AUEkTm@P&h#eg+F*lR zQ7iotZTcMR1frJ0*V@Hw__~CL>_~2H2cCtuzYIUD24=Cv!1j6s{QS!v=PzwQ(a0HS zBKx04KA}-Ue+%9d`?PG*hIij@54RDSQpA7|>qYVIrK_G6%6;#ZkR}NjUgmGju)2F`>|WJoljo)DJgZr4eo1k1i1+o z1D{>^RlpIY8OUaOEf5EBu%a&~c5aWnqM zxBpJq98f=%M^{4mm~5`CWl%)nFR64U{(chmST&2jp+-r z3675V<;Qi-kJud%oWnCLdaU-)xTnMM%rx%Jw6v@=J|Ir=4n-1Z23r-EVf91CGMGNz zb~wyv4V{H-hkr3j3WbGnComiqmS0vn?n?5v2`Vi>{Ip3OZUEPN7N8XeUtF)Ry6>y> zvn0BTLCiqGroFu|m2zG-;Xb6;W`UyLw)@v}H&(M}XCEVXZQoWF=Ykr5lX3XWwyNyF z#jHv)A*L~2BZ4lX?AlN3X#axMwOC)PoVy^6lCGse9bkGjb=qz%kDa6}MOmSwK`cVO zt(e*MW-x}XtU?GY5}9{MKhRhYOlLhJE5=ca+-RmO04^ z66z{40J=s=ey9OCdc(RCzy zd7Zr1%!y3}MG(D=wM_ebhXnJ@MLi7cImDkhm0y{d-Vm81j`0mbi4lF=eirlr)oW~a zCd?26&j^m4AeXEsIUXiTal)+SPM4)HX%%YWF1?(FV47BaA`h9m67S9x>hWMVHx~Hg z1meUYoLL(p@b3?x|9DgWeI|AJ`Ia84*P{Mb%H$ZRROouR4wZhOPX15=KiBMHl!^JnCt$Az`KiH^_d>cev&f zaG2>cWf$=A@&GP~DubsgYb|L~o)cn5h%2`i^!2)bzOTw2UR!>q5^r&2Vy}JaWFUQE04v>2;Z@ZPwXr?y&G(B^@&y zsd6kC=hHdKV>!NDLIj+3rgZJ|dF`%N$DNd;B)9BbiT9Ju^Wt%%u}SvfM^=|q-nxDG zuWCQG9e#~Q5cyf8@y76#kkR^}{c<_KnZ0QsZcAT|YLRo~&tU|N@BjxOuy`#>`X~Q< z?R?-Gsk$$!oo(BveQLlUrcL#eirhgBLh`qHEMg`+sR1`A=1QX7)ZLMRT+GBy?&mM8 zQG^z-!Oa&J-k7I(3_2#Q6Bg=NX<|@X&+YMIOzfEO2$6Mnh}YV!m!e^__{W@-CTprr zbdh3f=BeCD$gHwCrmwgM3LAv3!Mh$wM)~KWzp^w)Cu6roO7uUG5z*}i0_0j47}pK; ztN530`ScGatLOL06~zO)Qmuv`h!gq5l#wx(EliKe&rz-5qH(hb1*fB#B+q`9=jLp@ zOa2)>JTl7ovxMbrif`Xe9;+fqB1K#l=Dv!iT;xF zdkCvS>C5q|O;}ns3AgoE({Ua-zNT-9_5|P0iANmC6O76Sq_(AN?UeEQJ>#b54fi3k zFmh+P%b1x3^)0M;QxXLP!BZ^h|AhOde*{9A=f3|Xq*JAs^Y{eViF|=EBfS6L%k4ip zk+7M$gEKI3?bQg?H3zaE@;cyv9kv;cqK$VxQbFEsy^iM{XXW0@2|DOu$!-k zSFl}Y=jt-VaT>Cx*KQnHTyXt}f9XswFB9ibYh+k2J!ofO+nD?1iw@mwtrqI4_i?nE zhLkPp41ED62me}J<`3RN80#vjW;wt`pP?%oQ!oqy7`miL>d-35a=qotK$p{IzeSk# ze_$CFYp_zIkrPFVaW^s#U4xT1lI^A0IBe~Y<4uS%zSV=wcuLr%gQT=&5$&K*bwqx| zWzCMiz>7t^Et@9CRUm9E+@hy~sBpm9fri$sE1zgLU((1?Yg{N1Sars=DiW&~Zw=3I zi7y)&oTC?UWD2w97xQ&5vx zRXEBGeJ(I?Y}eR0_O{$~)bMJRTsNUPIfR!xU9PE7A>AMNr_wbrFK>&vVw=Y;RH zO$mlpmMsQ}-FQ2cSj7s7GpC+~^Q~dC?y>M}%!-3kq(F3hGWo9B-Gn02AwUgJ>Z-pKOaj zysJBQx{1>Va=*e@sLb2z&RmQ7ira;aBijM-xQ&cpR>X3wP^foXM~u1>sv9xOjzZpX z0K;EGouSYD~oQ&lAafj3~EaXfFShC+>VsRlEMa9cg9i zFxhCKO}K0ax6g4@DEA?dg{mo>s+~RPI^ybb^u--^nTF>**0l5R9pocwB?_K)BG_)S zyLb&k%XZhBVr7U$wlhMqwL)_r&&n%*N$}~qijbkfM|dIWP{MyLx}X&}ES?}7i;9bW zmTVK@zR)7kE2+L42Q`n4m0VVg5l5(W`SC9HsfrLZ=v%lpef=Gj)W59VTLe+Z$8T8i z4V%5+T0t8LnM&H>Rsm5C%qpWBFqgTwL{=_4mE{S3EnBXknM&u8n}A^IIM4$s3m(Rd z>zq=CP-!9p9es2C*)_hoL@tDYABn+o#*l;6@7;knWIyDrt5EuakO99S$}n((Fj4y} zD!VvuRzghcE{!s;jC*<_H$y6!6QpePo2A3ZbX*ZzRnQq*b%KK^NF^z96CHaWmzU@f z#j;y?X=UP&+YS3kZx7;{ zDA{9(wfz7GF`1A6iB6fnXu0?&d|^p|6)%3$aG0Uor~8o? z*e}u#qz7Ri?8Uxp4m_u{a@%bztvz-BzewR6bh*1Xp+G=tQGpcy|4V_&*aOqu|32CM zz3r*E8o8SNea2hYJpLQ-_}R&M9^%@AMx&`1H8aDx4j%-gE+baf2+9zI*+Pmt+v{39 zDZ3Ix_vPYSc;Y;yn68kW4CG>PE5RoaV0n@#eVmk?p$u&Fy&KDTy!f^Hy6&^-H*)#u zdrSCTJPJw?(hLf56%2;_3n|ujUSJOU8VPOTlDULwt0jS@j^t1WS z!n7dZIoT+|O9hFUUMbID4Ec$!cc($DuQWkocVRcYSikFeM&RZ=?BW)mG4?fh#)KVG zcJ!<=-8{&MdE)+}?C8s{k@l49I|Zwswy^ZN3;E!FKyglY~Aq?4m74P-0)sMTGXqd5(S<-(DjjM z&7dL-Mr8jhUCAG$5^mI<|%`;JI5FVUnNj!VO2?Jiqa|c2;4^n!R z`5KK0hyB*F4w%cJ@Un6GC{mY&r%g`OX|1w2$B7wxu97%<@~9>NlXYd9RMF2UM>(z0 zouu4*+u+1*k;+nFPk%ly!nuMBgH4sL5Z`@Rok&?Ef=JrTmvBAS1h?C0)ty5+yEFRz zY$G=coQtNmT@1O5uk#_MQM1&bPPnspy5#>=_7%WcEL*n$;sSAZcXxMpcXxLe;_mLA z5F_paad+bGZV*oh@8h0(|D2P!q# zTHjmiphJ=AazSeKQPkGOR-D8``LjzToyx{lfK-1CDD6M7?pMZOdLKFtjZaZMPk4}k zW)97Fh(Z+_Fqv(Q_CMH-YYi?fR5fBnz7KOt0*t^cxmDoIokc=+`o# zrud|^h_?KW=Gv%byo~(Ln@({?3gnd?DUf-j2J}|$Mk>mOB+1{ZQ8HgY#SA8END(Zw z3T+W)a&;OO54~m}ffemh^oZ!Vv;!O&yhL0~hs(p^(Yv=(3c+PzPXlS5W79Er8B1o* z`c`NyS{Zj_mKChj+q=w)B}K za*zzPhs?c^`EQ;keH{-OXdXJet1EsQ)7;{3eF!-t^4_Srg4(Ot7M*E~91gwnfhqaM zNR7dFaWm7MlDYWS*m}CH${o?+YgHiPC|4?X?`vV+ws&Hf1ZO-w@OGG^o4|`b{bLZj z&9l=aA-Y(L11!EvRjc3Zpxk7lc@yH1e$a}8$_-r$)5++`_eUr1+dTb@ zU~2P1HM#W8qiNN3b*=f+FfG1!rFxnNlGx{15}BTIHgxO>Cq4 z;#9H9YjH%>Z2frJDJ8=xq>Z@H%GxXosS@Z>cY9ppF+)e~t_hWXYlrO6)0p7NBMa`+ z^L>-#GTh;k_XnE)Cgy|0Dw;(c0* zSzW14ZXozu)|I@5mRFF1eO%JM=f~R1dkNpZM+Jh(?&Zje3NgM{2ezg1N`AQg5%+3Y z64PZ0rPq6;_)Pj-hyIOgH_Gh`1$j1!jhml7ksHA1`CH3FDKiHLz+~=^u@kUM{ilI5 z^FPiJ7mSrzBs9{HXi2{sFhl5AyqwUnU{sPcUD{3+l-ZHAQ)C;c$=g1bdoxeG(5N01 zZy=t8i{*w9m?Y>V;uE&Uy~iY{pY4AV3_N;RL_jT_QtLFx^KjcUy~q9KcLE3$QJ{!)@$@En{UGG7&}lc*5Kuc^780;7Bj;)X?1CSy*^^ zPP^M)Pr5R>mvp3_hmCtS?5;W^e@5BjE>Cs<`lHDxj<|gtOK4De?Sf0YuK5GX9G93i zMYB{8X|hw|T6HqCf7Cv&r8A$S@AcgG1cF&iJ5=%+x;3yB`!lQ}2Hr(DE8=LuNb~Vs z=FO&2pdc16nD$1QL7j+!U^XWTI?2qQKt3H8=beVTdHHa9=MiJ&tM1RRQ-=+vy!~iz zj3O{pyRhCQ+b(>jC*H)J)%Wq}p>;?@W*Eut@P&?VU+Sdw^4kE8lvX|6czf{l*~L;J zFm*V~UC;3oQY(ytD|D*%*uVrBB}BbAfjK&%S;z;7$w68(8PV_whC~yvkZmX)xD^s6 z{$1Q}q;99W?*YkD2*;)tRCS{q2s@JzlO~<8x9}X<0?hCD5vpydvOw#Z$2;$@cZkYrp83J0PsS~!CFtY%BP=yxG?<@#{7%2sy zOc&^FJxsUYN36kSY)d7W=*1-{7ghPAQAXwT7z+NlESlkUH&8ODlpc8iC*iQ^MAe(B z?*xO4i{zFz^G=^G#9MsLKIN64rRJykiuIVX5~0#vAyDWc9-=6BDNT_aggS2G{B>dD ze-B%d3b6iCfc5{@yz$>=@1kdK^tX9qh0=ocv@9$ai``a_ofxT=>X7_Y0`X}a^M?d# z%EG)4@`^Ej_=%0_J-{ga!gFtji_byY&Vk@T1c|ucNAr(JNr@)nCWj?QnCyvXg&?FW;S-VOmNL6^km_dqiVjJuIASVGSFEos@EVF7St$WE&Z%)`Q##+0 zjaZ=JI1G@0!?l|^+-ZrNd$WrHBi)DA0-Eke>dp=_XpV<%CO_Wf5kQx}5e<90dt>8k zAi00d0rQ821nA>B4JHN7U8Zz=0;9&U6LOTKOaC1FC8GgO&kc=_wHIOGycL@c*$`ce703t%>S}mvxEnD-V!;6c`2(p74V7D0No1Xxt`urE66$0(ThaAZ1YVG#QP$ zy~NN%kB*zhZ2Y!kjn826pw4bh)75*e!dse+2Db(;bN34Uq7bLpr47XTX{8UEeC?2i z*{$`3dP}32${8pF$!$2Vq^gY|#w+VA_|o(oWmQX8^iw#n_crb(K3{69*iU?<%C-%H zuKi)3M1BhJ@3VW>JA`M>L~5*_bxH@Euy@niFrI$82C1}fwR$p2E&ZYnu?jlS}u7W9AyfdXh2pM>78bIt3 z)JBh&XE@zA!kyCDfvZ1qN^np20c1u#%P6;6tU&dx0phT1l=(mw7`u!-0e=PxEjDds z9E}{E!7f9>jaCQhw)&2TtG-qiD)lD(4jQ!q{`x|8l&nmtHkdul# zy+CIF8lKbp9_w{;oR+jSLtTfE+B@tOd6h=QePP>rh4@~!8c;Hlg9m%%&?e`*Z?qz5-zLEWfi>`ord5uHF-s{^bexKAoMEV@9nU z^5nA{f{dW&g$)BAGfkq@r5D)jr%!Ven~Q58c!Kr;*Li#`4Bu_?BU0`Y`nVQGhNZk@ z!>Yr$+nB=`z#o2nR0)V3M7-eVLuY`z@6CT#OTUXKnxZn$fNLPv7w1y7eGE=Qv@Hey`n;`U=xEl|q@CCV^#l)s0ZfT+mUf z^(j5r4)L5i2jnHW4+!6Si3q_LdOLQi<^fu?6WdohIkn79=jf%Fs3JkeXwF(?_tcF? z?z#j6iXEd(wJy4|p6v?xNk-)iIf2oX5^^Y3q3ziw16p9C6B;{COXul%)`>nuUoM*q zzmr|NJ5n)+sF$!yH5zwp=iM1#ZR`O%L83tyog-qh1I z0%dcj{NUs?{myT~33H^(%0QOM>-$hGFeP;U$puxoJ>>o-%Lk*8X^rx1>j|LtH$*)>1C!Pv&gd16%`qw5LdOIUbkNhaBBTo}5iuE%K&ZV^ zAr_)kkeNKNYJRgjsR%vexa~&8qMrQYY}+RbZ)egRg9_$vkoyV|Nc&MH@8L)`&rpqd zXnVaI@~A;Z^c3+{x=xgdhnocA&OP6^rr@rTvCnhG6^tMox$ulw2U7NgUtW%|-5VeH z_qyd47}1?IbuKtqNbNx$HR`*+9o=8`%vM8&SIKbkX9&%TS++x z5|&6P<%=F$C?owUI`%uvUq^yW0>`>yz!|WjzsoB9dT;2Dx8iSuK%%_XPgy0dTD4kd zDXF@&O_vBVVKQq(9YTClUPM30Sk7B!v7nOyV`XC!BA;BIVwphh+c)?5VJ^(C;GoQ$ zvBxr7_p*k$T%I1ke}`U&)$uf}I_T~#3XTi53OX)PoXVgxEcLJgZG^i47U&>LY(l%_ z;9vVDEtuMCyu2fqZeez|RbbIE7@)UtJvgAcVwVZNLccswxm+*L&w`&t=ttT=sv6Aq z!HouSc-24Y9;0q$>jX<1DnnGmAsP))- z^F~o99gHZw`S&Aw7e4id6Lg7kMk-e)B~=tZ!kE7sGTOJ)8@q}np@j7&7Sy{2`D^FH zI7aX%06vKsfJ168QnCM2=l|i>{I{%@gcr>ExM0Dw{PX6ozEuqFYEt z087%MKC;wVsMV}kIiuu9Zz9~H!21d!;Cu#b;hMDIP7nw3xSX~#?5#SSjyyg+Y@xh| z%(~fv3`0j#5CA2D8!M2TrG=8{%>YFr(j)I0DYlcz(2~92?G*?DeuoadkcjmZszH5& zKI@Lis%;RPJ8mNsbrxH@?J8Y2LaVjUIhRUiO-oqjy<&{2X~*f|)YxnUc6OU&5iac= z*^0qwD~L%FKiPmlzi&~a*9sk2$u<7Al=_`Ox^o2*kEv?p`#G(p(&i|ot8}T;8KLk- zPVf_4A9R`5^e`Om2LV*cK59EshYXse&IoByj}4WZaBomoHAPKqxRKbPcD`lMBI)g- zeMRY{gFaUuecSD6q!+b5(?vAnf>c`Z(8@RJy%Ulf?W~xB1dFAjw?CjSn$ph>st5bc zUac1aD_m6{l|$#g_v6;=32(mwpveQDWhmjR7{|B=$oBhz`7_g7qNp)n20|^^op3 zSfTdWV#Q>cb{CMKlWk91^;mHap{mk)o?udk$^Q^^u@&jd zfZ;)saW6{e*yoL6#0}oVPb2!}r{pAUYtn4{P~ES9tTfC5hXZnM{HrC8^=Pof{G4%Bh#8 ze~?C9m*|fd8MK;{L^!+wMy>=f^8b&y?yr6KnTq28$pFMBW9Oy7!oV5z|VM$s-cZ{I|Xf@}-)1=$V&x7e;9v81eiTi4O5-vs?^5pCKy2l>q);!MA zS!}M48l$scB~+Umz}7NbwyTn=rqt@`YtuwiQSMvCMFk2$83k50Q>OK5&fe*xCddIm)3D0I6vBU<+!3=6?(OhkO|b4fE_-j zimOzyfBB_*7*p8AmZi~X2bgVhyPy>KyGLAnOpou~sx9)S9%r)5dE%ADs4v%fFybDa_w*0?+>PsEHTbhKK^G=pFz z@IxLTCROWiKy*)cV3y%0FwrDvf53Ob_XuA1#tHbyn%Ko!1D#sdhBo`;VC*e1YlhrC z?*y3rp86m#qI|qeo8)_xH*G4q@70aXN|SP+6MQ!fJQqo1kwO_v7zqvUfU=Gwx`CR@ zRFb*O8+54%_8tS(ADh}-hUJzE`s*8wLI>1c4b@$al)l}^%GuIXjzBK!EWFO8W`>F^ ze7y#qPS0NI7*aU)g$_ziF(1ft;2<}6Hfz10cR8P}67FD=+}MfhrpOkF3hFhQu;Q1y zu%=jJHTr;0;oC94Hi@LAF5quAQ(rJG(uo%BiRQ@8U;nhX)j0i?0SL2g-A*YeAqF>RVCBOTrn{0R27vu}_S zS>tX4!#&U4W;ikTE!eFH+PKw%p+B(MR2I%n#+m0{#?qRP_tR@zpgCb=4rcrL!F=;A zh%EIF8m6%JG+qb&mEfuFTLHSxUAZEvC-+kvZKyX~SA3Umt`k}}c!5dy?-sLIM{h@> z!2=C)@nx>`;c9DdwZ&zeUc(7t<21D7qBj!|1^Mp1eZ6)PuvHx+poKSDCSBMFF{bKy z;9*&EyKitD99N}%mK8431rvbT+^%|O|HV23{;RhmS{$5tf!bIPoH9RKps`-EtoW5h zo6H_!s)Dl}2gCeGF6>aZtah9iLuGd19^z0*OryPNt{70RvJSM<#Ox9?HxGg04}b^f zrVEPceD%)#0)v5$YDE?f`73bQ6TA6wV;b^x*u2Ofe|S}+q{s5gr&m~4qGd!wOu|cZ||#h_u=k*fB;R6&k?FoM+c&J;ISg70h!J7*xGus)ta4veTdW)S^@sU@ z4$OBS=a~@F*V0ECic;ht4@?Jw<9kpjBgHfr2FDPykCCz|v2)`JxTH55?b3IM={@DU z!^|9nVO-R#s{`VHypWyH0%cs;0GO3E;It6W@0gX6wZ%W|Dzz&O%m17pa19db(er}C zUId1a4#I+Ou8E1MU$g=zo%g7K(=0Pn$)Rk z<4T2u<0rD)*j+tcy2XvY+0 z0d2pqm4)4lDewsAGThQi{2Kc3&C=|OQF!vOd#WB_`4gG3@inh-4>BoL!&#ij8bw7? zqjFRDaQz!J-YGitV4}$*$hg`vv%N)@#UdzHFI2E<&_@0Uw@h_ZHf}7)G;_NUD3@18 zH5;EtugNT0*RXVK*by>WS>jaDDfe!A61Da=VpIK?mcp^W?!1S2oah^wowRnrYjl~`lgP-mv$?yb6{{S55CCu{R z$9;`dyf0Y>uM1=XSl_$01Lc1Iy68IosWN8Q9Op=~I(F<0+_kKfgC*JggjxNgK6 z-3gQm6;sm?J&;bYe&(dx4BEjvq}b`OT^RqF$J4enP1YkeBK#>l1@-K`ajbn05`0J?0daOtnzh@l3^=BkedW1EahZlRp;`j*CaT;-21&f2wU z+Nh-gc4I36Cw+;3UAc<%ySb`#+c@5y ze~en&bYV|kn?Cn|@fqmGxgfz}U!98$=drjAkMi`43I4R%&H0GKEgx-=7PF}y`+j>r zg&JF`jomnu2G{%QV~Gf_-1gx<3Ky=Md9Q3VnK=;;u0lyTBCuf^aUi?+1+`4lLE6ZK zT#(Bf`5rmr(tgTbIt?yA@y`(Ar=f>-aZ}T~>G32EM%XyFvhn&@PWCm#-<&ApLDCXT zD#(9m|V(OOo7PmE@`vD4$S5;+9IQm19dd zvMEU`)E1_F+0o0-z>YCWqg0u8ciIknU#{q02{~YX)gc_u;8;i233D66pf(IkTDxeN zL=4z2)?S$TV9=ORVr&AkZMl<4tTh(v;Ix1{`pPVqI3n2ci&4Dg+W|N8TBUfZ*WeLF zqCH_1Q0W&f9T$lx3CFJ$o@Lz$99 zW!G&@zFHxTaP!o#z^~xgF|(vrHz8R_r9eo;TX9}2ZyjslrtH=%6O)?1?cL&BT(Amp zTGFU1%%#xl&6sH-UIJk_PGk_McFn7=%yd6tAjm|lnmr8bE2le3I~L{0(ffo}TQjyo zHZZI{-}{E4ohYTlZaS$blB!h$Jq^Rf#(ch}@S+Ww&$b);8+>g84IJcLU%B-W?+IY& zslcZIR>+U4v3O9RFEW;8NpCM0w1ROG84=WpKxQ^R`{=0MZCubg3st z48AyJNEvyxn-jCPTlTwp4EKvyEwD3e%kpdY?^BH0!3n6Eb57_L%J1=a*3>|k68A}v zaW`*4YitylfD}ua8V)vb79)N_Ixw_mpp}yJGbNu+5YYOP9K-7nf*jA1#<^rb4#AcS zKg%zCI)7cotx}L&J8Bqo8O1b0q;B1J#B5N5Z$Zq=wX~nQFgUfAE{@u0+EnmK{1hg> zC{vMfFLD;L8b4L+B51&LCm|scVLPe6h02rws@kGv@R+#IqE8>Xn8i|vRq_Z`V;x6F zNeot$1Zsu`lLS92QlLWF54za6vOEKGYQMdX($0JN*cjG7HP&qZ#3+bEN$8O_PfeAb z0R5;=zXac2IZ?fxu59?Nka;1lKm|;0)6|#RxkD05P5qz;*AL@ig!+f=lW5^Jbag%2 z%9@iM0ph$WFlxS!`p31t92z~TB}P-*CS+1Oo_g;7`6k(Jyj8m8U|Q3Sh7o-Icp4kV zK}%qri5>?%IPfamXIZ8pXbm-#{ytiam<{a5A+3dVP^xz!Pvirsq7Btv?*d7eYgx7q zWFxrzb3-%^lDgMc=Vl7^={=VDEKabTG?VWqOngE`Kt7hs236QKidsoeeUQ_^FzsXjprCDd@pW25rNx#6x&L6ZEpoX9Ffzv@olnH3rGOSW( zG-D|cV0Q~qJ>-L}NIyT?T-+x+wU%;+_GY{>t(l9dI%Ximm+Kmwhee;FK$%{dnF;C% zFjM2&$W68Sz#d*wtfX?*WIOXwT;P6NUw}IHdk|)fw*YnGa0rHx#paG!m=Y6GkS4VX zX`T$4eW9k1W!=q8!(#8A9h67fw))k_G)Q9~Q1e3f`aV@kbcSv7!priDUN}gX(iXTy zr$|kU0Vn%*ylmyDCO&G0Z3g>%JeEPFAW!5*H2Ydl>39w3W+gEUjL&vrRs(xGP{(ze zy7EMWF14@Qh>X>st8_029||TP0>7SG9on_xxeR2Iam3G~Em$}aGsNt$iES9zFa<3W zxtOF*!G@=PhfHO!=9pVPXMUVi30WmkPoy$02w}&6A7mF)G6-`~EVq5CwD2`9Zu`kd)52``#V zNSb`9dG~8(dooi1*-aSMf!fun7Sc`-C$-E(3BoSC$2kKrVcI!&yC*+ff2+C-@!AT_ zsvlAIV+%bRDfd{R*TMF><1&_a%@yZ0G0lg2K;F>7b+7A6pv3-S7qWIgx+Z?dt8}|S z>Qbb6x(+^aoV7FQ!Ph8|RUA6vXWQH*1$GJC+wXLXizNIc9p2yLzw9 z0=MdQ!{NnOwIICJc8!+Jp!zG}**r#E!<}&Te&}|B4q;U57$+pQI^}{qj669zMMe_I z&z0uUCqG%YwtUc8HVN7?0GHpu=bL7&{C>hcd5d(iFV{I5c~jpX&!(a{yS*4MEoYXh z*X4|Y@RVfn;piRm-C%b@{0R;aXrjBtvx^HO;6(>i*RnoG0Rtcd25BT6edxTNOgUAOjn zJ2)l{ipj8IP$KID2}*#F=M%^n&=bA0tY98@+2I+7~A&T-tw%W#3GV>GTmkHaqftl)#+E zMU*P(Rjo>8%P@_@#UNq(_L{}j(&-@1iY0TRizhiATJrnvwSH0v>lYfCI2ex^><3$q znzZgpW0JlQx?JB#0^^s-Js1}}wKh6f>(e%NrMwS`Q(FhazkZb|uyB@d%_9)_xb$6T zS*#-Bn)9gmobhAtvBmL+9H-+0_0US?g6^TOvE8f3v=z3o%NcPjOaf{5EMRnn(_z8- z$|m0D$FTU zDy;21v-#0i)9%_bZ7eo6B9@Q@&XprR&oKl4m>zIj-fiRy4Dqy@VVVs?rscG| zmzaDQ%>AQTi<^vYCmv#KOTd@l7#2VIpsj?nm_WfRZzJako`^uU%Nt3e;cU*y*|$7W zLm%fX#i_*HoUXu!NI$ey>BA<5HQB=|nRAwK!$L#n-Qz;~`zACig0PhAq#^5QS<8L2 zS3A+8%vbVMa7LOtTEM?55apt(DcWh#L}R^P2AY*c8B}Cx=6OFAdMPj1f>k3#^#+Hk z6uW1WJW&RlBRh*1DLb7mJ+KO>!t^t8hX1#_Wk`gjDio9)9IGbyCAGI4DJ~orK+YRv znjxRMtshZQHc$#Y-<-JOV6g^Cr@odj&Xw5B(FmI)*qJ9NHmIz_r{t)TxyB`L-%q5l ztzHgD;S6cw?7Atg*6E1!c6*gPRCb%t7D%z<(xm+K{%EJNiI2N0l8ud0Ch@_av_RW? zIr!nO4dL5466WslE6MsfMss7<)-S!e)2@r2o=7_W)OO`~CwklRWzHTfpB)_HYwgz=BzLhgZ9S<{nLBOwOIgJU=94uj6r!m>Xyn9>&xP+=5!zG_*yEoRgM0`aYts z^)&8(>z5C-QQ*o_s(8E4*?AX#S^0)aqB)OTyX>4BMy8h(cHjA8ji1PRlox@jB*1n? zDIfyDjzeg91Ao(;Q;KE@zei$}>EnrF6I}q&Xd=~&$WdDsyH0H7fJX|E+O~%LS*7^Q zYzZ4`pBdY{b7u72gZm6^5~O-57HwzwAz{)NvVaowo`X02tL3PpgLjwA`^i9F^vSpN zAqH3mRjG8VeJNHZ(1{%!XqC+)Z%D}58Qel{_weSEHoygT9pN@i zi=G;!Vj6XQk2tuJC>lza%ywz|`f7TIz*EN2Gdt!s199Dr4Tfd_%~fu8gXo~|ogt5Q zlEy_CXEe^BgsYM^o@L?s33WM14}7^T(kqohOX_iN@U?u;$l|rAvn{rwy>!yfZw13U zB@X9)qt&4;(C6dP?yRsoTMI!j-f1KC!<%~i1}u7yLXYn)(#a;Z6~r>hp~kfP));mi zcG%kdaB9H)z9M=H!f>kM->fTjRVOELNwh1amgKQT=I8J66kI)u_?0@$$~5f`u%;zl zC?pkr^p2Fe=J~WK%4ItSzKA+QHqJ@~m|Cduv=Q&-P8I5rQ-#G@bYH}YJr zUS(~(w|vKyU(T(*py}jTUp%I%{2!W!K(i$uvotcPjVddW z8_5HKY!oBCwGZcs-q`4Yt`Zk~>K?mcxg51wkZlX5e#B08I75F7#dgn5yf&Hrp`*%$ zQ;_Qg>TYRzBe$x=T(@WI9SC!ReSas9vDm(yslQjBJZde5z8GDU``r|N(MHcxNopGr z_}u39W_zwWDL*XYYt>#Xo!9kL#97|EAGyGBcRXtLTd59x%m=3i zL^9joWYA)HfL15l9%H?q`$mY27!<9$7GH(kxb%MV>`}hR4a?+*LH6aR{dzrX@?6X4 z3e`9L;cjqYb`cJmophbm(OX0b)!AFG?5`c#zLagzMW~o)?-!@e80lvk!p#&CD8u5_r&wp4O0zQ>y!k5U$h_K;rWGk=U)zX!#@Q%|9g*A zWx)qS1?fq6X<$mQTB$#3g;;5tHOYuAh;YKSBz%il3Ui6fPRv#v62SsrCdMRTav)Sg zTq1WOu&@v$Ey;@^+_!)cf|w_X<@RC>!=~+A1-65O0bOFYiH-)abINwZvFB;hJjL_$ z(9iScmUdMp2O$WW!520Hd0Q^Yj?DK%YgJD^ez$Z^?@9@Ab-=KgW@n8nC&88)TDC+E zlJM)L3r+ZJfZW_T$;Imq*#2<(j+FIk8ls7)WJ6CjUu#r5PoXxQs4b)mZza<8=v{o)VlLRM<9yw^0En#tXAj`Sylxvki{<1DPe^ zhjHwx^;c8tb?Vr$6ZB;$Ff$+3(*oinbwpN-#F)bTsXq@Sm?43MC#jQ~`F|twI=7oC zH4TJtu#;ngRA|Y~w5N=UfMZi?s0%ZmKUFTAye&6Y*y-%c1oD3yQ%IF2q2385Zl+=> zfz=o`Bedy|U;oxbyb^rB9ixG{Gb-{h$U0hVe`J;{ql!s_OJ_>>eoQn(G6h7+b^P48 zG<=Wg2;xGD-+d@UMZ!c;0>#3nws$9kIDkK13IfloGT@s14AY>&>>^#>`PT7GV$2Hp zN<{bN*ztlZu_%W=&3+=#3bE(mka6VoHEs~0BjZ$+=0`a@R$iaW)6>wp2w)=v2@|2d z%?34!+iOc5S@;AAC4hELWLH56RGxo4jw8MDMU0Wk2k_G}=Vo(>eRFo(g3@HjG|`H3 zm8b*dK=moM*oB<)*A$M9!!5o~4U``e)wxavm@O_R(`P|u%9^LGi(_%IF<6o;NLp*0 zKsfZ0#24GT8(G`i4UvoMh$^;kOhl?`0yNiyrC#HJH=tqOH^T_d<2Z+ zeN>Y9Zn!X4*DMCK^o75Zk2621bdmV7Rx@AX^alBG4%~;G_vUoxhfhFRlR&+3WwF^T zaL)8xPq|wCZoNT^>3J0K?e{J-kl+hu2rZI>CUv#-z&u@`hjeb+bBZ>bcciQVZ{SbW zez04s9oFEgc8Z+Kp{XFX`MVf-s&w9*dx7wLen(_@y34}Qz@&`$2+osqfxz4&d}{Ql z*g1ag00Gu+$C`0avds{Q65BfGsu9`_`dML*rX~hyWIe$T>CsPRoLIr%MTk3pJ^2zH1qub1MBzPG}PO;Wmav9w%F7?%l=xIf#LlP`! z_Nw;xBQY9anH5-c8A4mME}?{iewjz(Sq-29r{fV;Fc>fv%0!W@(+{={Xl-sJ6aMoc z)9Q+$bchoTGTyWU_oI19!)bD=IG&OImfy;VxNXoIO2hYEfO~MkE#IXTK(~?Z&!ae! zl8z{D&2PC$Q*OBC(rS~-*-GHNJ6AC$@eve>LB@Iq;jbBZj`wk4|LGogE||Ie=M5g= z9d`uYQ1^Sr_q2wmZE>w2WG)!F%^KiqyaDtIAct?}D~JP4shTJy5Bg+-(EA8aXaxbd~BKMtTf2iQ69jD1o* zZF9*S3!v-TdqwK$%&?91Sh2=e63;X0Lci@n7y3XOu2ofyL9^-I767eHESAq{m+@*r zbVDx!FQ|AjT;!bYsXv8ilQjy~Chiu&HNhFXt3R_6kMC8~ChEFqG@MWu#1Q1#=~#ix zrkHpJre_?#r=N0wv`-7cHHqU`phJX2M_^{H0~{VP79Dv{6YP)oA1&TSfKPEPZn2)G z9o{U1huZBLL;Tp_0OYw@+9z(jkrwIGdUrOhKJUbwy?WBt zlIK)*K0lQCY0qZ!$%1?3A#-S70F#YyUnmJF*`xx?aH5;gE5pe-15w)EB#nuf6B*c~ z8Z25NtY%6Wlb)bUA$w%HKs5$!Z*W?YKV-lE0@w^{4vw;J>=rn?u!rv$&eM+rpU6rc=j9>N2Op+C{D^mospMCjF2ZGhe4eADA#skp2EA26%p3Ex9wHW8l&Y@HX z$Qv)mHM}4*@M*#*ll5^hE9M^=q~eyWEai*P;4z<9ZYy!SlNE5nlc7gm;M&Q zKhKE4d*%A>^m0R?{N}y|i6i^k>^n4(wzKvlQeHq{l&JuFD~sTsdhs`(?lFK@Q{pU~ zb!M3c@*3IwN1RUOVjY5>uT+s-2QLWY z4T2>fiSn>>Fob+%B868-v9D@AfWr#M8eM6w#eAlhc#zk6jkLxGBGk`E3$!A@*am!R zy>29&ptYK6>cvP`b!syNp)Q$0UOW|-O@)8!?94GOYF_}+zlW%fCEl|Tep_zx05g6q z>tp47e-&R*hSNe{6{H!mL?+j$c^TXT{C&@T-xIaesNCl05 z9SLb@q&mSb)I{VXMaiWa3PWj=Ed!>*GwUe;^|uk=Pz$njNnfFY^MM>E?zqhf6^{}0 zx&~~dA5#}1ig~7HvOQ#;d9JZBeEQ+}-~v$at`m!(ai z$w(H&mWCC~;PQ1$%iuz3`>dWeb3_p}X>L2LK%2l59Tyc}4m0>9A!8rhoU3m>i2+hl zx?*qs*c^j}+WPs>&v1%1Ko8_ivAGIn@QK7A`hDz-Emkcgv2@wTbYhkiwX2l=xz*XG zaiNg+j4F-I>9v+LjosI-QECrtKjp&0T@xIMKVr+&)gyb4@b3y?2CA?=ooN zT#;rU86WLh(e@#mF*rk(NV-qSIZyr z$6!ZUmzD)%yO-ot`rw3rp6?*_l*@Z*IB0xn4|BGPWHNc-1ZUnNSMWmDh=EzWJRP`) zl%d%J613oXzh5;VY^XWJi{lB`f#u+ThvtP7 zq(HK<4>tw(=yzSBWtYO}XI`S1pMBe3!jFxBHIuwJ(@%zdQFi1Q_hU2eDuHqXte7Ki zOV55H2D6u#4oTfr7|u*3p75KF&jaLEDpxk!4*bhPc%mpfj)Us3XIG3 zIKMX^s^1wt8YK7Ky^UOG=w!o5e7W-<&c|fw2{;Q11vm@J{)@N3-p1U>!0~sKWHaL= zWV(0}1IIyt1p%=_-Fe5Kfzc71wg}`RDDntVZv;4!=&XXF-$48jS0Sc;eDy@Sg;+{A zFStc{dXT}kcIjMXb4F7MbX~2%i;UrBxm%qmLKb|2=?uPr00-$MEUIGR5+JG2l2Nq` zkM{{1RO_R)+8oQ6x&-^kCj)W8Z}TJjS*Wm4>hf+4#VJP)OBaDF%3pms7DclusBUw} z{ND#!*I6h85g6DzNvdAmnwWY{&+!KZM4DGzeHI?MR@+~|su0{y-5-nICz_MIT_#FE zm<5f3zlaKq!XyvY3H`9s&T};z!cK}G%;~!rpzk9-6L}4Rg7vXtKFsl}@sT#U#7)x- z7UWue5sa$R>N&b{J61&gvKcKlozH*;OjoDR+elkh|4bJ!_3AZNMOu?n9&|L>OTD78 z^i->ah_Mqc|Ev)KNDzfu1P3grBIM#%`QZqj5W{qu(HocQhjyS;UINoP`{J+DvV?|1 z_sw6Yr3z6%e7JKVDY<$P=M)dbk@~Yw9|2!Cw!io3%j92wTD!c^e9Vj+7VqXo3>u#= zv#M{HHJ=e$X5vQ>>ML?E8#UlmvJgTnb73{PSPTf*0)mcj6C z{KsfUbDK|F$E(k;ER%8HMdDi`=BfpZzP3cl5yJHu;v^o2FkHNk;cXc17tL8T!CsYI zfeZ6sw@;8ia|mY_AXjCS?kUfxdjDB28)~Tz1dGE|{VfBS9`0m2!m1yG?hR})er^pl4c@9Aq+|}ZlDaHL)K$O| z%9Jp-imI-Id0|(d5{v~w6mx)tUKfbuVD`xNt04Mry%M+jXzE>4(TBsx#&=@wT2Vh) z1yeEY&~17>0%P(eHP0HB^|7C+WJxQBTG$uyOWY@iDloRIb-Cf!p<{WQHR!422#F34 zG`v|#CJ^G}y9U*7jgTlD{D&y$Iv{6&PYG>{Ixg$pGk?lWrE#PJ8KunQC@}^6OP!|< zS;}p3to{S|uZz%kKe|;A0bL0XxPB&Q{J(9PyX`+Kr`k~r2}yP^ND{8!v7Q1&vtk& z2Y}l@J@{|2`oA%sxvM9i0V+8IXrZ4;tey)d;LZI70Kbim<4=WoTPZy=Yd|34v#$Kh zx|#YJ8s`J>W&jt#GcMpx84w2Z3ur-rK7gf-p5cE)=w1R2*|0mj12hvapuUWM0b~dG zMg9p8FmAZI@i{q~0@QuY44&mMUNXd7z>U58shA3o`p5eVLpq>+{(<3->DWuSFVZwC zxd50Uz(w~LxC4}bgag#q#NNokK@yNc+Q|Ap!u>Ddy+df>v;j@I12CDNN9do+0^n8p zMQs7X#+FVF0C5muGfN{r0|Nkql%BQT|K(DDNdR2pzM=_ea5+GO|J67`05AV92t@4l z0Qno0078PIHdaQGHZ~Scw!dzgqjK~3B7kf>BcP__&lLyU(cu3B^uLo%{j|Mb0NR)tkeT7Hcwp4O# z)yzu>cvG(d9~0a^)eZ;;%3ksk@F&1eEBje~ zW+-_s)&RgiweQc!otF>4%vbXKaOU41{!hw?|2`Ld3I8$&#WOsq>EG)1ANb!{N4z9@ zsU!bPG-~-bqCeIDzo^Q;gnucB{tRzm{ZH^Orphm2U+REA!*<*J6YQV83@&xoDl%#wnl5qcBqCcAF-vX5{30}(oJrnSH z{RY85hylK2dMOh2%oO1J8%)0?8TOL%rS8)+CsDv}aQ>4D)Jv+DLK)9gI^n-T^$)Tc zFPUD75qJm!Y-KBqj;JP4dV4 z`X{lGmn<)1IGz330}s}Jrjtf{(lnuuNHe5(ezA(pYa=1|Ff-LhPFK8 zyJh_b{yzu0yll6ZkpRzRjezyYivjyjW7QwO;@6X`m;2Apn2EK2!~7S}-*=;5*7K$B z`x(=!^?zgj(-`&ApZJXI09aDLXaT@<;CH=?fBOY5d|b~wBA@@p^K#nxr`)?i?SqTupI_PJ(A3cx`z~9mX_*)>L F{|7XC?P&l2 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 4f11ea48e89..00000000000 --- a/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Sun Mar 29 11:36:23 IST 2020 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip diff --git a/gradlew b/gradlew deleted file mode 100755 index cccdd3d517f..00000000000 --- a/gradlew +++ /dev/null @@ -1,172 +0,0 @@ -#!/usr/bin/env sh - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=$(save "$@") - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - -exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat deleted file mode 100644 index e95643d6a2c..00000000000 --- a/gradlew.bat +++ /dev/null @@ -1,84 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/model/build.gradle b/model/build.gradle deleted file mode 100644 index f68c303c551..00000000000 --- a/model/build.gradle +++ /dev/null @@ -1,45 +0,0 @@ -apply plugin: 'java-library' -apply plugin: 'com.google.protobuf' - -protobuf { - protoc { - // To build protoc in M1 mac. For context, see: #3912. - if (osdetector.os == "osx") { - Properties properties = new Properties() - DataInputStream input = project.rootProject.file("local.properties").newDataInputStream() - properties.load(input) - input.close() - def protobufPlatform = properties.getProperty("protobuf_platform", "") - artifact = "com.google.protobuf:protoc:3.8.0:${protobufPlatform}" - } else { - artifact = "com.google.protobuf:protoc:3.8.0" - } - } - generateProtoTasks { - all().each { task -> - task.builtins { - java { - // This setup is per https://github.com/google/protobuf-gradle-plugin/issues/315. - option 'lite' - } - } - } - } -} - -dependencies { - implementation 'com.google.protobuf:protobuf-javalite:3.17.3' -} - -sourceSets { - main { - proto { - srcDir 'src/main/proto' - } - } -} - -java { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 -} diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index 52d012f62a4..00000000000 --- a/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app', ':model', ':utility', ':domain', ':data', ':testing' diff --git a/testing/build.gradle b/testing/build.gradle deleted file mode 100644 index ae6d8acae0a..00000000000 --- a/testing/build.gradle +++ /dev/null @@ -1,127 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' - -android { - compileSdkVersion 34 - buildToolsVersion "30.0.0" - - defaultConfig { - minSdkVersion 21 - targetSdkVersion 34 - versionCode 1 - versionName "1.0" - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 - } - - testOptions { - unitTests { - includeAndroidResources = true - all { - // Enable forking to ensure each test is properly run in isolation. For context, see: - // https://discuss.gradle.org/t/36066/2 & https://github.com/oppia/oppia-android/issues/1942 - forkEvery = 1 - maxParallelForks = Runtime.getRuntime().availableProcessors() - - // https://discuss.gradle.org/t/29495/2 & https://stackoverflow.com/a/34299238. - testLogging { - events "passed", "skipped", "failed" - showExceptions = true - exceptionFormat = "full" - showCauses = true - showStackTraces = true - showStandardStreams = false - } - } - } - } -} - -// See notice for the excluded files in domain/build.gradle for an explanation. Note that these -// tests can't be built in Gradle since they depend on app layer dependencies & Gradle doesn't allow -// a dependency between this & the app module since the latter is an Android application rather than -// a library. -def filesToExclude = [ - '**/*InitializeDefaultLocaleRuleCustomContextTest*.kt', - '**/*InitializeDefaultLocaleRuleOmissionTest*.kt', - '**/*InitializeDefaultLocaleRuleTest*.kt', - '**/*TestSyncStatusManagerTest*.kt', // This depends on another module's test base. -] -tasks.withType(SourceTask.class).configureEach { - it.exclude(filesToExclude) -} -android.sourceSets.test.java.exclude(filesToExclude) -android.sourceSets.test.kotlin.exclude(filesToExclude) - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation( - 'androidx.annotation:annotation:1.1.0', - 'androidx.appcompat:appcompat:1.1.0', - 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha03', - 'androidx.core:core-ktx:1.0.2', - "androidx.test:core:1.0.0", - 'androidx.test.espresso:espresso-accessibility:3.1.0', - 'androidx.test.espresso:espresso-core:3.2.0', - 'androidx.test.ext:truth:1.4.0', - 'androidx.test:runner:1.2.0', - 'com.google.android.material:material:1.3.0', - 'com.google.dagger:dagger:2.41', - 'com.google.firebase:firebase-auth-ktx:19.3.1', - 'com.google.protobuf:protobuf-javalite:3.17.3', - 'com.google.truth:truth:1.1.3', - 'com.google.truth.extensions:truth-liteproto-extension:1.1.3', - 'nl.dionsegijn:konfetti:1.2.5', - 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4', - 'org.robolectric:robolectric:4.5', - 'org.jetbrains.kotlin:kotlin-reflect:$kotlin_version', - 'org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version', - 'org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.6.4', - 'org.mockito:mockito-core:2.19.0', - project(":domain"), - project(":model"), - project(":utility"), - ) - compileOnly( - 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.2', - 'javax.annotation:javax.annotation-api:1.3.2', - 'org.glassfish.jaxb:jaxb-runtime:2.3.2', - ) - testImplementation( - 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha03', - 'androidx.test.ext:junit:1.1.1', - 'com.google.android.material:material:1.3.0', - 'com.google.truth:truth:1.1.3', - 'junit:junit:4.12', - "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version", - 'org.mockito:mockito-core:2.19.0', - project(":domain"), - ) - kapt( - 'com.google.dagger:dagger-compiler:2.41', - ) - kaptTest( - 'com.google.dagger:dagger-compiler:2.41', - ) - annotationProcessor( - 'com.google.auto.service:auto-service:1.0-rc4', - ) - // TODO(#59): Remove this once Bazel is introduced - // sufficiently visible for generated Dagger code. This can be done more cleanly via Bazel since dependencies can be - // controlled more directly than in Gradle. - implementation project(':model') -} -// The GeneratedMessageLite implementations of protobufs are depending on protobuf-java -// instead of protobuf-lite after Android Studio 3.5, -// The below command stops that from happening: https://github.com/google/tink/issues/282 -configurations { - all*.exclude module: 'protobuf-java' -} diff --git a/testing/src/test/resources/robolectric.properties b/testing/src/test/resources/robolectric.properties deleted file mode 100644 index 69090e67ba2..00000000000 --- a/testing/src/test/resources/robolectric.properties +++ /dev/null @@ -1,3 +0,0 @@ -# testing/src/test/resources/robolectric.properties -# TODO(#4748): Remove the need for this file after upgrading Robolectric tests to API 34 -sdk=30 diff --git a/utility/build.gradle b/utility/build.gradle deleted file mode 100644 index b6949ef736c..00000000000 --- a/utility/build.gradle +++ /dev/null @@ -1,133 +0,0 @@ -apply plugin: 'com.android.library' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' - -android { - compileSdkVersion 34 - buildToolsVersion "30.0.0" - - defaultConfig { - minSdkVersion 21 - targetSdkVersion 34 - versionCode 1 - versionName "1.0" - javaCompileOptions { - annotationProcessorOptions { - includeCompileClasspath true - } - } - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8 - } - - testOptions { - unitTests { - includeAndroidResources = true - all { - // Enable forking to ensure each test is properly run in isolation. For context, see: - // https://discuss.gradle.org/t/36066/2 & https://github.com/oppia/oppia-android/issues/1942 - forkEvery = 1 - maxParallelForks = Runtime.getRuntime().availableProcessors() - - // https://discuss.gradle.org/t/29495/2 & https://stackoverflow.com/a/34299238. - testLogging { - events "passed", "skipped", "failed" - showExceptions = true - exceptionFormat = "full" - showCauses = true - showStackTraces = true - showStandardStreams = false - } - } - } - } - - buildTypes { - release { - minifyEnabled true - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } -} - -// These tests aren't supported in Gradle since they make use of test resources & AGP doesn't -// support merging resources for test builds, or they rely on a compile-time built proto -// configuration file which the current Gradle configuration doesn't support. This test runs -// correctly for Bazel & is included in the CI workflow that runs Bazel tests. -// https://stackoverflow.com/a/69141612 seems like the only solution that actually works (versus -// trying to exclude via sourceSets), so the following is an adapted version that ensures all -// generated sources that may reference the test also don't exist (such as Dagger running to -// generate a test application component). Note that this must exist in tandem with the sourceSet -// exclusion in order to properly work. -def filesToExclude = [ - '**/*DisplayLocaleImplTest*.kt' -] -tasks.withType(SourceTask.class).configureEach { - it.exclude(filesToExclude) -} -android.sourceSets.test.java.exclude(filesToExclude) -android.sourceSets.test.kotlin.exclude(filesToExclude) - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation( - 'androidx.appcompat:appcompat:1.0.2', - 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0-alpha03', - 'androidx.work:work-runtime-ktx:2.4.0', - 'com.github.oppia:androidsvg:5bc9c7553e94c3476e8ea32baea3c77567228fcd', - 'com.github.oppia:kotlitex:ccdf4170817fa3b48b8e1e452772dd58ecb71cf2', - 'com.github.bumptech.glide:glide:4.11.0', - 'com.google.dagger:dagger:2.41', - 'com.google.firebase:firebase-analytics-ktx:17.5.0', - 'com.google.firebase:firebase-core:17.5.0', - 'com.google.firebase:firebase-crashlytics:17.0.0', - 'com.google.firebase:firebase-firestore-ktx:24.2.1', - 'com.google.firebase:firebase-auth-ktx:19.3.1', - 'com.google.protobuf:protobuf-javalite:3.17.3', - "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version", - 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4', - ) - compileOnly( - 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.2', - 'javax.annotation:javax.annotation-api:1.3.2', - 'org.glassfish.jaxb:jaxb-runtime:2.3.2', - ) - testImplementation( - 'androidx.test.ext:junit:1.1.1', - 'androidx.test.ext:truth:1.4.0', - 'com.google.dagger:dagger:2.41', - 'com.google.truth:truth:1.1.3', - 'com.google.truth.extensions:truth-liteproto-extension:1.1.3', - 'junit:junit:4.12', - "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version", - 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4', - 'org.mockito:mockito-core:2.19.0', - 'org.robolectric:robolectric:4.5', - project(":data"), - project(":testing"), - ) - kapt( - 'com.github.bumptech.glide:compiler:4.11.0', - 'com.google.dagger:dagger-compiler:2.41' - ) - kaptTest( - 'com.google.dagger:dagger-compiler:2.41' - ) - // TODO(#59): Remove this once Bazel is introduced - // sufficiently visible for generated Dagger code. This can be done more cleanly via Bazel since dependencies can be - // controlled more directly than in Gradle. - implementation project(':model') -} -// The GeneratedMessageLite implementations of protobufs are depending on protobuf-java -// instead of protobuf-lite after Android Studio 3.5, -// The below command stops that from happening: https://github.com/google/tink/issues/282 -configurations { - all*.exclude module: 'protobuf-java' -} diff --git a/utility/proguard-rules.pro b/utility/proguard-rules.pro deleted file mode 100644 index f1b424510da..00000000000 --- a/utility/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/utility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt b/utility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt index 1a82ec1ee85..ca9eb92e7c9 100644 --- a/utility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt +++ b/utility/src/main/java/org/oppia/android/util/networking/NetworkConnectionDebugUtilModule.kt @@ -3,8 +3,8 @@ package org.oppia.android.util.networking import dagger.BindsOptionalOf import dagger.Module -// TODO(#59): Remove this module once we completely migrate to Bazel from Gradle as we can then -// directly exclude debug files from the build and thus won't be requiring this module. +// TODO(#59): Remove this module once Bazel modularization is complete as then the debug files can +// be directly excluded and won't require this module. /** Provides optional dependencies corresponding to the [NetworkConnectionDebugUtil]. */ @Module interface NetworkConnectionDebugUtilModule { diff --git a/utility/src/test/resources/robolectric.properties b/utility/src/test/resources/robolectric.properties deleted file mode 100644 index 7b9532ffcbf..00000000000 --- a/utility/src/test/resources/robolectric.properties +++ /dev/null @@ -1,3 +0,0 @@ -# utility/src/test/resources/robolectric.properties -# TODO(#4748): Remove the need for this file after upgrading Robolectric tests to API 33 -sdk=30 From 69d02b176370609b74be416d2bdd69aff016dd1c Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 02:50:17 +0000 Subject: [PATCH 02/14] Remove .bazel suffix from all BUILD files. This aligns with Bazel best practices and is preferred over the suffix (which was only needed due to Gradle having some issues with files named 'BUILD'. --- BUILD.bazel => BUILD | 0 app/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/activity/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/activity/route/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/application/{BUILD.bazel => BUILD} | 0 .../oppia/android/app/application/alpha/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/application/beta/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/application/dev/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/application/ga/{BUILD.bazel => BUILD} | 0 .../oppia/android/app/application/testing/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/fragment/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/notice/testing/{BUILD.bazel => BUILD} | 0 .../android/app/player/exploration/testing/{BUILD.bazel => BUILD} | 0 .../main/java/org/oppia/android/app/shim/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/spotlight/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/testing/activity/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/translation/{BUILD.bazel => BUILD} | 0 .../oppia/android/app/translation/testing/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/utility/datetime/{BUILD.bazel => BUILD} | 0 .../oppia/android/app/utility/lifecycle/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/utility/math/{BUILD.bazel => BUILD} | 0 .../main/java/org/oppia/android/app/view/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/viewmodel/{BUILD.bazel => BUILD} | 0 .../administratorcontrols/learneranalytics/{BUILD.bazel => BUILD} | 0 .../android/app/customview/interaction/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/databinding/{BUILD.bazel => BUILD} | 0 .../app/devoptions/mathexpressionparser/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/notice/{BUILD.bazel => BUILD} | 0 .../oppia/android/app/player/exploration/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/player/state/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/splash/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/activity/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/activity/route/{BUILD.bazel => BUILD} | 0 .../oppia/android/app/application/alpha/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/application/beta/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/application/dev/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/application/ga/{BUILD.bazel => BUILD} | 0 .../oppia/android/app/application/testing/{BUILD.bazel => BUILD} | 0 .../app/devoptions/devoptionsitemviewmodel/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/testing/activity/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/app/translation/{BUILD.bazel => BUILD} | 0 .../oppia/android/app/translation/testing/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/app/utility/math/{BUILD.bazel => BUILD} | 0 config/src/java/org/oppia/android/config/{BUILD.bazel => BUILD} | 0 data/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/data/backends/gae/{BUILD.bazel => BUILD} | 0 .../oppia/android/data/backends/gae/api/{BUILD.bazel => BUILD} | 0 .../oppia/android/data/backends/gae/model/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/data/persistence/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/data/persistence/{BUILD.bazel => BUILD} | 0 domain/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/audio/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/auth/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/classify/{BUILD.bazel => BUILD} | 0 .../oppia/android/domain/classify/rules/{BUILD.bazel => BUILD} | 0 .../rules/algebraicexpressioninput/{BUILD.bazel => BUILD} | 0 .../classify/rules/continueinteraction/{BUILD.bazel => BUILD} | 0 .../classify/rules/dragAndDropSortInput/{BUILD.bazel => BUILD} | 0 .../domain/classify/rules/fractioninput/{BUILD.bazel => BUILD} | 0 .../domain/classify/rules/imageClickInput/{BUILD.bazel => BUILD} | 0 .../classify/rules/itemselectioninput/{BUILD.bazel => BUILD} | 0 .../classify/rules/mathequationinput/{BUILD.bazel => BUILD} | 0 .../classify/rules/multiplechoiceinput/{BUILD.bazel => BUILD} | 0 .../domain/classify/rules/numberwithunits/{BUILD.bazel => BUILD} | 0 .../classify/rules/numericexpressioninput/{BUILD.bazel => BUILD} | 0 .../domain/classify/rules/numericinput/{BUILD.bazel => BUILD} | 0 .../domain/classify/rules/ratioinput/{BUILD.bazel => BUILD} | 0 .../domain/classify/rules/textinput/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/domain/clipboard/{BUILD.bazel => BUILD} | 0 .../android/domain/exploration/testing/{BUILD.bazel => BUILD} | 0 .../oppia/android/domain/feedbackreporting/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/locale/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/domain/onboarding/{BUILD.bazel => BUILD} | 0 .../android/domain/onboarding/testing/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/domain/oppialogger/{BUILD.bazel => BUILD} | 0 .../android/domain/oppialogger/analytics/{BUILD.bazel => BUILD} | 0 .../domain/oppialogger/analytics/testing/{BUILD.bazel => BUILD} | 0 .../android/domain/oppialogger/exceptions/{BUILD.bazel => BUILD} | 0 .../domain/oppialogger/logscheduler/{BUILD.bazel => BUILD} | 0 .../android/domain/oppialogger/loguploader/{BUILD.bazel => BUILD} | 0 .../android/domain/oppialogger/survey/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/profile/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/domain/spotlight/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/state/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/survey/{BUILD.bazel => BUILD} | 0 .../domain/testing/oppialogger/loguploader/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/domain/translation/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/util/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/auth/{BUILD.bazel => BUILD} | 0 .../rules/algebraicexpressioninput/{BUILD.bazel => BUILD} | 0 .../classify/rules/mathequationinput/{BUILD.bazel => BUILD} | 0 .../classify/rules/numericexpressioninput/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/domain/clipboard/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/domain/exploration/{BUILD.bazel => BUILD} | 0 .../exploration/lightweightcheckpointing/{BUILD.bazel => BUILD} | 0 .../android/domain/exploration/testing/{BUILD.bazel => BUILD} | 0 .../oppia/android/domain/hintsandsolution/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/locale/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/domain/onboarding/{BUILD.bazel => BUILD} | 0 .../android/domain/oppialogger/analytics/{BUILD.bazel => BUILD} | 0 .../domain/oppialogger/analytics/testing/{BUILD.bazel => BUILD} | 0 .../android/domain/oppialogger/loguploader/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/question/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/domain/survey/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/domain/translation/{BUILD.bazel => BUILD} | 0 instrumentation/{BUILD.bazel => BUILD} | 0 .../android/instrumentation/application/{BUILD.bazel => BUILD} | 0 .../oppia/android/instrumentation/testing/{BUILD.bazel => BUILD} | 0 .../android/instrumentation/application/{BUILD.bazel => BUILD} | 0 .../oppia/android/instrumentation/player/{BUILD.bazel => BUILD} | 0 model/{BUILD.bazel => BUILD} | 0 model/src/main/proto/{BUILD.bazel => BUILD} | 0 scripts/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/apkstats/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/build/{BUILD.bazel => BUILD} | 0 .../src/java/org/oppia/android/scripts/ci/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/common/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/common/model/{BUILD.bazel => BUILD} | 0 .../oppia/android/scripts/common/remote/{BUILD.bazel => BUILD} | 0 .../oppia/android/scripts/common/testing/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/coverage/{BUILD.bazel => BUILD} | 0 .../android/scripts/coverage/reporter/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/docs/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/label/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/license/{BUILD.bazel => BUILD} | 0 .../oppia/android/scripts/license/model/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/maven/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/maven/model/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/proto/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/regex/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/telemetry/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/testfile/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/testing/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/todo/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/todo/model/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/scripts/wiki/{BUILD.bazel => BUILD} | 0 .../src/java/org/oppia/android/scripts/xml/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/apkstats/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/build/{BUILD.bazel => BUILD} | 0 .../javatests/org/oppia/android/scripts/ci/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/common/{BUILD.bazel => BUILD} | 0 .../oppia/android/scripts/common/testing/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/coverage/{BUILD.bazel => BUILD} | 0 .../android/scripts/coverage/reporter/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/docs/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/label/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/license/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/maven/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/regex/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/testfile/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/testing/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/todo/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/wiki/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/scripts/xml/{BUILD.bazel => BUILD} | 0 testing/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/data/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/testing/espresso/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/testing/firebase/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/junit/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/logging/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/math/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/mockito/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/network/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/testing/networking/{BUILD.bazel => BUILD} | 0 .../android/testing/platformparameter/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/testing/robolectric/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/testing/threading/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/time/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/data/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/testing/firebase/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/junit/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/logging/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/testing/math/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/testing/networking/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/testing/robolectric/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/testing/threading/{BUILD.bazel => BUILD} | 0 third_party/{BUILD.bazel => BUILD} | 0 tools/{BUILD.bazel => BUILD} | 0 tools/android/{BUILD.bazel => BUILD} | 0 tools/kotlin/{BUILD.bazel => BUILD} | 0 utility/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/accessibility/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/caching/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/caching/testing/{BUILD.bazel => BUILD} | 0 .../main/java/org/oppia/android/util/data/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/enumfilter/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/extensions/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/gcsresource/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/locale/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/locale/testing/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/logging/{BUILD.bazel => BUILD} | 0 .../oppia/android/util/logging/firebase/{BUILD.bazel => BUILD} | 0 .../util/logging/performancemetrics/{BUILD.bazel => BUILD} | 0 .../main/java/org/oppia/android/util/math/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/networking/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/parser/html/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/parser/image/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/parser/math/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/parser/svg/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/profile/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/statusbar/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/system/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/threading/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/caching/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/caching/testing/{BUILD.bazel => BUILD} | 0 .../test/java/org/oppia/android/util/data/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/locale/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/locale/testing/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/logging/{BUILD.bazel => BUILD} | 0 .../oppia/android/util/logging/firebase/{BUILD.bazel => BUILD} | 0 .../util/logging/performancemetrics/{BUILD.bazel => BUILD} | 0 .../test/java/org/oppia/android/util/math/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/networking/{BUILD.bazel => BUILD} | 0 .../org/oppia/android/util/parser/math/{BUILD.bazel => BUILD} | 0 .../java/org/oppia/android/util/profile/{BUILD.bazel => BUILD} | 0 215 files changed, 0 insertions(+), 0 deletions(-) rename BUILD.bazel => BUILD (100%) rename app/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/activity/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/activity/route/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/application/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/application/alpha/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/application/beta/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/application/dev/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/application/ga/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/application/testing/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/fragment/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/notice/testing/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/player/exploration/testing/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/shim/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/spotlight/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/testing/activity/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/translation/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/translation/testing/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/utility/datetime/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/utility/lifecycle/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/utility/math/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/view/{BUILD.bazel => BUILD} (100%) rename app/src/main/java/org/oppia/android/app/viewmodel/{BUILD.bazel => BUILD} (100%) rename app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/{BUILD.bazel => BUILD} (100%) rename app/src/sharedTest/java/org/oppia/android/app/customview/interaction/{BUILD.bazel => BUILD} (100%) rename app/src/sharedTest/java/org/oppia/android/app/databinding/{BUILD.bazel => BUILD} (100%) rename app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/{BUILD.bazel => BUILD} (100%) rename app/src/sharedTest/java/org/oppia/android/app/notice/{BUILD.bazel => BUILD} (100%) rename app/src/sharedTest/java/org/oppia/android/app/player/exploration/{BUILD.bazel => BUILD} (100%) rename app/src/sharedTest/java/org/oppia/android/app/player/state/{BUILD.bazel => BUILD} (100%) rename app/src/sharedTest/java/org/oppia/android/app/splash/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/activity/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/activity/route/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/application/alpha/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/application/beta/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/application/dev/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/application/ga/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/application/testing/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/testing/activity/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/translation/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/translation/testing/{BUILD.bazel => BUILD} (100%) rename app/src/test/java/org/oppia/android/app/utility/math/{BUILD.bazel => BUILD} (100%) rename config/src/java/org/oppia/android/config/{BUILD.bazel => BUILD} (100%) rename data/{BUILD.bazel => BUILD} (100%) rename data/src/main/java/org/oppia/android/data/backends/gae/{BUILD.bazel => BUILD} (100%) rename data/src/main/java/org/oppia/android/data/backends/gae/api/{BUILD.bazel => BUILD} (100%) rename data/src/main/java/org/oppia/android/data/backends/gae/model/{BUILD.bazel => BUILD} (100%) rename data/src/main/java/org/oppia/android/data/persistence/{BUILD.bazel => BUILD} (100%) rename data/src/test/java/org/oppia/android/data/persistence/{BUILD.bazel => BUILD} (100%) rename domain/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/audio/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/auth/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/clipboard/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/exploration/testing/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/feedbackreporting/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/locale/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/onboarding/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/onboarding/testing/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/survey/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/profile/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/spotlight/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/state/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/survey/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/translation/{BUILD.bazel => BUILD} (100%) rename domain/src/main/java/org/oppia/android/domain/util/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/auth/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/clipboard/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/exploration/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/exploration/testing/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/hintsandsolution/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/locale/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/onboarding/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/question/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/survey/{BUILD.bazel => BUILD} (100%) rename domain/src/test/java/org/oppia/android/domain/translation/{BUILD.bazel => BUILD} (100%) rename instrumentation/{BUILD.bazel => BUILD} (100%) rename instrumentation/src/java/org/oppia/android/instrumentation/application/{BUILD.bazel => BUILD} (100%) rename instrumentation/src/java/org/oppia/android/instrumentation/testing/{BUILD.bazel => BUILD} (100%) rename instrumentation/src/javatests/org/oppia/android/instrumentation/application/{BUILD.bazel => BUILD} (100%) rename instrumentation/src/javatests/org/oppia/android/instrumentation/player/{BUILD.bazel => BUILD} (100%) rename model/{BUILD.bazel => BUILD} (100%) rename model/src/main/proto/{BUILD.bazel => BUILD} (100%) rename scripts/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/apkstats/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/build/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/ci/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/common/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/common/model/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/common/remote/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/common/testing/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/coverage/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/coverage/reporter/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/docs/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/label/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/license/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/license/model/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/maven/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/maven/model/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/proto/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/regex/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/telemetry/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/testfile/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/testing/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/todo/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/todo/model/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/wiki/{BUILD.bazel => BUILD} (100%) rename scripts/src/java/org/oppia/android/scripts/xml/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/apkstats/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/build/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/ci/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/common/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/common/testing/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/coverage/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/docs/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/label/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/license/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/maven/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/regex/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/testfile/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/testing/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/todo/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/wiki/{BUILD.bazel => BUILD} (100%) rename scripts/src/javatests/org/oppia/android/scripts/xml/{BUILD.bazel => BUILD} (100%) rename testing/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/data/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/espresso/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/firebase/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/junit/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/logging/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/math/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/mockito/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/network/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/networking/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/platformparameter/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/robolectric/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/threading/{BUILD.bazel => BUILD} (100%) rename testing/src/main/java/org/oppia/android/testing/time/{BUILD.bazel => BUILD} (100%) rename testing/src/test/java/org/oppia/android/testing/data/{BUILD.bazel => BUILD} (100%) rename testing/src/test/java/org/oppia/android/testing/firebase/{BUILD.bazel => BUILD} (100%) rename testing/src/test/java/org/oppia/android/testing/junit/{BUILD.bazel => BUILD} (100%) rename testing/src/test/java/org/oppia/android/testing/logging/{BUILD.bazel => BUILD} (100%) rename testing/src/test/java/org/oppia/android/testing/math/{BUILD.bazel => BUILD} (100%) rename testing/src/test/java/org/oppia/android/testing/networking/{BUILD.bazel => BUILD} (100%) rename testing/src/test/java/org/oppia/android/testing/robolectric/{BUILD.bazel => BUILD} (100%) rename testing/src/test/java/org/oppia/android/testing/threading/{BUILD.bazel => BUILD} (100%) rename third_party/{BUILD.bazel => BUILD} (100%) rename tools/{BUILD.bazel => BUILD} (100%) rename tools/android/{BUILD.bazel => BUILD} (100%) rename tools/kotlin/{BUILD.bazel => BUILD} (100%) rename utility/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/accessibility/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/caching/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/caching/testing/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/data/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/enumfilter/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/extensions/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/gcsresource/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/locale/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/locale/testing/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/logging/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/logging/firebase/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/logging/performancemetrics/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/math/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/networking/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/parser/html/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/parser/image/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/parser/math/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/parser/svg/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/profile/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/statusbar/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/system/{BUILD.bazel => BUILD} (100%) rename utility/src/main/java/org/oppia/android/util/threading/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/caching/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/caching/testing/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/data/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/locale/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/locale/testing/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/logging/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/logging/firebase/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/logging/performancemetrics/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/math/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/networking/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/parser/math/{BUILD.bazel => BUILD} (100%) rename utility/src/test/java/org/oppia/android/util/profile/{BUILD.bazel => BUILD} (100%) diff --git a/BUILD.bazel b/BUILD similarity index 100% rename from BUILD.bazel rename to BUILD diff --git a/app/BUILD.bazel b/app/BUILD similarity index 100% rename from app/BUILD.bazel rename to app/BUILD diff --git a/app/src/main/java/org/oppia/android/app/activity/BUILD.bazel b/app/src/main/java/org/oppia/android/app/activity/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/activity/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/activity/BUILD diff --git a/app/src/main/java/org/oppia/android/app/activity/route/BUILD.bazel b/app/src/main/java/org/oppia/android/app/activity/route/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/activity/route/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/activity/route/BUILD diff --git a/app/src/main/java/org/oppia/android/app/application/BUILD.bazel b/app/src/main/java/org/oppia/android/app/application/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/application/BUILD diff --git a/app/src/main/java/org/oppia/android/app/application/alpha/BUILD.bazel b/app/src/main/java/org/oppia/android/app/application/alpha/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/alpha/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/application/alpha/BUILD diff --git a/app/src/main/java/org/oppia/android/app/application/beta/BUILD.bazel b/app/src/main/java/org/oppia/android/app/application/beta/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/beta/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/application/beta/BUILD diff --git a/app/src/main/java/org/oppia/android/app/application/dev/BUILD.bazel b/app/src/main/java/org/oppia/android/app/application/dev/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/dev/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/application/dev/BUILD diff --git a/app/src/main/java/org/oppia/android/app/application/ga/BUILD.bazel b/app/src/main/java/org/oppia/android/app/application/ga/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/ga/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/application/ga/BUILD diff --git a/app/src/main/java/org/oppia/android/app/application/testing/BUILD.bazel b/app/src/main/java/org/oppia/android/app/application/testing/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/testing/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/application/testing/BUILD diff --git a/app/src/main/java/org/oppia/android/app/fragment/BUILD.bazel b/app/src/main/java/org/oppia/android/app/fragment/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/fragment/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/fragment/BUILD diff --git a/app/src/main/java/org/oppia/android/app/notice/testing/BUILD.bazel b/app/src/main/java/org/oppia/android/app/notice/testing/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/notice/testing/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/notice/testing/BUILD diff --git a/app/src/main/java/org/oppia/android/app/player/exploration/testing/BUILD.bazel b/app/src/main/java/org/oppia/android/app/player/exploration/testing/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/player/exploration/testing/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/player/exploration/testing/BUILD diff --git a/app/src/main/java/org/oppia/android/app/shim/BUILD.bazel b/app/src/main/java/org/oppia/android/app/shim/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/shim/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/shim/BUILD diff --git a/app/src/main/java/org/oppia/android/app/spotlight/BUILD.bazel b/app/src/main/java/org/oppia/android/app/spotlight/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/spotlight/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/spotlight/BUILD diff --git a/app/src/main/java/org/oppia/android/app/testing/activity/BUILD.bazel b/app/src/main/java/org/oppia/android/app/testing/activity/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/testing/activity/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/testing/activity/BUILD diff --git a/app/src/main/java/org/oppia/android/app/translation/BUILD.bazel b/app/src/main/java/org/oppia/android/app/translation/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/translation/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/translation/BUILD diff --git a/app/src/main/java/org/oppia/android/app/translation/testing/BUILD.bazel b/app/src/main/java/org/oppia/android/app/translation/testing/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/translation/testing/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/translation/testing/BUILD diff --git a/app/src/main/java/org/oppia/android/app/utility/datetime/BUILD.bazel b/app/src/main/java/org/oppia/android/app/utility/datetime/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/utility/datetime/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/utility/datetime/BUILD diff --git a/app/src/main/java/org/oppia/android/app/utility/lifecycle/BUILD.bazel b/app/src/main/java/org/oppia/android/app/utility/lifecycle/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/utility/lifecycle/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/utility/lifecycle/BUILD diff --git a/app/src/main/java/org/oppia/android/app/utility/math/BUILD.bazel b/app/src/main/java/org/oppia/android/app/utility/math/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/utility/math/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/utility/math/BUILD diff --git a/app/src/main/java/org/oppia/android/app/view/BUILD.bazel b/app/src/main/java/org/oppia/android/app/view/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/view/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/view/BUILD diff --git a/app/src/main/java/org/oppia/android/app/viewmodel/BUILD.bazel b/app/src/main/java/org/oppia/android/app/viewmodel/BUILD similarity index 100% rename from app/src/main/java/org/oppia/android/app/viewmodel/BUILD.bazel rename to app/src/main/java/org/oppia/android/app/viewmodel/BUILD diff --git a/app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/BUILD.bazel b/app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/BUILD similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/BUILD.bazel rename to app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/BUILD diff --git a/app/src/sharedTest/java/org/oppia/android/app/customview/interaction/BUILD.bazel b/app/src/sharedTest/java/org/oppia/android/app/customview/interaction/BUILD similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/customview/interaction/BUILD.bazel rename to app/src/sharedTest/java/org/oppia/android/app/customview/interaction/BUILD diff --git a/app/src/sharedTest/java/org/oppia/android/app/databinding/BUILD.bazel b/app/src/sharedTest/java/org/oppia/android/app/databinding/BUILD similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/databinding/BUILD.bazel rename to app/src/sharedTest/java/org/oppia/android/app/databinding/BUILD diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/BUILD.bazel b/app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/BUILD similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/BUILD.bazel rename to app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/BUILD diff --git a/app/src/sharedTest/java/org/oppia/android/app/notice/BUILD.bazel b/app/src/sharedTest/java/org/oppia/android/app/notice/BUILD similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/notice/BUILD.bazel rename to app/src/sharedTest/java/org/oppia/android/app/notice/BUILD diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD.bazel b/app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD.bazel rename to app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/state/BUILD.bazel b/app/src/sharedTest/java/org/oppia/android/app/player/state/BUILD similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/player/state/BUILD.bazel rename to app/src/sharedTest/java/org/oppia/android/app/player/state/BUILD diff --git a/app/src/sharedTest/java/org/oppia/android/app/splash/BUILD.bazel b/app/src/sharedTest/java/org/oppia/android/app/splash/BUILD similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/splash/BUILD.bazel rename to app/src/sharedTest/java/org/oppia/android/app/splash/BUILD diff --git a/app/src/test/java/org/oppia/android/app/activity/BUILD.bazel b/app/src/test/java/org/oppia/android/app/activity/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/activity/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/activity/BUILD diff --git a/app/src/test/java/org/oppia/android/app/activity/route/BUILD.bazel b/app/src/test/java/org/oppia/android/app/activity/route/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/activity/route/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/activity/route/BUILD diff --git a/app/src/test/java/org/oppia/android/app/application/alpha/BUILD.bazel b/app/src/test/java/org/oppia/android/app/application/alpha/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/alpha/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/application/alpha/BUILD diff --git a/app/src/test/java/org/oppia/android/app/application/beta/BUILD.bazel b/app/src/test/java/org/oppia/android/app/application/beta/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/beta/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/application/beta/BUILD diff --git a/app/src/test/java/org/oppia/android/app/application/dev/BUILD.bazel b/app/src/test/java/org/oppia/android/app/application/dev/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/dev/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/application/dev/BUILD diff --git a/app/src/test/java/org/oppia/android/app/application/ga/BUILD.bazel b/app/src/test/java/org/oppia/android/app/application/ga/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/ga/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/application/ga/BUILD diff --git a/app/src/test/java/org/oppia/android/app/application/testing/BUILD.bazel b/app/src/test/java/org/oppia/android/app/application/testing/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/testing/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/application/testing/BUILD diff --git a/app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/BUILD.bazel b/app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/BUILD diff --git a/app/src/test/java/org/oppia/android/app/testing/activity/BUILD.bazel b/app/src/test/java/org/oppia/android/app/testing/activity/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/testing/activity/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/testing/activity/BUILD diff --git a/app/src/test/java/org/oppia/android/app/translation/BUILD.bazel b/app/src/test/java/org/oppia/android/app/translation/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/translation/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/translation/BUILD diff --git a/app/src/test/java/org/oppia/android/app/translation/testing/BUILD.bazel b/app/src/test/java/org/oppia/android/app/translation/testing/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/translation/testing/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/translation/testing/BUILD diff --git a/app/src/test/java/org/oppia/android/app/utility/math/BUILD.bazel b/app/src/test/java/org/oppia/android/app/utility/math/BUILD similarity index 100% rename from app/src/test/java/org/oppia/android/app/utility/math/BUILD.bazel rename to app/src/test/java/org/oppia/android/app/utility/math/BUILD diff --git a/config/src/java/org/oppia/android/config/BUILD.bazel b/config/src/java/org/oppia/android/config/BUILD similarity index 100% rename from config/src/java/org/oppia/android/config/BUILD.bazel rename to config/src/java/org/oppia/android/config/BUILD diff --git a/data/BUILD.bazel b/data/BUILD similarity index 100% rename from data/BUILD.bazel rename to data/BUILD diff --git a/data/src/main/java/org/oppia/android/data/backends/gae/BUILD.bazel b/data/src/main/java/org/oppia/android/data/backends/gae/BUILD similarity index 100% rename from data/src/main/java/org/oppia/android/data/backends/gae/BUILD.bazel rename to data/src/main/java/org/oppia/android/data/backends/gae/BUILD diff --git a/data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD.bazel b/data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD similarity index 100% rename from data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD.bazel rename to data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD diff --git a/data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD.bazel b/data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD similarity index 100% rename from data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD.bazel rename to data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD diff --git a/data/src/main/java/org/oppia/android/data/persistence/BUILD.bazel b/data/src/main/java/org/oppia/android/data/persistence/BUILD similarity index 100% rename from data/src/main/java/org/oppia/android/data/persistence/BUILD.bazel rename to data/src/main/java/org/oppia/android/data/persistence/BUILD diff --git a/data/src/test/java/org/oppia/android/data/persistence/BUILD.bazel b/data/src/test/java/org/oppia/android/data/persistence/BUILD similarity index 100% rename from data/src/test/java/org/oppia/android/data/persistence/BUILD.bazel rename to data/src/test/java/org/oppia/android/data/persistence/BUILD diff --git a/domain/BUILD.bazel b/domain/BUILD similarity index 100% rename from domain/BUILD.bazel rename to domain/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/audio/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/audio/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/audio/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/audio/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/auth/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/auth/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/auth/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/auth/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/clipboard/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/clipboard/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/clipboard/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/clipboard/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/exploration/testing/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/exploration/testing/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/exploration/testing/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/exploration/testing/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/feedbackreporting/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/feedbackreporting/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/feedbackreporting/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/feedbackreporting/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/locale/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/locale/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/locale/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/locale/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/onboarding/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/onboarding/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/onboarding/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/onboarding/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/onboarding/testing/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/onboarding/testing/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/onboarding/testing/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/onboarding/testing/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/oppialogger/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/oppialogger/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/survey/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/oppialogger/survey/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/survey/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/oppialogger/survey/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/profile/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/profile/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/profile/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/profile/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/spotlight/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/spotlight/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/spotlight/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/spotlight/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/state/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/state/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/state/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/state/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/survey/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/survey/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/survey/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/survey/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/translation/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/translation/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/translation/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/translation/BUILD diff --git a/domain/src/main/java/org/oppia/android/domain/util/BUILD.bazel b/domain/src/main/java/org/oppia/android/domain/util/BUILD similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/util/BUILD.bazel rename to domain/src/main/java/org/oppia/android/domain/util/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/auth/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/auth/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/auth/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/auth/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/clipboard/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/clipboard/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/clipboard/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/clipboard/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/exploration/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/exploration/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/exploration/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/testing/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/exploration/testing/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/exploration/testing/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/exploration/testing/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/hintsandsolution/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/hintsandsolution/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/hintsandsolution/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/hintsandsolution/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/locale/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/locale/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/locale/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/locale/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/onboarding/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/onboarding/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/onboarding/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/onboarding/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/question/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/question/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/question/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/question/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/survey/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/survey/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/survey/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/survey/BUILD diff --git a/domain/src/test/java/org/oppia/android/domain/translation/BUILD.bazel b/domain/src/test/java/org/oppia/android/domain/translation/BUILD similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/translation/BUILD.bazel rename to domain/src/test/java/org/oppia/android/domain/translation/BUILD diff --git a/instrumentation/BUILD.bazel b/instrumentation/BUILD similarity index 100% rename from instrumentation/BUILD.bazel rename to instrumentation/BUILD diff --git a/instrumentation/src/java/org/oppia/android/instrumentation/application/BUILD.bazel b/instrumentation/src/java/org/oppia/android/instrumentation/application/BUILD similarity index 100% rename from instrumentation/src/java/org/oppia/android/instrumentation/application/BUILD.bazel rename to instrumentation/src/java/org/oppia/android/instrumentation/application/BUILD diff --git a/instrumentation/src/java/org/oppia/android/instrumentation/testing/BUILD.bazel b/instrumentation/src/java/org/oppia/android/instrumentation/testing/BUILD similarity index 100% rename from instrumentation/src/java/org/oppia/android/instrumentation/testing/BUILD.bazel rename to instrumentation/src/java/org/oppia/android/instrumentation/testing/BUILD diff --git a/instrumentation/src/javatests/org/oppia/android/instrumentation/application/BUILD.bazel b/instrumentation/src/javatests/org/oppia/android/instrumentation/application/BUILD similarity index 100% rename from instrumentation/src/javatests/org/oppia/android/instrumentation/application/BUILD.bazel rename to instrumentation/src/javatests/org/oppia/android/instrumentation/application/BUILD diff --git a/instrumentation/src/javatests/org/oppia/android/instrumentation/player/BUILD.bazel b/instrumentation/src/javatests/org/oppia/android/instrumentation/player/BUILD similarity index 100% rename from instrumentation/src/javatests/org/oppia/android/instrumentation/player/BUILD.bazel rename to instrumentation/src/javatests/org/oppia/android/instrumentation/player/BUILD diff --git a/model/BUILD.bazel b/model/BUILD similarity index 100% rename from model/BUILD.bazel rename to model/BUILD diff --git a/model/src/main/proto/BUILD.bazel b/model/src/main/proto/BUILD similarity index 100% rename from model/src/main/proto/BUILD.bazel rename to model/src/main/proto/BUILD diff --git a/scripts/BUILD.bazel b/scripts/BUILD similarity index 100% rename from scripts/BUILD.bazel rename to scripts/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/apkstats/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/apkstats/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/apkstats/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/apkstats/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/build/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/build/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/build/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/build/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/ci/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/ci/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/ci/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/ci/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/common/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/common/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/common/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/common/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/common/model/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/common/model/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/common/model/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/common/model/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/common/remote/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/common/remote/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/common/remote/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/common/remote/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/common/testing/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/common/testing/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/common/testing/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/common/testing/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/coverage/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/coverage/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/coverage/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/coverage/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/coverage/reporter/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/coverage/reporter/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/coverage/reporter/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/coverage/reporter/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/docs/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/docs/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/docs/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/docs/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/label/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/label/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/label/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/label/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/license/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/license/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/license/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/license/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/license/model/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/license/model/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/license/model/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/license/model/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/maven/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/maven/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/maven/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/maven/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/maven/model/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/maven/model/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/maven/model/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/maven/model/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/proto/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/proto/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/proto/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/proto/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/regex/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/regex/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/regex/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/regex/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/telemetry/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/telemetry/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/telemetry/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/telemetry/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/testfile/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/testfile/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/testfile/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/testfile/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/testing/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/testing/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/testing/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/testing/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/todo/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/todo/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/todo/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/todo/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/todo/model/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/todo/model/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/todo/model/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/todo/model/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/wiki/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/wiki/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/wiki/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/wiki/BUILD diff --git a/scripts/src/java/org/oppia/android/scripts/xml/BUILD.bazel b/scripts/src/java/org/oppia/android/scripts/xml/BUILD similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/xml/BUILD.bazel rename to scripts/src/java/org/oppia/android/scripts/xml/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/apkstats/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/apkstats/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/apkstats/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/apkstats/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/build/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/build/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/build/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/build/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/ci/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/ci/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/ci/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/ci/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/common/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/common/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/common/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/common/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/common/testing/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/common/testing/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/common/testing/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/common/testing/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/coverage/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/coverage/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/coverage/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/coverage/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/docs/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/docs/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/docs/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/docs/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/label/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/label/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/label/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/label/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/license/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/license/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/license/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/license/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/maven/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/maven/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/maven/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/maven/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/regex/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/regex/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/regex/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/regex/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/testfile/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/testfile/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/testfile/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/testfile/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/testing/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/testing/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/testing/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/testing/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/todo/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/todo/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/todo/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/todo/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/wiki/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/wiki/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/wiki/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/wiki/BUILD diff --git a/scripts/src/javatests/org/oppia/android/scripts/xml/BUILD.bazel b/scripts/src/javatests/org/oppia/android/scripts/xml/BUILD similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/xml/BUILD.bazel rename to scripts/src/javatests/org/oppia/android/scripts/xml/BUILD diff --git a/testing/BUILD.bazel b/testing/BUILD similarity index 100% rename from testing/BUILD.bazel rename to testing/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/data/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/data/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/data/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/data/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/espresso/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/espresso/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/espresso/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/espresso/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/firebase/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/firebase/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/firebase/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/firebase/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/junit/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/junit/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/junit/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/junit/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/logging/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/logging/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/logging/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/logging/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/math/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/math/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/math/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/math/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/mockito/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/mockito/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/mockito/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/mockito/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/network/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/network/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/network/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/network/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/networking/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/networking/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/networking/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/networking/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/robolectric/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/robolectric/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/robolectric/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/robolectric/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/threading/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/threading/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/threading/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/threading/BUILD diff --git a/testing/src/main/java/org/oppia/android/testing/time/BUILD.bazel b/testing/src/main/java/org/oppia/android/testing/time/BUILD similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/time/BUILD.bazel rename to testing/src/main/java/org/oppia/android/testing/time/BUILD diff --git a/testing/src/test/java/org/oppia/android/testing/data/BUILD.bazel b/testing/src/test/java/org/oppia/android/testing/data/BUILD similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/data/BUILD.bazel rename to testing/src/test/java/org/oppia/android/testing/data/BUILD diff --git a/testing/src/test/java/org/oppia/android/testing/firebase/BUILD.bazel b/testing/src/test/java/org/oppia/android/testing/firebase/BUILD similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/firebase/BUILD.bazel rename to testing/src/test/java/org/oppia/android/testing/firebase/BUILD diff --git a/testing/src/test/java/org/oppia/android/testing/junit/BUILD.bazel b/testing/src/test/java/org/oppia/android/testing/junit/BUILD similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/junit/BUILD.bazel rename to testing/src/test/java/org/oppia/android/testing/junit/BUILD diff --git a/testing/src/test/java/org/oppia/android/testing/logging/BUILD.bazel b/testing/src/test/java/org/oppia/android/testing/logging/BUILD similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/logging/BUILD.bazel rename to testing/src/test/java/org/oppia/android/testing/logging/BUILD diff --git a/testing/src/test/java/org/oppia/android/testing/math/BUILD.bazel b/testing/src/test/java/org/oppia/android/testing/math/BUILD similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/math/BUILD.bazel rename to testing/src/test/java/org/oppia/android/testing/math/BUILD diff --git a/testing/src/test/java/org/oppia/android/testing/networking/BUILD.bazel b/testing/src/test/java/org/oppia/android/testing/networking/BUILD similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/networking/BUILD.bazel rename to testing/src/test/java/org/oppia/android/testing/networking/BUILD diff --git a/testing/src/test/java/org/oppia/android/testing/robolectric/BUILD.bazel b/testing/src/test/java/org/oppia/android/testing/robolectric/BUILD similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/robolectric/BUILD.bazel rename to testing/src/test/java/org/oppia/android/testing/robolectric/BUILD diff --git a/testing/src/test/java/org/oppia/android/testing/threading/BUILD.bazel b/testing/src/test/java/org/oppia/android/testing/threading/BUILD similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/threading/BUILD.bazel rename to testing/src/test/java/org/oppia/android/testing/threading/BUILD diff --git a/third_party/BUILD.bazel b/third_party/BUILD similarity index 100% rename from third_party/BUILD.bazel rename to third_party/BUILD diff --git a/tools/BUILD.bazel b/tools/BUILD similarity index 100% rename from tools/BUILD.bazel rename to tools/BUILD diff --git a/tools/android/BUILD.bazel b/tools/android/BUILD similarity index 100% rename from tools/android/BUILD.bazel rename to tools/android/BUILD diff --git a/tools/kotlin/BUILD.bazel b/tools/kotlin/BUILD similarity index 100% rename from tools/kotlin/BUILD.bazel rename to tools/kotlin/BUILD diff --git a/utility/BUILD.bazel b/utility/BUILD similarity index 100% rename from utility/BUILD.bazel rename to utility/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/accessibility/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/accessibility/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/accessibility/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/accessibility/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/caching/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/caching/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/caching/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/caching/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/caching/testing/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/caching/testing/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/caching/testing/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/caching/testing/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/data/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/data/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/data/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/data/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/enumfilter/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/enumfilter/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/enumfilter/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/enumfilter/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/extensions/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/extensions/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/extensions/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/extensions/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/gcsresource/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/gcsresource/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/gcsresource/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/gcsresource/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/locale/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/locale/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/locale/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/locale/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/locale/testing/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/locale/testing/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/locale/testing/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/locale/testing/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/logging/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/logging/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/logging/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/logging/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/logging/firebase/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/logging/firebase/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/logging/firebase/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/logging/firebase/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/logging/performancemetrics/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/logging/performancemetrics/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/logging/performancemetrics/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/logging/performancemetrics/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/math/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/math/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/math/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/math/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/networking/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/networking/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/networking/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/networking/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/parser/html/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/parser/html/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/parser/html/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/parser/html/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/parser/image/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/parser/image/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/parser/image/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/parser/image/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/parser/math/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/parser/math/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/parser/math/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/parser/math/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/parser/svg/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/parser/svg/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/parser/svg/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/parser/svg/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/profile/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/profile/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/profile/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/profile/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/statusbar/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/statusbar/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/statusbar/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/statusbar/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/system/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/system/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/system/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/system/BUILD diff --git a/utility/src/main/java/org/oppia/android/util/threading/BUILD.bazel b/utility/src/main/java/org/oppia/android/util/threading/BUILD similarity index 100% rename from utility/src/main/java/org/oppia/android/util/threading/BUILD.bazel rename to utility/src/main/java/org/oppia/android/util/threading/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/caching/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/caching/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/caching/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/caching/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/caching/testing/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/caching/testing/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/caching/testing/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/caching/testing/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/data/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/data/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/data/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/data/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/locale/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/locale/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/locale/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/locale/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/locale/testing/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/locale/testing/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/locale/testing/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/locale/testing/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/logging/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/logging/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/logging/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/logging/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/logging/firebase/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/logging/firebase/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/logging/firebase/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/logging/firebase/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/logging/performancemetrics/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/logging/performancemetrics/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/logging/performancemetrics/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/logging/performancemetrics/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/math/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/math/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/math/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/math/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/networking/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/networking/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/networking/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/networking/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/parser/math/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/parser/math/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/parser/math/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/parser/math/BUILD diff --git a/utility/src/test/java/org/oppia/android/util/profile/BUILD.bazel b/utility/src/test/java/org/oppia/android/util/profile/BUILD similarity index 100% rename from utility/src/test/java/org/oppia/android/util/profile/BUILD.bazel rename to utility/src/test/java/org/oppia/android/util/profile/BUILD From 103b82821889193abb041b8f06423bedab416199 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 02:51:12 +0000 Subject: [PATCH 03/14] Remove TODOs for renaming BUILD files. --- BUILD | 2 -- app/BUILD | 1 - app/src/main/java/org/oppia/android/app/testing/activity/BUILD | 1 - config/src/java/org/oppia/android/config/BUILD | 1 - data/BUILD | 1 - data/src/main/java/org/oppia/android/data/backends/gae/BUILD | 1 - .../src/main/java/org/oppia/android/data/backends/gae/api/BUILD | 1 - .../main/java/org/oppia/android/data/backends/gae/model/BUILD | 1 - domain/BUILD | 1 - model/src/main/proto/BUILD | 1 - testing/BUILD | 1 - testing/src/main/java/org/oppia/android/testing/data/BUILD | 1 - testing/src/main/java/org/oppia/android/testing/espresso/BUILD | 1 - testing/src/main/java/org/oppia/android/testing/junit/BUILD | 1 - testing/src/main/java/org/oppia/android/testing/mockito/BUILD | 1 - testing/src/main/java/org/oppia/android/testing/network/BUILD | 1 - .../src/main/java/org/oppia/android/testing/networking/BUILD | 1 - .../main/java/org/oppia/android/testing/platformparameter/BUILD | 1 - .../src/main/java/org/oppia/android/testing/robolectric/BUILD | 1 - testing/src/main/java/org/oppia/android/testing/threading/BUILD | 1 - testing/src/main/java/org/oppia/android/testing/time/BUILD | 1 - testing/src/test/java/org/oppia/android/testing/data/BUILD | 1 - testing/src/test/java/org/oppia/android/testing/threading/BUILD | 1 - third_party/BUILD | 1 - utility/BUILD | 1 - 25 files changed, 26 deletions(-) diff --git a/BUILD b/BUILD index 4c6d5a97c2a..8eccbc1eb13 100644 --- a/BUILD +++ b/BUILD @@ -1,5 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. - load("@dagger//:workspace_defs.bzl", "dagger_rules") load("//:build_flavors.bzl", "AVAILABLE_FLAVORS", "define_oppia_aab_binary_flavor", "transform_android_manifest") load("//:version.bzl", "MAJOR_VERSION", "MINOR_VERSION", "OPPIA_DEV_KITKAT_VERSION_CODE", "OPPIA_DEV_VERSION_CODE") diff --git a/app/BUILD b/app/BUILD index 7405410cf3e..6389096c77d 100644 --- a/app/BUILD +++ b/app/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ This library contains the app's core source files and functionality. Note that: diff --git a/app/src/main/java/org/oppia/android/app/testing/activity/BUILD b/app/src/main/java/org/oppia/android/app/testing/activity/BUILD index b3f231830cf..a3d729c9bf3 100644 --- a/app/src/main/java/org/oppia/android/app/testing/activity/BUILD +++ b/app/src/main/java/org/oppia/android/app/testing/activity/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for test-only utilities to simplify accessing the activity & fragment parts of the Dagger graph, and to simplify UI arrangement for tests that require an activity (such as fragments) or diff --git a/config/src/java/org/oppia/android/config/BUILD b/config/src/java/org/oppia/android/config/BUILD index cc24ce5240c..50ef695b6ba 100644 --- a/config/src/java/org/oppia/android/config/BUILD +++ b/config/src/java/org/oppia/android/config/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ This package contains configuration libraries for defining & tweaking app-wide behavior. """ diff --git a/data/BUILD b/data/BUILD index 9e61d1f5786..5d75949620d 100644 --- a/data/BUILD +++ b/data/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ This library provides data to the rest of the application. """ diff --git a/data/src/main/java/org/oppia/android/data/backends/gae/BUILD b/data/src/main/java/org/oppia/android/data/backends/gae/BUILD index a9e26231900..59317908799 100644 --- a/data/src/main/java/org/oppia/android/data/backends/gae/BUILD +++ b/data/src/main/java/org/oppia/android/data/backends/gae/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Library for providing top-level HTTP networking support for Oppia's App Engine backend. """ diff --git a/data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD b/data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD index 061847f486c..284f90d8f4d 100644 --- a/data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD +++ b/data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Library for providing a network API interface with Oppia's App Engine backend. """ diff --git a/data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD b/data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD index 16cdde248bf..bce2fcce4f7 100644 --- a/data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD +++ b/data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Library for providing model definitions for Oppia's App Engine backend endpoints. """ diff --git a/domain/BUILD b/domain/BUILD index 69a5a4a35c9..b8a9ff0c2f1 100755 --- a/domain/BUILD +++ b/domain/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ This library contains the frontend controller and business service logic for the application. """ diff --git a/model/src/main/proto/BUILD b/model/src/main/proto/BUILD index 8a917b4108d..9e77bdc3e32 100644 --- a/model/src/main/proto/BUILD +++ b/model/src/main/proto/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ This library contains all protos used in the app and is a dependency for all other modules. In Bazel, proto files are built using the oppia_proto_library() and java_lite_proto_library() rules. diff --git a/testing/BUILD b/testing/BUILD index d6911740138..9634e461a30 100644 --- a/testing/BUILD +++ b/testing/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ This library contains fake objects used for testing as well as tests for these objects. """ diff --git a/testing/src/main/java/org/oppia/android/testing/data/BUILD b/testing/src/main/java/org/oppia/android/testing/data/BUILD index 3031525cb8f..a4c75cec2c0 100644 --- a/testing/src/main/java/org/oppia/android/testing/data/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/data/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for common test utilities corresponding to data processing & data providers. """ diff --git a/testing/src/main/java/org/oppia/android/testing/espresso/BUILD b/testing/src/main/java/org/oppia/android/testing/espresso/BUILD index a1be1a8f705..7c6e9d69c45 100644 --- a/testing/src/main/java/org/oppia/android/testing/espresso/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/espresso/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for common Espresso matchers & other test utilities. """ diff --git a/testing/src/main/java/org/oppia/android/testing/junit/BUILD b/testing/src/main/java/org/oppia/android/testing/junit/BUILD index f029c9f3709..4d31f6d8aed 100644 --- a/testing/src/main/java/org/oppia/android/testing/junit/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/junit/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for test-only JUnit utilities. """ diff --git a/testing/src/main/java/org/oppia/android/testing/mockito/BUILD b/testing/src/main/java/org/oppia/android/testing/mockito/BUILD index d8044049aa3..dd31f4ba8ab 100644 --- a/testing/src/main/java/org/oppia/android/testing/mockito/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/mockito/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for Mockito-specific test utilities and helpers. """ diff --git a/testing/src/main/java/org/oppia/android/testing/network/BUILD b/testing/src/main/java/org/oppia/android/testing/network/BUILD index 26769e83181..3006a89b1c0 100644 --- a/testing/src/main/java/org/oppia/android/testing/network/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/network/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Library for providing test-only HTTP mocks for the app's networking layer. """ diff --git a/testing/src/main/java/org/oppia/android/testing/networking/BUILD b/testing/src/main/java/org/oppia/android/testing/networking/BUILD index e60af5c4489..b06534edeb4 100644 --- a/testing/src/main/java/org/oppia/android/testing/networking/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/networking/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for test-specific networking utilities. """ diff --git a/testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD b/testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD index 1ff35e43281..2d9ad458f96 100644 --- a/testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for test-specific platform parameter utilities and helpers. """ diff --git a/testing/src/main/java/org/oppia/android/testing/robolectric/BUILD b/testing/src/main/java/org/oppia/android/testing/robolectric/BUILD index 11a059d491c..2b02b349e07 100644 --- a/testing/src/main/java/org/oppia/android/testing/robolectric/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/robolectric/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for Robolectric-specific utilities and configurations. """ diff --git a/testing/src/main/java/org/oppia/android/testing/threading/BUILD b/testing/src/main/java/org/oppia/android/testing/threading/BUILD index 0b03b47d22c..62f8efe71ff 100644 --- a/testing/src/main/java/org/oppia/android/testing/threading/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/threading/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for test-only threading utilities, including classes to coordinate cross-thread operations in a way that can improve test reliability, correctness, and performance. diff --git a/testing/src/main/java/org/oppia/android/testing/time/BUILD b/testing/src/main/java/org/oppia/android/testing/time/BUILD index b68a4dd9f2e..f7188c03e53 100644 --- a/testing/src/main/java/org/oppia/android/testing/time/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/time/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Package for test-only utilities for coordinating time, particularly in simulated Android environments (i.e. Robolectric). diff --git a/testing/src/test/java/org/oppia/android/testing/data/BUILD b/testing/src/test/java/org/oppia/android/testing/data/BUILD index f56cf1bf1b9..e2a18c943dc 100644 --- a/testing/src/test/java/org/oppia/android/testing/data/BUILD +++ b/testing/src/test/java/org/oppia/android/testing/data/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Tests for data processing test utilities. """ diff --git a/testing/src/test/java/org/oppia/android/testing/threading/BUILD b/testing/src/test/java/org/oppia/android/testing/threading/BUILD index 4c67acdc229..87dcef5d603 100644 --- a/testing/src/test/java/org/oppia/android/testing/threading/BUILD +++ b/testing/src/test/java/org/oppia/android/testing/threading/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ Tests for threading-specific test utilities. """ diff --git a/third_party/BUILD b/third_party/BUILD index 5c8dc488a58..b909c3ae23c 100644 --- a/third_party/BUILD +++ b/third_party/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ This package contains all third-party dependencies that the project depends on. Each maven artifact should correspond to a single wrapper android_library, and versions should go in versions.bzl. diff --git a/utility/BUILD b/utility/BUILD index 40ff91d8c59..0b068a6670c 100644 --- a/utility/BUILD +++ b/utility/BUILD @@ -1,4 +1,3 @@ -# TODO(#1532): Rename file to 'BUILD' post-Gradle. """ This library contains utilities that all other modules, minus model, depend on. """ From d419a1c66874713c5c0ca1450bc4974e1e11d5f6 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 03:06:48 +0000 Subject: [PATCH 04/14] Remove build env test gating. Bazel is now the only platform that these tests can run on. Note that no tests were Gradle-specific. --- .../android/app/home/HomeActivityTest.kt | 9 +-- .../app/onboarding/OnboardingFragmentTest.kt | 17 ++--- .../app/options/AppLanguageFragmentTest.kt | 3 +- .../app/options/AudioLanguageFragmentTest.kt | 5 +- .../app/options/OptionsFragmentTest.kt | 5 +- .../options/ReadingTextSizeFragmentTest.kt | 3 - .../android/app/parser/HtmlParserTest.kt | 3 +- .../exploration/ExplorationActivityTest.kt | 5 +- .../app/player/state/StateFragmentTest.kt | 74 ++++++++----------- .../android/app/splash/SplashActivityTest.kt | 7 +- .../conceptcard/ConceptCardFragmentTest.kt | 5 +- .../QuestionPlayerActivityTest.kt | 5 +- .../revisioncard/RevisionCardActivityTest.kt | 3 +- .../revisioncard/RevisionCardFragmentTest.kt | 5 +- .../parser/ListItemLeadingMarginSpanTest.kt | 9 +-- .../player/state/StateFragmentLocalTest.kt | 8 -- .../ExplorationProgressControllerTest.kt | 9 --- .../ProfileManagementControllerTest.kt | 15 ---- ...uestionAssessmentProgressControllerTest.kt | 6 -- .../domain/topic/TopicControllerTest.kt | 11 --- .../domain/topic/TopicListControllerTest.kt | 3 - .../android/testing/OppiaTestAnnotations.kt | 18 +---- .../oppia/android/testing/OppiaTestRule.kt | 36 +-------- 23 files changed, 64 insertions(+), 200 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/home/HomeActivityTest.kt b/app/src/sharedTest/java/org/oppia/android/app/home/HomeActivityTest.kt index f0943148df3..a3a9d776232 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/home/HomeActivityTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/home/HomeActivityTest.kt @@ -122,7 +122,6 @@ import org.oppia.android.domain.topic.FRACTIONS_TOPIC_ID import org.oppia.android.domain.topic.TEST_STORY_ID_0 import org.oppia.android.domain.topic.TEST_TOPIC_ID_0 import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule @@ -1735,7 +1734,7 @@ class HomeActivityTest { // TODO(#3840): Make this test work on Espresso & Robolectric. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testHomeActivity_defaultState_hasEnglishDisplayLocale() { setUpTestWithOnboardingV2Disabled() launch(createHomeActivityIntent(internalProfileId)).use { @@ -1843,7 +1842,7 @@ class HomeActivityTest { appStringIetfTag = "ar", appStringAndroidLanguageId = "ar" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testHomeActivity_initialArabicContext_hasArabicDisplayLocale() { setUpTestWithOnboardingV2Disabled() // Ensure the system locale matches the initial locale context. @@ -1918,7 +1917,7 @@ class HomeActivityTest { appStringAndroidLanguageId = "pt", appStringAndroidRegionId = "BR" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testHomeActivity_initialBrazilianPortugueseContext_hasPortugueseDisplayLocale() { setUpTestWithOnboardingV2Disabled() // Ensure the system locale matches the initial locale context. @@ -1966,7 +1965,7 @@ class HomeActivityTest { appStringAndroidLanguageId = "pcm", appStringAndroidRegionId = "NG" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testHomeActivity_initialNigerianPidginContext_hasNaijaDisplayLocale() { setUpTestWithOnboardingV2Disabled() // Ensure the system locale matches the initial locale context. diff --git a/app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingFragmentTest.kt index c985ce11ab4..de778aa9c80 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingFragmentTest.kt @@ -93,7 +93,6 @@ import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule @@ -797,7 +796,7 @@ class OnboardingFragmentTest { } @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testOnboardingFragment_onboardingV2Enabled_englishLocale_englishIsPreselected() { setUpTestWithOnboardingV2Enabled() @@ -834,7 +833,7 @@ class OnboardingFragmentTest { appStringIetfTag = "ar", appStringAndroidLanguageId = "ar" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testOnboardingFragment_onboardingV2Enabled_arabicLocale_arabicIsPreselected() { setUpTestWithOnboardingV2Enabled() forceDefaultLocale(EGYPT_ARABIC_LOCALE) @@ -879,7 +878,7 @@ class OnboardingFragmentTest { appStringAndroidLanguageId = "pt", appStringAndroidRegionId = "BR" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testOnboardingFragment_onboardingV2Enabled_portugueseLocale_portugueseIsPreselected() { setUpTestWithOnboardingV2Enabled() forceDefaultLocale(BRAZIL_PORTUGUESE_LOCALE) @@ -925,7 +924,7 @@ class OnboardingFragmentTest { appStringAndroidLanguageId = "pcm", appStringAndroidRegionId = "NG" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testOnboardingFragment_onboardingV2Enabled_nigeriaLocale_naijaIsPreselected() { setUpTestWithOnboardingV2Enabled() forceDefaultLocale(NIGERIA_NAIJA_LOCALE) @@ -971,7 +970,7 @@ class OnboardingFragmentTest { appStringAndroidLanguageId = "fr-CA", appStringAndroidRegionId = "CA" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testOnboardingFragment_onboardingV2Enabled_unsupportedLocale_englishIsPreselected() { setUpTestWithOnboardingV2Enabled() forceDefaultLocale(CANADA_FRENCH_LOCALE) @@ -1004,7 +1003,7 @@ class OnboardingFragmentTest { } @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testFragment_onboardingV2_languageSelectionChanged_languageIsUpdated() { setUpTestWithOnboardingV2Enabled() launch(OnboardingActivity::class.java).use { scenario -> @@ -1032,7 +1031,7 @@ class OnboardingFragmentTest { } @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testFragment_onboardingV2_languageSelectionChanged_configChange_languageIsUpdated() { setUpTestWithOnboardingV2Enabled() launch(OnboardingActivity::class.java).use { scenario -> @@ -1059,7 +1058,7 @@ class OnboardingFragmentTest { } @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testFragment_onboardingV2_orientationChange_languageSelectionIsRestored() { setUpTestWithOnboardingV2Enabled() launch(OnboardingActivity::class.java).use { scenario -> diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt index 2f32094463c..4416d88c9f2 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt @@ -70,7 +70,6 @@ import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule @@ -103,7 +102,7 @@ import javax.inject.Singleton /** Tests for [AppLanguageFragment]. */ @RunWith(AndroidJUnit4::class) -@RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) +@RunOn(TestPlatform.ROBOLECTRIC) @LooperMode(LooperMode.Mode.PAUSED) @Config(application = AppLanguageFragmentTest.TestApplication::class) class AppLanguageFragmentTest { diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt index 703b2c7cf94..d4508bbafaa 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt @@ -86,7 +86,6 @@ import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule @@ -387,7 +386,7 @@ class AudioLanguageFragmentTest { } @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testFragment_languageSelectionChanged_selectionIsUpdated() { TestPlatformParameterModule.forceEnableMultipleClassrooms(false) initializeTestApplicationComponent(enableOnboardingFlowV2 = true) @@ -417,7 +416,7 @@ class AudioLanguageFragmentTest { } @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testFragment_languageSelectionChanged_configChange_selectionIsUpdated() { TestPlatformParameterModule.forceEnableMultipleClassrooms(false) initializeTestApplicationComponent(enableOnboardingFlowV2 = true) diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/OptionsFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/OptionsFragmentTest.kt index f7abd23fcc6..c813b57ebc7 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/OptionsFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/OptionsFragmentTest.kt @@ -83,7 +83,6 @@ import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule @@ -442,7 +441,7 @@ class OptionsFragmentTest { } @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun openOptionsActivity_clickAppLanguage_opensAppLanguageActivity() { launch( createOptionActivityIntent( @@ -472,7 +471,7 @@ class OptionsFragmentTest { } @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun openOptionsActivity_configChange_clickAppLanguage_opensAppLanguageActivity() { launch( createOptionActivityIntent( diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt index 5e1ef9f6c61..193c9228bdf 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt @@ -76,7 +76,6 @@ import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule @@ -183,10 +182,8 @@ class ReadingTextSizeFragmentTest { } } - // Requires language configurations. @Test @Config(qualifiers = "sw600dp") - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testTextSize_changeTextSizeToMedium_mediumItemIsSelected() { launch(createOptionActivityIntent(0, true)).use { testCoroutineDispatchers.runCurrent() diff --git a/app/src/sharedTest/java/org/oppia/android/app/parser/HtmlParserTest.kt b/app/src/sharedTest/java/org/oppia/android/app/parser/HtmlParserTest.kt index 9b3b36f2d6a..b599271967d 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/parser/HtmlParserTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/parser/HtmlParserTest.kt @@ -99,7 +99,6 @@ import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestImageLoaderModule import org.oppia.android.testing.TestLogReportingModule @@ -501,7 +500,7 @@ class HtmlParserTest { appStringIetfTag = "ar", appStringAndroidLanguageId = "ar" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testHtmlContent_changeDeviceToRtl_textViewDirectionIsSetToRtl() { val displayLocale = createDisplayLocaleImpl(EGYPT_ARABIC_CONTEXT) diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt index d5adce598af..e8283c22045 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt @@ -133,7 +133,6 @@ import org.oppia.android.domain.topic.TEST_STORY_ID_0 import org.oppia.android.domain.topic.TEST_TOPIC_ID_0 import org.oppia.android.domain.translation.TranslationController import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.FakeAnalyticsEventLogger import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn @@ -2185,7 +2184,7 @@ class ExplorationActivityTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testExpActivity_profileWithArabicContentLang_contentIsInArabic() { updateContentLanguage( ProfileId.newBuilder().apply { internalId = internalProfileId }.build(), @@ -2382,7 +2381,7 @@ class ExplorationActivityTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testExpActivity_profileWithArabicContentLang_showHint_explanationInArabic() { markAllSpotlightsSeen() updateContentLanguage( diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt index 09baf65b707..a88e41758ce 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt @@ -151,7 +151,6 @@ import org.oppia.android.domain.topic.TEST_STORY_ID_0 import org.oppia.android.domain.topic.TEST_TOPIC_ID_0 import org.oppia.android.domain.translation.TranslationController import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.FakeAnalyticsEventLogger import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn @@ -2449,7 +2448,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabicContentLang_content_isInArabic() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -2462,7 +2461,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabicContentLang_thenEnglish_content_isInEnglish() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -2489,7 +2488,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_continueInteraction_buttonIsInEnglish() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -2535,7 +2534,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_fractionInput_placeholderIsInArabic() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -2550,7 +2549,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_fractionInput_submitAnswer_answerMatchesSubmission() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -2587,7 +2586,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabicContentLang_feedback_isInArabic() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -2606,7 +2605,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabicContentLang_thenEnglish_feedback_isInArabic() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ENGLISH) @@ -2665,7 +2664,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_multipleChoice_optionsAreInArabic() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -2688,7 +2687,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_multipleChoice_submittedAnswer_answerIsInArabic() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -2707,7 +2706,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_multipleChoice_submittedAnswer_switchToEnglish_answerIsInArabic() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -2774,7 +2773,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_itemSelection_optionsAreInArabic() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -2799,7 +2798,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_itemSelection_submittedAnswer_answerIsInArabic() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -2822,7 +2821,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_itemSelection_submittedAnswer_switchToEnglish_answerIsInArabic() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -2868,7 +2867,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_numericInput_submitAnswer_answerMatchesSubmission() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -2932,7 +2931,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_ratioInput_placeholderIsInArabic() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -2952,7 +2951,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_ratioInput_submitAnswer_answerMatchesSubmission() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -3019,7 +3018,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_textInput_placeholderIsInArabic() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -3040,7 +3039,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_textInput_submitAnswer_answerMatchesSubmission() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -3064,7 +3063,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_arabic_textInput_submitAnswer_switchToEnglish_answerDoesNotChange() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -3118,7 +3117,7 @@ class StateFragmentTest { // TODO(#1612): Enable for Robolectric. @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun testStateFragment_english_dragAndDrop_submittedAnswer_answerIsInEnglish() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -3149,7 +3148,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun testStateFragment_portuguese_dragAndDrop_optionsAreInPortuguese() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -3178,7 +3177,7 @@ class StateFragmentTest { // TODO(#1612): Enable for Robolectric. @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun testStateFragment_portuguese_dragAndDrop_submittedAnswer_answerIsInPortuguese() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -3209,7 +3208,7 @@ class StateFragmentTest { // TODO(#1612): Enable for Robolectric. @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun testStateFragment_portuguese_dragAndDrop_submittedAnswer_switchToEnglish_answerIsInPt() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = true).use { @@ -3242,7 +3241,7 @@ class StateFragmentTest { // TODO(#1612): Enable for Robolectric. @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun testStateFragment_playWholeLesson_inArabic_hasReturnToTopicButton() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = false).use { @@ -3259,7 +3258,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_studyOff_inEnglish_doesNotHaveSwitchToSwahiliButton() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = false).use { @@ -3272,7 +3270,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_studyOn_inEnglish_lessonWithoutSwahili_doesNotHaveSwitchToSwahiliButton() { setUpTestWithLanguageSwitchingFeatureOn() launchForExploration(FRACTIONS_EXPLORATION_ID_1, shouldSavePartialProgress = false).use { @@ -3286,7 +3283,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_studyOn_inEnglish_notEnabledForProfile_doesNotHaveSwitchToSwahiliButton() { setUpTestWithLanguageSwitchingFeatureOn() launchForExploration(TEST_EXPLORATION_ID_2, shouldSavePartialProgress = false).use { @@ -3300,7 +3296,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_studyOn_enabledForProfile_inEnglish_hasSwitchToSwahiliButton() { setUpTestWithLanguageSwitchingFeatureOn() enableInLessonLanguageSwitching() @@ -3317,7 +3312,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_studyOn_enabledForProfile_inSwahili_hasSwitchToEnglishButton() { setUpTestWithLanguageSwitchingFeatureOn() enableInLessonLanguageSwitching() @@ -3335,7 +3329,7 @@ class StateFragmentTest { // TODO(#1612): Enable for Robolectric. @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun testStateFragment_inEnglish_clickSwitchToSwahili_contentIsInSwahili() { setUpTestWithLanguageSwitchingFeatureOn() enableInLessonLanguageSwitching() @@ -3354,7 +3348,7 @@ class StateFragmentTest { // TODO(#1612): Enable for Robolectric. @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun testStateFragment_inSwahili_clickSwitchToEnglish_contentIsInEnglish() { setUpTestWithLanguageSwitchingFeatureOn() enableInLessonLanguageSwitching() @@ -3374,7 +3368,7 @@ class StateFragmentTest { // TODO(#1612): Enable for Robolectric. @Test - @RunOn(TestPlatform.ESPRESSO, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ESPRESSO) fun testStateFragment_inEnglish_clickSwitchToSwahili_thenBackToEnglish_contentIsInEnglish() { setUpTestWithLanguageSwitchingFeatureOn() enableInLessonLanguageSwitching() @@ -3395,7 +3389,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_inEnglish_clickSwitchToSwahili_logsSwitchLanguageEvent() { setUpTestWithLanguageSwitchingFeatureOn() enableInLessonLanguageSwitching() @@ -3417,7 +3410,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_inSwahili_clickSwitchToEnglish_logsSwitchLanguageEvent() { setUpTestWithLanguageSwitchingFeatureOn() enableInLessonLanguageSwitching() @@ -3720,7 +3712,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_mathInteractions_numericExp_validAns_english_submissionHasA11yAnswer() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_5, shouldSavePartialProgress = false).use { @@ -3738,7 +3729,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_mathInteractions_numericExp_validAns_divAsFrac_submissionHasA11yAnswer() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_5, shouldSavePartialProgress = false).use { @@ -3755,7 +3745,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_mathInteractions_numericExp_validAns_arabic_submissionHasA11yAnswer() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -4100,7 +4090,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_mathInteractions_algExp_validAns_english_submissionHasA11yAnswer() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_5, shouldSavePartialProgress = false).use { @@ -4122,7 +4111,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_mathInteractions_algExp_validAns_divAsFrac_submissionHasA11yAnswer() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_5, shouldSavePartialProgress = false).use { @@ -4145,7 +4133,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_mathInteractions_algExp_validAns_arabic_submissionHasA11yAnswer() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) @@ -4606,7 +4594,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_mathInteractions_mathEq_validAns_english_submissionHasA11yAnswer() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_5, shouldSavePartialProgress = false).use { @@ -4629,7 +4616,6 @@ class StateFragmentTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testStateFragment_mathInteractions_mathEq_validAns_divAsFrac_submissionHasA11yAnswer() { setUpTestWithLanguageSwitchingFeatureOff() launchForExploration(TEST_EXPLORATION_ID_5, shouldSavePartialProgress = false).use { @@ -4654,7 +4640,7 @@ class StateFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testStateFragment_mathInteractions_mathEq_validAns_arabic_submissionHasA11yAnswer() { setUpTestWithLanguageSwitchingFeatureOff() updateContentLanguage(profileId, OppiaLanguage.ARABIC) diff --git a/app/src/sharedTest/java/org/oppia/android/app/splash/SplashActivityTest.kt b/app/src/sharedTest/java/org/oppia/android/app/splash/SplashActivityTest.kt index 12e51153159..4cff13a0944 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/splash/SplashActivityTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/splash/SplashActivityTest.kt @@ -97,7 +97,6 @@ import org.oppia.android.domain.oppialogger.loguploader.LogReportWorkerModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule @@ -300,7 +299,6 @@ class SplashActivityTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testSplashActivity_englishLocale_initializesLocaleHandlerWithEnglishContext() { initializeTestApplication() forceDefaultLocale(Locale.ENGLISH) @@ -321,7 +319,6 @@ class SplashActivityTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testSplashActivity_arabicLocale_initializesLocaleHandlerWithArabicContext() { initializeTestApplication() forceDefaultLocale(EGYPT_ARABIC_LOCALE) @@ -336,7 +333,6 @@ class SplashActivityTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testSplashActivity_brazilianPortugueseLocale_initializesLocaleHandlerPortugueseContext() { initializeTestApplication() forceDefaultLocale(BRAZIL_PORTUGUESE_LOCALE) @@ -351,7 +347,6 @@ class SplashActivityTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testSplashActivity_nigerianPidginLocale_initializesLocaleHandlerNaijaContext() { initializeTestApplication() forceDefaultLocale(NIGERIAN_PIDGIN_LOCALE) @@ -381,7 +376,7 @@ class SplashActivityTest { } @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testSplashActivity_initializationFailure_initializesLocaleHandlerWithDefaultContext() { corruptCacheFile() initializeTestApplication() diff --git a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt index 1c6dc654f0b..ded7d45628a 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt @@ -99,7 +99,6 @@ import org.oppia.android.domain.topic.TEST_SKILL_ID_0 import org.oppia.android.domain.topic.TEST_SKILL_ID_1 import org.oppia.android.domain.translation.TranslationController import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RichTextViewMatcher.Companion.containsRichText import org.oppia.android.testing.RunOn @@ -339,7 +338,7 @@ class ConceptCardFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testConceptCardFragment_englishContentLang_switchToArabic_explanationIsInArabic() { updateContentLanguage(profileId, OppiaLanguage.ENGLISH) launchTestActivity().use { @@ -358,7 +357,7 @@ class ConceptCardFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testConceptCardFragment_profileWithArabicContentLang_explanationIsInArabic() { updateContentLanguage(profileId, OppiaLanguage.ARABIC) launchTestActivity().use { diff --git a/app/src/sharedTest/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityTest.kt b/app/src/sharedTest/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityTest.kt index 29cfd79e184..8f7e9237d0d 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityTest.kt @@ -123,7 +123,6 @@ import org.oppia.android.domain.question.WrongAnswerScorePenalty import org.oppia.android.domain.topic.FRACTIONS_SKILL_ID_0 import org.oppia.android.domain.translation.TranslationController import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule @@ -411,7 +410,7 @@ class QuestionPlayerActivityTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testQuestionPlayer_profileWithArabicContentLang_contentIsInArabic() { updateContentLanguage(profileId, OppiaLanguage.ARABIC) launchForSkillList(SKILL_ID_LIST).use { @@ -500,7 +499,7 @@ class QuestionPlayerActivityTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testQuestionPlayer_profileWithArabicContentLang_showHint_explanationInArabic() { updateContentLanguage(profileId, OppiaLanguage.ARABIC) launchForSkillList(SKILL_ID_LIST).use { diff --git a/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityTest.kt b/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityTest.kt index cf43b7b1d65..5f3464f94ef 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityTest.kt @@ -77,7 +77,6 @@ import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.topic.FRACTIONS_TOPIC_ID import org.oppia.android.domain.translation.TranslationController import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.FakeAnalyticsEventLogger import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn @@ -294,7 +293,7 @@ class RevisionCardActivityTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testRevisionCardActivity_profileWithArabicContentLang_pageContentsAreInArabic() { updateContentLanguage(profileId, OppiaLanguage.ARABIC) launchRevisionCardActivity( diff --git a/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt index aa05c06705b..44d06b92fae 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt @@ -106,7 +106,6 @@ import org.oppia.android.domain.topic.SUBTOPIC_TOPIC_ID_2 import org.oppia.android.domain.topic.TEST_TOPIC_ID_0 import org.oppia.android.domain.translation.TranslationController import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.DisableAccessibilityChecks import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn @@ -769,7 +768,7 @@ class RevisionCardFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testRevisionCard_englishContentLang_switchToArabic_pageContentsAreInArabic() { updateContentLanguage(profileId, OppiaLanguage.ENGLISH) launch( @@ -794,7 +793,7 @@ class RevisionCardFragmentTest { // TODO(#3858): Enable for Espresso. @Test - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testRevisionCard_withArabicContentLang_pageContentsAreInArabic() { updateContentLanguage(profileId, OppiaLanguage.ARABIC) launch( diff --git a/app/src/test/java/org/oppia/android/app/parser/ListItemLeadingMarginSpanTest.kt b/app/src/test/java/org/oppia/android/app/parser/ListItemLeadingMarginSpanTest.kt index e97850dc3a3..370e8936ef5 100644 --- a/app/src/test/java/org/oppia/android/app/parser/ListItemLeadingMarginSpanTest.kt +++ b/app/src/test/java/org/oppia/android/app/parser/ListItemLeadingMarginSpanTest.kt @@ -81,7 +81,6 @@ import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestImageLoaderModule import org.oppia.android.testing.TestLogReportingModule @@ -470,7 +469,7 @@ class ListItemLeadingMarginSpanTest { appStringIetfTag = "ar", appStringAndroidLanguageId = "ar" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testDrawLeadingMargin_forNestedBulletItems_inRtl_isDrawnCorrectlyWithIndentation() { val displayLocale = createDisplayLocaleImpl(EGYPT_ARABIC_CONTEXT) val width: Int = context.resources.displayMetrics.widthPixels @@ -581,7 +580,7 @@ class ListItemLeadingMarginSpanTest { appStringIetfTag = "en", appStringAndroidLanguageId = "en" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testDrawLeadingMargin_forNestedBulletItems_inLtr_isDrawnCorrectlyWithIndentation() { val displayLocale = createDisplayLocaleImpl(US_ENGLISH_CONTEXT) val width: Int = context.resources.displayMetrics.widthPixels @@ -693,7 +692,7 @@ class ListItemLeadingMarginSpanTest { appStringIetfTag = "ar", appStringAndroidLanguageId = "ar" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testDrawLeadingMargin_forNestedNumberedListItems_inRtl_isDrawnCorrectlyWithIndentation() { val displayLocale = createDisplayLocaleImpl(EGYPT_ARABIC_CONTEXT) val width: Int = context.resources.displayMetrics.widthPixels @@ -811,7 +810,7 @@ class ListItemLeadingMarginSpanTest { appStringIetfTag = "en", appStringAndroidLanguageId = "en" ) - @RunOn(TestPlatform.ROBOLECTRIC, buildEnvironments = [BuildEnvironment.BAZEL]) + @RunOn(TestPlatform.ROBOLECTRIC) fun testDrawLeadingMargin_forNestedNumberedListItems_inLtr_isDrawnCorrectlyWithIndentation() { val displayLocale = createDisplayLocaleImpl(US_ENGLISH_CONTEXT) val width: Int = context.resources.displayMetrics.widthPixels diff --git a/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt b/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt index 4af5ec06d22..710fdae634d 100644 --- a/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt +++ b/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt @@ -135,7 +135,6 @@ import org.oppia.android.domain.topic.TEST_STORY_ID_0 import org.oppia.android.domain.topic.TEST_TOPIC_ID_0 import org.oppia.android.domain.translation.TranslationController import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestImageLoaderModule @@ -1657,7 +1656,6 @@ class StateFragmentLocalTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testStateFragment_stateWithAlgebraicExpr_showSolution_solutionHasCorrectHtmlContentDesc() { launchForExploration(TEST_EXPLORATION_ID_5).use { scenario -> // Play through the first three states. @@ -1684,7 +1682,6 @@ class StateFragmentLocalTest { appStringIetfTag = "en", appStringAndroidLanguageId = "" ) - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testStateFragment_englishLocale_defaultContentLang_hint_titlesAreCorrectInEnglish() { // Ensure the system locale matches the initial locale context. forceDefaultLocale(Locale.ENGLISH) @@ -1711,7 +1708,6 @@ class StateFragmentLocalTest { appStringIetfTag = "en", appStringAndroidLanguageId = "" ) - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testStateFragment_englishLocale_defaultContentLang_hint_labelsAreInEnglish() { // Ensure the system locale matches the initial locale context. forceDefaultLocale(Locale.ENGLISH) @@ -1737,7 +1733,6 @@ class StateFragmentLocalTest { appStringIetfTag = "en", appStringAndroidLanguageId = "" ) - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testStateFragment_englishLocale_defaultContentLang_hint_explanationIsInEnglish() { // Ensure the system locale matches the initial locale context. forceDefaultLocale(Locale.ENGLISH) @@ -1792,7 +1787,6 @@ class StateFragmentLocalTest { appStringIetfTag = "ar", appStringAndroidLanguageId = "ar" ) - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testStateFragment_arabicLocale_defaultContentLang_hint_explanationIsInArabic() { // Ensure the system locale matches the initial locale context. forceDefaultLocale(EGYPT_ARABIC_LOCALE) @@ -1819,7 +1813,6 @@ class StateFragmentLocalTest { appStringIetfTag = "en", appStringAndroidLanguageId = "" ) - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testStateFragment_englishLocale_arabicContentLang_hint_labelsAreInEnglish() { // Ensure the system locale matches the initial locale context. forceDefaultLocale(Locale.ENGLISH) @@ -1847,7 +1840,6 @@ class StateFragmentLocalTest { appStringIetfTag = "en", appStringAndroidLanguageId = "" ) - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testStateFragment_englishLocale_arabicContentLang_hint_explanationIsInArabic() { // Ensure the system locale matches the initial locale context. forceDefaultLocale(Locale.ENGLISH) diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt index ad42696a603..d272fd629c9 100644 --- a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt @@ -85,7 +85,6 @@ import org.oppia.android.domain.topic.TEST_TOPIC_ID_0 import org.oppia.android.domain.topic.TEST_TOPIC_ID_1 import org.oppia.android.domain.translation.TranslationController import org.oppia.android.domain.util.toAnswerString -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.FakeAnalyticsEventLogger import org.oppia.android.testing.FakeExceptionLogger import org.oppia.android.testing.OppiaTestRule @@ -2125,7 +2124,6 @@ class ExplorationProgressControllerTest { /* Localization-based tests. */ @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_englishLocale_defaultContentLang_includesTranslationContextForEnglish() { forceDefaultLocale(Locale.US) startPlayingNewExploration( @@ -2143,7 +2141,6 @@ class ExplorationProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_arabicLocale_defaultContentLang_includesTranslationContextForArabic() { forceDefaultLocale(EGYPT_ARABIC_LOCALE) startPlayingNewExploration( @@ -2171,7 +2168,6 @@ class ExplorationProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_englishLangProfile_includesTranslationContextForEnglish() { val englishProfileId = ProfileId.newBuilder().apply { internalId = 1 }.build() updateContentLanguage(englishProfileId, OppiaLanguage.ENGLISH) @@ -2193,7 +2189,6 @@ class ExplorationProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_englishLangProfile_switchToArabic_includesTranslationContextForArabic() { val englishProfileId = ProfileId.newBuilder().apply { internalId = 1 }.build() updateContentLanguage(englishProfileId, OppiaLanguage.ENGLISH) @@ -2217,7 +2212,6 @@ class ExplorationProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_arabicLangProfile_includesTranslationContextForArabic() { val englishProfileId = ProfileId.newBuilder().apply { internalId = 1 }.build() val arabicProfileId = ProfileId.newBuilder().apply { internalId = 2 }.build() @@ -3133,7 +3127,6 @@ class ExplorationProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testUpdateLanguageMidLesson_englishToSwahili_updatesProfilesContentLanguage() { logIntoAnalyticsReadyAdminProfile() updateContentLanguage(profileId, OppiaLanguage.ENGLISH) @@ -3183,7 +3176,6 @@ class ExplorationProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testUpdateLanguageMidLesson_englishToSwahili_diffProfile_doesNotChangeOtherProfilesLang() { val englishProfileId = ProfileId.newBuilder().apply { internalId = 1 }.build() val arabicProfileId = ProfileId.newBuilder().apply { internalId = 2 }.build() @@ -3214,7 +3206,6 @@ class ExplorationProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testUpdateLanguageMidLesson_swahiliToEnglish_updatesProfilesContentLanguage() { logIntoAnalyticsReadyAdminProfile() updateContentLanguage(profileId, OppiaLanguage.SWAHILI) diff --git a/domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt index 1abb3c13590..3490736d96f 100644 --- a/domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt @@ -37,7 +37,6 @@ import org.oppia.android.domain.oppialogger.ApplicationIdSeed import org.oppia.android.domain.oppialogger.LogStorageModule import org.oppia.android.domain.oppialogger.LoggingIdentifierController import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.FakeAnalyticsEventLogger import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn @@ -829,9 +828,7 @@ class ProfileManagementControllerTest { assertThat(profile.readingTextSize).isEqualTo(MEDIUM_TEXT_SIZE) } - // Requires language configurations. @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testGetAudioLanguage_initialProfileCreation_defaultsToEnglish() { setUpTestApplicationComponent() @@ -894,9 +891,7 @@ class ProfileManagementControllerTest { monitor.ensureNextResultIsSuccess() } - // Requires language configurations. @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testUpdateAudioLanguage_updateToHindi_updateChangesAudioLanguage() { setUpTestApplicationComponent() addTestProfiles() @@ -910,9 +905,7 @@ class ProfileManagementControllerTest { assertThat(audioLanguage).isEqualTo(HINDI_AUDIO_LANGUAGE) } - // Requires language configurations. @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testUpdateAudioLanguage_updateToBrazilianPortuguese_updateChangesAudioLanguage() { setUpTestApplicationComponent() addTestProfiles() @@ -926,9 +919,7 @@ class ProfileManagementControllerTest { assertThat(audioLanguage).isEqualTo(BRAZILIAN_PORTUGUESE_LANGUAGE) } - // Requires language configurations. @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testUpdateAudioLanguage_updateToArabic_updateChangesAudioLanguage() { setUpTestApplicationComponent() addTestProfiles() @@ -942,9 +933,7 @@ class ProfileManagementControllerTest { assertThat(audioLanguage).isEqualTo(ARABIC_LANGUAGE) } - // Requires language configurations. @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testUpdateAudioLanguage_updateToNigerianPidgin_updateChangesAudioLanguage() { setUpTestApplicationComponent() addTestProfiles() @@ -958,9 +947,7 @@ class ProfileManagementControllerTest { assertThat(audioLanguage).isEqualTo(NIGERIAN_PIDGIN_LANGUAGE) } - // Requires language configurations. @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testUpdateAudioLanguage_updateToArabicThenEnglish_updateChangesAudioLanguageToEnglish() { setUpTestApplicationComponent() addTestProfiles() @@ -977,9 +964,7 @@ class ProfileManagementControllerTest { assertThat(audioLanguage).isEqualTo(ENGLISH_AUDIO_LANGUAGE) } - // Requires language configurations. @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) fun testUpdateAudioLanguage_updateProfile1ToArabic_profile2IsUnchanged() { setUpTestApplicationComponent() addTestProfiles() diff --git a/domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt index 0c686230064..c641adc4cf3 100644 --- a/domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt @@ -54,7 +54,6 @@ import org.oppia.android.domain.topic.TEST_SKILL_ID_0 import org.oppia.android.domain.topic.TEST_SKILL_ID_1 import org.oppia.android.domain.topic.TEST_SKILL_ID_2 import org.oppia.android.domain.translation.TranslationController -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.FakeExceptionLogger import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn @@ -1270,7 +1269,6 @@ class QuestionAssessmentProgressControllerTest { /* Localization-based tests. */ @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_englishLocale_defaultContentLang_includesTranslationContextForEnglish() { setUpTestApplicationWithSeed(questionSeed = 1) forceDefaultLocale(Locale.US) @@ -1287,7 +1285,6 @@ class QuestionAssessmentProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_arabicLocale_defaultContentLang_includesTranslationContextForArabic() { setUpTestApplicationWithSeed(questionSeed = 1) forceDefaultLocale(EGYPT_ARABIC_LOCALE) @@ -1313,7 +1310,6 @@ class QuestionAssessmentProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_englishLangProfile_includesTranslationContextForEnglish() { setUpTestApplicationWithSeed(questionSeed = 1) val englishProfileId = ProfileId.newBuilder().apply { internalId = 2 }.build() @@ -1330,7 +1326,6 @@ class QuestionAssessmentProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_englishLangProfile_switchToArabic_includesTranslationContextForArabic() { setUpTestApplicationWithSeed(questionSeed = 1) val englishProfileId = ProfileId.newBuilder().apply { internalId = 2 }.build() @@ -1350,7 +1345,6 @@ class QuestionAssessmentProgressControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetCurrentState_arabicLangProfile_includesTranslationContextForArabic() { setUpTestApplicationWithSeed(questionSeed = 1) val englishProfileId = ProfileId.newBuilder().apply { internalId = 2 }.build() diff --git a/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt index 02cd5660933..d2c78a83ed0 100755 --- a/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt @@ -33,7 +33,6 @@ import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.domain.topic.TopicController.ChapterNotFoundException import org.oppia.android.domain.translation.TranslationController -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.FakeExceptionLogger import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn @@ -880,7 +879,6 @@ class TopicControllerTest { /* Localization-based tests. */ @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetConceptCard_englishLocale_defaultContentLang_includesTranslationContextForEnglish() { forceDefaultLocale(Locale.US) val conceptCardDataProvider = topicController.getConceptCard(profileId1, TEST_SKILL_ID_1) @@ -896,7 +894,6 @@ class TopicControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetConceptCard_arabicLocale_defaultContentLang_includesTranslationContextForArabic() { forceDefaultLocale(EGYPT_ARABIC_LOCALE) val conceptCardDataProvider = topicController.getConceptCard(profileId1, TEST_SKILL_ID_1) @@ -920,7 +917,6 @@ class TopicControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetConceptCard_englishLangProfile_includesTranslationContextForEnglish() { val conceptCardDataProvider = topicController.getConceptCard(profileId1, TEST_SKILL_ID_1) updateContentLanguage(profileId1, ENGLISH) @@ -935,7 +931,6 @@ class TopicControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetConceptCard_englishLangProfile_switchToArabic_includesTranslationContextForArabic() { updateContentLanguage(profileId1, ENGLISH) val conceptCardDataProvider = topicController.getConceptCard(profileId1, TEST_SKILL_ID_1) @@ -952,7 +947,6 @@ class TopicControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetConceptCard_arabicLangProfile_includesTranslationContextForArabic() { updateContentLanguage(profileId1, ENGLISH) updateContentLanguage(profileId2, ARABIC) @@ -966,7 +960,6 @@ class TopicControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetRevisionCard_englishLocale_defaultContentLang_includesTranslationContextForEnglish() { forceDefaultLocale(Locale.US) val revisionCardDataProvider = @@ -983,7 +976,6 @@ class TopicControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetRevisionCard_arabicLocale_defaultContentLang_includesTranslationContextForArabic() { forceDefaultLocale(EGYPT_ARABIC_LOCALE) val revisionCardDataProvider = @@ -1009,7 +1001,6 @@ class TopicControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetRevisionCard_englishLangProfile_includesTranslationContextForEnglish() { val revisionCardDataProvider = topicController.getRevisionCard(profileId1, TEST_TOPIC_ID_0, subtopicId = 1) @@ -1025,7 +1016,6 @@ class TopicControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetRevisionCard_englishLangProfile_switchToArabic_includesTranslationContextForArabic() { updateContentLanguage(profileId1, ENGLISH) val revisionCardDataProvider = @@ -1043,7 +1033,6 @@ class TopicControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Languages unsupported in Gradle builds. fun testGetRevisionCard_arabicLangProfile_includesTranslationContextForArabic() { updateContentLanguage(profileId1, ENGLISH) updateContentLanguage(profileId2, ARABIC) diff --git a/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt index 052b684c8e6..84124e66560 100644 --- a/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt @@ -26,7 +26,6 @@ import org.oppia.android.domain.oppialogger.LoggingIdentifierModule import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule -import org.oppia.android.testing.BuildEnvironment import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule @@ -269,7 +268,6 @@ class TopicListControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // Only uses protos, so restrict to Bazel. fun testGetPromotedActivityList_startFractions_thenUnpublish_doesNotIncludeFractionsInList() { storyProgressTestHelper.markInProgressNotSavedFractionsStory0Exp0( profileId0, @@ -686,7 +684,6 @@ class TopicListControllerTest { } @Test - @RunOn(buildEnvironments = [BuildEnvironment.BAZEL]) // The failure is specific to loading protos. fun testGetPromotedActivityList_missingTopicsWithProgress_doesNotIncludeThoseTopics() { // This is a slightly hacky way to simulate a previous topic's progress that works because // StoryProgressController doesn't verify whether the IDs passed to it correspond to locally diff --git a/testing/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt b/testing/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt index 650fcb66c82..96e89afd691 100644 --- a/testing/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt +++ b/testing/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt @@ -1,7 +1,5 @@ package org.oppia.android.testing -import org.oppia.android.testing.BuildEnvironment.BAZEL -import org.oppia.android.testing.BuildEnvironment.GRADLE import org.oppia.android.testing.TestPlatform.ESPRESSO import org.oppia.android.testing.TestPlatform.ROBOLECTRIC @@ -14,15 +12,6 @@ enum class TestPlatform { ESPRESSO } -/** Specifies a build environment to target in conjunction with [RunOn]. */ -enum class BuildEnvironment { - /** Corresponds to tests run within the Gradle build environment. */ - GRADLE, - - /** Corresponds to tests run within the Bazel build environment. */ - BAZEL -} - /** * Test class or method annotation for specifying all of platforms which either the tests of the * class or the specific method may run on. By default, tests are assumed to be able to run on both @@ -36,11 +25,6 @@ enum class BuildEnvironment { * is used and any defined at the class level are ignored. * * @property testPlatforms the list of platforms that this method or class should run on - * @property buildEnvironments the list of build environments in which this method or class should - * run */ @Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION) -annotation class RunOn( - vararg val testPlatforms: TestPlatform = [ROBOLECTRIC, ESPRESSO], - val buildEnvironments: Array = [GRADLE, BAZEL] -) +annotation class RunOn(vararg val testPlatforms: TestPlatform = [ROBOLECTRIC, ESPRESSO]) diff --git a/testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt b/testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt index 37880ffb335..3ae1bea9eb9 100644 --- a/testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt +++ b/testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt @@ -25,10 +25,9 @@ class OppiaTestRule : TestRule { val targetPlatforms = description.getTargetPlatforms() val targetEnvironments = description.getTargetEnvironments() val currentPlatform = getCurrentPlatform() - val currentEnvironment = getCurrentBuildEnvironment() when { - currentPlatform in targetPlatforms && currentEnvironment in targetEnvironments -> { + currentPlatform in targetPlatforms -> { // Only run this test if it's targeting the current platform & environment. if (currentPlatform == TestPlatform.ESPRESSO && areAccessibilityChecksEnabled) { AccessibilityChecks.enable().apply { @@ -53,12 +52,6 @@ class OppiaTestRule : TestRule { " $currentPlatform" ) } - currentEnvironment !in targetEnvironments -> { - throw AssumptionViolatedException( - "Test targeting ${targetEnvironments.toPluralEnvironmentDescription()} ignored on" + - " $currentEnvironment" - ) - } else -> throw AssertionError("Reached impossible state in test rule") } } @@ -73,15 +66,6 @@ class OppiaTestRule : TestRule { } } - private fun getCurrentBuildEnvironment(): BuildEnvironment { - val command = System.getProperty("sun.java.command") ?: "" - return if (command.contains("bazel", ignoreCase = true)) { - BuildEnvironment.BAZEL - } else { - BuildEnvironment.GRADLE - } - } - private companion object { private fun List.toPluralPlatformDescription(): String { return if (size > 1) "platforms ${this.joinToString()}" else "platform ${this.first()}" @@ -101,24 +85,6 @@ class OppiaTestRule : TestRule { return getAnnotation(RunOn::class.java)?.testPlatforms?.toList() } - private fun List.toPluralEnvironmentDescription(): String { - return if (size > 1) "environments ${this.joinToString()}" else "environment ${this.first()}" - } - - private fun Description?.getTargetEnvironments(): List { - val methodBuildEnvironments = this?.getTargetBuildEnvironments() - val classBuildEnvironments = this?.testClass?.getTargetBuildEnvironments() - return methodBuildEnvironments ?: classBuildEnvironments ?: BuildEnvironment.values().toList() - } - - private fun Description.getTargetBuildEnvironments(): List? { - return getAnnotation(RunOn::class.java)?.buildEnvironments?.toList() - } - - private fun Class.getTargetBuildEnvironments(): List? { - return getAnnotation(RunOn::class.java)?.buildEnvironments?.toList() - } - private fun Description?.areAccessibilityChecksEnabled(): Boolean { val methodAccessibilityStatus = this?.areAccessibilityTestsEnabledForMethod() val classAccessibilityStatus = this?.testClass?.areAccessibilityTestsEnabledForClass() From 54a3e93338e8d7acf0eeb5a35f33329b8efbd653 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 03:11:12 +0000 Subject: [PATCH 05/14] Remove TestEnvironmentConfig. It is only used for checking if a test is running in Bazel, and all tests are now. One Gradle-specific test has been removed. --- .../app/player/state/StateFragmentTest.kt | 4 +- .../conceptcard/ConceptCardFragmentTest.kt | 4 +- .../revisioncard/RevisionCardFragmentTest.kt | 4 +- .../WalkthroughTopicListFragmentTest.kt | 38 +------------------ .../player/state/StateFragmentLocalTest.kt | 4 +- .../classroom/ClassroomControllerTest.kt | 4 +- .../ModifyLessonProgressControllerTest.kt | 4 +- .../ExplorationActiveTimeControllerTest.kt | 4 +- .../ExplorationDataControllerTest.kt | 4 +- .../ExplorationProgressControllerTest.kt | 4 +- .../ExplorationStorageModuleTest.kt | 4 +- .../ExplorationCheckpointControllerTest.kt | 4 +- .../ExplorationStorageTestModuleTest.kt | 4 +- .../testing/FakeExplorationRetrieverTest.kt | 4 +- .../HintHandlerDebugImplTest.kt | 4 +- .../HintHandlerProdImplTest.kt | 4 +- .../spotlight/SpotlightStateControllerTest.kt | 4 +- .../domain/topic/TopicControllerTest.kt | 4 +- .../domain/topic/TopicListControllerTest.kt | 4 +- scripts/assets/test_file_exemptions.textproto | 4 -- .../environment/TestEnvironmentConfig.kt | 18 --------- .../ExplorationCheckpointTestHelperTest.kt | 4 +- .../story/StoryProgressTestHelperTest.kt | 4 +- 23 files changed, 21 insertions(+), 119 deletions(-) delete mode 100644 testing/src/main/java/org/oppia/android/testing/environment/TestEnvironmentConfig.kt diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt index a88e41758ce..c6bcf1c8131 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt @@ -158,7 +158,6 @@ import org.oppia.android.testing.TestImageLoaderModule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.TestPlatform import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.espresso.EditTextInputAction import org.oppia.android.testing.firebase.TestAuthenticationModule import org.oppia.android.testing.junit.InitializeDefaultLocaleRule @@ -6031,8 +6030,7 @@ class StateFragmentTest { class TestModule { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true @Provides @LoadImagesFromAssets diff --git a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt index ded7d45628a..711e28de4c3 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt @@ -105,7 +105,6 @@ import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.TestPlatform import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.firebase.TestAuthenticationModule import org.oppia.android.testing.junit.InitializeDefaultLocaleRule import org.oppia.android.testing.robolectric.RobolectricModule @@ -584,8 +583,7 @@ class ConceptCardFragmentTest { class TestModule { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true @Provides @LoadImagesFromAssets diff --git a/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt index 44d06b92fae..4194f7efbf5 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt @@ -112,7 +112,6 @@ import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.TestPlatform import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.firebase.TestAuthenticationModule import org.oppia.android.testing.junit.InitializeDefaultLocaleRule import org.oppia.android.testing.robolectric.RobolectricModule @@ -906,8 +905,7 @@ class RevisionCardFragmentTest { class TestModule { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true @Provides @LoadImagesFromAssets diff --git a/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt index 7bf8581cafe..228f577f099 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt @@ -78,7 +78,6 @@ import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.TestImageLoaderModule import org.oppia.android.testing.TestLogReportingModule -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.espresso.GenericViewMatchers.Companion.withOpaqueBackground import org.oppia.android.testing.firebase.TestAuthenticationModule import org.oppia.android.testing.junit.InitializeDefaultLocaleRule @@ -122,8 +121,6 @@ class WalkthroughTopicListFragmentTest { lateinit var context: Context @Inject lateinit var testCoroutineDispatchers: TestCoroutineDispatchers - @Inject - lateinit var testEnvironmentConfig: TestEnvironmentConfig @Before fun setUp() { @@ -218,38 +215,6 @@ class WalkthroughTopicListFragmentTest { } } - @Test - fun testWalkthroughTopicListFragment_topicCard_lessonThumbnailIsCorrect() { - // TODO(#59): Remove if-check & disable test. - if (!testEnvironmentConfig.isUsingBazel()) { - // TODO(#1523): Add support for orchestrating Glide so that this test can verify the correct - // thumbnail is being loaded through Glide. - launch(createWalkthroughActivityIntent(0)).use { - testCoroutineDispatchers.runCurrent() - onView(withId(R.id.walkthrough_welcome_next_button)).perform(scrollTo(), click()) - testCoroutineDispatchers.runCurrent() - onView(withId(R.id.walkthrough_topic_recycler_view)).perform( - scrollToPosition( - /* position= */ 4 - ) - ) - onView( - atPositionOnView( - recyclerViewId = R.id.walkthrough_topic_recycler_view, - position = 4, - targetViewId = R.id.walkthrough_topic_thumbnail_image_view - ) - ).check( - matches( - withDrawable( - R.drawable.lesson_thumbnail_graphic_duck_and_chicken - ) - ) - ) - } - } - } - @Test fun testWalkthroughTopicListFragment_topicCard_lessonBackgroundColorIsCorrect() { launch(createWalkthroughActivityIntent(0)).use { @@ -279,8 +244,7 @@ class WalkthroughTopicListFragmentTest { class TestModule { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true @Provides @LoadImagesFromAssets diff --git a/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt b/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt index 710fdae634d..6465e1b2d92 100644 --- a/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt +++ b/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt @@ -140,7 +140,6 @@ import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestImageLoaderModule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.espresso.EditTextInputAction import org.oppia.android.testing.espresso.KonfettiViewMatcher.Companion.hasActiveConfetti import org.oppia.android.testing.espresso.KonfettiViewMatcher.Companion.hasExpectedNumberOfActiveSystems @@ -2892,8 +2891,7 @@ class StateFragmentLocalTest { class TestModule { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true @Provides @LoadImagesFromAssets diff --git a/domain/src/test/java/org/oppia/android/domain/classroom/ClassroomControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/classroom/ClassroomControllerTest.kt index 6c1cee650bf..fefa9b13693 100644 --- a/domain/src/test/java/org/oppia/android/domain/classroom/ClassroomControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/classroom/ClassroomControllerTest.kt @@ -26,7 +26,6 @@ import org.oppia.android.domain.topic.TEST_TOPIC_ID_2 import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.platformparameter.TestPlatformParameterModule import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestDispatcherModule @@ -366,8 +365,7 @@ class ClassroomControllerTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true @Provides fun provideFakeAssetRepository(fakeImpl: FakeAssetRepository): AssetRepository = fakeImpl diff --git a/domain/src/test/java/org/oppia/android/domain/devoptions/ModifyLessonProgressControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/devoptions/ModifyLessonProgressControllerTest.kt index 8039a9d77de..aef4a2aa929 100644 --- a/domain/src/test/java/org/oppia/android/domain/devoptions/ModifyLessonProgressControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/devoptions/ModifyLessonProgressControllerTest.kt @@ -23,7 +23,6 @@ import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.story.StoryProgressTestHelper import org.oppia.android.testing.threading.TestCoroutineDispatchers @@ -423,8 +422,7 @@ class ModifyLessonProgressControllerTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationActiveTimeControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationActiveTimeControllerTest.kt index 5de6ae1179c..1ee2b76c2fd 100644 --- a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationActiveTimeControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationActiveTimeControllerTest.kt @@ -44,7 +44,6 @@ import org.oppia.android.domain.topic.TEST_TOPIC_ID_1 import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.assertThrows import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.platformparameter.TestPlatformParameterModule import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestCoroutineDispatchers @@ -543,8 +542,7 @@ class ExplorationActiveTimeControllerTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationDataControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationDataControllerTest.kt index 9e6e7e78b5e..bcefd6210c5 100644 --- a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationDataControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationDataControllerTest.kt @@ -53,7 +53,6 @@ import org.oppia.android.domain.topic.TEST_TOPIC_ID_1 import org.oppia.android.testing.FakeExceptionLogger import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.firebase.TestAuthenticationModule import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestCoroutineDispatchers @@ -455,8 +454,7 @@ class ExplorationDataControllerTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt index d272fd629c9..42c8c705966 100644 --- a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt @@ -92,7 +92,6 @@ import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.assertThrows import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.firebase.TestAuthenticationModule import org.oppia.android.testing.logging.EventLogSubject import org.oppia.android.testing.logging.EventLogSubject.Companion.assertThat @@ -3838,8 +3837,7 @@ class ExplorationProgressControllerTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true @Provides @EnableLearnerStudyAnalytics diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationStorageModuleTest.kt b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationStorageModuleTest.kt index 589c9fed830..d62b1d92acb 100644 --- a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationStorageModuleTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationStorageModuleTest.kt @@ -22,7 +22,6 @@ import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.testing.TestLogReportingModule -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestDispatcherModule import org.oppia.android.testing.time.FakeOppiaClockModule @@ -98,8 +97,7 @@ class ExplorationStorageModuleTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointControllerTest.kt index 864af6b2745..1c0e7b7e5d8 100644 --- a/domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointControllerTest.kt @@ -51,7 +51,6 @@ import org.oppia.android.domain.topic.FRACTIONS_EXPLORATION_ID_0 import org.oppia.android.domain.topic.FRACTIONS_EXPLORATION_ID_1 import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.firebase.TestAuthenticationModule import org.oppia.android.testing.lightweightcheckpointing.ExplorationCheckpointTestHelper import org.oppia.android.testing.lightweightcheckpointing.FRACTIONS_EXPLORATION_0_TITLE @@ -971,8 +970,7 @@ class ExplorationCheckpointControllerTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModuleTest.kt b/domain/src/test/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModuleTest.kt index f7351b8d327..40e69286833 100644 --- a/domain/src/test/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModuleTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModuleTest.kt @@ -23,7 +23,6 @@ import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.testing.TestLogReportingModule -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestDispatcherModule import org.oppia.android.testing.time.FakeOppiaClockModule @@ -99,8 +98,7 @@ class ExplorationStorageTestModuleTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetrieverTest.kt b/domain/src/test/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetrieverTest.kt index 6d8ed9c82fa..01373eb3afa 100644 --- a/domain/src/test/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetrieverTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/exploration/testing/FakeExplorationRetrieverTest.kt @@ -19,7 +19,6 @@ import org.mockito.junit.MockitoRule import org.oppia.android.domain.topic.TEST_EXPLORATION_ID_2 import org.oppia.android.domain.topic.TEST_EXPLORATION_ID_5 import org.oppia.android.testing.assertThrows -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestDispatcherModule import org.oppia.android.testing.time.FakeOppiaClockModule @@ -198,8 +197,7 @@ class FakeExplorationRetrieverTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. diff --git a/domain/src/test/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImplTest.kt b/domain/src/test/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImplTest.kt index 5d9ac5269d5..a1595313ba3 100644 --- a/domain/src/test/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImplTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/hintsandsolution/HintHandlerDebugImplTest.kt @@ -34,7 +34,6 @@ import org.oppia.android.domain.devoptions.ShowAllHintsAndSolutionController import org.oppia.android.domain.exploration.ExplorationRetriever import org.oppia.android.domain.exploration.testing.ExplorationStorageTestModule import org.oppia.android.testing.TestLogReportingModule -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestCoroutineDispatchers import org.oppia.android.testing.threading.TestDispatcherModule @@ -420,8 +419,7 @@ class HintHandlerDebugImplTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } @Singleton diff --git a/domain/src/test/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImplTest.kt b/domain/src/test/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImplTest.kt index 93edcf5c43e..2ca33d98ec5 100644 --- a/domain/src/test/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImplTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/hintsandsolution/HintHandlerProdImplTest.kt @@ -34,7 +34,6 @@ import org.oppia.android.domain.exploration.ExplorationRetriever import org.oppia.android.domain.exploration.testing.ExplorationStorageTestModule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.assertThrows -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestCoroutineDispatchers import org.oppia.android.testing.threading.TestDispatcherModule @@ -2115,8 +2114,7 @@ class HintHandlerProdImplTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } @Singleton diff --git a/domain/src/test/java/org/oppia/android/domain/spotlight/SpotlightStateControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/spotlight/SpotlightStateControllerTest.kt index a6d69f7e768..874edcb57f6 100644 --- a/domain/src/test/java/org/oppia/android/domain/spotlight/SpotlightStateControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/spotlight/SpotlightStateControllerTest.kt @@ -44,7 +44,6 @@ import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestCoroutineDispatchers import org.oppia.android.testing.threading.TestDispatcherModule @@ -333,8 +332,7 @@ class SpotlightStateControllerTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } @Singleton diff --git a/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt index d2c78a83ed0..b07c295b961 100755 --- a/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt @@ -38,7 +38,6 @@ import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.story.StoryProgressTestHelper import org.oppia.android.testing.threading.TestCoroutineDispatchers @@ -1129,8 +1128,7 @@ class TopicControllerTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. diff --git a/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt index 84124e66560..b78ab2262cd 100644 --- a/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt @@ -30,7 +30,6 @@ import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.story.StoryProgressTestHelper import org.oppia.android.testing.threading.TestCoroutineDispatchers @@ -919,8 +918,7 @@ class TopicListControllerTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true @Provides fun provideFakeAssetRepository(fakeImpl: FakeAssetRepository): AssetRepository = fakeImpl diff --git a/scripts/assets/test_file_exemptions.textproto b/scripts/assets/test_file_exemptions.textproto index c358c7d68a4..19ffe6f1e7b 100644 --- a/scripts/assets/test_file_exemptions.textproto +++ b/scripts/assets/test_file_exemptions.textproto @@ -4010,10 +4010,6 @@ test_file_exemption { exempted_file_path: "testing/src/main/java/org/oppia/android/testing/data/AsyncResultSubject.kt" test_file_not_required: true } -test_file_exemption { - exempted_file_path: "testing/src/main/java/org/oppia/android/testing/environment/TestEnvironmentConfig.kt" - test_file_not_required: true -} test_file_exemption { exempted_file_path: "testing/src/main/java/org/oppia/android/testing/espresso/EditTextInputAction.kt" test_file_not_required: true diff --git a/testing/src/main/java/org/oppia/android/testing/environment/TestEnvironmentConfig.kt b/testing/src/main/java/org/oppia/android/testing/environment/TestEnvironmentConfig.kt deleted file mode 100644 index d4bfd8eca13..00000000000 --- a/testing/src/main/java/org/oppia/android/testing/environment/TestEnvironmentConfig.kt +++ /dev/null @@ -1,18 +0,0 @@ -package org.oppia.android.testing.environment - -import org.oppia.android.util.locale.OppiaLocale -import javax.inject.Inject - -/** Utility class that provides details on the local test environment configuration. */ -class TestEnvironmentConfig @Inject constructor( - private val machineLocale: OppiaLocale.MachineLocale -) { - /** Returns whether the current runtime environment is being run with Bazel. */ - fun isUsingBazel(): Boolean { - // Some of the system properties are Bazel-specific; this is an easy hacky way to check if any - // of them are set to indicate a Bazel environment. - return System.getProperties().keys().asSequence().map { - machineLocale.run { it.toString().toMachineLowerCase() } - }.any { "bazel" in it } - } -} diff --git a/testing/src/test/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelperTest.kt b/testing/src/test/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelperTest.kt index 40c87c049d0..6539bfeeb0c 100644 --- a/testing/src/test/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelperTest.kt +++ b/testing/src/test/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelperTest.kt @@ -40,7 +40,6 @@ import org.oppia.android.domain.topic.FRACTIONS_EXPLORATION_ID_1 import org.oppia.android.domain.topic.RATIOS_EXPLORATION_ID_0 import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestCoroutineDispatchers import org.oppia.android.testing.threading.TestDispatcherModule @@ -239,8 +238,7 @@ class ExplorationCheckpointTestHelperTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. diff --git a/testing/src/test/java/org/oppia/android/testing/story/StoryProgressTestHelperTest.kt b/testing/src/test/java/org/oppia/android/testing/story/StoryProgressTestHelperTest.kt index 1cd8edc65cd..ad9e7dd9276 100644 --- a/testing/src/test/java/org/oppia/android/testing/story/StoryProgressTestHelperTest.kt +++ b/testing/src/test/java/org/oppia/android/testing/story/StoryProgressTestHelperTest.kt @@ -49,7 +49,6 @@ import org.oppia.android.domain.topic.TEST_TOPIC_ID_1 import org.oppia.android.domain.topic.TopicController import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor -import org.oppia.android.testing.environment.TestEnvironmentConfig import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestCoroutineDispatchers import org.oppia.android.testing.threading.TestDispatcherModule @@ -1752,8 +1751,7 @@ class StoryProgressTestHelperTest { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(testEnvironmentConfig: TestEnvironmentConfig): Boolean = - testEnvironmentConfig.isUsingBazel() + fun provideLoadLessonProtosFromAssets(): Boolean = true } // TODO(#89): Move this to a common test application component. From 5e9d6ffda026d16099461cd9929e98864e07f03b Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 03:13:36 +0000 Subject: [PATCH 06/14] Remove OppiaTestRunner. This is only used when running tests with Gradle. We may eventually need to reintroduce someting like this for Espresso support in the future, but it's not yet clear if that's the case. --- .github/CODEOWNERS | 1 - .../file_content_validation_checks.textproto | 1 - scripts/assets/test_file_exemptions.textproto | 4 - .../oppia/android/testing/OppiaTestRunner.kt | 100 ------------------ wiki/Installing-Oppia-Android.md | 27 ----- 5 files changed, 133 deletions(-) delete mode 100644 testing/src/main/java/org/oppia/android/testing/OppiaTestRunner.kt diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index e75939dd62c..5a77c3c95e9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -80,7 +80,6 @@ /testing/src/main/java/org/oppia/android/testing/AssertionHelpers.kt @oppia/android-dev-workflow-reviewers /testing/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt @oppia/android-dev-workflow-reviewers /testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt @oppia/android-dev-workflow-reviewers -/testing/src/main/java/org/oppia/android/testing/OppiaTestRunner.kt @oppia/android-dev-workflow-reviewers /testing/src/*/java/org/oppia/android/testing/data/ @oppia/android-dev-workflow-reviewers /testing/src/*/java/org/oppia/android/testing/environment/ @oppia/android-dev-workflow-reviewers /testing/src/*/java/org/oppia/android/testing/junit/ @oppia/android-dev-workflow-reviewers diff --git a/scripts/assets/file_content_validation_checks.textproto b/scripts/assets/file_content_validation_checks.textproto index 788ffc0e86c..aa0071b740e 100644 --- a/scripts/assets/file_content_validation_checks.textproto +++ b/scripts/assets/file_content_validation_checks.textproto @@ -144,7 +144,6 @@ file_content_checks { exempted_file_name: "domain/src/main/java/org/oppia/android/domain/util/JsonExtensions.kt" exempted_file_name: "domain/src/main/java/org/oppia/android/domain/util/WorkDataExtensions.kt" exempted_file_name: "domain/src/test/java/org/oppia/android/domain/onboarding/AppStartupStateControllerTest.kt" - exempted_file_name: "testing/src/main/java/org/oppia/android/testing/OppiaTestRunner.kt" exempted_file_name: "testing/src/main/java/org/oppia/android/testing/junit/ParameterizedMethod.kt" exempted_file_name: "testing/src/main/java/org/oppia/android/testing/time/FakeOppiaClock.kt" exempted_file_name: "utility/src/main/java/org/oppia/android/util/extensions/BundleExtensions.kt" diff --git a/scripts/assets/test_file_exemptions.textproto b/scripts/assets/test_file_exemptions.textproto index 19ffe6f1e7b..3e70a1a05b6 100644 --- a/scripts/assets/test_file_exemptions.textproto +++ b/scripts/assets/test_file_exemptions.textproto @@ -3986,10 +3986,6 @@ test_file_exemption { exempted_file_path: "testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt" test_file_not_required: true } -test_file_exemption { - exempted_file_path: "testing/src/main/java/org/oppia/android/testing/OppiaTestRunner.kt" - test_file_not_required: true -} test_file_exemption { exempted_file_path: "testing/src/main/java/org/oppia/android/testing/RichTextViewMatcher.kt" test_file_not_required: true diff --git a/testing/src/main/java/org/oppia/android/testing/OppiaTestRunner.kt b/testing/src/main/java/org/oppia/android/testing/OppiaTestRunner.kt deleted file mode 100644 index 69a34f47a10..00000000000 --- a/testing/src/main/java/org/oppia/android/testing/OppiaTestRunner.kt +++ /dev/null @@ -1,100 +0,0 @@ -package org.oppia.android.testing - -import android.app.Application -import android.content.Context -import android.os.Bundle -import androidx.test.runner.AndroidJUnitRunner -import java.lang.reflect.Field - -// TODO(#59): Remove this runner once application classes can be specified per-test suite. -/** - * Custom test runner for Oppia's AndroidX tests to facilitate loading custom Dagger applications in - * a way that's interoperable with Espresso. - * - * Loosely based on https://stackoverflow.com/a/42541784 and https://stackoverflow.com/a/36778841. - * - * This runner will load the default OppiaApplication that the production app uses unless the test - * declares a Robolectric @Config annotation specifying the test class that should be used, instead. - * This allows tests to declare a test application class to be used in both Espresso & Robolectric - * contexts with the same code declaration. - */ -@Suppress("unused") // This class is used directly by Gradle during instrumentation test setup. -class OppiaTestRunner : AndroidJUnitRunner() { - private lateinit var applicationClassLoader: ClassLoader - private lateinit var application: Application - - override fun onCreate(arguments: Bundle?) { - // Load a new application if it's different than the original. - val bindApplication = retrieveTestApplicationName(arguments?.getString("class"))?.let { - newApplication(applicationClassLoader, it, targetContext) - } ?: targetContext as Application - - // Ensure the bound application is forcibly overwritten in the target context, and used - // subsequently throughout the runner since it's replacing the previous application. - overrideApplicationInContext(targetContext, bindApplication) - application = bindApplication - - super.onCreate(arguments) - } - - override fun callApplicationOnCreate(app: Application?) { - // Use the overridden application, instead. - super.callApplicationOnCreate(application) - } - - override fun newApplication( - cl: ClassLoader?, - className: String?, - context: Context? - ): Application { - applicationClassLoader = checkNotNull(cl) { - "Expected non-null class loader to be passed to newApplication" - } - return super.newApplication(cl, className, context) - } - - @Suppress("UNCHECKED_CAST") - private fun retrieveTestApplicationName(className: String?): String? { - val testClassName = className?.substringBefore('#') - val classLoader = OppiaTestRunner::class.java.classLoader!! - val testClass = classLoader.loadClass(testClassName) - val configClass = - classLoader.loadClass("org.robolectric.annotation.Config") as Class - val configAnnotation = testClass.getAnnotation(configClass) - // Only consider overriding the application if it's defined via a Robolectric configuration (to - // have parity with the Robolectric version of the test). - if (configAnnotation != null) { - val applicationMethod = configClass.getDeclaredMethod("application") - val applicationClass = applicationMethod.invoke(configAnnotation) as Class<*> - val defaultApplicationClass = - classLoader.loadClass("org.robolectric.annotation.DefaultApplication") - if (!defaultApplicationClass.isAssignableFrom(applicationClass)) { - // Only consider taking the test application if it's been defined, otherwise use the default - // for Espresso. - return applicationClass.name - } - } - return null - } - - private fun overrideApplicationInContext(context: Context, application: Application) { - val packageInfo = checkNotNull(getPrivateFieldFromObject(context, "mPackageInfo")) { - "Failed to retrieve mPackageInfo from context: $context." - } - setPrivateFieldFromObject(packageInfo, "mApplication", application) - } - - private fun getPrivateFieldFromObject(container: Any, fieldName: String): Any? { - return retrieveAccessibleFieldFromObject(container, fieldName).get(container) - } - - private fun setPrivateFieldFromObject(container: Any, fieldName: String, newValue: Any) { - retrieveAccessibleFieldFromObject(container, fieldName).set(container, newValue) - } - - private fun retrieveAccessibleFieldFromObject(container: Any, fieldName: String): Field { - return container.javaClass.getDeclaredField(fieldName).apply { - isAccessible = true - } - } -} diff --git a/wiki/Installing-Oppia-Android.md b/wiki/Installing-Oppia-Android.md index dcf0a4baafb..8e8ab490617 100644 --- a/wiki/Installing-Oppia-Android.md +++ b/wiki/Installing-Oppia-Android.md @@ -116,33 +116,6 @@ We strongly recommend running tests on Robolectric which is faster because it do - You will notice that the emulator is greyed out, but the run window will open to show the running tests: ![](https://user-images.githubusercontent.com/59600948/272657015-158117e5-47d2-40fc-a38b-5dee6c347556.png) -### Configure Emulator Tests - -**Espresso is slower for running tests, so we recommend using Robolectric.** - -1. In Android Studio, open the desired test file, e.g., `HomeActivityTest`. -2. In the Android Studio toolbar, click on the `Available Devices` option. Select an emulator that has between API 28-30. - - **Note**: If you don't have any available devices in this list, please follow [these instructions](#run-the-app-from-android-studio) to create one. - -3. In the test file, to the left of the class name, click on the orange and green arrow, and select **Run 'HomeActivityTest'**. - ![](https://user-images.githubusercontent.com/59600948/272657131-96e5354b-13a9-4709-969a-b9494a65c30f.png) - -4. An "**Edit Configuration**" dialog will show up, and you should add the following settings under the general tab: - - For module, select **oppia-android.app** - - For Test, select **Class** - - For Instrumentation class, **org.oppia.android.testing.OppiaTestRunner**, will be selected by default. - - For target, select the **Use the device/snapshot dropdown** option. - - Verify that your setup looks like below: - - ![](https://user-images.githubusercontent.com/59600948/272657260-2e654891-61be-467a-8ebd-c997aa2abda6.png) -- Finally, Click the "Apply" and "Okay" buttons. -- You may need to repeat step (3) above to run the test with the new configuration. -- Subsequent runs of any app module tests will not require editing the configuration. -- This configuration will run all the tests in that class. -5. To run only a specific test in a file: - - Search or scroll down to the desired test name, to the left of the test name, click on the run icon and select **Run '`test name`''**. - ### Next Steps - Congratulations, you are ready to work on your first issue! Take a look at our [good first issues](https://github.com/oppia/oppia-android/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22+no%3Aassignee) and leave a comment with your suggested fix. A maintainer will assign you the issue and provide any necessary guidance. From 9dc71fa3ed619781cc78710c317cce8b8b4239a6 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 20:29:14 +0000 Subject: [PATCH 07/14] Fix broken OppiaTestRul due to previous changes. --- testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt b/testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt index 3ae1bea9eb9..439e2f15830 100644 --- a/testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt +++ b/testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt @@ -23,7 +23,6 @@ class OppiaTestRule : TestRule { override fun evaluate() { val areAccessibilityChecksEnabled = description.areAccessibilityChecksEnabled() val targetPlatforms = description.getTargetPlatforms() - val targetEnvironments = description.getTargetEnvironments() val currentPlatform = getCurrentPlatform() when { From a6f8d9742981697b0a1b225900258d423a800e64 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 20:38:29 +0000 Subject: [PATCH 08/14] Move primary AndroidManifest.xml to top-level. Once modularization work is completed, this will be the only Android manifest in the codebase. Since it contains high-level definitions of the app structure, it makes sense to exist at the top level. --- .../main/AndroidManifest.xml => AndroidManifest.xml | 0 BUILD | 6 ++++-- app/BUILD | 4 +--- build_flavors.bzl | 12 ++++++------ 4 files changed, 11 insertions(+), 11 deletions(-) rename app/src/main/AndroidManifest.xml => AndroidManifest.xml (100%) diff --git a/app/src/main/AndroidManifest.xml b/AndroidManifest.xml similarity index 100% rename from app/src/main/AndroidManifest.xml rename to AndroidManifest.xml diff --git a/BUILD b/BUILD index 8eccbc1eb13..9527c367c57 100644 --- a/BUILD +++ b/BUILD @@ -5,6 +5,9 @@ load("//:version.bzl", "MAJOR_VERSION", "MINOR_VERSION", "OPPIA_DEV_KITKAT_VERSI # This is exported here since config/ isn't a Bazel package. exports_files(["config/kitkat_main_dex_class_list.txt"]) +# TODO(#1607): Ensure app module libraries don't require directly depending on AndroidManifest.xml. +exports_files(["AndroidManifest.xml"]) + # Corresponds to being accessible to all Oppia targets. This should be used for production APIs & # modules that may be used both in production targets and in tests. package_group( @@ -70,13 +73,12 @@ package_group( ], ) -# TODO(#1640): Move binary manifest to top-level package post-Gradle. [ transform_android_manifest( name = "oppia_apk_%s_transformed_manifest" % apk_flavor_metadata["flavor"], application_relative_qualified_class = ".app.application.dev.DeveloperOppiaApplication", build_flavor = apk_flavor_metadata["flavor"], - input_file = "//app:src/main/AndroidManifest.xml", + input_file = "AndroidManifest.xml", major_version = MAJOR_VERSION, minor_version = MINOR_VERSION, output_file = "AndroidManifest_transformed_%s.xml" % apk_flavor_metadata["flavor"], diff --git a/app/BUILD b/app/BUILD index 6389096c77d..e208d589dc0 100644 --- a/app/BUILD +++ b/app/BUILD @@ -20,8 +20,6 @@ package(default_visibility = [ "//utility:__subpackages__", ]) -exports_files(["src/main/AndroidManifest.xml"]) - # Corresponds to being accessible to all app layer targets. package_group( name = "app_visibility", @@ -568,7 +566,7 @@ android_library( name = "resources", custom_package = "org.oppia.android.app", exports_manifest = True, - manifest = "src/main/AndroidManifest.xml", + manifest = "//:AndroidManifest.xml", resource_files = glob( ["src/main/res/**"], exclude = DATABINDING_LAYOUTS, diff --git a/build_flavors.bzl b/build_flavors.bzl index aa5493a391e..48763c7f0f2 100644 --- a/build_flavors.bzl +++ b/build_flavors.bzl @@ -42,7 +42,7 @@ _PRODUCTION_PROGUARD_SPECS = [ # Note to developers: keys of this dict should follow the order of AVAILABLE_FLAVORS. _FLAVOR_METADATA = { "dev": { - "manifest": "//app:src/main/AndroidManifest.xml", + "manifest": "//:AndroidManifest.xml", "min_sdk_version": 21, "target_sdk_version": 34, "multidex": "native", @@ -56,7 +56,7 @@ _FLAVOR_METADATA = { "application_class": ".app.application.dev.DeveloperOppiaApplication", }, "dev_kitkat": { - "manifest": "//app:src/main/AndroidManifest.xml", + "manifest": "//:AndroidManifest.xml", "min_sdk_version": 21, "target_sdk_version": 34, "multidex": "manual_main_dex", @@ -71,7 +71,7 @@ _FLAVOR_METADATA = { "application_class": ".app.application.dev.DeveloperOppiaApplication", }, "alpha": { - "manifest": "//app:src/main/AndroidManifest.xml", + "manifest": "//:AndroidManifest.xml", "min_sdk_version": 21, "target_sdk_version": 34, "multidex": "native", @@ -85,7 +85,7 @@ _FLAVOR_METADATA = { "application_class": ".app.application.alpha.AlphaOppiaApplication", }, "alpha_kitkat": { - "manifest": "//app:src/main/AndroidManifest.xml", + "manifest": "//:AndroidManifest.xml", "min_sdk_version": 21, "target_sdk_version": 34, "multidex": "manual_main_dex", @@ -100,7 +100,7 @@ _FLAVOR_METADATA = { "application_class": ".app.application.alpha.AlphaOppiaApplication", }, "beta": { - "manifest": "//app:src/main/AndroidManifest.xml", + "manifest": "//:AndroidManifest.xml", "min_sdk_version": 21, "target_sdk_version": 34, "multidex": "native", @@ -114,7 +114,7 @@ _FLAVOR_METADATA = { "application_class": ".app.application.beta.BetaOppiaApplication", }, "ga": { - "manifest": "//app:src/main/AndroidManifest.xml", + "manifest": "//:AndroidManifest.xml", "min_sdk_version": 21, "target_sdk_version": 34, "multidex": "native", From 88264b328a76f375b401db2dfe9db5d832fc4461 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 21:44:54 +0000 Subject: [PATCH 09/14] Remove more Gradle-specific/caused workarounds. --- .../org/oppia/android/app/translation/BUILD | 1 + .../exploration/ExplorationActivityTest.kt | 49 ----------------- .../app/player/state/StateFragmentTest.kt | 21 ++----- .../domain/locale/LanguageConfigRetriever.kt | 8 +-- .../android/scripts/common/RepositoryFile.kt | 7 --- .../org/oppia/android/testing/junit/BUILD | 1 + .../junit/InitializeDefaultLocaleRule.kt | 55 +++++-------------- .../android/testing/network/ApiMockLoader.kt | 18 +----- 8 files changed, 24 insertions(+), 136 deletions(-) diff --git a/app/src/main/java/org/oppia/android/app/translation/BUILD b/app/src/main/java/org/oppia/android/app/translation/BUILD index 66d8832de03..eee6111fafe 100644 --- a/app/src/main/java/org/oppia/android/app/translation/BUILD +++ b/app/src/main/java/org/oppia/android/app/translation/BUILD @@ -165,6 +165,7 @@ kt_android_library( visibility = [ "//app/src/main/java/org/oppia/android/app/activity:__pkg__", "//app/src/main/java/org/oppia/android/app/application:__pkg__", + "//testing/src/main/java/org/oppia/android/testing/junit:__pkg__", ], deps = [ ":app_language_application_injector", diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt index e8283c22045..7651305c769 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt @@ -1150,7 +1150,6 @@ class ExplorationActivityTest { onView(withId(R.id.audio_bar_container)).check(matches(isDisplayed())) onView(withId(R.id.audio_fragment_voiceover_progressbar)).check(matches(isDisplayed())) - waitForTheView(withDrawable(R.drawable.ic_pause_circle_filled_white_24dp)) onView(withId(R.id.play_pause_audio_icon)).check( matches( withDrawable(R.drawable.ic_pause_circle_filled_white_24dp) @@ -1380,7 +1379,6 @@ class ExplorationActivityTest { onView(withId(R.id.audio_bar_container)).check(matches(isDisplayed())) onView(withId(R.id.audio_fragment_voiceover_progressbar)).check(matches(isDisplayed())) - waitForTheView(withDrawable(R.drawable.ic_pause_circle_filled_white_24dp)) onView(withId(R.id.play_pause_audio_icon)).check( matches( withDrawable(R.drawable.ic_pause_circle_filled_white_24dp) @@ -2750,10 +2748,6 @@ class ExplorationActivityTest { "exploration/$explorationId/assets/audio/$audioFileName" } - private fun waitForTheView(viewMatcher: Matcher): ViewInteraction { - return onView(isRoot()).perform(waitForMatch(viewMatcher, 30000L)) - } - private fun updateContentLanguage(profileId: ProfileId, language: OppiaLanguage) { val updateProvider = translationController.updateWrittenTranslationContentLanguage( profileId, @@ -2815,49 +2809,6 @@ class ExplorationActivityTest { testCoroutineDispatchers.runCurrent() } - // TODO(#59): Remove these waits once we can ensure that the production executors are not depended on in tests. - // Sleeping is really bad practice in Espresso tests, and can lead to test flakiness. It shouldn't be necessary if we - // use a test executor service with a counting idle resource, but right now Gradle mixes dependencies such that both - // the test and production blocking executors are being used. The latter cannot be updated to notify Espresso of any - // active coroutines, so the test attempts to assert state before it's ready. This artificial delay in the Espresso - // thread helps to counter that. - /** - * Perform action of waiting for a specific matcher to finish. Adapted from: - * https://stackoverflow.com/a/22563297/3689782. - */ - private fun waitForMatch(viewMatcher: Matcher, millis: Long): ViewAction { - return object : ViewAction { - override fun getDescription(): String { - return "wait for a specific view with matcher <$viewMatcher> during $millis millis." - } - - override fun getConstraints(): Matcher { - return isRoot() - } - - override fun perform(uiController: UiController?, view: View?) { - checkNotNull(uiController) - uiController.loopMainThreadUntilIdle() - val startTime = System.currentTimeMillis() - val endTime = startTime + millis - - do { - if (TreeIterables.breadthFirstViewTraversal(view).any { viewMatcher.matches(it) }) { - return - } - uiController.loopMainThreadForAtLeast(50) - } while (System.currentTimeMillis() < endTime) - - // Couldn't match in time. - throw PerformException.Builder() - .withActionDescription(description) - .withViewDescription(HumanReadables.describe(view)) - .withCause(TimeoutException()) - .build() - } - } - } - /** * [BaseMatcher] that matches against the first occurrence of the specified view holder type in * StateFragment's RecyclerView. diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt index c6bcf1c8131..4ee45c60398 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt @@ -5690,11 +5690,12 @@ class StateFragmentTest { private fun waitForImageViewInteractionToFullyLoad() { // TODO(#1523): Remove explicit delay - https://github.com/oppia/oppia-android/issues/1523 - waitForTheView( - allOf( - withId(R.id.image_click_interaction_image_view), - WithNonZeroDimensionsMatcher() - ) + onView(isRoot()).perform( + waitForMatch( + allOf( + withId(R.id.image_click_interaction_image_view), + WithNonZeroDimensionsMatcher() + ), 30000L) ) } @@ -5832,10 +5833,6 @@ class StateFragmentTest { verifySubmitAnswerButtonIsDisabled() } - private fun waitForTheView(viewMatcher: Matcher): ViewInteraction { - return onView(isRoot()).perform(waitForMatch(viewMatcher, 30000L)) - } - private fun setUpTestWithLanguageSwitchingFeatureOn() { TestPlatformParameterModule.forceEnableFastLanguageSwitchingInLesson(true) setUpTest() @@ -5901,12 +5898,6 @@ class StateFragmentTest { return ApplicationProvider.getApplicationContext().isOnRobolectric() } - // TODO(#59): Remove these waits once we can ensure that the production executors are not depended on in tests. - // Sleeping is really bad practice in Espresso tests, and can lead to test flakiness. It shouldn't be necessary if we - // use a test executor service with a counting idle resource, but right now Gradle mixes dependencies such that both - // the test and production blocking executors are being used. The latter cannot be updated to notify Espresso of any - // active coroutines, so the test attempts to assert state before it's ready. This artificial delay in the Espresso - // thread helps to counter that. /** * Perform action of waiting for a specific matcher to finish. Adapted from: * https://stackoverflow.com/a/22563297/3689782. diff --git a/domain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt b/domain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt index ca9df28fcbd..0a0e4ba44a1 100644 --- a/domain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt +++ b/domain/src/main/java/org/oppia/android/domain/locale/LanguageConfigRetriever.kt @@ -5,13 +5,7 @@ import org.oppia.android.app.model.SupportedRegions import org.oppia.android.util.caching.AssetRepository import javax.inject.Inject -/** - * Retriever for language configurations from the app's embedded assets. - * - * Note that this implementation is expected to no-op on Gradle builds since they don't include the - * necessary configuration files. The rest of the locale & translation systems are expected to - * gracefully fail in this case. - */ +/** Retriever for language configurations from the app's embedded assets. */ class LanguageConfigRetriever @Inject constructor(private val assetRepository: AssetRepository) { /** Returns the [SupportedLanguages] configuration for the app, or default instance if none. */ fun loadSupportedLanguages(): SupportedLanguages { diff --git a/scripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt b/scripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt index 09f437629da..d0cb4455f93 100644 --- a/scripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt +++ b/scripts/src/java/org/oppia/android/scripts/common/RepositoryFile.kt @@ -14,17 +14,10 @@ class RepositoryFile { ".gitsecret", ".idea", ".aswb", - "gradle", "bazel-bin", "bazel-oppia-android", "bazel-out", "bazel-testlogs", - "app/build", - "data/build", - "domain/build", - "model/build", - "testing/build", - "utility/build", ) /** diff --git a/testing/src/main/java/org/oppia/android/testing/junit/BUILD b/testing/src/main/java/org/oppia/android/testing/junit/BUILD index 4d31f6d8aed..1cca02ac5a6 100644 --- a/testing/src/main/java/org/oppia/android/testing/junit/BUILD +++ b/testing/src/main/java/org/oppia/android/testing/junit/BUILD @@ -22,6 +22,7 @@ kt_android_library( visibility = ["//:oppia_testing_visibility"], deps = [ ":define_app_language_locale_context", + "//app/src/main/java/org/oppia/android/app/translation:app_language_application_injector_provider", "//domain/src/main/java/org/oppia/android/domain/locale:locale_application_injector", "//domain/src/main/java/org/oppia/android/domain/locale:locale_application_injector_provider", "//model/src/main/proto:languages_java_proto_lite", diff --git a/testing/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt b/testing/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt index 0166f25ec6b..ed352ac1a15 100644 --- a/testing/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt +++ b/testing/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt @@ -19,12 +19,10 @@ import org.oppia.android.domain.locale.LocaleApplicationInjectorProvider import org.oppia.android.domain.locale.LocaleController import org.oppia.android.util.locale.OppiaLocale import java.util.Locale +import org.oppia.android.app.translation.AppLanguageApplicationInjectorProvider +import org.oppia.android.app.translation.AppLanguageApplicationInjector +import org.oppia.android.app.translation.AppLanguageLocaleHandler -// TODO(#2747): Update this to not need reflection, and instead depend on the necessary app layer -// packages directly. At the time of writing this utility, Gradle disallowed a dependency in -// testing module on app module since the latter is an Android application rather than a library. -// This utility also can't be moved to the app module since it depends on test-only dependencies -// like JUnit and AndroidX test. /** * JUnit rule for automatically initializing the application's locale in app layer tests. Note that * this is likely needed for all app layer tests that make use of activities which interact with the @@ -47,7 +45,7 @@ class InitializeDefaultLocaleRule : TestRule { description?.getDefineAppLanguageLocaleContext()?.createLocaleContext() ?: localeController.getLikelyDefaultAppStringLocaleContext() val defaultLocale = localeController.reconstituteDisplayLocale(initialContext) - initializeLocale(localeHandler, defaultLocale) + localeHandler.initializeLocale(defaultLocale) val oldLocale = Locale.getDefault() base?.evaluate() @@ -57,42 +55,22 @@ class InitializeDefaultLocaleRule : TestRule { } private companion object { - private val injectorProviderClass by lazy { - Class.forName("org.oppia.android.app.translation.AppLanguageApplicationInjectorProvider") - } - private val injectorClass by lazy { - Class.forName("org.oppia.android.app.translation.AppLanguageApplicationInjector") - } - private val handlerClass by lazy { - Class.forName("org.oppia.android.app.translation.AppLanguageLocaleHandler") - } - private val displayLocaleClass by lazy { - Class.forName("org.oppia.android.util.locale.OppiaLocale\$DisplayLocale") - } - private fun Context.asLocaleApplicationInjectorProvider() = this as? LocaleApplicationInjectorProvider private fun Context.getLocaleApplicationInjector() = asLocaleApplicationInjectorProvider()?.getLocaleApplicationInjector() - private fun Context.getAppLanguageLocaleHandler(): Any { - val getInjectorMethod = - injectorProviderClass.getDeclaredMethod("getAppLanguageApplicationInjector") - return injectorProviderClass.tryCast(this)?.let { injectorProvider -> - val getHandlerMethod = injectorClass.getDeclaredMethod("getAppLanguageHandler") - injectorClass.tryCast(getInjectorMethod.invoke(injectorProvider))?.let { injector -> - handlerClass.tryCast(getHandlerMethod.invoke(injector)) - } - } ?: error( - "Failed to retrieve locale handler (something is misconfigured in the test application)" - ) - } + private fun Context.asAppLanguageApplicationInjectorProvider() = + this as? AppLanguageApplicationInjectorProvider + + private fun Context.getAppLanguageApplicationInjector() = + asAppLanguageApplicationInjectorProvider()?.getAppLanguageApplicationInjector() - private fun initializeLocale(localeHandler: Any, defaultLocale: OppiaLocale.DisplayLocale) { - val initializeLocaleMethod = - handlerClass.getDeclaredMethod("initializeLocale", displayLocaleClass) - initializeLocaleMethod.invoke(localeHandler, defaultLocale) + private fun Context.getAppLanguageLocaleHandler(): AppLanguageLocaleHandler { + return checkNotNull(getAppLanguageApplicationInjector()?.getAppLanguageHandler()) { + "Failed to retrieve locale controller (something is misconfigured in the test application)" + } } private fun Context.getLocaleController(): LocaleController { @@ -198,12 +176,5 @@ class InitializeDefaultLocaleRule : TestRule { private fun String.tryExtractAnnotationStringConstant(): String? = takeIf { it != DefineAppLanguageLocaleContext.DEFAULT_UNDEFINED_STRING_VALUE } - - /** - * A version of [Class.cast] that simulates Kotlin's "as?" syntax, that is, returns null if the - * cast fails rather than throwing an exception. - */ - private fun Class<*>.tryCast(obj: Any?): Any? = - try { cast(obj) } catch (e: ClassCastException) { null } } } diff --git a/testing/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt b/testing/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt index 45223bbd837..5e1270c6c69 100644 --- a/testing/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt +++ b/testing/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt @@ -2,30 +2,16 @@ package org.oppia.android.testing.network import android.content.Context import androidx.test.core.app.ApplicationProvider -import java.io.File import java.io.InputStream /** Utility for loading mock data for tests. */ class ApiMockLoader { companion object { - private const val GRADLE_ASSET_PATH = "../data/src/test/assets/api_mocks" - private const val BAZEL_ASSET_PATH = "api_mocks" - /** Returns the JSON content for the API mock data corresponding to the specified path. */ fun getFakeJson(jsonPath: String): String { - return openAssetInputStream(jsonPath).bufferedReader().use { it.readText() } - } - - private fun openAssetInputStream(jsonPath: String): InputStream { - // TODO(#59): Only use Bazel path instead of checking. - val gradleAssetFile = File(GRADLE_ASSET_PATH, jsonPath) - return if (gradleAssetFile.exists()) { - gradleAssetFile.inputStream() - } else { - val context = ApplicationProvider.getApplicationContext() - return context.assets.open("$BAZEL_ASSET_PATH/$jsonPath") - } + val context = ApplicationProvider.getApplicationContext() + return context.assets.open("api_mocks/$jsonPath").bufferedReader().use { it.readText() } } } } From d0f3e46b21f311fb392f540fc5a4dbfda5b5bb63 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 16 Jan 2025 22:04:30 +0000 Subject: [PATCH 10/14] More removals and post clean-up fixes. --- .github/CODEOWNERS | 2 +- .github/workflows/static_checks.yml | 2 +- .../options/ReadingTextSizeFragmentTest.kt | 1 - .../exploration/ExplorationActivityTest.kt | 5 ---- .../app/player/state/StateFragmentTest.kt | 5 ++-- .../WalkthroughTopicListFragmentTest.kt | 1 - .../player/state/StateFragmentLocalTest.kt | 1 - .../ExplorationProgressControllerTest.kt | 1 - .../ProfileManagementControllerTest.kt | 1 - ...uestionAssessmentProgressControllerTest.kt | 1 - .../domain/topic/TopicControllerTest.kt | 1 - .../domain/topic/TopicListControllerTest.kt | 1 - .../file_content_validation_checks.textproto | 6 ++--- scripts/buildifier_lint_check.sh | 2 +- .../scripts/build/TransformAndroidManifest.kt | 2 +- .../scripts/label/AccessibilityLabelCheck.kt | 2 +- .../label/AccessibilityLabelCheckTest.kt | 24 +++++++++---------- .../regex/RegexPatternValidationCheckTest.kt | 9 +++---- scripts/static_checks.sh | 2 +- .../junit/InitializeDefaultLocaleRule.kt | 6 ++--- .../android/testing/network/ApiMockLoader.kt | 1 - 21 files changed, 29 insertions(+), 47 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 5a77c3c95e9..575aabaf497 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -303,7 +303,7 @@ WORKSPACE @oppia/android-app-infrastructure-reviewers # Primary app manifest. Eventually, this will be split up so that only the # sensitive portions require owners approval. -/app/src/main/AndroidManifest.xml @oppia/owners +AndroidManifest.xml @oppia/owners # Top-level user-facing major/minor versions, and the version codes used to # ensure users receive the correct build when installing it from Play Store. diff --git a/.github/workflows/static_checks.yml b/.github/workflows/static_checks.yml index a943076f7f6..7e89172f015 100644 --- a/.github/workflows/static_checks.yml +++ b/.github/workflows/static_checks.yml @@ -182,7 +182,7 @@ jobs: # serving as a cancellation-compliant alternative to if: ${{ always() }} in concurrent workflows. if: ${{ !cancelled() }} run: | - bazel run //scripts:accessibility_label_check -- $(pwd) scripts/assets/accessibility_label_exemptions.pb app/src/main/AndroidManifest.xml + bazel run //scripts:accessibility_label_check -- $(pwd) scripts/assets/accessibility_label_exemptions.pb AndroidManifest.xml - name: KDoc Validation Check # The expression if: ${{ !cancelled() }} runs a job or step regardless of its success or failure while responding to cancellations, diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt index 193c9228bdf..4b4654f0db3 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt @@ -77,7 +77,6 @@ import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModu import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule import org.oppia.android.testing.OppiaTestRule -import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.firebase.TestAuthenticationModule import org.oppia.android.testing.junit.InitializeDefaultLocaleRule diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt index 7651305c769..5672ee66584 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt @@ -15,10 +15,8 @@ import androidx.test.core.app.ActivityScenario.launch import androidx.test.core.app.ApplicationProvider import androidx.test.espresso.Espresso.onView import androidx.test.espresso.Espresso.pressBack -import androidx.test.espresso.PerformException import androidx.test.espresso.UiController import androidx.test.espresso.ViewAction -import androidx.test.espresso.ViewInteraction import androidx.test.espresso.action.ViewActions.click import androidx.test.espresso.action.ViewActions.closeSoftKeyboard import androidx.test.espresso.assertion.ViewAssertions.doesNotExist @@ -38,8 +36,6 @@ import androidx.test.espresso.matcher.ViewMatchers.withContentDescription import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText -import androidx.test.espresso.util.HumanReadables -import androidx.test.espresso.util.TreeIterables import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.rule.ActivityTestRule import com.google.common.truth.Truth.assertThat @@ -173,7 +169,6 @@ import org.oppia.android.util.parser.image.ImageParsingModule import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import java.io.IOException -import java.util.concurrent.TimeoutException import javax.inject.Inject import javax.inject.Singleton diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt index 4ee45c60398..ae5117d650c 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt @@ -17,7 +17,6 @@ import androidx.test.espresso.Espresso.onView import androidx.test.espresso.PerformException import androidx.test.espresso.UiController import androidx.test.espresso.ViewAction -import androidx.test.espresso.ViewInteraction import androidx.test.espresso.action.GeneralLocation import androidx.test.espresso.action.Press import androidx.test.espresso.action.ViewActions.click @@ -5695,7 +5694,9 @@ class StateFragmentTest { allOf( withId(R.id.image_click_interaction_image_view), WithNonZeroDimensionsMatcher() - ), 30000L) + ), + 30000L + ) ) } diff --git a/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt index 228f577f099..4e18ba8d3e8 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt @@ -42,7 +42,6 @@ import org.oppia.android.app.player.state.itemviewmodel.SplitScreenInteractionMo import org.oppia.android.app.recyclerview.RecyclerViewMatcher.Companion.atPositionOnView import org.oppia.android.app.shim.ViewBindingShimModule import org.oppia.android.app.translation.testing.ActivityRecreatorTestModule -import org.oppia.android.app.utility.EspressoTestsMatchers.withDrawable import org.oppia.android.app.utility.OrientationChangeAction.Companion.orientationLandscape import org.oppia.android.data.backends.gae.NetworkConfigProdModule import org.oppia.android.data.backends.gae.NetworkModule diff --git a/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt b/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt index 6465e1b2d92..1204a4bfdda 100644 --- a/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt +++ b/app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt @@ -136,7 +136,6 @@ import org.oppia.android.domain.topic.TEST_TOPIC_ID_0 import org.oppia.android.domain.translation.TranslationController import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule import org.oppia.android.testing.OppiaTestRule -import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestImageLoaderModule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt index 42c8c705966..6045882ac3e 100644 --- a/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt @@ -88,7 +88,6 @@ import org.oppia.android.domain.util.toAnswerString import org.oppia.android.testing.FakeAnalyticsEventLogger import org.oppia.android.testing.FakeExceptionLogger import org.oppia.android.testing.OppiaTestRule -import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.assertThrows import org.oppia.android.testing.data.DataProviderTestMonitor diff --git a/domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt index 3490736d96f..43f3822ff19 100644 --- a/domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt @@ -39,7 +39,6 @@ import org.oppia.android.domain.oppialogger.LoggingIdentifierController import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule import org.oppia.android.testing.FakeAnalyticsEventLogger import org.oppia.android.testing.OppiaTestRule -import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor import org.oppia.android.testing.logging.EventLogSubject.Companion.assertThat diff --git a/domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt index c641adc4cf3..c2ac53b66ee 100644 --- a/domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt @@ -56,7 +56,6 @@ import org.oppia.android.domain.topic.TEST_SKILL_ID_2 import org.oppia.android.domain.translation.TranslationController import org.oppia.android.testing.FakeExceptionLogger import org.oppia.android.testing.OppiaTestRule -import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.assertThrows import org.oppia.android.testing.data.DataProviderTestMonitor diff --git a/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt index b07c295b961..517cefb420b 100755 --- a/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt @@ -35,7 +35,6 @@ import org.oppia.android.domain.topic.TopicController.ChapterNotFoundException import org.oppia.android.domain.translation.TranslationController import org.oppia.android.testing.FakeExceptionLogger import org.oppia.android.testing.OppiaTestRule -import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor import org.oppia.android.testing.robolectric.RobolectricModule diff --git a/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt index b78ab2262cd..d1374449379 100644 --- a/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt @@ -27,7 +27,6 @@ import org.oppia.android.domain.oppialogger.analytics.ApplicationLifecycleModule import org.oppia.android.domain.platformparameter.PlatformParameterModule import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModule import org.oppia.android.testing.OppiaTestRule -import org.oppia.android.testing.RunOn import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.data.DataProviderTestMonitor import org.oppia.android.testing.robolectric.RobolectricModule diff --git a/scripts/assets/file_content_validation_checks.textproto b/scripts/assets/file_content_validation_checks.textproto index aa0071b740e..048e94c085d 100644 --- a/scripts/assets/file_content_validation_checks.textproto +++ b/scripts/assets/file_content_validation_checks.textproto @@ -219,7 +219,7 @@ file_content_checks { exempted_file_name: "scripts/src/javatests/org/oppia/android/scripts/regex/RegexPatternValidationCheckTest.kt" } file_content_checks { - file_path_regex: ".+?AndroidManifest\\.xml" + file_path_regex: ".*?AndroidManifest\\.xml" prohibited_content_regex: "android:configChanges" failure_message: "Never explicitly handle configuration changes. Instead, use saved instance states for retaining state across rotations. For other types of configuration changes, follow up with the developer mailing list with how to proceed if you think this is a legitimate case." } @@ -461,12 +461,12 @@ file_content_checks { exempted_file_name: "utility/src/main/java/org/oppia/android/util/parser/image/UrlImageParser.kt" } file_content_checks { - file_path_regex: "app/src/main/AndroidManifest.xml" + file_path_regex: "AndroidManifest.xml" required_content_regex: "\\s*\\s*" failure_message: "Firebase analytics collection should always be explicitly deactivated in develop." } file_content_checks { - file_path_regex: "app/src/main/AndroidManifest.xml" + file_path_regex: "AndroidManifest.xml" required_content_regex: "\\s*\\s*" failure_message: "Firebase crashlytics collection should always be explicitly deactivated in develop." } diff --git a/scripts/buildifier_lint_check.sh b/scripts/buildifier_lint_check.sh index b56487f6b2f..761ca40a9ad 100644 --- a/scripts/buildifier_lint_check.sh +++ b/scripts/buildifier_lint_check.sh @@ -16,7 +16,7 @@ else buildifier_file_path="$github_actions_path/oppia-android-tools/buildifier" fi -$buildifier_file_path --lint=warn --mode=check --warnings=-native-android,+out-of-order-load,+unsorted-dict-items -r app data domain instrumentation model testing utility third_party tools scripts BUILD.bazel WORKSPACE oppia_android_test.bzl +$buildifier_file_path --lint=warn --mode=check --warnings=-native-android,+out-of-order-load,+unsorted-dict-items -r app data domain instrumentation model testing utility third_party tools scripts BUILD WORKSPACE oppia_android_test.bzl status=$? diff --git a/scripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt b/scripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt index 96095ee2925..1aaeaee6604 100644 --- a/scripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt +++ b/scripts/src/java/org/oppia/android/scripts/build/TransformAndroidManifest.kt @@ -57,7 +57,7 @@ private const val USAGE_STRING = * * Example: * bazel run //scripts:transform_android_manifest -- $(pwd) \\ - * $(pwd)/app/src/main/AndroidManifest.xml $(pwd)/TransformedAndroidManifest.xml alpha 0 6 6 \\ + * $(pwd)/AndroidManifest.xml $(pwd)/TransformedAndroidManifest.xml alpha 0 6 6 \\ * .app.application.alpha.AlphaOppiaApplication origin/develop */ fun main(args: Array) { diff --git a/scripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt b/scripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt index 91de16ae122..00a2346c601 100644 --- a/scripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt +++ b/scripts/src/java/org/oppia/android/scripts/label/AccessibilityLabelCheck.kt @@ -22,7 +22,7 @@ import javax.xml.parsers.DocumentBuilderFactory * * Example: * bazel run //scripts:accessibility_label_check -- $(pwd) - * scripts/assets/accessibility_label_exemptions.pb app/src/main/AndroidManifest.xml + * scripts/assets/accessibility_label_exemptions.pb AndroidManifest.xml */ fun main(vararg args: String) { val repoPath = "${args[0]}/" diff --git a/scripts/src/javatests/org/oppia/android/scripts/label/AccessibilityLabelCheckTest.kt b/scripts/src/javatests/org/oppia/android/scripts/label/AccessibilityLabelCheckTest.kt index db8d35a5f2f..3c7ecccb93e 100644 --- a/scripts/src/javatests/org/oppia/android/scripts/label/AccessibilityLabelCheckTest.kt +++ b/scripts/src/javatests/org/oppia/android/scripts/label/AccessibilityLabelCheckTest.kt @@ -106,7 +106,7 @@ class AccessibilityLabelCheckTest { """ Accessibility label missing for Activities: - $activityRelativePath - + $wikiReferenceNote """.trimIndent() assertThat(outContent.toString().trim()).isEqualTo(failureMessage) @@ -148,7 +148,7 @@ class AccessibilityLabelCheckTest { """ Accessibility label missing for Activities: - $activityRelativePath - + $wikiReferenceNote """.trimIndent() assertThat(outContent.toString().trim()).isEqualTo(failureMessage) @@ -186,7 +186,7 @@ class AccessibilityLabelCheckTest { tempFolder.newFolder( "testfiles", "app", "src", "main", "java", "org", "oppia", "android", "splash" ) - val appManifestPath = "app/src/main/AndroidManifest.xml" + val appManifestPath = "AndroidManifest.xml" val splashManifestPath = "app/src/main/java/org/oppia/android/splash/AndroidManifest.xml" val appManifestFile = tempFolder.newFile("testfiles/$appManifestPath") val splashManifestFile = tempFolder.newFile("testfiles/$splashManifestPath") @@ -235,7 +235,7 @@ class AccessibilityLabelCheckTest { tempFolder.newFolder( "testfiles", "app", "src", "main", "java", "org", "oppia", "android", "splash" ) - val appManifestPath = "app/src/main/AndroidManifest.xml" + val appManifestPath = "AndroidManifest.xml" val splashManifestPath = "app/src/main/java/org/oppia/android/splash/AndroidManifest.xml" val appManifestFile = tempFolder.newFile("testfiles/$appManifestPath") val splashManifestFile = tempFolder.newFile("testfiles/$splashManifestPath") @@ -261,7 +261,7 @@ class AccessibilityLabelCheckTest { Accessibility label missing for Activities: - $appActivityPath - $splashActivityPath - + $wikiReferenceNote """.trimIndent() assertThat(outContent.toString().trim()).isEqualTo(failureMessage) @@ -299,7 +299,7 @@ class AccessibilityLabelCheckTest { tempFolder.newFolder( "testfiles", "app", "src", "main", "java", "org", "oppia", "android", "splash" ) - val appManifestPath = "app/src/main/AndroidManifest.xml" + val appManifestPath = "AndroidManifest.xml" val splashManifestPath = "app/src/main/java/org/oppia/android/splash/AndroidManifest.xml" val appManifestFile = tempFolder.newFile("testfiles/$appManifestPath") val splashManifestFile = tempFolder.newFile("testfiles/$splashManifestPath") @@ -329,7 +329,7 @@ class AccessibilityLabelCheckTest { - $fourthAppActivityPath - $thirdAppActivityPath - $splashActivityPath - + $wikiReferenceNote """.trimIndent() assertThat(outContent.toString().trim()).isEqualTo(failureMessage) @@ -346,7 +346,7 @@ class AccessibilityLabelCheckTest { """.trimIndent() tempFolder.newFolder("testfiles", "app", "src", "main") - val tempFileRelativePath = "app/src/main/AndroidManifest.xml" + val tempFileRelativePath = "AndroidManifest.xml" val manifestFile = tempFolder.newFile("testfiles/$tempFileRelativePath") manifestFile.writeText(testContent) val exemptionFile = File("${tempFolder.root}/$pathToProtoBinary") @@ -380,7 +380,7 @@ class AccessibilityLabelCheckTest { """.trimIndent() tempFolder.newFolder("testfiles", "app", "src", "main") - val tempFileRelativePath = "app/src/main/AndroidManifest.xml" + val tempFileRelativePath = "AndroidManifest.xml" val manifestFile = tempFolder.newFile("testfiles/$tempFileRelativePath") manifestFile.writeText(testContent) val exemptionFile = File("${tempFolder.root}/$pathToProtoBinary") @@ -422,7 +422,7 @@ class AccessibilityLabelCheckTest { """.trimIndent() tempFolder.newFolder("testfiles", "app", "src", "main") - val tempFileRelativePath = "app/src/main/AndroidManifest.xml" + val tempFileRelativePath = "AndroidManifest.xml" val manifestFile = tempFolder.newFile("testfiles/$tempFileRelativePath") manifestFile.writeText(testContent) val activityPath = "app/src/main/java/org/oppia/android/app/home/SplashActivity" @@ -450,10 +450,10 @@ class AccessibilityLabelCheckTest { Redundant exemptions: - app/src/main/java/org/oppia/android/app/home/HomeActivity Please remove them from scripts/assets/accessibility_label_exemptions.textproto - + Accessibility label missing for Activities: - $activityPath - + $wikiReferenceNote """.trimIndent() assertThat(outContent.toString().trim()).isEqualTo(failureMessage) diff --git a/scripts/src/javatests/org/oppia/android/scripts/regex/RegexPatternValidationCheckTest.kt b/scripts/src/javatests/org/oppia/android/scripts/regex/RegexPatternValidationCheckTest.kt index 60b415c68db..49b5a5acd46 100644 --- a/scripts/src/javatests/org/oppia/android/scripts/regex/RegexPatternValidationCheckTest.kt +++ b/scripts/src/javatests/org/oppia/android/scripts/regex/RegexPatternValidationCheckTest.kt @@ -1443,8 +1443,7 @@ class RegexPatternValidationCheckTest { """.trimIndent() - tempFolder.newFolder("testfiles", "app", "src", "main") - val stringFilePath = "app/src/main/AndroidManifest.xml" + val stringFilePath = "AndroidManifest.xml" tempFolder.newFile("testfiles/$stringFilePath").writeText(prohibitedContent) val exception = assertThrows() { runScript() } @@ -1471,8 +1470,7 @@ class RegexPatternValidationCheckTest { """.trimIndent() - tempFolder.newFolder("testfiles", "app", "src", "main") - val stringFilePath = "app/src/main/AndroidManifest.xml" + val stringFilePath = "AndroidManifest.xml" tempFolder.newFile("testfiles/$stringFilePath").writeText(prohibitedContent) val exception = assertThrows() { runScript() } @@ -1499,8 +1497,7 @@ class RegexPatternValidationCheckTest { """.trimIndent() - tempFolder.newFolder("testfiles", "app", "src", "main") - val stringFilePath = "app/src/main/AndroidManifest.xml" + val stringFilePath = "AndroidManifest.xml" tempFolder.newFile("testfiles/$stringFilePath").writeText(prohibitedContent) val exception = assertThrows() { runScript() } diff --git a/scripts/static_checks.sh b/scripts/static_checks.sh index 0a0d08206cb..ac1999b4268 100644 --- a/scripts/static_checks.sh +++ b/scripts/static_checks.sh @@ -69,7 +69,7 @@ echo "" echo "********************************" echo "Running Accessibility label checks" echo "********************************" -bazel run //scripts:accessibility_label_check -- $(pwd) scripts/assets/accessibility_label_exemptions.pb app/src/main/AndroidManifest.xml +bazel run //scripts:accessibility_label_check -- $(pwd) scripts/assets/accessibility_label_exemptions.pb AndroidManifest.xml echo "" # Run KDoc Validation Check diff --git a/testing/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt b/testing/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt index ed352ac1a15..6300cfddbdb 100644 --- a/testing/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt +++ b/testing/src/main/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRule.kt @@ -15,13 +15,11 @@ import org.oppia.android.app.model.OppiaLanguage import org.oppia.android.app.model.OppiaLocaleContext import org.oppia.android.app.model.OppiaRegion import org.oppia.android.app.model.RegionSupportDefinition +import org.oppia.android.app.translation.AppLanguageApplicationInjectorProvider +import org.oppia.android.app.translation.AppLanguageLocaleHandler import org.oppia.android.domain.locale.LocaleApplicationInjectorProvider import org.oppia.android.domain.locale.LocaleController -import org.oppia.android.util.locale.OppiaLocale import java.util.Locale -import org.oppia.android.app.translation.AppLanguageApplicationInjectorProvider -import org.oppia.android.app.translation.AppLanguageApplicationInjector -import org.oppia.android.app.translation.AppLanguageLocaleHandler /** * JUnit rule for automatically initializing the application's locale in app layer tests. Note that diff --git a/testing/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt b/testing/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt index 5e1270c6c69..a94a2ff21c8 100644 --- a/testing/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt +++ b/testing/src/main/java/org/oppia/android/testing/network/ApiMockLoader.kt @@ -2,7 +2,6 @@ package org.oppia.android.testing.network import android.content.Context import androidx.test.core.app.ApplicationProvider -import java.io.InputStream /** Utility for loading mock data for tests. */ class ApiMockLoader { From e981184dd0aae9ca5dec22f5441aed4e8c1762cb Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 23 Jan 2025 19:58:56 +0000 Subject: [PATCH 11/14] Address CI failures. Specifically, this: - Adds/removes CODEOWNER changes per file updates. - Fixes two validation checks (which was confirmed). - Removes redundant tests now that Gradle support has been removed. --- .github/CODEOWNERS | 3 +- .../file_content_validation_checks.textproto | 4 +- .../scripts/common/RepositoryFileTest.kt | 60 ------------------- 3 files changed, 3 insertions(+), 64 deletions(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 575aabaf497..f84e3ebb858 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -81,7 +81,6 @@ /testing/src/main/java/org/oppia/android/testing/OppiaTestAnnotations.kt @oppia/android-dev-workflow-reviewers /testing/src/main/java/org/oppia/android/testing/OppiaTestRule.kt @oppia/android-dev-workflow-reviewers /testing/src/*/java/org/oppia/android/testing/data/ @oppia/android-dev-workflow-reviewers -/testing/src/*/java/org/oppia/android/testing/environment/ @oppia/android-dev-workflow-reviewers /testing/src/*/java/org/oppia/android/testing/junit/ @oppia/android-dev-workflow-reviewers /testing/src/*/java/org/oppia/android/testing/mockito/ @oppia/android-dev-workflow-reviewers /testing/src/*/java/org/oppia/android/testing/platformparameter/ @oppia/android-dev-workflow-reviewers @@ -246,7 +245,7 @@ # Broad Bazel files used throughout the codebase. WORKSPACE @oppia/android-app-infrastructure-reviewers *.bzl @oppia/android-app-infrastructure-reviewers -*.bazel @oppia/android-app-infrastructure-reviewers +BUILD @oppia/android-app-infrastructure-reviewers .bazelrc @oppia/android-app-infrastructure-reviewers .bazelversion @oppia/android-app-infrastructure-reviewers /tools/android/ @oppia/android-app-infrastructure-reviewers diff --git a/scripts/assets/file_content_validation_checks.textproto b/scripts/assets/file_content_validation_checks.textproto index 048e94c085d..e245220f027 100644 --- a/scripts/assets/file_content_validation_checks.textproto +++ b/scripts/assets/file_content_validation_checks.textproto @@ -461,12 +461,12 @@ file_content_checks { exempted_file_name: "utility/src/main/java/org/oppia/android/util/parser/image/UrlImageParser.kt" } file_content_checks { - file_path_regex: "AndroidManifest.xml" + file_path_regex: "^AndroidManifest.xml$" required_content_regex: "\\s*\\s*" failure_message: "Firebase analytics collection should always be explicitly deactivated in develop." } file_content_checks { - file_path_regex: "AndroidManifest.xml" + file_path_regex: "^AndroidManifest.xml$" required_content_regex: "\\s*\\s*" failure_message: "Firebase crashlytics collection should always be explicitly deactivated in develop." } diff --git a/scripts/src/javatests/org/oppia/android/scripts/common/RepositoryFileTest.kt b/scripts/src/javatests/org/oppia/android/scripts/common/RepositoryFileTest.kt index 4aa35d33e2e..4fd3038f0f6 100644 --- a/scripts/src/javatests/org/oppia/android/scripts/common/RepositoryFileTest.kt +++ b/scripts/src/javatests/org/oppia/android/scripts/common/RepositoryFileTest.kt @@ -106,66 +106,6 @@ class RepositoryFileTest { assertThat(collectedFiles).doesNotContain(file) } - @Test - fun testRepoFile_fileInAppBuildDirectory_fileShouldNotBePresentInCollectedFiles() { - tempFolder.newFolder("testfiles", "app", "build") - val file = tempFolder.newFile("testfiles/app/build/TestFile") - - val collectedFiles = RepositoryFile.collectSearchFiles("${tempFolder.root}/testfiles/") - - assertThat(collectedFiles).doesNotContain(file) - } - - @Test - fun testRepoFile_fileInDataBuildDirectory_fileShouldNotBePresentInCollectedFiles() { - tempFolder.newFolder("testfiles", "data", "build") - val file = tempFolder.newFile("testfiles/data/build/TestFile") - - val collectedFiles = RepositoryFile.collectSearchFiles("${tempFolder.root}/testfiles/") - - assertThat(collectedFiles).doesNotContain(file) - } - - @Test - fun testRepoFile_fileInDomainBuildDirectory_fileShouldNotBePresentInCollectedFiles() { - tempFolder.newFolder("testfiles", "domain", "build", "generated") - val file = tempFolder.newFile("testfiles/domain/build/generated/TestFile") - - val collectedFiles = RepositoryFile.collectSearchFiles("${tempFolder.root}/testfiles/") - - assertThat(collectedFiles).doesNotContain(file) - } - - @Test - fun testRepoFile_fileInModelBuildDirectory_fileShouldNotBePresentInCollectedFiles() { - tempFolder.newFolder("testfiles", "model", "build", "libs") - val file = tempFolder.newFile("testfiles/model/build/libs/TestFile") - - val collectedFiles = RepositoryFile.collectSearchFiles("${tempFolder.root}/testfiles/") - - assertThat(collectedFiles).doesNotContain(file) - } - - @Test - fun testRepoFile_fileInTestingBuildDirectory_fileShouldNotBePresentInCollectedFiles() { - tempFolder.newFolder("testfiles", "testing", "build") - val file = tempFolder.newFile("testfiles/testing/build/TestFile.kt") - - val collectedFiles = RepositoryFile.collectSearchFiles("${tempFolder.root}/testfiles/") - - assertThat(collectedFiles).doesNotContain(file) - } - - @Test - fun testRepoFile_fileInUtilityBuildDirectory_fileShouldNotBePresentInCollectedFiles() { - tempFolder.newFolder("testfiles", "utility", "build") - val file = tempFolder.newFile("testfiles/utility/build/TestFile.kt") - - val collectedFiles = RepositoryFile.collectSearchFiles("${tempFolder.root}/testfiles/") - - assertThat(collectedFiles).doesNotContain(file) - } - @Test fun testRepoFile_fileInDotGitHubDirectory_fileShouldBePresentInCollectedFiles() { tempFolder.newFolder("testfiles", ".github") From 41d8b467547a79c206059b78fe29c93504a2dda6 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 23 Jan 2025 20:19:50 +0000 Subject: [PATCH 12/14] Undo .bazel extension rename. It seems cleaner to retain the explicit extension in the long-term. --- .github/CODEOWNERS | 2 +- BUILD => BUILD.bazel | 0 app/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/app/activity/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/activity/route/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/application/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/application/alpha/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/application/beta/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/application/dev/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/application/ga/{BUILD => BUILD.bazel} | 0 .../android/app/application/testing/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/app/fragment/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/notice/testing/{BUILD => BUILD.bazel} | 0 .../app/player/exploration/testing/{BUILD => BUILD.bazel} | 0 .../main/java/org/oppia/android/app/shim/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/app/spotlight/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/testing/activity/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/translation/{BUILD => BUILD.bazel} | 0 .../android/app/translation/testing/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/utility/datetime/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/utility/lifecycle/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/utility/math/{BUILD => BUILD.bazel} | 0 .../main/java/org/oppia/android/app/view/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/app/viewmodel/{BUILD => BUILD.bazel} | 0 .../learneranalytics/{BUILD => BUILD.bazel} | 0 .../android/app/customview/interaction/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/databinding/{BUILD => BUILD.bazel} | 0 .../app/devoptions/mathexpressionparser/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/app/notice/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/player/exploration/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/player/state/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/app/splash/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/app/activity/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/activity/route/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/application/alpha/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/application/beta/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/application/dev/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/application/ga/{BUILD => BUILD.bazel} | 0 .../android/app/application/testing/{BUILD => BUILD.bazel} | 0 .../devoptions/devoptionsitemviewmodel/{BUILD => BUILD.bazel} | 0 .../oppia/android/app/testing/activity/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/translation/{BUILD => BUILD.bazel} | 0 .../android/app/translation/testing/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/app/utility/math/{BUILD => BUILD.bazel} | 0 config/src/java/org/oppia/android/config/{BUILD => BUILD.bazel} | 0 data/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/data/backends/gae/{BUILD => BUILD.bazel} | 0 .../oppia/android/data/backends/gae/api/{BUILD => BUILD.bazel} | 0 .../android/data/backends/gae/model/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/data/persistence/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/data/persistence/{BUILD => BUILD.bazel} | 0 domain/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/domain/audio/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/domain/auth/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/classify/{BUILD => BUILD.bazel} | 0 .../oppia/android/domain/classify/rules/{BUILD => BUILD.bazel} | 0 .../rules/algebraicexpressioninput/{BUILD => BUILD.bazel} | 0 .../classify/rules/continueinteraction/{BUILD => BUILD.bazel} | 0 .../classify/rules/dragAndDropSortInput/{BUILD => BUILD.bazel} | 0 .../domain/classify/rules/fractioninput/{BUILD => BUILD.bazel} | 0 .../classify/rules/imageClickInput/{BUILD => BUILD.bazel} | 0 .../classify/rules/itemselectioninput/{BUILD => BUILD.bazel} | 0 .../classify/rules/mathequationinput/{BUILD => BUILD.bazel} | 0 .../classify/rules/multiplechoiceinput/{BUILD => BUILD.bazel} | 0 .../classify/rules/numberwithunits/{BUILD => BUILD.bazel} | 0 .../rules/numericexpressioninput/{BUILD => BUILD.bazel} | 0 .../domain/classify/rules/numericinput/{BUILD => BUILD.bazel} | 0 .../domain/classify/rules/ratioinput/{BUILD => BUILD.bazel} | 0 .../domain/classify/rules/textinput/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/clipboard/{BUILD => BUILD.bazel} | 0 .../android/domain/exploration/testing/{BUILD => BUILD.bazel} | 0 .../android/domain/feedbackreporting/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/domain/locale/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/onboarding/{BUILD => BUILD.bazel} | 0 .../android/domain/onboarding/testing/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/oppialogger/{BUILD => BUILD.bazel} | 0 .../android/domain/oppialogger/analytics/{BUILD => BUILD.bazel} | 0 .../domain/oppialogger/analytics/testing/{BUILD => BUILD.bazel} | 0 .../domain/oppialogger/exceptions/{BUILD => BUILD.bazel} | 0 .../domain/oppialogger/logscheduler/{BUILD => BUILD.bazel} | 0 .../domain/oppialogger/loguploader/{BUILD => BUILD.bazel} | 0 .../android/domain/oppialogger/survey/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/profile/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/spotlight/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/domain/state/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/domain/survey/{BUILD => BUILD.bazel} | 0 .../testing/oppialogger/loguploader/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/translation/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/domain/util/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/domain/auth/{BUILD => BUILD.bazel} | 0 .../rules/algebraicexpressioninput/{BUILD => BUILD.bazel} | 0 .../classify/rules/mathequationinput/{BUILD => BUILD.bazel} | 0 .../rules/numericexpressioninput/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/clipboard/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/exploration/{BUILD => BUILD.bazel} | 0 .../exploration/lightweightcheckpointing/{BUILD => BUILD.bazel} | 0 .../android/domain/exploration/testing/{BUILD => BUILD.bazel} | 0 .../android/domain/hintsandsolution/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/domain/locale/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/onboarding/{BUILD => BUILD.bazel} | 0 .../android/domain/oppialogger/analytics/{BUILD => BUILD.bazel} | 0 .../domain/oppialogger/analytics/testing/{BUILD => BUILD.bazel} | 0 .../domain/oppialogger/loguploader/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/question/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/domain/survey/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/domain/translation/{BUILD => BUILD.bazel} | 0 instrumentation/{BUILD => BUILD.bazel} | 0 .../android/instrumentation/application/{BUILD => BUILD.bazel} | 0 .../android/instrumentation/testing/{BUILD => BUILD.bazel} | 0 .../android/instrumentation/application/{BUILD => BUILD.bazel} | 0 .../oppia/android/instrumentation/player/{BUILD => BUILD.bazel} | 0 model/{BUILD => BUILD.bazel} | 0 model/src/main/proto/{BUILD => BUILD.bazel} | 0 scripts/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/apkstats/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/build/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/ci/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/common/{BUILD => BUILD.bazel} | 0 .../oppia/android/scripts/common/model/{BUILD => BUILD.bazel} | 0 .../oppia/android/scripts/common/remote/{BUILD => BUILD.bazel} | 0 .../oppia/android/scripts/common/testing/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/coverage/{BUILD => BUILD.bazel} | 0 .../android/scripts/coverage/reporter/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/docs/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/label/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/license/{BUILD => BUILD.bazel} | 0 .../oppia/android/scripts/license/model/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/maven/{BUILD => BUILD.bazel} | 0 .../oppia/android/scripts/maven/model/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/proto/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/regex/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/telemetry/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/testfile/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/testing/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/todo/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/todo/model/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/wiki/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/scripts/xml/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/apkstats/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/build/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/ci/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/common/{BUILD => BUILD.bazel} | 0 .../oppia/android/scripts/common/testing/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/coverage/{BUILD => BUILD.bazel} | 0 .../android/scripts/coverage/reporter/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/docs/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/label/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/license/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/maven/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/regex/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/testfile/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/testing/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/todo/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/wiki/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/scripts/xml/{BUILD => BUILD.bazel} | 0 testing/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/testing/data/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/espresso/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/firebase/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/testing/junit/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/logging/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/testing/math/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/mockito/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/network/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/networking/{BUILD => BUILD.bazel} | 0 .../android/testing/platformparameter/{BUILD => BUILD.bazel} | 0 .../oppia/android/testing/robolectric/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/threading/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/testing/time/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/testing/data/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/firebase/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/testing/junit/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/logging/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/testing/math/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/networking/{BUILD => BUILD.bazel} | 0 .../oppia/android/testing/robolectric/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/testing/threading/{BUILD => BUILD.bazel} | 0 third_party/{BUILD => BUILD.bazel} | 0 tools/{BUILD => BUILD.bazel} | 0 tools/android/{BUILD => BUILD.bazel} | 0 tools/kotlin/{BUILD => BUILD.bazel} | 0 utility/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/accessibility/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/caching/{BUILD => BUILD.bazel} | 0 .../oppia/android/util/caching/testing/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/data/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/enumfilter/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/extensions/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/gcsresource/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/locale/{BUILD => BUILD.bazel} | 0 .../oppia/android/util/locale/testing/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/logging/{BUILD => BUILD.bazel} | 0 .../oppia/android/util/logging/firebase/{BUILD => BUILD.bazel} | 0 .../util/logging/performancemetrics/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/math/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/networking/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/parser/html/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/parser/image/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/parser/math/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/parser/svg/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/profile/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/statusbar/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/system/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/threading/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/caching/{BUILD => BUILD.bazel} | 0 .../oppia/android/util/caching/testing/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/data/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/locale/{BUILD => BUILD.bazel} | 0 .../oppia/android/util/locale/testing/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/logging/{BUILD => BUILD.bazel} | 0 .../oppia/android/util/logging/firebase/{BUILD => BUILD.bazel} | 0 .../util/logging/performancemetrics/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/math/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/networking/{BUILD => BUILD.bazel} | 0 .../org/oppia/android/util/parser/math/{BUILD => BUILD.bazel} | 0 .../java/org/oppia/android/util/profile/{BUILD => BUILD.bazel} | 0 216 files changed, 1 insertion(+), 1 deletion(-) rename BUILD => BUILD.bazel (100%) rename app/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/activity/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/activity/route/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/application/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/application/alpha/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/application/beta/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/application/dev/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/application/ga/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/application/testing/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/fragment/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/notice/testing/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/player/exploration/testing/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/shim/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/spotlight/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/testing/activity/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/translation/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/translation/testing/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/utility/datetime/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/utility/lifecycle/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/utility/math/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/view/{BUILD => BUILD.bazel} (100%) rename app/src/main/java/org/oppia/android/app/viewmodel/{BUILD => BUILD.bazel} (100%) rename app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/{BUILD => BUILD.bazel} (100%) rename app/src/sharedTest/java/org/oppia/android/app/customview/interaction/{BUILD => BUILD.bazel} (100%) rename app/src/sharedTest/java/org/oppia/android/app/databinding/{BUILD => BUILD.bazel} (100%) rename app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/{BUILD => BUILD.bazel} (100%) rename app/src/sharedTest/java/org/oppia/android/app/notice/{BUILD => BUILD.bazel} (100%) rename app/src/sharedTest/java/org/oppia/android/app/player/exploration/{BUILD => BUILD.bazel} (100%) rename app/src/sharedTest/java/org/oppia/android/app/player/state/{BUILD => BUILD.bazel} (100%) rename app/src/sharedTest/java/org/oppia/android/app/splash/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/activity/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/activity/route/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/application/alpha/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/application/beta/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/application/dev/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/application/ga/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/application/testing/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/testing/activity/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/translation/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/translation/testing/{BUILD => BUILD.bazel} (100%) rename app/src/test/java/org/oppia/android/app/utility/math/{BUILD => BUILD.bazel} (100%) rename config/src/java/org/oppia/android/config/{BUILD => BUILD.bazel} (100%) rename data/{BUILD => BUILD.bazel} (100%) rename data/src/main/java/org/oppia/android/data/backends/gae/{BUILD => BUILD.bazel} (100%) rename data/src/main/java/org/oppia/android/data/backends/gae/api/{BUILD => BUILD.bazel} (100%) rename data/src/main/java/org/oppia/android/data/backends/gae/model/{BUILD => BUILD.bazel} (100%) rename data/src/main/java/org/oppia/android/data/persistence/{BUILD => BUILD.bazel} (100%) rename data/src/test/java/org/oppia/android/data/persistence/{BUILD => BUILD.bazel} (100%) rename domain/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/audio/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/auth/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/clipboard/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/exploration/testing/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/feedbackreporting/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/locale/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/onboarding/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/onboarding/testing/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/oppialogger/survey/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/profile/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/spotlight/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/state/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/survey/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/translation/{BUILD => BUILD.bazel} (100%) rename domain/src/main/java/org/oppia/android/domain/util/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/auth/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/clipboard/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/exploration/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/exploration/testing/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/hintsandsolution/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/locale/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/onboarding/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/question/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/survey/{BUILD => BUILD.bazel} (100%) rename domain/src/test/java/org/oppia/android/domain/translation/{BUILD => BUILD.bazel} (100%) rename instrumentation/{BUILD => BUILD.bazel} (100%) rename instrumentation/src/java/org/oppia/android/instrumentation/application/{BUILD => BUILD.bazel} (100%) rename instrumentation/src/java/org/oppia/android/instrumentation/testing/{BUILD => BUILD.bazel} (100%) rename instrumentation/src/javatests/org/oppia/android/instrumentation/application/{BUILD => BUILD.bazel} (100%) rename instrumentation/src/javatests/org/oppia/android/instrumentation/player/{BUILD => BUILD.bazel} (100%) rename model/{BUILD => BUILD.bazel} (100%) rename model/src/main/proto/{BUILD => BUILD.bazel} (100%) rename scripts/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/apkstats/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/build/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/ci/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/common/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/common/model/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/common/remote/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/common/testing/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/coverage/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/coverage/reporter/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/docs/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/label/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/license/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/license/model/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/maven/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/maven/model/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/proto/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/regex/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/telemetry/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/testfile/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/testing/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/todo/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/todo/model/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/wiki/{BUILD => BUILD.bazel} (100%) rename scripts/src/java/org/oppia/android/scripts/xml/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/apkstats/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/build/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/ci/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/common/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/common/testing/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/coverage/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/docs/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/label/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/license/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/maven/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/regex/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/testfile/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/testing/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/todo/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/wiki/{BUILD => BUILD.bazel} (100%) rename scripts/src/javatests/org/oppia/android/scripts/xml/{BUILD => BUILD.bazel} (100%) rename testing/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/data/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/espresso/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/firebase/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/junit/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/logging/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/math/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/mockito/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/network/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/networking/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/platformparameter/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/robolectric/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/threading/{BUILD => BUILD.bazel} (100%) rename testing/src/main/java/org/oppia/android/testing/time/{BUILD => BUILD.bazel} (100%) rename testing/src/test/java/org/oppia/android/testing/data/{BUILD => BUILD.bazel} (100%) rename testing/src/test/java/org/oppia/android/testing/firebase/{BUILD => BUILD.bazel} (100%) rename testing/src/test/java/org/oppia/android/testing/junit/{BUILD => BUILD.bazel} (100%) rename testing/src/test/java/org/oppia/android/testing/logging/{BUILD => BUILD.bazel} (100%) rename testing/src/test/java/org/oppia/android/testing/math/{BUILD => BUILD.bazel} (100%) rename testing/src/test/java/org/oppia/android/testing/networking/{BUILD => BUILD.bazel} (100%) rename testing/src/test/java/org/oppia/android/testing/robolectric/{BUILD => BUILD.bazel} (100%) rename testing/src/test/java/org/oppia/android/testing/threading/{BUILD => BUILD.bazel} (100%) rename third_party/{BUILD => BUILD.bazel} (100%) rename tools/{BUILD => BUILD.bazel} (100%) rename tools/android/{BUILD => BUILD.bazel} (100%) rename tools/kotlin/{BUILD => BUILD.bazel} (100%) rename utility/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/accessibility/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/caching/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/caching/testing/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/data/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/enumfilter/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/extensions/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/gcsresource/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/locale/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/locale/testing/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/logging/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/logging/firebase/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/logging/performancemetrics/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/math/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/networking/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/parser/html/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/parser/image/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/parser/math/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/parser/svg/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/profile/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/statusbar/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/system/{BUILD => BUILD.bazel} (100%) rename utility/src/main/java/org/oppia/android/util/threading/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/caching/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/caching/testing/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/data/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/locale/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/locale/testing/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/logging/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/logging/firebase/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/logging/performancemetrics/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/math/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/networking/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/parser/math/{BUILD => BUILD.bazel} (100%) rename utility/src/test/java/org/oppia/android/util/profile/{BUILD => BUILD.bazel} (100%) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f84e3ebb858..7694dda7a0f 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -245,7 +245,7 @@ # Broad Bazel files used throughout the codebase. WORKSPACE @oppia/android-app-infrastructure-reviewers *.bzl @oppia/android-app-infrastructure-reviewers -BUILD @oppia/android-app-infrastructure-reviewers +*.bazel @oppia/android-app-infrastructure-reviewers .bazelrc @oppia/android-app-infrastructure-reviewers .bazelversion @oppia/android-app-infrastructure-reviewers /tools/android/ @oppia/android-app-infrastructure-reviewers diff --git a/BUILD b/BUILD.bazel similarity index 100% rename from BUILD rename to BUILD.bazel diff --git a/app/BUILD b/app/BUILD.bazel similarity index 100% rename from app/BUILD rename to app/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/activity/BUILD b/app/src/main/java/org/oppia/android/app/activity/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/activity/BUILD rename to app/src/main/java/org/oppia/android/app/activity/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/activity/route/BUILD b/app/src/main/java/org/oppia/android/app/activity/route/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/activity/route/BUILD rename to app/src/main/java/org/oppia/android/app/activity/route/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/application/BUILD b/app/src/main/java/org/oppia/android/app/application/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/BUILD rename to app/src/main/java/org/oppia/android/app/application/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/application/alpha/BUILD b/app/src/main/java/org/oppia/android/app/application/alpha/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/alpha/BUILD rename to app/src/main/java/org/oppia/android/app/application/alpha/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/application/beta/BUILD b/app/src/main/java/org/oppia/android/app/application/beta/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/beta/BUILD rename to app/src/main/java/org/oppia/android/app/application/beta/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/application/dev/BUILD b/app/src/main/java/org/oppia/android/app/application/dev/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/dev/BUILD rename to app/src/main/java/org/oppia/android/app/application/dev/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/application/ga/BUILD b/app/src/main/java/org/oppia/android/app/application/ga/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/ga/BUILD rename to app/src/main/java/org/oppia/android/app/application/ga/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/application/testing/BUILD b/app/src/main/java/org/oppia/android/app/application/testing/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/application/testing/BUILD rename to app/src/main/java/org/oppia/android/app/application/testing/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/fragment/BUILD b/app/src/main/java/org/oppia/android/app/fragment/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/fragment/BUILD rename to app/src/main/java/org/oppia/android/app/fragment/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/notice/testing/BUILD b/app/src/main/java/org/oppia/android/app/notice/testing/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/notice/testing/BUILD rename to app/src/main/java/org/oppia/android/app/notice/testing/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/player/exploration/testing/BUILD b/app/src/main/java/org/oppia/android/app/player/exploration/testing/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/player/exploration/testing/BUILD rename to app/src/main/java/org/oppia/android/app/player/exploration/testing/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/shim/BUILD b/app/src/main/java/org/oppia/android/app/shim/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/shim/BUILD rename to app/src/main/java/org/oppia/android/app/shim/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/spotlight/BUILD b/app/src/main/java/org/oppia/android/app/spotlight/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/spotlight/BUILD rename to app/src/main/java/org/oppia/android/app/spotlight/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/testing/activity/BUILD b/app/src/main/java/org/oppia/android/app/testing/activity/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/testing/activity/BUILD rename to app/src/main/java/org/oppia/android/app/testing/activity/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/translation/BUILD b/app/src/main/java/org/oppia/android/app/translation/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/translation/BUILD rename to app/src/main/java/org/oppia/android/app/translation/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/translation/testing/BUILD b/app/src/main/java/org/oppia/android/app/translation/testing/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/translation/testing/BUILD rename to app/src/main/java/org/oppia/android/app/translation/testing/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/utility/datetime/BUILD b/app/src/main/java/org/oppia/android/app/utility/datetime/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/utility/datetime/BUILD rename to app/src/main/java/org/oppia/android/app/utility/datetime/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/utility/lifecycle/BUILD b/app/src/main/java/org/oppia/android/app/utility/lifecycle/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/utility/lifecycle/BUILD rename to app/src/main/java/org/oppia/android/app/utility/lifecycle/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/utility/math/BUILD b/app/src/main/java/org/oppia/android/app/utility/math/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/utility/math/BUILD rename to app/src/main/java/org/oppia/android/app/utility/math/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/view/BUILD b/app/src/main/java/org/oppia/android/app/view/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/view/BUILD rename to app/src/main/java/org/oppia/android/app/view/BUILD.bazel diff --git a/app/src/main/java/org/oppia/android/app/viewmodel/BUILD b/app/src/main/java/org/oppia/android/app/viewmodel/BUILD.bazel similarity index 100% rename from app/src/main/java/org/oppia/android/app/viewmodel/BUILD rename to app/src/main/java/org/oppia/android/app/viewmodel/BUILD.bazel diff --git a/app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/BUILD b/app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/BUILD.bazel similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/BUILD rename to app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/BUILD.bazel diff --git a/app/src/sharedTest/java/org/oppia/android/app/customview/interaction/BUILD b/app/src/sharedTest/java/org/oppia/android/app/customview/interaction/BUILD.bazel similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/customview/interaction/BUILD rename to app/src/sharedTest/java/org/oppia/android/app/customview/interaction/BUILD.bazel diff --git a/app/src/sharedTest/java/org/oppia/android/app/databinding/BUILD b/app/src/sharedTest/java/org/oppia/android/app/databinding/BUILD.bazel similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/databinding/BUILD rename to app/src/sharedTest/java/org/oppia/android/app/databinding/BUILD.bazel diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/BUILD b/app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/BUILD.bazel similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/BUILD rename to app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/BUILD.bazel diff --git a/app/src/sharedTest/java/org/oppia/android/app/notice/BUILD b/app/src/sharedTest/java/org/oppia/android/app/notice/BUILD.bazel similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/notice/BUILD rename to app/src/sharedTest/java/org/oppia/android/app/notice/BUILD.bazel diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD b/app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD.bazel similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD rename to app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD.bazel diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/state/BUILD b/app/src/sharedTest/java/org/oppia/android/app/player/state/BUILD.bazel similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/player/state/BUILD rename to app/src/sharedTest/java/org/oppia/android/app/player/state/BUILD.bazel diff --git a/app/src/sharedTest/java/org/oppia/android/app/splash/BUILD b/app/src/sharedTest/java/org/oppia/android/app/splash/BUILD.bazel similarity index 100% rename from app/src/sharedTest/java/org/oppia/android/app/splash/BUILD rename to app/src/sharedTest/java/org/oppia/android/app/splash/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/activity/BUILD b/app/src/test/java/org/oppia/android/app/activity/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/activity/BUILD rename to app/src/test/java/org/oppia/android/app/activity/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/activity/route/BUILD b/app/src/test/java/org/oppia/android/app/activity/route/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/activity/route/BUILD rename to app/src/test/java/org/oppia/android/app/activity/route/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/application/alpha/BUILD b/app/src/test/java/org/oppia/android/app/application/alpha/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/alpha/BUILD rename to app/src/test/java/org/oppia/android/app/application/alpha/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/application/beta/BUILD b/app/src/test/java/org/oppia/android/app/application/beta/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/beta/BUILD rename to app/src/test/java/org/oppia/android/app/application/beta/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/application/dev/BUILD b/app/src/test/java/org/oppia/android/app/application/dev/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/dev/BUILD rename to app/src/test/java/org/oppia/android/app/application/dev/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/application/ga/BUILD b/app/src/test/java/org/oppia/android/app/application/ga/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/ga/BUILD rename to app/src/test/java/org/oppia/android/app/application/ga/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/application/testing/BUILD b/app/src/test/java/org/oppia/android/app/application/testing/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/application/testing/BUILD rename to app/src/test/java/org/oppia/android/app/application/testing/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/BUILD b/app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/BUILD rename to app/src/test/java/org/oppia/android/app/devoptions/devoptionsitemviewmodel/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/testing/activity/BUILD b/app/src/test/java/org/oppia/android/app/testing/activity/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/testing/activity/BUILD rename to app/src/test/java/org/oppia/android/app/testing/activity/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/translation/BUILD b/app/src/test/java/org/oppia/android/app/translation/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/translation/BUILD rename to app/src/test/java/org/oppia/android/app/translation/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/translation/testing/BUILD b/app/src/test/java/org/oppia/android/app/translation/testing/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/translation/testing/BUILD rename to app/src/test/java/org/oppia/android/app/translation/testing/BUILD.bazel diff --git a/app/src/test/java/org/oppia/android/app/utility/math/BUILD b/app/src/test/java/org/oppia/android/app/utility/math/BUILD.bazel similarity index 100% rename from app/src/test/java/org/oppia/android/app/utility/math/BUILD rename to app/src/test/java/org/oppia/android/app/utility/math/BUILD.bazel diff --git a/config/src/java/org/oppia/android/config/BUILD b/config/src/java/org/oppia/android/config/BUILD.bazel similarity index 100% rename from config/src/java/org/oppia/android/config/BUILD rename to config/src/java/org/oppia/android/config/BUILD.bazel diff --git a/data/BUILD b/data/BUILD.bazel similarity index 100% rename from data/BUILD rename to data/BUILD.bazel diff --git a/data/src/main/java/org/oppia/android/data/backends/gae/BUILD b/data/src/main/java/org/oppia/android/data/backends/gae/BUILD.bazel similarity index 100% rename from data/src/main/java/org/oppia/android/data/backends/gae/BUILD rename to data/src/main/java/org/oppia/android/data/backends/gae/BUILD.bazel diff --git a/data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD b/data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD.bazel similarity index 100% rename from data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD rename to data/src/main/java/org/oppia/android/data/backends/gae/api/BUILD.bazel diff --git a/data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD b/data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD.bazel similarity index 100% rename from data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD rename to data/src/main/java/org/oppia/android/data/backends/gae/model/BUILD.bazel diff --git a/data/src/main/java/org/oppia/android/data/persistence/BUILD b/data/src/main/java/org/oppia/android/data/persistence/BUILD.bazel similarity index 100% rename from data/src/main/java/org/oppia/android/data/persistence/BUILD rename to data/src/main/java/org/oppia/android/data/persistence/BUILD.bazel diff --git a/data/src/test/java/org/oppia/android/data/persistence/BUILD b/data/src/test/java/org/oppia/android/data/persistence/BUILD.bazel similarity index 100% rename from data/src/test/java/org/oppia/android/data/persistence/BUILD rename to data/src/test/java/org/oppia/android/data/persistence/BUILD.bazel diff --git a/domain/BUILD b/domain/BUILD.bazel similarity index 100% rename from domain/BUILD rename to domain/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/audio/BUILD b/domain/src/main/java/org/oppia/android/domain/audio/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/audio/BUILD rename to domain/src/main/java/org/oppia/android/domain/audio/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/auth/BUILD b/domain/src/main/java/org/oppia/android/domain/auth/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/auth/BUILD rename to domain/src/main/java/org/oppia/android/domain/auth/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/continueinteraction/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/fractioninput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/imageClickInput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/itemselectioninput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/multiplechoiceinput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/numberwithunits/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/numericinput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/ratioinput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/BUILD b/domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/BUILD rename to domain/src/main/java/org/oppia/android/domain/classify/rules/textinput/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/clipboard/BUILD b/domain/src/main/java/org/oppia/android/domain/clipboard/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/clipboard/BUILD rename to domain/src/main/java/org/oppia/android/domain/clipboard/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/exploration/testing/BUILD b/domain/src/main/java/org/oppia/android/domain/exploration/testing/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/exploration/testing/BUILD rename to domain/src/main/java/org/oppia/android/domain/exploration/testing/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/feedbackreporting/BUILD b/domain/src/main/java/org/oppia/android/domain/feedbackreporting/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/feedbackreporting/BUILD rename to domain/src/main/java/org/oppia/android/domain/feedbackreporting/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/locale/BUILD b/domain/src/main/java/org/oppia/android/domain/locale/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/locale/BUILD rename to domain/src/main/java/org/oppia/android/domain/locale/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/onboarding/BUILD b/domain/src/main/java/org/oppia/android/domain/onboarding/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/onboarding/BUILD rename to domain/src/main/java/org/oppia/android/domain/onboarding/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/onboarding/testing/BUILD b/domain/src/main/java/org/oppia/android/domain/onboarding/testing/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/onboarding/testing/BUILD rename to domain/src/main/java/org/oppia/android/domain/onboarding/testing/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/BUILD b/domain/src/main/java/org/oppia/android/domain/oppialogger/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/BUILD rename to domain/src/main/java/org/oppia/android/domain/oppialogger/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/BUILD b/domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/BUILD rename to domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD b/domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD rename to domain/src/main/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/BUILD b/domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/BUILD rename to domain/src/main/java/org/oppia/android/domain/oppialogger/exceptions/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/BUILD b/domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/BUILD rename to domain/src/main/java/org/oppia/android/domain/oppialogger/logscheduler/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/BUILD b/domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/BUILD rename to domain/src/main/java/org/oppia/android/domain/oppialogger/loguploader/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/survey/BUILD b/domain/src/main/java/org/oppia/android/domain/oppialogger/survey/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/oppialogger/survey/BUILD rename to domain/src/main/java/org/oppia/android/domain/oppialogger/survey/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/profile/BUILD b/domain/src/main/java/org/oppia/android/domain/profile/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/profile/BUILD rename to domain/src/main/java/org/oppia/android/domain/profile/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/spotlight/BUILD b/domain/src/main/java/org/oppia/android/domain/spotlight/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/spotlight/BUILD rename to domain/src/main/java/org/oppia/android/domain/spotlight/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/state/BUILD b/domain/src/main/java/org/oppia/android/domain/state/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/state/BUILD rename to domain/src/main/java/org/oppia/android/domain/state/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/survey/BUILD b/domain/src/main/java/org/oppia/android/domain/survey/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/survey/BUILD rename to domain/src/main/java/org/oppia/android/domain/survey/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/BUILD b/domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/BUILD rename to domain/src/main/java/org/oppia/android/domain/testing/oppialogger/loguploader/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/translation/BUILD b/domain/src/main/java/org/oppia/android/domain/translation/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/translation/BUILD rename to domain/src/main/java/org/oppia/android/domain/translation/BUILD.bazel diff --git a/domain/src/main/java/org/oppia/android/domain/util/BUILD b/domain/src/main/java/org/oppia/android/domain/util/BUILD.bazel similarity index 100% rename from domain/src/main/java/org/oppia/android/domain/util/BUILD rename to domain/src/main/java/org/oppia/android/domain/util/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/auth/BUILD b/domain/src/test/java/org/oppia/android/domain/auth/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/auth/BUILD rename to domain/src/test/java/org/oppia/android/domain/auth/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD b/domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD rename to domain/src/test/java/org/oppia/android/domain/classify/rules/algebraicexpressioninput/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD b/domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD rename to domain/src/test/java/org/oppia/android/domain/classify/rules/mathequationinput/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD b/domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD rename to domain/src/test/java/org/oppia/android/domain/classify/rules/numericexpressioninput/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/clipboard/BUILD b/domain/src/test/java/org/oppia/android/domain/clipboard/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/clipboard/BUILD rename to domain/src/test/java/org/oppia/android/domain/clipboard/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/BUILD b/domain/src/test/java/org/oppia/android/domain/exploration/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/exploration/BUILD rename to domain/src/test/java/org/oppia/android/domain/exploration/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/BUILD b/domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/BUILD rename to domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/exploration/testing/BUILD b/domain/src/test/java/org/oppia/android/domain/exploration/testing/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/exploration/testing/BUILD rename to domain/src/test/java/org/oppia/android/domain/exploration/testing/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/hintsandsolution/BUILD b/domain/src/test/java/org/oppia/android/domain/hintsandsolution/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/hintsandsolution/BUILD rename to domain/src/test/java/org/oppia/android/domain/hintsandsolution/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/locale/BUILD b/domain/src/test/java/org/oppia/android/domain/locale/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/locale/BUILD rename to domain/src/test/java/org/oppia/android/domain/locale/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/onboarding/BUILD b/domain/src/test/java/org/oppia/android/domain/onboarding/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/onboarding/BUILD rename to domain/src/test/java/org/oppia/android/domain/onboarding/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD b/domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD rename to domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD b/domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD rename to domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/BUILD b/domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/BUILD rename to domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/question/BUILD b/domain/src/test/java/org/oppia/android/domain/question/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/question/BUILD rename to domain/src/test/java/org/oppia/android/domain/question/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/survey/BUILD b/domain/src/test/java/org/oppia/android/domain/survey/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/survey/BUILD rename to domain/src/test/java/org/oppia/android/domain/survey/BUILD.bazel diff --git a/domain/src/test/java/org/oppia/android/domain/translation/BUILD b/domain/src/test/java/org/oppia/android/domain/translation/BUILD.bazel similarity index 100% rename from domain/src/test/java/org/oppia/android/domain/translation/BUILD rename to domain/src/test/java/org/oppia/android/domain/translation/BUILD.bazel diff --git a/instrumentation/BUILD b/instrumentation/BUILD.bazel similarity index 100% rename from instrumentation/BUILD rename to instrumentation/BUILD.bazel diff --git a/instrumentation/src/java/org/oppia/android/instrumentation/application/BUILD b/instrumentation/src/java/org/oppia/android/instrumentation/application/BUILD.bazel similarity index 100% rename from instrumentation/src/java/org/oppia/android/instrumentation/application/BUILD rename to instrumentation/src/java/org/oppia/android/instrumentation/application/BUILD.bazel diff --git a/instrumentation/src/java/org/oppia/android/instrumentation/testing/BUILD b/instrumentation/src/java/org/oppia/android/instrumentation/testing/BUILD.bazel similarity index 100% rename from instrumentation/src/java/org/oppia/android/instrumentation/testing/BUILD rename to instrumentation/src/java/org/oppia/android/instrumentation/testing/BUILD.bazel diff --git a/instrumentation/src/javatests/org/oppia/android/instrumentation/application/BUILD b/instrumentation/src/javatests/org/oppia/android/instrumentation/application/BUILD.bazel similarity index 100% rename from instrumentation/src/javatests/org/oppia/android/instrumentation/application/BUILD rename to instrumentation/src/javatests/org/oppia/android/instrumentation/application/BUILD.bazel diff --git a/instrumentation/src/javatests/org/oppia/android/instrumentation/player/BUILD b/instrumentation/src/javatests/org/oppia/android/instrumentation/player/BUILD.bazel similarity index 100% rename from instrumentation/src/javatests/org/oppia/android/instrumentation/player/BUILD rename to instrumentation/src/javatests/org/oppia/android/instrumentation/player/BUILD.bazel diff --git a/model/BUILD b/model/BUILD.bazel similarity index 100% rename from model/BUILD rename to model/BUILD.bazel diff --git a/model/src/main/proto/BUILD b/model/src/main/proto/BUILD.bazel similarity index 100% rename from model/src/main/proto/BUILD rename to model/src/main/proto/BUILD.bazel diff --git a/scripts/BUILD b/scripts/BUILD.bazel similarity index 100% rename from scripts/BUILD rename to scripts/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/apkstats/BUILD b/scripts/src/java/org/oppia/android/scripts/apkstats/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/apkstats/BUILD rename to scripts/src/java/org/oppia/android/scripts/apkstats/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/build/BUILD b/scripts/src/java/org/oppia/android/scripts/build/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/build/BUILD rename to scripts/src/java/org/oppia/android/scripts/build/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/ci/BUILD b/scripts/src/java/org/oppia/android/scripts/ci/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/ci/BUILD rename to scripts/src/java/org/oppia/android/scripts/ci/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/common/BUILD b/scripts/src/java/org/oppia/android/scripts/common/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/common/BUILD rename to scripts/src/java/org/oppia/android/scripts/common/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/common/model/BUILD b/scripts/src/java/org/oppia/android/scripts/common/model/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/common/model/BUILD rename to scripts/src/java/org/oppia/android/scripts/common/model/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/common/remote/BUILD b/scripts/src/java/org/oppia/android/scripts/common/remote/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/common/remote/BUILD rename to scripts/src/java/org/oppia/android/scripts/common/remote/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/common/testing/BUILD b/scripts/src/java/org/oppia/android/scripts/common/testing/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/common/testing/BUILD rename to scripts/src/java/org/oppia/android/scripts/common/testing/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/coverage/BUILD b/scripts/src/java/org/oppia/android/scripts/coverage/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/coverage/BUILD rename to scripts/src/java/org/oppia/android/scripts/coverage/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/coverage/reporter/BUILD b/scripts/src/java/org/oppia/android/scripts/coverage/reporter/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/coverage/reporter/BUILD rename to scripts/src/java/org/oppia/android/scripts/coverage/reporter/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/docs/BUILD b/scripts/src/java/org/oppia/android/scripts/docs/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/docs/BUILD rename to scripts/src/java/org/oppia/android/scripts/docs/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/label/BUILD b/scripts/src/java/org/oppia/android/scripts/label/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/label/BUILD rename to scripts/src/java/org/oppia/android/scripts/label/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/license/BUILD b/scripts/src/java/org/oppia/android/scripts/license/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/license/BUILD rename to scripts/src/java/org/oppia/android/scripts/license/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/license/model/BUILD b/scripts/src/java/org/oppia/android/scripts/license/model/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/license/model/BUILD rename to scripts/src/java/org/oppia/android/scripts/license/model/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/maven/BUILD b/scripts/src/java/org/oppia/android/scripts/maven/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/maven/BUILD rename to scripts/src/java/org/oppia/android/scripts/maven/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/maven/model/BUILD b/scripts/src/java/org/oppia/android/scripts/maven/model/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/maven/model/BUILD rename to scripts/src/java/org/oppia/android/scripts/maven/model/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/proto/BUILD b/scripts/src/java/org/oppia/android/scripts/proto/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/proto/BUILD rename to scripts/src/java/org/oppia/android/scripts/proto/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/regex/BUILD b/scripts/src/java/org/oppia/android/scripts/regex/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/regex/BUILD rename to scripts/src/java/org/oppia/android/scripts/regex/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/telemetry/BUILD b/scripts/src/java/org/oppia/android/scripts/telemetry/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/telemetry/BUILD rename to scripts/src/java/org/oppia/android/scripts/telemetry/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/testfile/BUILD b/scripts/src/java/org/oppia/android/scripts/testfile/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/testfile/BUILD rename to scripts/src/java/org/oppia/android/scripts/testfile/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/testing/BUILD b/scripts/src/java/org/oppia/android/scripts/testing/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/testing/BUILD rename to scripts/src/java/org/oppia/android/scripts/testing/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/todo/BUILD b/scripts/src/java/org/oppia/android/scripts/todo/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/todo/BUILD rename to scripts/src/java/org/oppia/android/scripts/todo/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/todo/model/BUILD b/scripts/src/java/org/oppia/android/scripts/todo/model/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/todo/model/BUILD rename to scripts/src/java/org/oppia/android/scripts/todo/model/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/wiki/BUILD b/scripts/src/java/org/oppia/android/scripts/wiki/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/wiki/BUILD rename to scripts/src/java/org/oppia/android/scripts/wiki/BUILD.bazel diff --git a/scripts/src/java/org/oppia/android/scripts/xml/BUILD b/scripts/src/java/org/oppia/android/scripts/xml/BUILD.bazel similarity index 100% rename from scripts/src/java/org/oppia/android/scripts/xml/BUILD rename to scripts/src/java/org/oppia/android/scripts/xml/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/apkstats/BUILD b/scripts/src/javatests/org/oppia/android/scripts/apkstats/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/apkstats/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/apkstats/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/build/BUILD b/scripts/src/javatests/org/oppia/android/scripts/build/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/build/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/build/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/ci/BUILD b/scripts/src/javatests/org/oppia/android/scripts/ci/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/ci/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/ci/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/common/BUILD b/scripts/src/javatests/org/oppia/android/scripts/common/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/common/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/common/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/common/testing/BUILD b/scripts/src/javatests/org/oppia/android/scripts/common/testing/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/common/testing/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/common/testing/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/coverage/BUILD b/scripts/src/javatests/org/oppia/android/scripts/coverage/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/coverage/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/coverage/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/BUILD b/scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/coverage/reporter/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/docs/BUILD b/scripts/src/javatests/org/oppia/android/scripts/docs/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/docs/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/docs/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/label/BUILD b/scripts/src/javatests/org/oppia/android/scripts/label/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/label/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/label/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/license/BUILD b/scripts/src/javatests/org/oppia/android/scripts/license/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/license/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/license/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/maven/BUILD b/scripts/src/javatests/org/oppia/android/scripts/maven/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/maven/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/maven/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/regex/BUILD b/scripts/src/javatests/org/oppia/android/scripts/regex/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/regex/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/regex/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/testfile/BUILD b/scripts/src/javatests/org/oppia/android/scripts/testfile/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/testfile/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/testfile/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/testing/BUILD b/scripts/src/javatests/org/oppia/android/scripts/testing/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/testing/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/testing/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/todo/BUILD b/scripts/src/javatests/org/oppia/android/scripts/todo/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/todo/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/todo/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/wiki/BUILD b/scripts/src/javatests/org/oppia/android/scripts/wiki/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/wiki/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/wiki/BUILD.bazel diff --git a/scripts/src/javatests/org/oppia/android/scripts/xml/BUILD b/scripts/src/javatests/org/oppia/android/scripts/xml/BUILD.bazel similarity index 100% rename from scripts/src/javatests/org/oppia/android/scripts/xml/BUILD rename to scripts/src/javatests/org/oppia/android/scripts/xml/BUILD.bazel diff --git a/testing/BUILD b/testing/BUILD.bazel similarity index 100% rename from testing/BUILD rename to testing/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/data/BUILD b/testing/src/main/java/org/oppia/android/testing/data/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/data/BUILD rename to testing/src/main/java/org/oppia/android/testing/data/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/espresso/BUILD b/testing/src/main/java/org/oppia/android/testing/espresso/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/espresso/BUILD rename to testing/src/main/java/org/oppia/android/testing/espresso/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/firebase/BUILD b/testing/src/main/java/org/oppia/android/testing/firebase/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/firebase/BUILD rename to testing/src/main/java/org/oppia/android/testing/firebase/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/junit/BUILD b/testing/src/main/java/org/oppia/android/testing/junit/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/junit/BUILD rename to testing/src/main/java/org/oppia/android/testing/junit/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/logging/BUILD b/testing/src/main/java/org/oppia/android/testing/logging/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/logging/BUILD rename to testing/src/main/java/org/oppia/android/testing/logging/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/math/BUILD b/testing/src/main/java/org/oppia/android/testing/math/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/math/BUILD rename to testing/src/main/java/org/oppia/android/testing/math/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/mockito/BUILD b/testing/src/main/java/org/oppia/android/testing/mockito/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/mockito/BUILD rename to testing/src/main/java/org/oppia/android/testing/mockito/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/network/BUILD b/testing/src/main/java/org/oppia/android/testing/network/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/network/BUILD rename to testing/src/main/java/org/oppia/android/testing/network/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/networking/BUILD b/testing/src/main/java/org/oppia/android/testing/networking/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/networking/BUILD rename to testing/src/main/java/org/oppia/android/testing/networking/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD b/testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD rename to testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/robolectric/BUILD b/testing/src/main/java/org/oppia/android/testing/robolectric/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/robolectric/BUILD rename to testing/src/main/java/org/oppia/android/testing/robolectric/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/threading/BUILD b/testing/src/main/java/org/oppia/android/testing/threading/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/threading/BUILD rename to testing/src/main/java/org/oppia/android/testing/threading/BUILD.bazel diff --git a/testing/src/main/java/org/oppia/android/testing/time/BUILD b/testing/src/main/java/org/oppia/android/testing/time/BUILD.bazel similarity index 100% rename from testing/src/main/java/org/oppia/android/testing/time/BUILD rename to testing/src/main/java/org/oppia/android/testing/time/BUILD.bazel diff --git a/testing/src/test/java/org/oppia/android/testing/data/BUILD b/testing/src/test/java/org/oppia/android/testing/data/BUILD.bazel similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/data/BUILD rename to testing/src/test/java/org/oppia/android/testing/data/BUILD.bazel diff --git a/testing/src/test/java/org/oppia/android/testing/firebase/BUILD b/testing/src/test/java/org/oppia/android/testing/firebase/BUILD.bazel similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/firebase/BUILD rename to testing/src/test/java/org/oppia/android/testing/firebase/BUILD.bazel diff --git a/testing/src/test/java/org/oppia/android/testing/junit/BUILD b/testing/src/test/java/org/oppia/android/testing/junit/BUILD.bazel similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/junit/BUILD rename to testing/src/test/java/org/oppia/android/testing/junit/BUILD.bazel diff --git a/testing/src/test/java/org/oppia/android/testing/logging/BUILD b/testing/src/test/java/org/oppia/android/testing/logging/BUILD.bazel similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/logging/BUILD rename to testing/src/test/java/org/oppia/android/testing/logging/BUILD.bazel diff --git a/testing/src/test/java/org/oppia/android/testing/math/BUILD b/testing/src/test/java/org/oppia/android/testing/math/BUILD.bazel similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/math/BUILD rename to testing/src/test/java/org/oppia/android/testing/math/BUILD.bazel diff --git a/testing/src/test/java/org/oppia/android/testing/networking/BUILD b/testing/src/test/java/org/oppia/android/testing/networking/BUILD.bazel similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/networking/BUILD rename to testing/src/test/java/org/oppia/android/testing/networking/BUILD.bazel diff --git a/testing/src/test/java/org/oppia/android/testing/robolectric/BUILD b/testing/src/test/java/org/oppia/android/testing/robolectric/BUILD.bazel similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/robolectric/BUILD rename to testing/src/test/java/org/oppia/android/testing/robolectric/BUILD.bazel diff --git a/testing/src/test/java/org/oppia/android/testing/threading/BUILD b/testing/src/test/java/org/oppia/android/testing/threading/BUILD.bazel similarity index 100% rename from testing/src/test/java/org/oppia/android/testing/threading/BUILD rename to testing/src/test/java/org/oppia/android/testing/threading/BUILD.bazel diff --git a/third_party/BUILD b/third_party/BUILD.bazel similarity index 100% rename from third_party/BUILD rename to third_party/BUILD.bazel diff --git a/tools/BUILD b/tools/BUILD.bazel similarity index 100% rename from tools/BUILD rename to tools/BUILD.bazel diff --git a/tools/android/BUILD b/tools/android/BUILD.bazel similarity index 100% rename from tools/android/BUILD rename to tools/android/BUILD.bazel diff --git a/tools/kotlin/BUILD b/tools/kotlin/BUILD.bazel similarity index 100% rename from tools/kotlin/BUILD rename to tools/kotlin/BUILD.bazel diff --git a/utility/BUILD b/utility/BUILD.bazel similarity index 100% rename from utility/BUILD rename to utility/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/accessibility/BUILD b/utility/src/main/java/org/oppia/android/util/accessibility/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/accessibility/BUILD rename to utility/src/main/java/org/oppia/android/util/accessibility/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/caching/BUILD b/utility/src/main/java/org/oppia/android/util/caching/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/caching/BUILD rename to utility/src/main/java/org/oppia/android/util/caching/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/caching/testing/BUILD b/utility/src/main/java/org/oppia/android/util/caching/testing/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/caching/testing/BUILD rename to utility/src/main/java/org/oppia/android/util/caching/testing/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/data/BUILD b/utility/src/main/java/org/oppia/android/util/data/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/data/BUILD rename to utility/src/main/java/org/oppia/android/util/data/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/enumfilter/BUILD b/utility/src/main/java/org/oppia/android/util/enumfilter/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/enumfilter/BUILD rename to utility/src/main/java/org/oppia/android/util/enumfilter/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/extensions/BUILD b/utility/src/main/java/org/oppia/android/util/extensions/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/extensions/BUILD rename to utility/src/main/java/org/oppia/android/util/extensions/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/gcsresource/BUILD b/utility/src/main/java/org/oppia/android/util/gcsresource/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/gcsresource/BUILD rename to utility/src/main/java/org/oppia/android/util/gcsresource/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/locale/BUILD b/utility/src/main/java/org/oppia/android/util/locale/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/locale/BUILD rename to utility/src/main/java/org/oppia/android/util/locale/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/locale/testing/BUILD b/utility/src/main/java/org/oppia/android/util/locale/testing/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/locale/testing/BUILD rename to utility/src/main/java/org/oppia/android/util/locale/testing/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/logging/BUILD b/utility/src/main/java/org/oppia/android/util/logging/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/logging/BUILD rename to utility/src/main/java/org/oppia/android/util/logging/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/logging/firebase/BUILD b/utility/src/main/java/org/oppia/android/util/logging/firebase/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/logging/firebase/BUILD rename to utility/src/main/java/org/oppia/android/util/logging/firebase/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/logging/performancemetrics/BUILD b/utility/src/main/java/org/oppia/android/util/logging/performancemetrics/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/logging/performancemetrics/BUILD rename to utility/src/main/java/org/oppia/android/util/logging/performancemetrics/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/math/BUILD b/utility/src/main/java/org/oppia/android/util/math/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/math/BUILD rename to utility/src/main/java/org/oppia/android/util/math/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/networking/BUILD b/utility/src/main/java/org/oppia/android/util/networking/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/networking/BUILD rename to utility/src/main/java/org/oppia/android/util/networking/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/parser/html/BUILD b/utility/src/main/java/org/oppia/android/util/parser/html/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/parser/html/BUILD rename to utility/src/main/java/org/oppia/android/util/parser/html/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/parser/image/BUILD b/utility/src/main/java/org/oppia/android/util/parser/image/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/parser/image/BUILD rename to utility/src/main/java/org/oppia/android/util/parser/image/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/parser/math/BUILD b/utility/src/main/java/org/oppia/android/util/parser/math/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/parser/math/BUILD rename to utility/src/main/java/org/oppia/android/util/parser/math/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/parser/svg/BUILD b/utility/src/main/java/org/oppia/android/util/parser/svg/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/parser/svg/BUILD rename to utility/src/main/java/org/oppia/android/util/parser/svg/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/profile/BUILD b/utility/src/main/java/org/oppia/android/util/profile/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/profile/BUILD rename to utility/src/main/java/org/oppia/android/util/profile/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/statusbar/BUILD b/utility/src/main/java/org/oppia/android/util/statusbar/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/statusbar/BUILD rename to utility/src/main/java/org/oppia/android/util/statusbar/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/system/BUILD b/utility/src/main/java/org/oppia/android/util/system/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/system/BUILD rename to utility/src/main/java/org/oppia/android/util/system/BUILD.bazel diff --git a/utility/src/main/java/org/oppia/android/util/threading/BUILD b/utility/src/main/java/org/oppia/android/util/threading/BUILD.bazel similarity index 100% rename from utility/src/main/java/org/oppia/android/util/threading/BUILD rename to utility/src/main/java/org/oppia/android/util/threading/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/caching/BUILD b/utility/src/test/java/org/oppia/android/util/caching/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/caching/BUILD rename to utility/src/test/java/org/oppia/android/util/caching/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/caching/testing/BUILD b/utility/src/test/java/org/oppia/android/util/caching/testing/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/caching/testing/BUILD rename to utility/src/test/java/org/oppia/android/util/caching/testing/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/data/BUILD b/utility/src/test/java/org/oppia/android/util/data/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/data/BUILD rename to utility/src/test/java/org/oppia/android/util/data/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/locale/BUILD b/utility/src/test/java/org/oppia/android/util/locale/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/locale/BUILD rename to utility/src/test/java/org/oppia/android/util/locale/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/locale/testing/BUILD b/utility/src/test/java/org/oppia/android/util/locale/testing/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/locale/testing/BUILD rename to utility/src/test/java/org/oppia/android/util/locale/testing/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/logging/BUILD b/utility/src/test/java/org/oppia/android/util/logging/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/logging/BUILD rename to utility/src/test/java/org/oppia/android/util/logging/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/logging/firebase/BUILD b/utility/src/test/java/org/oppia/android/util/logging/firebase/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/logging/firebase/BUILD rename to utility/src/test/java/org/oppia/android/util/logging/firebase/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/logging/performancemetrics/BUILD b/utility/src/test/java/org/oppia/android/util/logging/performancemetrics/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/logging/performancemetrics/BUILD rename to utility/src/test/java/org/oppia/android/util/logging/performancemetrics/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/math/BUILD b/utility/src/test/java/org/oppia/android/util/math/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/math/BUILD rename to utility/src/test/java/org/oppia/android/util/math/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/networking/BUILD b/utility/src/test/java/org/oppia/android/util/networking/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/networking/BUILD rename to utility/src/test/java/org/oppia/android/util/networking/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/parser/math/BUILD b/utility/src/test/java/org/oppia/android/util/parser/math/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/parser/math/BUILD rename to utility/src/test/java/org/oppia/android/util/parser/math/BUILD.bazel diff --git a/utility/src/test/java/org/oppia/android/util/profile/BUILD b/utility/src/test/java/org/oppia/android/util/profile/BUILD.bazel similarity index 100% rename from utility/src/test/java/org/oppia/android/util/profile/BUILD rename to utility/src/test/java/org/oppia/android/util/profile/BUILD.bazel From cad413bf97d4cb34fd64861f76b55c31811c4955 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 23 Jan 2025 20:24:14 +0000 Subject: [PATCH 13/14] Fix broken Buildifier script. --- scripts/buildifier_lint_check.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/buildifier_lint_check.sh b/scripts/buildifier_lint_check.sh index 761ca40a9ad..b56487f6b2f 100644 --- a/scripts/buildifier_lint_check.sh +++ b/scripts/buildifier_lint_check.sh @@ -16,7 +16,7 @@ else buildifier_file_path="$github_actions_path/oppia-android-tools/buildifier" fi -$buildifier_file_path --lint=warn --mode=check --warnings=-native-android,+out-of-order-load,+unsorted-dict-items -r app data domain instrumentation model testing utility third_party tools scripts BUILD WORKSPACE oppia_android_test.bzl +$buildifier_file_path --lint=warn --mode=check --warnings=-native-android,+out-of-order-load,+unsorted-dict-items -r app data domain instrumentation model testing utility third_party tools scripts BUILD.bazel WORKSPACE oppia_android_test.bzl status=$? From 6f064dc6a7ac67cf08abb4aca0e6c5285a8caea1 Mon Sep 17 00:00:00 2001 From: Ben Henning Date: Thu, 23 Jan 2025 21:08:46 +0000 Subject: [PATCH 14/14] Re-add removed test & ensure it passes with Bazel. --- .../WalkthroughTopicListFragmentTest.kt | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt index 4e18ba8d3e8..e119cb35fb9 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughTopicListFragmentTest.kt @@ -42,6 +42,7 @@ import org.oppia.android.app.player.state.itemviewmodel.SplitScreenInteractionMo import org.oppia.android.app.recyclerview.RecyclerViewMatcher.Companion.atPositionOnView import org.oppia.android.app.shim.ViewBindingShimModule import org.oppia.android.app.translation.testing.ActivityRecreatorTestModule +import org.oppia.android.app.utility.EspressoTestsMatchers.withDrawable import org.oppia.android.app.utility.OrientationChangeAction.Companion.orientationLandscape import org.oppia.android.data.backends.gae.NetworkConfigProdModule import org.oppia.android.data.backends.gae.NetworkModule @@ -214,6 +215,35 @@ class WalkthroughTopicListFragmentTest { } } + @Test + fun testWalkthroughTopicListFragment_topicCard_lessonThumbnailIsCorrect() { + // TODO(#1523): Add support for orchestrating Glide so that this test can verify the correct + // thumbnail is being loaded through Glide. + launch(createWalkthroughActivityIntent(0)).use { + testCoroutineDispatchers.runCurrent() + onView(withId(R.id.walkthrough_welcome_next_button)).perform(scrollTo(), click()) + testCoroutineDispatchers.runCurrent() + onView(withId(R.id.walkthrough_topic_recycler_view)).perform( + scrollToPosition( + /* position= */ 4 + ) + ) + onView( + atPositionOnView( + recyclerViewId = R.id.walkthrough_topic_recycler_view, + position = 4, + targetViewId = R.id.walkthrough_topic_thumbnail_image_view + ) + ).check( + matches( + withDrawable( + R.drawable.lesson_thumbnail_graphic_duck_and_chicken + ) + ) + ) + } + } + @Test fun testWalkthroughTopicListFragment_topicCard_lessonBackgroundColorIsCorrect() { launch(createWalkthroughActivityIntent(0)).use { @@ -243,7 +273,8 @@ class WalkthroughTopicListFragmentTest { class TestModule { @Provides @LoadLessonProtosFromAssets - fun provideLoadLessonProtosFromAssets(): Boolean = true + // TODO(#5663): Use proto assets in this test once thumbnails load correctly. + fun provideLoadLessonProtosFromAssets(): Boolean = false @Provides @LoadImagesFromAssets