Skip to content

Commit

Permalink
Fix #5001: Set Up Firestore and Upload Free Form Responses (#5098)
Browse files Browse the repository at this point in the history
## Explanation
Fixes #5001.
This is PR 5 of 6 Planned PRs.

We are adding a whole new infrastructure for uploading data to Firebase
Firestore.

### Key Changes
- Introducing a `FirestoreDataController` that handles Anonymous
Authentication and logging to Firestore, based on connectivity status.
- Adding the Firestore, Auth and AppCheck dependencies, and reppining
these maven dependencies.
- New event logger for converting event logs to documents(hashmaps) and
uploading them to firestore.
- Introduce AuthenticationController
This new controller provides functionality to retrieve the current
signed in user and also sign in a user anonymously, and can be called
from anywhere. It has a fake that is to be used in tests.
- Adding the newly created `utility` module files to `CODEOWNERS`
- Creating wrappers for FirebaseAuth, and Firestore in order to allow
switching out with fakes in tests and development versions using dagger.

The implementation relies on an AuthenticationWrapper to switch out the
real and fake authentication controllers for testing purposes. To do
this, I created a dagger module to provide the correct listener where
needed, hence the test file changes in the _app_ module tests.

### Technical Decisions
- I opted to create a new cache for events that will eventually be
uploaded to Firestore. This means they will not be accidentally uploaded
to Firebase.
- I opted to use EventLogs and convert them to Documents on the fly as
opposed to creating an entirely new model and logging infrastruture that
is Firestore-specific.
- I calculated the `FirestoreLogStorageCacheSize` based on the [average
length of a Google Review
](https://www.meetsoci.com/resources/insights/brands-franchises/state-of-google-reviews/#:~:text=Average%20review%20length%20ranges%20from,per%20review%20for%20department%20stores.&text=In%20comparison%20to%20other%20local%20platforms%2C%20Google%20reviews%20skew%20positively.)and
the [storage size computation
specs](https://firebase.google.com/docs/firestore/storage-size) defined
by Firebase. I computed it based on 10 profiles on a device over a 3
month period.
- I opted to use existing log upload infrastructure to upload to
firebase, as opposed to creating a whole new upload workflow so I can
reuse the existing test infrastructure as well.

### Dependency Updates
- I added dependencies for Firestore and Auth. The selected versions
were both the earliest compatible with the rest of our existing
dependencies and the latest that didn't cause proguarding issues. There
were incidental updates to transitive dependencies, both major and
minor.

### Proguard
Added new -dontwarns for the following:
`-dontwarn javax.naming.**`
[Reference](https://github.com/firebase/firebase-android-sdk/blob/00d4626/firebase-firestore/proguard.txt.)

## Essential Checklist
<!-- Please tick the relevant boxes by putting an "x" in them. -->
- [x] The PR title and explanation each start with "Fix #bugnum: " (If
this PR fixes part of an issue, prefix the title with "Fix part of
#bugnum: ...".)
- [x] Any changes to
[scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets)
files have their rationale included in the PR explanation.
- [x] The PR follows the [style
guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide).
- [x] The PR does not contain any unnecessary code changes from Android
Studio
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)).
- [x] The PR is made from a branch that's **not** called "develop" and
is up-to-date with "develop".
- [x] The PR is **assigned** to the appropriate reviewers
([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)).

## Upload Screenshots
### Firestore Upload
<img width="1130" alt="Screenshot 2024-01-23 at 11 18 26"
src="https://github.com/oppia/oppia-android/assets/59600948/c555c283-06e5-471d-9084-b9a3b30f8592">

## Querying Synced Firestore Data on BigQuery
<img width="1071" alt="Screenshot 2024-01-23 at 11 26 26"
src="https://github.com/oppia/oppia-android/assets/59600948/3ba78102-5521-4cb7-bd69-6ede5d777e7d">

<img width="1071" alt="Screenshot 2024-01-23 at 11 26 44"
src="https://github.com/oppia/oppia-android/assets/59600948/46579afe-3c7b-4d5d-8bcf-a4e133a5f609">
  • Loading branch information
adhiamboperes authored Jan 26, 2024
1 parent 2648001 commit 164f33b
Show file tree
Hide file tree
Showing 242 changed files with 5,214 additions and 592 deletions.
8 changes: 8 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -93,12 +93,20 @@
# All domain and utility-specific shared test infrastructure.
/testing/src/main/java/org/oppia/android/testing/FakeAnalyticsEventLogger.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/FakeExceptionLogger.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/FakeFirebaseAuthInstanceWrapperImpl.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/FakeFirebaseAuthWrapperImpl.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/FakeFirestoreEventLogger.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/FakeFirestoreInstanceWrapperImpl.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/FakePerformanceMetricAssessor.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/FakePerformanceMetricsEventLogger.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/TestAuthenticationModule.kt @oppia/android-app-infrastructure-reviewers
/testing/src/test/java/org/oppia/android/testing/TestAuthenticationModuleTest.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/TestImageLoaderModule.kt @oppia/android-app-infrastructure-reviewers
/testing/src/main/java/org/oppia/android/testing/TestLogReportingModule.kt @oppia/android-app-infrastructure-reviewers
/testing/src/test/java/org/oppia/android/testing/FakeAnalyticsEventLoggerTest.kt @oppia/android-app-infrastructure-reviewers
/testing/src/test/java/org/oppia/android/testing/FakeExceptionLoggerTest.kt @oppia/android-app-infrastructure-reviewers
/testing/src/test/java/org/oppia/android/testing/FakeFirebaseAuthWrapperImplTest.kt @oppia/android-app-infrastructure-reviewers
/testing/src/test/java/org/oppia/android/testing/FakeFirestoreEventLoggerTest.kt @oppia/android-app-infrastructure-reviewers
/testing/src/test/java/org/oppia/android/testing/FakePerformanceMetricAssessorTest.kt @oppia/android-app-infrastructure-reviewers
/testing/src/test/java/org/oppia/android/testing/FakePerformanceMetricsEventLoggerTest.kt @oppia/android-app-infrastructure-reviewers

Expand Down
10 changes: 9 additions & 1 deletion app/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ kt_android_library(
"//third_party:androidx_databinding_databinding-runtime",
"//utility",
"//utility/src/main/java/org/oppia/android/util/extensions:context_extensions",
"//utility/src/main/java/org/oppia/android/util/logging/firebase:debug_event_logger",
"//utility/src/main/java/org/oppia/android/util/logging/firebase:debug_module",
"//utility/src/main/java/org/oppia/android/util/math:fraction_parser",
"//utility/src/main/java/org/oppia/android/util/networking:network_connection_debug_util",
"//utility/src/main/java/org/oppia/android/util/parser/html:html_parser",
Expand Down Expand Up @@ -1018,4 +1018,12 @@ android_library(
],
)

android_library(
name = "firestore_deps",
exports = [
"//third_party:com_google_auto_value_auto-value-annotations",
"//third_party:org_checkerframework_checker-qual",
],
)

dagger_rules()
2 changes: 2 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,8 @@ dependencies {
'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.guava:guava:28.1-android',
'com.google.protobuf:protobuf-javalite:3.17.3',
'com.github.oppia:CircularImageview:35d08ba88a',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import org.oppia.android.app.shim.ViewBindingShimModule
import org.oppia.android.app.translation.ActivityRecreatorProdModule
import org.oppia.android.data.backends.gae.NetworkConfigProdModule
import org.oppia.android.data.backends.gae.NetworkModule
import org.oppia.android.domain.auth.AuthenticationModule
import org.oppia.android.domain.classify.InteractionsModule
import org.oppia.android.domain.classify.rules.algebraicexpressioninput.AlgebraicExpressionInputModule
import org.oppia.android.domain.classify.rules.continueinteraction.ContinueModule
Expand Down Expand Up @@ -99,6 +100,7 @@ import javax.inject.Singleton
PerformanceMetricsConfigurationsModule::class, AlphaBuildFlavorModule::class,
EventLoggingConfigurationModule::class, CpuPerformanceSnapshotterModule::class,
PerformanceMetricsAssessorModule::class, ExplorationProgressModule::class,
AuthenticationModule::class,
]
)
interface AlphaApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ kt_android_library(
"//app/src/main/java/org/oppia/android/app/application:abstract_application",
"//app/src/main/java/org/oppia/android/app/application:application_component",
"//app/src/main/java/org/oppia/android/app/application:common_application_modules",
"//domain/src/main/java/org/oppia/android/domain/auth:auth_module",
"//utility/src/main/java/org/oppia/android/util/logging:standard_event_logging_configuration_module",
"//utility/src/main/java/org/oppia/android/util/logging/firebase:prod_module",
"//utility/src/main/java/org/oppia/android/util/networking:prod_module",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import org.oppia.android.app.shim.ViewBindingShimModule
import org.oppia.android.app.translation.ActivityRecreatorProdModule
import org.oppia.android.data.backends.gae.NetworkConfigProdModule
import org.oppia.android.data.backends.gae.NetworkModule
import org.oppia.android.domain.auth.AuthenticationModule
import org.oppia.android.domain.classify.InteractionsModule
import org.oppia.android.domain.classify.rules.algebraicexpressioninput.AlgebraicExpressionInputModule
import org.oppia.android.domain.classify.rules.continueinteraction.ContinueModule
Expand Down Expand Up @@ -100,6 +101,7 @@ import javax.inject.Singleton
PerformanceMetricsConfigurationsModule::class, AlphaBuildFlavorModule::class,
KenyaAlphaEventLoggingConfigurationModule::class, CpuPerformanceSnapshotterModule::class,
PerformanceMetricsAssessorModule::class, ExplorationProgressModule::class,
AuthenticationModule::class,
]
)
interface AlphaKenyaApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ kt_android_library(
"//app/src/main/java/org/oppia/android/app/application:application_component",
"//app/src/main/java/org/oppia/android/app/application:common_application_modules",
"//app/src/main/java/org/oppia/android/app/application/alpha:alpha_build_flavor_module",
"//domain/src/main/java/org/oppia/android/domain/auth:auth_module",
"//utility/src/main/java/org/oppia/android/util/logging:kenya_alpha_event_logging_configuration_module",
"//utility/src/main/java/org/oppia/android/util/logging/firebase:prod_module",
"//utility/src/main/java/org/oppia/android/util/networking:prod_module",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ kt_android_library(
"//app/src/main/java/org/oppia/android/app/application:abstract_application",
"//app/src/main/java/org/oppia/android/app/application:application_component",
"//app/src/main/java/org/oppia/android/app/application:common_application_modules",
"//domain/src/main/java/org/oppia/android/domain/auth:auth_module",
"//utility/src/main/java/org/oppia/android/util/logging:standard_event_logging_configuration_module",
"//utility/src/main/java/org/oppia/android/util/logging/firebase:prod_module",
"//utility/src/main/java/org/oppia/android/util/networking:prod_module",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import org.oppia.android.app.shim.ViewBindingShimModule
import org.oppia.android.app.translation.ActivityRecreatorProdModule
import org.oppia.android.data.backends.gae.NetworkConfigProdModule
import org.oppia.android.data.backends.gae.NetworkModule
import org.oppia.android.domain.auth.AuthenticationModule
import org.oppia.android.domain.classify.InteractionsModule
import org.oppia.android.domain.classify.rules.algebraicexpressioninput.AlgebraicExpressionInputModule
import org.oppia.android.domain.classify.rules.continueinteraction.ContinueModule
Expand Down Expand Up @@ -99,7 +100,7 @@ import javax.inject.Singleton
PerformanceMetricsConfigurationsModule::class, BetaBuildFlavorModule::class,
EventLoggingConfigurationModule::class, ActivityRouterModule::class,
CpuPerformanceSnapshotterModule::class, PerformanceMetricsAssessorModule::class,
ExplorationProgressModule::class,
ExplorationProgressModule::class, AuthenticationModule::class,
]
)
interface BetaApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ kt_android_library(
"//app/src/main/java/org/oppia/android/app/application:abstract_application",
"//app/src/main/java/org/oppia/android/app/application:application_component",
"//app/src/main/java/org/oppia/android/app/application:common_application_modules",
"//domain/src/main/java/org/oppia/android/domain/auth:auth_module",
"//utility/src/main/java/org/oppia/android/util/logging:standard_event_logging_configuration_module",
"//utility/src/main/java/org/oppia/android/util/logging/firebase:debug_module",
"//utility/src/main/java/org/oppia/android/util/networking:debug_module",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import org.oppia.android.app.shim.ViewBindingShimModule
import org.oppia.android.app.translation.ActivityRecreatorProdModule
import org.oppia.android.data.backends.gae.NetworkConfigProdModule
import org.oppia.android.data.backends.gae.NetworkModule
import org.oppia.android.domain.auth.AuthenticationModule
import org.oppia.android.domain.classify.InteractionsModule
import org.oppia.android.domain.classify.rules.algebraicexpressioninput.AlgebraicExpressionInputModule
import org.oppia.android.domain.classify.rules.continueinteraction.ContinueModule
Expand Down Expand Up @@ -101,6 +102,7 @@ import javax.inject.Singleton
PerformanceMetricsAssessorModule::class, PerformanceMetricsConfigurationsModule::class,
DeveloperBuildFlavorModule::class, EventLoggingConfigurationModule::class,
CpuPerformanceSnapshotterModule::class, ExplorationProgressModule::class,
AuthenticationModule::class,
]
)
interface DeveloperApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ kt_android_library(
"//app/src/main/java/org/oppia/android/app/application:abstract_application",
"//app/src/main/java/org/oppia/android/app/application:application_component",
"//app/src/main/java/org/oppia/android/app/application:common_application_modules",
"//domain/src/main/java/org/oppia/android/domain/auth:auth_module",
"//utility/src/main/java/org/oppia/android/util/logging:standard_event_logging_configuration_module",
"//utility/src/main/java/org/oppia/android/util/logging/firebase:prod_module",
"//utility/src/main/java/org/oppia/android/util/networking:prod_module",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import org.oppia.android.app.shim.ViewBindingShimModule
import org.oppia.android.app.translation.ActivityRecreatorProdModule
import org.oppia.android.data.backends.gae.NetworkConfigProdModule
import org.oppia.android.data.backends.gae.NetworkModule
import org.oppia.android.domain.auth.AuthenticationModule
import org.oppia.android.domain.classify.InteractionsModule
import org.oppia.android.domain.classify.rules.algebraicexpressioninput.AlgebraicExpressionInputModule
import org.oppia.android.domain.classify.rules.continueinteraction.ContinueModule
Expand Down Expand Up @@ -99,7 +100,7 @@ import javax.inject.Singleton
PerformanceMetricsConfigurationsModule::class, GaBuildFlavorModule::class,
EventLoggingConfigurationModule::class, ActivityRouterModule::class,
CpuPerformanceSnapshotterModule::class, PerformanceMetricsAssessorModule::class,
ExplorationProgressModule::class,
ExplorationProgressModule::class, AuthenticationModule::class,
]
)
interface GaApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import org.oppia.android.app.translation.AppLanguageResourceHandler
import org.oppia.android.app.viewmodel.ObservableViewModel
import org.oppia.android.util.locale.OppiaLocale
import org.oppia.android.util.logging.firebase.DebugAnalyticsEventLogger
import org.oppia.android.util.logging.firebase.DebugFirestoreEventLoggerImpl
import javax.inject.Inject

