Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -749,6 +749,7 @@ TEST_DEPS = [
"//app/src/main/java/org/oppia/android/app/translation/testing:test_module",
"//app/src/main/java/org/oppia/android/app/utility/math:math_expression_accessibility_util",
"//config/src/java/org/oppia/android/config:all_languages_config",
"//data/src/main/java/org/oppia/android/data/backends/gae:retrofit_prod_module",
"//data/src/main/java/org/oppia/android/data/backends/gae/testing:network_config_test_module",
"//data/src/main/java/org/oppia/android/data/backends/gae/testing:platform_parameter_service_test_orchestrator",
"//domain",
Expand Down Expand Up @@ -827,6 +828,7 @@ TEST_DEPS = [
"//utility/src/main/java/org/oppia/android/util/parser/image:image_transformation",
"//utility/src/main/java/org/oppia/android/util/parser/image:test_glide_image_loader",
"//utility/src/main/java/org/oppia/android/util/profile:profile_name_validator",
"//utility/src/main/java/org/oppia/android/util/properties:prod_module",
]

# App layer tests.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -135,5 +135,6 @@ android_library(
"//utility/src/main/java/org/oppia/android/util/parser/image:glide_image_loader_module",
"//utility/src/main/java/org/oppia/android/util/parser/image:image_parsing_module",
"//utility/src/main/java/org/oppia/android/util/parser/image:repository_glide_module",
"//utility/src/main/java/org/oppia/android/util/properties:prod_module",
],
)
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilProdModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.oppia.android.util.system.OppiaClockModule
import org.oppia.android.util.threading.DispatcherModule
import javax.inject.Singleton
Expand Down Expand Up @@ -98,7 +99,7 @@ import javax.inject.Singleton
PerformanceMetricsConfigurationsModule::class, AlphaBuildFlavorModule::class,
CpuPerformanceSnapshotterModule::class,
PerformanceMetricsAssessorModule::class, ExplorationProgressModule::class,
AuthenticationModule::class,
AuthenticationModule::class, CustomPropertyRetrieverProdModule::class
]
)
interface AlphaApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilProdModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.oppia.android.util.system.OppiaClockModule
import org.oppia.android.util.threading.DispatcherModule
import javax.inject.Singleton
Expand Down Expand Up @@ -98,7 +99,8 @@ import javax.inject.Singleton
PerformanceMetricsConfigurationsModule::class, BetaBuildFlavorModule::class,
ActivityRouterModule::class,
CpuPerformanceSnapshotterModule::class, PerformanceMetricsAssessorModule::class,
ExplorationProgressModule::class, AuthenticationModule::class
ExplorationProgressModule::class, AuthenticationModule::class,
CustomPropertyRetrieverProdModule::class
]
)
interface BetaApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,6 @@ kt_android_library(
"//third_party:com_google_firebase_firebase-common",
"//utility/src/main/java/org/oppia/android/util/logging/firebase:debug_module",
"//utility/src/main/java/org/oppia/android/util/networking:debug_module",
"//utility/src/main/java/org/oppia/android/util/properties:debug_module",
],
)
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverDebugModule
import org.oppia.android.util.system.OppiaClockModule
import org.oppia.android.util.threading.DispatcherModule
import javax.inject.Singleton
Expand Down Expand Up @@ -101,7 +102,8 @@ import javax.inject.Singleton
PerformanceMetricsAssessorModule::class, PerformanceMetricsConfigurationsModule::class,
DeveloperBuildFlavorModule::class,
CpuPerformanceSnapshotterModule::class, ExplorationProgressModule::class,
AuthenticationModule::class, DebugWorkerDebugModule::class
AuthenticationModule::class, DebugWorkerDebugModule::class,
CustomPropertyRetrieverDebugModule::class
]
)
interface DeveloperApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,12 @@ import org.oppia.android.app.application.AbstractOppiaApplication
class DeveloperOppiaApplication : AbstractOppiaApplication(
DaggerDeveloperApplicationComponent::builder,
firebaseAppCheckProviderFactory = DebugAppCheckProviderFactory.getInstance()
)
) {
companion object {
init {
// This enables coroutine debugging tracking which produces much more useful and helpful
// stacktraces and other coroutine metadata context (such as better thread naming).
System.setProperty("kotlinx.coroutines.debug", "on")
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilProdModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.oppia.android.util.system.OppiaClockModule
import org.oppia.android.util.threading.DispatcherModule
import javax.inject.Singleton
Expand Down Expand Up @@ -98,7 +99,8 @@ import javax.inject.Singleton
PerformanceMetricsConfigurationsModule::class, GaBuildFlavorModule::class,
ActivityRouterModule::class,
CpuPerformanceSnapshotterModule::class, PerformanceMetricsAssessorModule::class,
ExplorationProgressModule::class, AuthenticationModule::class
ExplorationProgressModule::class, AuthenticationModule::class,
CustomPropertyRetrieverProdModule::class
]
)
interface GaApplicationComponent : ApplicationComponent {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,21 @@ class ForceDownloadRemoteParametersDialogFragmentPresenter @Inject constructor(

forceDownloadRemoteParametersParametersController
.downloadRemoteParameters().toLiveData().observe(fragment) {
if (it is AsyncResult.Success) {
oppiaLogger.d(
"ForceDownloadRemoteParametersDialog",
"Remote parameters downloaded successfully."
)
handleDownloadComplete(binding)
when (it) {
is AsyncResult.Pending -> {} // Do nothing.
is AsyncResult.Success -> {
oppiaLogger.d(
"ForceDownloadRemoteParametersDialog",
"Remote parameters downloaded successfully."
)
handleDownloadComplete(binding)
}
is AsyncResult.Failure -> {
oppiaLogger.e(
"ForceDownloadRemoteParametersDialog", "Failed to download parameters.", it.error
)
handleDownloadFailed(binding)
}
}
}

Expand Down Expand Up @@ -81,4 +90,10 @@ class ForceDownloadRemoteParametersDialogFragmentPresenter @Inject constructor(
setBackgroundResource(R.drawable.state_button_primary_background)
}
}

private fun handleDownloadFailed(binding: ForceDownloadRemoteParametersDialogFragmentBinding) {
binding.forceDownloadMessage.text =
resourceHandler.getStringInLocale(R.string.force_download_dialog_failed_message_text)
binding.restartButton.visibility = View.GONE
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.oppia.android.util.threading.BackgroundDispatcher
import javax.inject.Inject
import kotlinx.coroutines.supervisorScope

/**
* Injectable factory for creating lifecycle-safe timers that use [LiveData]. This should always be used instead of
Expand All @@ -33,8 +34,10 @@ class LifecycleSafeTimerFactory @Inject constructor(
fun createTimer(timeoutMillis: Long): LiveData<Any> {
val liveData = MutableLiveData<Any>()
backgroundCoroutineScope.launch {
delay(timeoutMillis)
liveData.postValue(Any())
supervisorScope {
delay(timeoutMillis)
liveData.postValue(Any())
}
}
return liveData
}
Expand Down
3 changes: 2 additions & 1 deletion app/src/main/res/values/untranslated_strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@
<string name="force_download_dialog_title_text" translatable="false">Remote Platform Parameters</string>
<string name="force_download_dialog_restart_button_text" translatable="false">Restart</string>
<string name="force_download_dialog_cancel_button_text" translatable="false">Cancel</string>
<string name="force_download_dialog_downloading_message_text" translatable="false">Downloading</string>
<string name="force_download_dialog_downloading_message_text" translatable="false">Downloading…</string>
<string name="force_download_dialog_failed_message_text" translatable="false">Failed to download.</string>
<string name="force_download_dialog_successfully_downloaded_message_text" translatable="false">Successfully Downloaded</string>
<string name="force_download_restart_message_text" translatable="false">Restart app to apply new configuration.</string>
<string name="feature_flags_activity_title" translatable="false">Feature Flags</string>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -1110,6 +1111,7 @@ class AdministratorControlsActivityTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -833,6 +834,7 @@ class AdministratorControlsFragmentTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -461,6 +462,7 @@ class AppVersionActivityTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.oppia.android.util.system.OppiaClock
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
Expand Down Expand Up @@ -236,6 +237,7 @@ class ProfileAndDeviceIdActivityTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import java.security.MessageDigest
Expand Down Expand Up @@ -1150,6 +1151,7 @@ class ProfileAndDeviceIdFragmentTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusTestModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -208,6 +209,7 @@ class ClassroomListActivityTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ import org.oppia.android.util.networking.NetworkConnectionDebugUtilModule
import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -1173,6 +1174,7 @@ class ClassroomListFragmentTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -551,6 +552,7 @@ class CompletedStoryListActivityTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ import org.oppia.android.util.networking.NetworkConnectionDebugUtilModule
import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -223,6 +224,7 @@ class LessonThumbnailImageViewTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.GlideImageLoaderModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -1829,6 +1830,7 @@ class MathExpressionInteractionsViewTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ import org.oppia.android.util.networking.NetworkConnectionDebugUtilModule
import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -192,6 +193,7 @@ class AppCompatCheckBoxBindingAdaptersTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ import org.oppia.android.util.networking.NetworkConnectionDebugUtilModule
import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import java.lang.reflect.Field
Expand Down Expand Up @@ -340,6 +341,7 @@ class CircularProgressIndicatorAdaptersTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ import org.oppia.android.util.networking.NetworkConnectionDebugUtilModule
import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule
import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule
import org.oppia.android.util.parser.image.ImageParsingModule
import org.oppia.android.util.properties.CustomPropertyRetrieverProdModule
import org.robolectric.annotation.Config
import org.robolectric.annotation.LooperMode
import javax.inject.Inject
Expand Down Expand Up @@ -205,6 +206,7 @@ class ColorBindingAdaptersTest {
RatioInputModule::class,
RetrofitModule::class,
RetrofitServiceModule::class,
CustomPropertyRetrieverProdModule::class,
RobolectricModule::class,
SplitScreenInteractionModule::class,
SyncStatusModule::class,
Expand Down
Loading
Loading