/**
Expand All @@ -14,11 +15,15 @@ import javax.inject.Inject
@FragmentScope
class ViewEventLogsViewModel @Inject constructor(
debugAnalyticsEventLogger: DebugAnalyticsEventLogger,
debugFirestoreEventLogger: DebugFirestoreEventLoggerImpl,
private val machineLocale: OppiaLocale.MachineLocale,
private val resourceHandler: AppLanguageResourceHandler
) : ObservableViewModel() {
// Retrieves events from cache that are meant to be uploaded to Firebase Firestore.
private val firestoreEvents = debugFirestoreEventLogger.getEventList()

private val eventList = debugAnalyticsEventLogger.getEventList()
// Retrieves events from cache that are meant to be uploaded to Firebase Analytics.
private val analyticsEvents = debugAnalyticsEventLogger.getEventList()

/**
* List of [EventLogItemViewModel] used to populate recyclerview of [ViewEventLogsFragment]
Expand All @@ -29,8 +34,10 @@ class ViewEventLogsViewModel @Inject constructor(
}

private fun processEventLogsList(): List<EventLogItemViewModel> {
return eventList.map {
EventLogItemViewModel(it, machineLocale, resourceHandler)
}.reversed()
return (analyticsEvents + firestoreEvents)
.map {
EventLogItemViewModel(it, machineLocale, resourceHandler)
}
.sortedByDescending { it.eventLog.timestamp }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,11 @@ class SurveyOutroDialogFragmentPresenter @Inject constructor(
private fun endSurveyWithCallback(callback: () -> Unit) {
surveyController.stopSurveySession(surveyCompleted = true).toLiveData().observe(
activity,
{
when (it) {
{ result ->
when (result) {
is AsyncResult.Pending -> oppiaLogger.d("SurveyActivity", "Stopping survey session")
is AsyncResult.Failure -> {
oppiaLogger.d("SurveyActivity", "Failed to stop the survey session")
oppiaLogger.d("SurveyActivity", "Failed to stop the survey session", result.error)
activity.finish() // Can't recover from the session failing to stop.
}
is AsyncResult.Success -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ import org.oppia.android.domain.question.QuestionModule
import org.oppia.android.domain.topic.PrimeTopicAssetsControllerModule
import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule
import org.oppia.android.testing.OppiaTestRule
import org.oppia.android.testing.TestAuthenticationModule
import org.oppia.android.testing.TestLogReportingModule
import org.oppia.android.testing.junit.InitializeDefaultLocaleRule
import org.oppia.android.testing.platformparameter.TestPlatformParameterModule
Expand Down Expand Up @@ -971,7 +972,8 @@ class AdministratorControlsActivityTest {
LoggingIdentifierModule::class, ApplicationLifecycleModule::class,
SyncStatusModule::class, MetricLogSchedulerModule::class, TestingBuildFlavorModule::class,
EventLoggingConfigurationModule::class, ActivityRouterModule::class,
CpuPerformanceSnapshotterModule::class, ExplorationProgressModule::class
CpuPerformanceSnapshotterModule::class, ExplorationProgressModule::class,
TestAuthenticationModule::class
]
)
interface TestApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ import org.oppia.android.domain.question.QuestionModule
import org.oppia.android.domain.topic.PrimeTopicAssetsControllerModule
import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule
import org.oppia.android.testing.OppiaTestRule
import org.oppia.android.testing.TestAuthenticationModule
import org.oppia.android.testing.TestLogReportingModule
import org.oppia.android.testing.junit.InitializeDefaultLocaleRule
import org.oppia.android.testing.platformparameter.TestPlatformParameterModule
Expand Down Expand Up @@ -655,7 +656,8 @@ class AdministratorControlsFragmentTest {
LoggingIdentifierModule::class, ApplicationLifecycleModule::class,
SyncStatusModule::class, MetricLogSchedulerModule::class, TestingBuildFlavorModule::class,
EventLoggingConfigurationModule::class, ActivityRouterModule::class,
CpuPerformanceSnapshotterModule::class, ExplorationProgressModule::class
CpuPerformanceSnapshotterModule::class, ExplorationProgressModule::class,
TestAuthenticationModule::class
]
)
interface TestApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ import org.oppia.android.domain.question.QuestionModule
import org.oppia.android.domain.topic.PrimeTopicAssetsControllerModule
import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule
import org.oppia.android.testing.OppiaTestRule
import org.oppia.android.testing.TestAuthenticationModule
import org.oppia.android.testing.TestLogReportingModule
import org.oppia.android.testing.junit.InitializeDefaultLocaleRule
import org.oppia.android.testing.robolectric.RobolectricModule
Expand Down Expand Up @@ -306,7 +307,8 @@ class AppVersionActivityTest {
LoggingIdentifierModule::class, ApplicationLifecycleModule::class,
SyncStatusModule::class, MetricLogSchedulerModule::class, TestingBuildFlavorModule::class,
EventLoggingConfigurationModule::class, ActivityRouterModule::class,
CpuPerformanceSnapshotterModule::class, ExplorationProgressModule::class
CpuPerformanceSnapshotterModule::class, ExplorationProgressModule::class,
TestAuthenticationModule::class
]
)
interface TestApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ import org.oppia.android.domain.question.QuestionModule
import org.oppia.android.domain.topic.PrimeTopicAssetsControllerModule
import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule
import org.oppia.android.testing.OppiaTestRule
import org.oppia.android.testing.TestAuthenticationModule
import org.oppia.android.testing.TestLogReportingModule
import org.oppia.android.testing.junit.InitializeDefaultLocaleRule
import org.oppia.android.testing.profile.ProfileTestHelper
Expand Down Expand Up @@ -229,7 +230,8 @@ class ProfileAndDeviceIdActivityTest {
MathEquationInputModule::class, MetricLogSchedulerModule::class,
TestingBuildFlavorModule::class, EventLoggingConfigurationModule::class,
ActivityRouterModule::class, CpuPerformanceSnapshotterModule::class,
ApplicationLifecycleModule::class, ExplorationProgressModule::class
ApplicationLifecycleModule::class, ExplorationProgressModule::class,
TestAuthenticationModule::class
]
)
interface TestApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ import org.oppia.android.domain.topic.PrimeTopicAssetsControllerModule
import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule
import org.oppia.android.testing.FakeAnalyticsEventLogger
import org.oppia.android.testing.OppiaTestRule
import org.oppia.android.testing.TestAuthenticationModule
import org.oppia.android.testing.TestLogReportingModule
import org.oppia.android.testing.junit.InitializeDefaultLocaleRule
import org.oppia.android.testing.logging.SyncStatusTestModule
Expand Down Expand Up @@ -1028,7 +1029,8 @@ class ProfileAndDeviceIdFragmentTest {
MathEquationInputModule::class, MetricLogSchedulerModule::class,
TestingBuildFlavorModule::class, EventLoggingConfigurationModule::class,
ActivityRouterModule::class, CpuPerformanceSnapshotterModule::class,
ApplicationLifecycleModule::class, ExplorationProgressModule::class
ApplicationLifecycleModule::class, ExplorationProgressModule::class,
TestAuthenticationModule::class
]
)
interface TestApplicationComponent : ApplicationComponent {
Expand Down
Loading

0 comments on commit 164f33b

Please sign in to comment.