diff --git a/app/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsViewModel.kt b/app/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsViewModel.kt index c273e5e3599..5bd386403e0 100644 --- a/app/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/administratorcontrols/AdministratorControlsViewModel.kt @@ -15,10 +15,11 @@ import org.oppia.android.app.administratorcontrols.administratorcontrolsitemview import org.oppia.android.app.fragment.FragmentScope import org.oppia.android.app.model.DeviceSettings import org.oppia.android.app.model.ProfileId +import org.oppia.android.app.shim.IntentFactoryShim +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** [ViewModel] for [AdministratorControlsFragment]. */ @@ -26,8 +27,9 @@ import javax.inject.Inject class AdministratorControlsViewModel @Inject constructor( private val activity: AppCompatActivity, private val fragment: Fragment, - private val logger: ConsoleLogger, - private val profileManagementController: ProfileManagementController + private val oppiaLogger: OppiaLogger, + private val profileManagementController: ProfileManagementController, + private val IntentFactoryShim: IntentFactoryShim ) { private val routeToProfileListListener = activity as RouteToProfileListListener private val loadProfileListListener = activity as LoadProfileListListener @@ -50,7 +52,7 @@ class AdministratorControlsViewModel @Inject constructor( deviceSettingsResult: AsyncResult ): DeviceSettings { if (deviceSettingsResult.isFailure()) { - logger.e( + oppiaLogger.e( "AdministratorControlsFragment", "Failed to retrieve profile", deviceSettingsResult.getErrorOrNull()!! @@ -74,7 +76,7 @@ class AdministratorControlsViewModel @Inject constructor( itemViewModelList.add( AdministratorControlsDownloadPermissionsViewModel( fragment, - logger, + oppiaLogger, profileManagementController, userProfileId, deviceSettings diff --git a/app/src/main/java/org/oppia/android/app/administratorcontrols/administratorcontrolsitemviewmodel/AdministratorControlsDownloadPermissionsViewModel.kt b/app/src/main/java/org/oppia/android/app/administratorcontrols/administratorcontrolsitemviewmodel/AdministratorControlsDownloadPermissionsViewModel.kt index 6a50c1dc218..2c93d84c7a6 100644 --- a/app/src/main/java/org/oppia/android/app/administratorcontrols/administratorcontrolsitemviewmodel/AdministratorControlsDownloadPermissionsViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/administratorcontrols/administratorcontrolsitemviewmodel/AdministratorControlsDownloadPermissionsViewModel.kt @@ -5,14 +5,14 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.Observer import org.oppia.android.app.model.DeviceSettings import org.oppia.android.app.model.ProfileId +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger /** [ViewModel] for the recycler view in [AdministratorControlsFragment]. */ class AdministratorControlsDownloadPermissionsViewModel( private val fragment: Fragment, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val profileManagementController: ProfileManagementController, private val userProfileId: ProfileId, deviceSettings: DeviceSettings @@ -30,7 +30,7 @@ class AdministratorControlsDownloadPermissionsViewModel( fragment, Observer { if (it.isFailure()) { - logger.e( + oppiaLogger.e( "AdministratorControlsFragment", "Failed to update topic update on wifi permission", it.getErrorOrNull()!! @@ -48,7 +48,7 @@ class AdministratorControlsDownloadPermissionsViewModel( fragment, Observer { if (it.isFailure()) { - logger.e( + oppiaLogger.e( "AdministratorControlsFragment", "Failed to update topic auto update permission", it.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListViewModel.kt b/app/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListViewModel.kt index 7fe6329ccdc..4db3b84d049 100644 --- a/app/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/completedstorylist/CompletedStoryListViewModel.kt @@ -8,10 +8,10 @@ import org.oppia.android.app.model.CompletedStoryList import org.oppia.android.app.model.ProfileId import org.oppia.android.app.shim.IntentFactoryShim import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.StoryHtmlParserEntityType import javax.inject.Inject @@ -21,7 +21,7 @@ class CompletedStoryListViewModel @Inject constructor( private val activity: AppCompatActivity, private val intentFactoryShim: IntentFactoryShim, private val topicController: TopicController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, @StoryHtmlParserEntityType private val entityType: String ) : ObservableViewModel() { /** [internalProfileId] needs to be set before any of the live data members can be accessed. */ @@ -49,7 +49,7 @@ class CompletedStoryListViewModel @Inject constructor( completedStoryListResult: AsyncResult ): CompletedStoryList { if (completedStoryListResult.isFailure()) { - logger.e( + oppiaLogger.e( "CompletedStoryListFragment", "Failed to retrieve CompletedStory list: ", completedStoryListResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/customview/LessonThumbnailImageView.kt b/app/src/main/java/org/oppia/android/app/customview/LessonThumbnailImageView.kt index 3ac0e1b1eee..2027b2141b8 100644 --- a/app/src/main/java/org/oppia/android/app/customview/LessonThumbnailImageView.kt +++ b/app/src/main/java/org/oppia/android/app/customview/LessonThumbnailImageView.kt @@ -9,8 +9,8 @@ import org.oppia.android.R import org.oppia.android.app.model.LessonThumbnail import org.oppia.android.app.model.LessonThumbnailGraphic import org.oppia.android.app.shim.ViewComponentFactory +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.util.gcsresource.DefaultResourceBucketName -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.image.DefaultGcsPrefix import org.oppia.android.util.parser.image.ImageLoader import org.oppia.android.util.parser.image.ImageTransformation @@ -49,7 +49,7 @@ class LessonThumbnailImageView @JvmOverloads constructor( lateinit var gcsPrefix: String @Inject - lateinit var logger: ConsoleLogger + lateinit var oppiaLogger: OppiaLogger fun setEntityId(entityId: String) { this.entityId = entityId @@ -78,7 +78,7 @@ class LessonThumbnailImageView @JvmOverloads constructor( ::resourceBucketName.isInitialized && ::gcsPrefix.isInitialized && ::imageLoader.isInitialized && - ::logger.isInitialized + ::oppiaLogger.isInitialized ) { loadLessonThumbnail() } @@ -127,8 +127,8 @@ class LessonThumbnailImageView @JvmOverloads constructor( .createViewComponent(this).inject(this) checkIfLoadingIsPossible() } catch (e: IllegalStateException) { - if (::logger.isInitialized) - logger.e( + if (::oppiaLogger.isInitialized) + oppiaLogger.e( "LessonThumbnailImageView", "Throws exception on attach to window", e diff --git a/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt index d2abacfe43e..6712904452b 100644 --- a/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt @@ -32,11 +32,11 @@ import org.oppia.android.app.topic.TopicActivity import org.oppia.android.app.viewmodel.ViewModelProvider import org.oppia.android.databinding.DrawerFragmentBinding import org.oppia.android.databinding.NavHeaderNavigationDrawerBinding +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.statusbar.StatusBarColor import javax.inject.Inject @@ -50,7 +50,7 @@ class NavigationDrawerFragmentPresenter @Inject constructor( private val fragment: Fragment, private val profileManagementController: ProfileManagementController, private val topicController: TopicController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val headerViewModelProvider: ViewModelProvider, private val footerViewModelProvider: ViewModelProvider ) : NavigationView.OnNavigationItemSelectedListener { @@ -131,7 +131,7 @@ class NavigationDrawerFragmentPresenter @Inject constructor( private fun processGetProfileResult(profileResult: AsyncResult): Profile { if (profileResult.isFailure()) { - logger.e( + oppiaLogger.e( "NavigationDrawerFragment", "Failed to retrieve profile", profileResult.getErrorOrNull()!! @@ -160,7 +160,7 @@ class NavigationDrawerFragmentPresenter @Inject constructor( completedStoryListResult: AsyncResult ): CompletedStoryList { if (completedStoryListResult.isFailure()) { - logger.e( + oppiaLogger.e( "NavigationDrawerFragment", "Failed to retrieve completed story list", completedStoryListResult.getErrorOrNull()!! @@ -189,7 +189,7 @@ class NavigationDrawerFragmentPresenter @Inject constructor( ongoingTopicListResult: AsyncResult ): OngoingTopicList { if (ongoingTopicListResult.isFailure()) { - logger.e( + oppiaLogger.e( "NavigationDrawerFragment", "Failed to retrieve ongoing topic list", ongoingTopicListResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/home/HomeFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/home/HomeFragmentPresenter.kt index aebeae698a2..03a91d5db3b 100644 --- a/app/src/main/java/org/oppia/android/app/home/HomeFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/home/HomeFragmentPresenter.kt @@ -25,7 +25,6 @@ import org.oppia.android.databinding.WelcomeBinding import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.domain.topic.TopicListController -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.StoryHtmlParserEntityType import org.oppia.android.util.parser.html.TopicHtmlParserEntityType import org.oppia.android.util.system.OppiaClock @@ -39,7 +38,6 @@ class HomeFragmentPresenter @Inject constructor( private val profileManagementController: ProfileManagementController, private val topicListController: TopicListController, private val oppiaClock: OppiaClock, - private val logger: ConsoleLogger, private val oppiaLogger: OppiaLogger, @TopicHtmlParserEntityType private val topicEntityType: String, @StoryHtmlParserEntityType private val storyEntityType: String @@ -60,7 +58,7 @@ class HomeFragmentPresenter @Inject constructor( activity, fragment, oppiaClock, - logger, + oppiaLogger, internalProfileId, profileManagementController, topicListController, diff --git a/app/src/main/java/org/oppia/android/app/home/HomeViewModel.kt b/app/src/main/java/org/oppia/android/app/home/HomeViewModel.kt index 077c5524605..5c943d24c6c 100644 --- a/app/src/main/java/org/oppia/android/app/home/HomeViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/home/HomeViewModel.kt @@ -21,12 +21,12 @@ import org.oppia.android.app.model.PromotedActivityList import org.oppia.android.app.model.PromotedStoryList import org.oppia.android.app.model.TopicList import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.domain.topic.TopicListController import org.oppia.android.util.data.DataProvider import org.oppia.android.util.data.DataProviders.Companion.combineWith import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.StoryHtmlParserEntityType import org.oppia.android.util.parser.html.TopicHtmlParserEntityType import org.oppia.android.util.system.OppiaClock @@ -42,7 +42,7 @@ class HomeViewModel( private val activity: AppCompatActivity, private val fragment: Fragment, private val oppiaClock: OppiaClock, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val internalProfileId: Int, private val profileManagementController: ProfileManagementController, private val topicListController: TopicListController, @@ -95,7 +95,7 @@ class HomeViewModel( val homeItemViewModelListLiveData: LiveData> by lazy { Transformations.map(homeItemViewModelListDataProvider.toLiveData()) { itemListResult -> if (itemListResult.isFailure()) { - logger.e( + oppiaLogger.e( "HomeFragment", "No home fragment available -- failed to retrieve fragment data.", itemListResult.getErrorOrNull() diff --git a/app/src/main/java/org/oppia/android/app/home/promotedlist/ComingSoonTopicsListView.kt b/app/src/main/java/org/oppia/android/app/home/promotedlist/ComingSoonTopicsListView.kt index f87968e5fb9..e2b5dfff7b3 100644 --- a/app/src/main/java/org/oppia/android/app/home/promotedlist/ComingSoonTopicsListView.kt +++ b/app/src/main/java/org/oppia/android/app/home/promotedlist/ComingSoonTopicsListView.kt @@ -10,7 +10,7 @@ import org.oppia.android.app.recyclerview.BindableAdapter import org.oppia.android.app.recyclerview.StartSnapHelper import org.oppia.android.app.shim.ViewBindingShim import org.oppia.android.app.shim.ViewComponentFactory -import org.oppia.android.util.logging.ConsoleLogger +import org.oppia.android.domain.oppialogger.OppiaLogger import javax.inject.Inject private const val COMING_SOON_TOPIC_LIST_VIEW_TAG = "ComingSoonTopicsListView" @@ -29,7 +29,7 @@ class ComingSoonTopicsListView @JvmOverloads constructor( lateinit var bindingInterface: ViewBindingShim @Inject - lateinit var logger: ConsoleLogger + lateinit var oppiaLogger: OppiaLogger override fun onAttachedToWindow() { super.onAttachedToWindow() @@ -60,7 +60,7 @@ class ComingSoonTopicsListView @JvmOverloads constructor( adapter = createAdapter() } if (newDataList == null) { - logger.w(COMING_SOON_TOPIC_LIST_VIEW_TAG, "Failed to resolve upcoming topic list data") + oppiaLogger.w(COMING_SOON_TOPIC_LIST_VIEW_TAG, "Failed to resolve upcoming topic list data") } else { (adapter as BindableAdapter<*>).setDataUnchecked(newDataList) } diff --git a/app/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListView.kt b/app/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListView.kt index da49d87fe92..ecd097f0db2 100644 --- a/app/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListView.kt +++ b/app/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListView.kt @@ -10,7 +10,7 @@ import org.oppia.android.app.recyclerview.BindableAdapter import org.oppia.android.app.recyclerview.StartSnapHelper import org.oppia.android.app.shim.ViewBindingShim import org.oppia.android.app.shim.ViewComponentFactory -import org.oppia.android.util.logging.ConsoleLogger +import org.oppia.android.domain.oppialogger.OppiaLogger import javax.inject.Inject private const val PROMOTED_STORY_LIST_VIEW_TAG = "PromotedStoryListView" @@ -29,7 +29,7 @@ class PromotedStoryListView @JvmOverloads constructor( lateinit var bindingInterface: ViewBindingShim @Inject - lateinit var logger: ConsoleLogger + lateinit var oppiaLogger: OppiaLogger override fun onAttachedToWindow() { super.onAttachedToWindow() @@ -60,7 +60,7 @@ class PromotedStoryListView @JvmOverloads constructor( adapter = createAdapter() } if (newDataList == null) { - logger.w(PROMOTED_STORY_LIST_VIEW_TAG, "Failed to resolve new story list data") + oppiaLogger.w(PROMOTED_STORY_LIST_VIEW_TAG, "Failed to resolve new story list data") } else { (adapter as BindableAdapter<*>).setDataUnchecked(newDataList) } diff --git a/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragmentPresenter.kt index 1fcc6fba433..25a4ff444d5 100755 --- a/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragmentPresenter.kt @@ -18,10 +18,10 @@ import org.oppia.android.app.model.PromotedActivityList import org.oppia.android.app.model.PromotedStory import org.oppia.android.databinding.RecentlyPlayedFragmentBinding import org.oppia.android.domain.exploration.ExplorationDataController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicListController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.StoryHtmlParserEntityType import javax.inject.Inject @@ -30,7 +30,7 @@ import javax.inject.Inject class RecentlyPlayedFragmentPresenter @Inject constructor( private val activity: AppCompatActivity, private val fragment: Fragment, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val explorationDataController: ExplorationDataController, private val topicListController: TopicListController, @StoryHtmlParserEntityType private val entityType: String @@ -223,14 +223,14 @@ class RecentlyPlayedFragmentPresenter @Inject constructor( fragment, Observer> { result -> when { - result.isPending() -> logger.d("RecentlyPlayedFragment", "Loading exploration") - result.isFailure() -> logger.e( + result.isPending() -> oppiaLogger.d("RecentlyPlayedFragment", "Loading exploration") + result.isFailure() -> oppiaLogger.e( "RecentlyPlayedFragment", "Failed to load exploration", result.getErrorOrNull()!! ) else -> { - logger.d("RecentlyPlayedFragment", "Successfully loaded exploration") + oppiaLogger.d("RecentlyPlayedFragment", "Successfully loaded exploration") routeToExplorationListener.routeToExploration( internalProfileId, topicId, diff --git a/app/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListViewModel.kt b/app/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListViewModel.kt index 99610214840..1af69aba548 100644 --- a/app/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListViewModel.kt @@ -8,10 +8,10 @@ import org.oppia.android.app.model.OngoingTopicList import org.oppia.android.app.model.ProfileId import org.oppia.android.app.shim.IntentFactoryShim import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.TopicHtmlParserEntityType import javax.inject.Inject @@ -20,7 +20,7 @@ import javax.inject.Inject class OngoingTopicListViewModel @Inject constructor( private val activity: AppCompatActivity, private val topicController: TopicController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val intentFactoryShim: IntentFactoryShim, @TopicHtmlParserEntityType private val entityType: String ) : ObservableViewModel() { @@ -49,7 +49,7 @@ class OngoingTopicListViewModel @Inject constructor( ongoingTopicListResult: AsyncResult ): OngoingTopicList { if (ongoingTopicListResult.isFailure()) { - logger.e( + oppiaLogger.e( "OngoingTopicListFragment", "Failed to retrieve OngoingTopicList: ", ongoingTopicListResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/options/OptionControlsViewModel.kt b/app/src/main/java/org/oppia/android/app/options/OptionControlsViewModel.kt index 9ed90d769f8..1e0702ace31 100644 --- a/app/src/main/java/org/oppia/android/app/options/OptionControlsViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/options/OptionControlsViewModel.kt @@ -14,10 +14,10 @@ import org.oppia.android.app.model.Profile import org.oppia.android.app.model.ProfileId import org.oppia.android.app.model.ReadingTextSize import org.oppia.android.app.viewmodel.ObservableArrayList +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** [ViewModel] for [OptionsFragment]. */ @@ -25,7 +25,7 @@ import javax.inject.Inject class OptionControlsViewModel @Inject constructor( activity: AppCompatActivity, private val profileManagementController: ProfileManagementController, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) : OptionsItemViewModel() { private val itemViewModelList: ObservableList = ObservableArrayList() private lateinit var profileId: ProfileId @@ -71,7 +71,7 @@ class OptionControlsViewModel @Inject constructor( private fun processProfileResult(profile: AsyncResult): Profile { if (profile.isFailure()) { - logger.e("OptionsFragment", "Failed to retrieve profile", profile.getErrorOrNull()!!) + oppiaLogger.e("OptionsFragment", "Failed to retrieve profile", profile.getErrorOrNull()!!) } return profile.getOrDefault(Profile.getDefaultInstance()) } diff --git a/app/src/main/java/org/oppia/android/app/options/OptionsFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/options/OptionsFragmentPresenter.kt index 71fce5b942f..750b48a1bf0 100644 --- a/app/src/main/java/org/oppia/android/app/options/OptionsFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/options/OptionsFragmentPresenter.kt @@ -19,9 +19,9 @@ import org.oppia.android.databinding.OptionAppLanguageBinding import org.oppia.android.databinding.OptionAudioLanguageBinding import org.oppia.android.databinding.OptionStoryTextSizeBinding import org.oppia.android.databinding.OptionsFragmentBinding +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import java.security.InvalidParameterException import javax.inject.Inject @@ -45,7 +45,7 @@ class OptionsFragmentPresenter @Inject constructor( private val fragment: Fragment, private val profileManagementController: ProfileManagementController, private val viewModelProvider: ViewModelProvider, - private val consoleLogger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) { private lateinit var binding: OptionsFragmentBinding private lateinit var recyclerViewAdapter: RecyclerView.Adapter<*> @@ -196,7 +196,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { readingTextSize = ReadingTextSize.SMALL_TEXT_SIZE } else { - consoleLogger.e( + oppiaLogger.e( READING_TEXT_SIZE_TAG, "$READING_TEXT_SIZE_ERROR: small text size", it.getErrorOrNull() @@ -215,7 +215,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { readingTextSize = ReadingTextSize.MEDIUM_TEXT_SIZE } else { - consoleLogger.e( + oppiaLogger.e( READING_TEXT_SIZE_TAG, "$READING_TEXT_SIZE_ERROR: medium text size", it.getErrorOrNull() @@ -234,7 +234,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { readingTextSize = ReadingTextSize.LARGE_TEXT_SIZE } else { - consoleLogger.e( + oppiaLogger.e( READING_TEXT_SIZE_TAG, "$READING_TEXT_SIZE_ERROR: large text size", it.getErrorOrNull() @@ -254,7 +254,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { readingTextSize = ReadingTextSize.EXTRA_LARGE_TEXT_SIZE } else { - consoleLogger.e( + oppiaLogger.e( READING_TEXT_SIZE_TAG, "$READING_TEXT_SIZE_ERROR: extra large text size", it.getErrorOrNull() @@ -279,7 +279,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { appLanguage = AppLanguage.ENGLISH_APP_LANGUAGE } else { - consoleLogger.e( + oppiaLogger.e( APP_LANGUAGE_TAG, "$APP_LANGUAGE_ERROR: English", it.getErrorOrNull() @@ -298,7 +298,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { appLanguage = AppLanguage.HINDI_APP_LANGUAGE } else { - consoleLogger.e( + oppiaLogger.e( APP_LANGUAGE_TAG, "$APP_LANGUAGE_ERROR: Hindi", it.getErrorOrNull() @@ -317,7 +317,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { appLanguage = AppLanguage.CHINESE_APP_LANGUAGE } else { - consoleLogger.e( + oppiaLogger.e( APP_LANGUAGE_TAG, "$APP_LANGUAGE_ERROR: Chinese", it.getErrorOrNull() @@ -336,7 +336,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { appLanguage = AppLanguage.FRENCH_APP_LANGUAGE } else { - consoleLogger.e( + oppiaLogger.e( APP_LANGUAGE_TAG, "$APP_LANGUAGE_ERROR: French", it.getErrorOrNull() @@ -362,7 +362,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { audioLanguage = AudioLanguage.NO_AUDIO } else { - consoleLogger.e( + oppiaLogger.e( AUDIO_LANGUAGE_TAG, "$AUDIO_LANGUAGE_ERROR: No Audio", it.getErrorOrNull() @@ -381,7 +381,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { audioLanguage = AudioLanguage.ENGLISH_AUDIO_LANGUAGE } else { - consoleLogger.e( + oppiaLogger.e( AUDIO_LANGUAGE_TAG, "$AUDIO_LANGUAGE_ERROR: English", it.getErrorOrNull() @@ -400,7 +400,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { audioLanguage = AudioLanguage.HINDI_AUDIO_LANGUAGE } else { - consoleLogger.e( + oppiaLogger.e( AUDIO_LANGUAGE_TAG, "$AUDIO_LANGUAGE_ERROR: Hindi", it.getErrorOrNull() @@ -419,7 +419,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { audioLanguage = AudioLanguage.CHINESE_AUDIO_LANGUAGE } else { - consoleLogger.e( + oppiaLogger.e( AUDIO_LANGUAGE_TAG, "$AUDIO_LANGUAGE_ERROR: Chinese", it.getErrorOrNull() @@ -438,7 +438,7 @@ class OptionsFragmentPresenter @Inject constructor( if (it.isSuccess()) { audioLanguage = AudioLanguage.FRENCH_AUDIO_LANGUAGE } else { - consoleLogger.e( + oppiaLogger.e( AUDIO_LANGUAGE_TAG, "$AUDIO_LANGUAGE_ERROR: French", it.getErrorOrNull() diff --git a/app/src/main/java/org/oppia/android/app/player/audio/AudioFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/player/audio/AudioFragmentPresenter.kt index fdfe6a99afa..9a7981a96f6 100755 --- a/app/src/main/java/org/oppia/android/app/player/audio/AudioFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/player/audio/AudioFragmentPresenter.kt @@ -24,10 +24,10 @@ import org.oppia.android.app.player.audio.AudioViewModel.UiAudioPlayStatus import org.oppia.android.app.viewmodel.ViewModelProvider import org.oppia.android.databinding.AudioFragmentBinding import org.oppia.android.domain.audio.CellularAudioDialogController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.networking.NetworkConnectionUtil import javax.inject.Inject @@ -45,7 +45,7 @@ class AudioFragmentPresenter @Inject constructor( private val profileManagementController: ProfileManagementController, private val networkConnectionUtil: NetworkConnectionUtil, private val viewModelProvider: ViewModelProvider, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) { var userIsSeeking = false var userProgress = 0 @@ -142,7 +142,7 @@ class AudioFragmentPresenter @Inject constructor( private fun processGetProfileResult(profileResult: AsyncResult): String { if (profileResult.isFailure()) { - logger.e("AudioFragment", "Failed to retrieve profile", profileResult.getErrorOrNull()!!) + oppiaLogger.e("AudioFragment", "Failed to retrieve profile", profileResult.getErrorOrNull()!!) } return getAudioLanguage(profileResult.getOrDefault(Profile.getDefaultInstance()).audioLanguage) } diff --git a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt index a98d484d9f5..b1459f746b6 100755 --- a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt @@ -22,9 +22,9 @@ import org.oppia.android.app.utility.FontScaleConfigurationUtil import org.oppia.android.app.viewmodel.ViewModelProvider import org.oppia.android.databinding.ExplorationActivityBinding import org.oppia.android.domain.exploration.ExplorationDataController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject const val TAG_EXPLORATION_FRAGMENT = "TAG_EXPLORATION_FRAGMENT" @@ -38,7 +38,7 @@ class ExplorationActivityPresenter @Inject constructor( private val explorationDataController: ExplorationDataController, private val viewModelProvider: ViewModelProvider, private val fontScaleConfigurationUtil: FontScaleConfigurationUtil, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) { private lateinit var explorationToolbar: Toolbar private lateinit var explorationToolbarTitle: TextView @@ -202,14 +202,14 @@ class ExplorationActivityPresenter @Inject constructor( activity, Observer> { when { - it.isPending() -> logger.d("ExplorationActivity", "Stopping exploration") - it.isFailure() -> logger.e( + it.isPending() -> oppiaLogger.d("ExplorationActivity", "Stopping exploration") + it.isFailure() -> oppiaLogger.e( "ExplorationActivity", "Failed to stop exploration", it.getErrorOrNull()!! ) else -> { - logger.d("ExplorationActivity", "Successfully stopped exploration") + oppiaLogger.d("ExplorationActivity", "Successfully stopped exploration") backPressActivitySelector(backflowScreen) (activity as ExplorationActivity).finish() } @@ -261,7 +261,7 @@ class ExplorationActivityPresenter @Inject constructor( /** Helper for subscribeToExploration. */ private fun processExploration(ephemeralStateResult: AsyncResult): Exploration { if (ephemeralStateResult.isFailure()) { - logger.e( + oppiaLogger.e( "ExplorationActivity", "Failed to retrieve answer outcome", ephemeralStateResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationManagerFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationManagerFragmentPresenter.kt index 75ac70b10fe..28dc4156aac 100644 --- a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationManagerFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationManagerFragmentPresenter.kt @@ -9,17 +9,17 @@ import org.oppia.android.app.fragment.FragmentScope import org.oppia.android.app.model.Profile import org.oppia.android.app.model.ProfileId import org.oppia.android.app.model.ReadingTextSize +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The presenter for [ExplorationManagerFragment]. */ @FragmentScope class ExplorationManagerFragmentPresenter @Inject constructor( private val profileManagementController: ProfileManagementController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val activity: AppCompatActivity, private val fragment: Fragment ) { @@ -46,7 +46,7 @@ class ExplorationManagerFragmentPresenter @Inject constructor( readingTextSizeResult: AsyncResult ): ReadingTextSize { if (readingTextSizeResult.isFailure()) { - logger.e( + oppiaLogger.e( "ExplorationManagerFragment", "Failed to retrieve profile", readingTextSizeResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/player/exploration/HintsAndSolutionExplorationManagerFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/player/exploration/HintsAndSolutionExplorationManagerFragmentPresenter.kt index 8c95c949cef..7b71557a0bd 100644 --- a/app/src/main/java/org/oppia/android/app/player/exploration/HintsAndSolutionExplorationManagerFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/player/exploration/HintsAndSolutionExplorationManagerFragmentPresenter.kt @@ -7,16 +7,16 @@ import androidx.lifecycle.Observer import org.oppia.android.app.fragment.FragmentScope import org.oppia.android.app.model.EphemeralState import org.oppia.android.domain.exploration.ExplorationProgressController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The presenter for [HintsAndSolutionExplorationManagerFragment]. */ @FragmentScope class HintsAndSolutionExplorationManagerFragmentPresenter @Inject constructor( private val activity: AppCompatActivity, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val explorationProgressController: ExplorationProgressController ) { @@ -41,7 +41,7 @@ class HintsAndSolutionExplorationManagerFragmentPresenter @Inject constructor( private fun processEphemeralStateResult(result: AsyncResult) { if (result.isFailure()) { - logger.e( + oppiaLogger.e( "HintsAndSolutionExplorationManagerFragmentPresenter", "Failed to retrieve ephemeral state", result.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/player/state/StateFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/player/state/StateFragmentPresenter.kt index a7af47200fa..d65b746fba2 100755 --- a/app/src/main/java/org/oppia/android/app/player/state/StateFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/player/state/StateFragmentPresenter.kt @@ -37,11 +37,11 @@ import org.oppia.android.app.utility.SplitScreenManager import org.oppia.android.app.viewmodel.ViewModelProvider import org.oppia.android.databinding.StateFragmentBinding import org.oppia.android.domain.exploration.ExplorationProgressController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.StoryProgressController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData import org.oppia.android.util.gcsresource.DefaultResourceBucketName -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.ExplorationHtmlParserEntityType import org.oppia.android.util.system.OppiaClock import javax.inject.Inject @@ -62,7 +62,7 @@ class StateFragmentPresenter @Inject constructor( private val viewModelProvider: ViewModelProvider, private val explorationProgressController: ExplorationProgressController, private val storyProgressController: StoryProgressController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, @DefaultResourceBucketName private val resourceBucketName: String, private val assemblerBuilderFactory: StatePlayerRecyclerViewAssembler.Builder.Factory, private val splitScreenManager: SplitScreenManager, @@ -303,7 +303,7 @@ class StateFragmentPresenter @Inject constructor( private fun processEphemeralStateResult(result: AsyncResult) { if (result.isFailure()) { - logger.e( + oppiaLogger.e( "StateFragment", "Failed to retrieve ephemeral state", result.getErrorOrNull()!! @@ -442,7 +442,7 @@ class StateFragmentPresenter @Inject constructor( ephemeralStateResult: AsyncResult ): AnswerOutcome { if (ephemeralStateResult.isFailure()) { - logger.e( + oppiaLogger.e( "StateFragment", "Failed to retrieve answer outcome", ephemeralStateResult.getErrorOrNull()!! @@ -454,7 +454,7 @@ class StateFragmentPresenter @Inject constructor( /** Helper for [subscribeToHint]. */ private fun processHint(hintResult: AsyncResult): Hint { if (hintResult.isFailure()) { - logger.e( + oppiaLogger.e( "StateFragment", "Failed to retrieve Hint", hintResult.getErrorOrNull()!! @@ -466,7 +466,7 @@ class StateFragmentPresenter @Inject constructor( /** Helper for [subscribeToSolution]. */ private fun processSolution(solutionResult: AsyncResult): Solution { if (solutionResult.isFailure()) { - logger.e( + oppiaLogger.e( "StateFragment", "Failed to retrieve Solution", solutionResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/player/state/testing/StateFragmentTestActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/player/state/testing/StateFragmentTestActivityPresenter.kt index 6a366fda7f4..10d3a8a411c 100644 --- a/app/src/main/java/org/oppia/android/app/player/state/testing/StateFragmentTestActivityPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/player/state/testing/StateFragmentTestActivityPresenter.kt @@ -12,11 +12,11 @@ import org.oppia.android.app.player.state.StateFragment import org.oppia.android.app.viewmodel.ViewModelProvider import org.oppia.android.databinding.StateFragmentTestActivityBinding import org.oppia.android.domain.exploration.ExplorationDataController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TEST_EXPLORATION_ID_2 import org.oppia.android.domain.topic.TEST_STORY_ID_0 import org.oppia.android.domain.topic.TEST_TOPIC_ID_0 import org.oppia.android.util.data.AsyncResult -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject private const val TEST_ACTIVITY_TAG = "TestActivity" @@ -26,7 +26,7 @@ private const val TEST_ACTIVITY_TAG = "TestActivity" class StateFragmentTestActivityPresenter @Inject constructor( private val activity: AppCompatActivity, private val explorationDataController: ExplorationDataController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val viewModelProvider: ViewModelProvider ) { fun handleOnCreate() { @@ -83,14 +83,14 @@ class StateFragmentTestActivityPresenter @Inject constructor( activity, Observer> { result -> when { - result.isPending() -> logger.d(TEST_ACTIVITY_TAG, "Loading exploration") - result.isFailure() -> logger.e( + result.isPending() -> oppiaLogger.d(TEST_ACTIVITY_TAG, "Loading exploration") + result.isFailure() -> oppiaLogger.e( TEST_ACTIVITY_TAG, "Failed to load exploration", result.getErrorOrNull()!! ) else -> { - logger.d(TEST_ACTIVITY_TAG, "Successfully loaded exploration") + oppiaLogger.d(TEST_ACTIVITY_TAG, "Successfully loaded exploration") initializeExploration(profileId, topicId, storyId, explorationId) } } diff --git a/app/src/main/java/org/oppia/android/app/profile/PinPasswordViewModel.kt b/app/src/main/java/org/oppia/android/app/profile/PinPasswordViewModel.kt index d932a4b9586..72a7620bce1 100644 --- a/app/src/main/java/org/oppia/android/app/profile/PinPasswordViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/profile/PinPasswordViewModel.kt @@ -7,17 +7,17 @@ import org.oppia.android.app.activity.ActivityScope import org.oppia.android.app.model.Profile import org.oppia.android.app.model.ProfileId import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The ViewModel for [PinPasswordActivity]. */ @ActivityScope class PinPasswordViewModel @Inject constructor( private val profileManagementController: ProfileManagementController, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) : ObservableViewModel() { private lateinit var profileId: ProfileId val showError = ObservableField(false) @@ -40,7 +40,7 @@ class PinPasswordViewModel @Inject constructor( private fun processGetProfileResult(profileResult: AsyncResult): Profile { if (profileResult.isFailure()) { - logger.e( + oppiaLogger.e( "PinPasswordActivity", "Failed to retrieve profile", profileResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt index 0d16f9ee9b4..d8529f5b540 100644 --- a/app/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/profile/ProfileChooserFragmentPresenter.kt @@ -27,7 +27,6 @@ import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.statusbar.StatusBarColor import org.oppia.android.util.system.OppiaClock import javax.inject.Inject @@ -65,7 +64,6 @@ class ProfileChooserFragmentPresenter @Inject constructor( private val fragment: Fragment, private val activity: AppCompatActivity, private val context: Context, - private val logger: ConsoleLogger, private val viewModelProvider: ViewModelProvider, private val profileManagementController: ProfileManagementController, private val oppiaLogger: OppiaLogger, @@ -127,7 +125,7 @@ class ProfileChooserFragmentPresenter @Inject constructor( wasProfileEverBeenAddedResult: AsyncResult ): Boolean { if (wasProfileEverBeenAddedResult.isFailure()) { - logger.e( + oppiaLogger.e( "ProfileChooserFragment", "Failed to retrieve the information on wasProfileEverBeenAdded", wasProfileEverBeenAddedResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/profile/ProfileChooserViewModel.kt b/app/src/main/java/org/oppia/android/app/profile/ProfileChooserViewModel.kt index 0d7a130ae98..12421a27986 100644 --- a/app/src/main/java/org/oppia/android/app/profile/ProfileChooserViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/profile/ProfileChooserViewModel.kt @@ -9,10 +9,10 @@ import org.oppia.android.app.model.ProfileAvatar import org.oppia.android.app.model.ProfileChooserUiModel import org.oppia.android.app.model.ProfileId import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import java.util.Locale import javax.inject.Inject @@ -20,7 +20,7 @@ import javax.inject.Inject @FragmentScope class ProfileChooserViewModel @Inject constructor( fragment: Fragment, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val profileManagementController: ProfileManagementController ) : ObservableViewModel() { @@ -42,7 +42,7 @@ class ProfileChooserViewModel @Inject constructor( profilesResult: AsyncResult> ): List { if (profilesResult.isFailure()) { - logger.e( + oppiaLogger.e( "ProfileChooserViewModel", "Failed to retrieve the list of profiles", profilesResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivityPresenter.kt index ce558cae16b..3750b8081b5 100644 --- a/app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivityPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureActivityPresenter.kt @@ -11,10 +11,10 @@ import org.oppia.android.app.model.Profile import org.oppia.android.app.model.ProfileAvatar import org.oppia.android.app.model.ProfileId import org.oppia.android.databinding.ProfilePictureActivityBinding +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.statusbar.StatusBarColor import javax.inject.Inject @@ -23,7 +23,7 @@ import javax.inject.Inject class ProfilePictureActivityPresenter @Inject constructor( private val activity: AppCompatActivity, private val profileManagementController: ProfileManagementController, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) { private lateinit var profilePictureActivityViewModel: ProfilePictureActivityViewModel private lateinit var profileId: ProfileId @@ -68,7 +68,7 @@ class ProfilePictureActivityPresenter @Inject constructor( private fun processGetProfileResult(profileResult: AsyncResult): Profile { if (profileResult.isFailure()) { - logger.e( + oppiaLogger.e( "ProfilePictureActivity", "Failed to retrieve profile", profileResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressViewModel.kt b/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressViewModel.kt index 6661e838506..be98b34ac99 100644 --- a/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressViewModel.kt @@ -15,12 +15,12 @@ import org.oppia.android.app.model.ProfileId import org.oppia.android.app.model.PromotedActivityList import org.oppia.android.app.shim.IntentFactoryShim import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.domain.topic.TopicController import org.oppia.android.domain.topic.TopicListController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.StoryHtmlParserEntityType import javax.inject.Inject @@ -33,7 +33,7 @@ class ProfileProgressViewModel @Inject constructor( private val profileManagementController: ProfileManagementController, private val topicController: TopicController, private val topicListController: TopicListController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, @StoryHtmlParserEntityType private val entityType: String ) { /** [internalProfileId] needs to be set before any of the live data members can be accessed. */ @@ -73,7 +73,7 @@ class ProfileProgressViewModel @Inject constructor( private fun processGetProfileResult(profileResult: AsyncResult): Profile { if (profileResult.isFailure()) { - logger.e( + oppiaLogger.e( "ProfileProgressFragment", "Failed to retrieve profile", profileResult.getErrorOrNull()!! @@ -114,7 +114,7 @@ class ProfileProgressViewModel @Inject constructor( promotedActivityListtResult: AsyncResult ): PromotedActivityList { if (promotedActivityListtResult.isFailure()) { - logger.e( + oppiaLogger.e( "ProfileProgressFragment", "Failed to retrieve promoted story list: ", promotedActivityListtResult.getErrorOrNull()!! @@ -168,7 +168,7 @@ class ProfileProgressViewModel @Inject constructor( completedStoryListResult: AsyncResult ): CompletedStoryList { if (completedStoryListResult.isFailure()) { - logger.e( + oppiaLogger.e( "ProfileProgressFragment", "Failed to retrieve completed story list", completedStoryListResult.getErrorOrNull()!! @@ -197,7 +197,7 @@ class ProfileProgressViewModel @Inject constructor( ongoingTopicListResult: AsyncResult ): OngoingTopicList { if (ongoingTopicListResult.isFailure()) { - logger.e( + oppiaLogger.e( "ProfileProgressFragment", "Failed to retrieve ongoing topic list", ongoingTopicListResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivityPresenter.kt index 15ff8d40aa7..b9e1828d12c 100644 --- a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivityPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditActivityPresenter.kt @@ -11,16 +11,16 @@ import org.oppia.android.app.activity.ActivityScope import org.oppia.android.app.administratorcontrols.AdministratorControlsActivity import org.oppia.android.app.model.ProfileId import org.oppia.android.databinding.ProfileEditActivityBinding +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The presenter for [ProfileEditActivity]. */ @ActivityScope class ProfileEditActivityPresenter @Inject constructor( private val activity: AppCompatActivity, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val profileManagementController: ProfileManagementController ) { @@ -86,7 +86,7 @@ class ProfileEditActivityPresenter @Inject constructor( activity, Observer { if (it.isFailure()) { - logger.e( + oppiaLogger.e( "ProfileEditActivityPresenter", "Failed to updated allow download access", it.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditViewModel.kt b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditViewModel.kt index afceab2b050..ff3094b69ac 100644 --- a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditViewModel.kt @@ -7,16 +7,16 @@ import org.oppia.android.app.activity.ActivityScope import org.oppia.android.app.model.Profile import org.oppia.android.app.model.ProfileId import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The ViewModel for [ProfileEditActivity]. */ @ActivityScope class ProfileEditViewModel @Inject constructor( - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val profileManagementController: ProfileManagementController ) : ObservableViewModel() { private lateinit var profileId: ProfileId @@ -41,7 +41,7 @@ class ProfileEditViewModel @Inject constructor( private fun processGetProfileResult(profileResult: AsyncResult): Profile { if (profileResult.isFailure()) { - logger.e( + oppiaLogger.e( "ProfileEditViewModel", "Failed to retrieve the profile with ID: ${profileId.internalId}", profileResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileListViewModel.kt b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileListViewModel.kt index 3f0431aae5a..9a227e42d21 100644 --- a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileListViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileListViewModel.kt @@ -5,17 +5,17 @@ import androidx.lifecycle.Transformations import org.oppia.android.app.activity.ActivityScope import org.oppia.android.app.model.Profile import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import java.util.Locale import javax.inject.Inject /** The ViewModel for [ProfileListActivity]. */ @ActivityScope class ProfileListViewModel @Inject constructor( - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val profileManagementController: ProfileManagementController ) : ObservableViewModel() { val profiles: LiveData> by lazy { @@ -26,7 +26,7 @@ class ProfileListViewModel @Inject constructor( private fun processGetProfilesResult(profilesResult: AsyncResult>): List { if (profilesResult.isFailure()) { - logger.e( + oppiaLogger.e( "ProfileListViewModel", "Failed to retrieve the list of profiles", profilesResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt index e63ee034020..d5a0c68a9ba 100644 --- a/app/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/splash/SplashActivityPresenter.kt @@ -13,10 +13,10 @@ import org.oppia.android.app.model.AppStartupState.StartupMode import org.oppia.android.app.onboarding.OnboardingActivity import org.oppia.android.app.profile.ProfileChooserActivity import org.oppia.android.domain.onboarding.AppStartupStateController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.PrimeTopicAssetsController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject private const val AUTO_DEPRECATION_NOTICE_DIALOG_FRAGMENT_TAG = "auto_deprecation_notice_dialog" @@ -25,7 +25,7 @@ private const val AUTO_DEPRECATION_NOTICE_DIALOG_FRAGMENT_TAG = "auto_deprecatio @ActivityScope class SplashActivityPresenter @Inject constructor( private val activity: AppCompatActivity, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val appStartupStateController: AppStartupStateController, private val primeTopicAssetsController: PrimeTopicAssetsController ) { @@ -87,7 +87,7 @@ class SplashActivityPresenter @Inject constructor( startupStateResult: AsyncResult ): StartupMode { if (startupStateResult.isFailure()) { - logger.e( + oppiaLogger.e( "SplashActivity", "Failed to retrieve startup state", startupStateResult.getErrorOrNull() diff --git a/app/src/main/java/org/oppia/android/app/story/StoryViewModel.kt b/app/src/main/java/org/oppia/android/app/story/StoryViewModel.kt index ee1f842bcee..49aa6847a7d 100644 --- a/app/src/main/java/org/oppia/android/app/story/StoryViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/story/StoryViewModel.kt @@ -12,10 +12,10 @@ import org.oppia.android.app.story.storyitemviewmodel.StoryChapterSummaryViewMod import org.oppia.android.app.story.storyitemviewmodel.StoryHeaderViewModel import org.oppia.android.app.story.storyitemviewmodel.StoryItemViewModel import org.oppia.android.domain.exploration.ExplorationDataController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.StoryHtmlParserEntityType import javax.inject.Inject @@ -25,7 +25,7 @@ class StoryViewModel @Inject constructor( private val fragment: Fragment, private val topicController: TopicController, private val explorationDataController: ExplorationDataController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, @StoryHtmlParserEntityType val entityType: String ) { private var internalProfileId: Int = -1 @@ -69,7 +69,7 @@ class StoryViewModel @Inject constructor( private fun processStoryResult(storyResult: AsyncResult): StorySummary { if (storyResult.isFailure()) { - logger.e( + oppiaLogger.e( "StoryFragment", "Failed to retrieve Story: ", storyResult.getErrorOrNull()!! @@ -104,7 +104,7 @@ class StoryViewModel @Inject constructor( fragment, explorationSelectionListener, explorationDataController, - logger, + oppiaLogger, internalProfileId, topicId, storyId, diff --git a/app/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt b/app/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt index 01102414a78..5ad88a9aae9 100644 --- a/app/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt @@ -6,8 +6,8 @@ import org.oppia.android.app.model.ChapterSummary import org.oppia.android.app.model.LessonThumbnail import org.oppia.android.app.story.ExplorationSelectionListener import org.oppia.android.domain.exploration.ExplorationDataController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.util.data.AsyncResult -import org.oppia.android.util.logging.ConsoleLogger private const val STORY_VIEWER_TAG = "StoryViewer" @@ -17,7 +17,7 @@ class StoryChapterSummaryViewModel( private val fragment: Fragment, private val explorationSelectionListener: ExplorationSelectionListener, private val explorationDataController: ExplorationDataController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, val internalProfileId: Int, val topicId: String, val storyId: String, @@ -38,14 +38,14 @@ class StoryChapterSummaryViewModel( fragment, Observer> { result -> when { - result.isPending() -> logger.d(STORY_VIEWER_TAG, "Loading exploration") - result.isFailure() -> logger.e( + result.isPending() -> oppiaLogger.d(STORY_VIEWER_TAG, "Loading exploration") + result.isFailure() -> oppiaLogger.e( STORY_VIEWER_TAG, "Failed to load exploration", result.getErrorOrNull()!! ) else -> { - logger.d(STORY_VIEWER_TAG, "Successfully loaded exploration: $explorationId") + oppiaLogger.d(STORY_VIEWER_TAG, "Successfully loaded exploration: $explorationId") explorationSelectionListener.selectExploration( internalProfileId, topicId, diff --git a/app/src/main/java/org/oppia/android/app/testing/ExplorationTestActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/testing/ExplorationTestActivityPresenter.kt index d321d00f008..41f716776ba 100644 --- a/app/src/main/java/org/oppia/android/app/testing/ExplorationTestActivityPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/testing/ExplorationTestActivityPresenter.kt @@ -7,11 +7,11 @@ import org.oppia.android.R import org.oppia.android.app.activity.ActivityScope import org.oppia.android.app.home.RouteToExplorationListener import org.oppia.android.domain.exploration.ExplorationDataController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TEST_EXPLORATION_ID_2 import org.oppia.android.domain.topic.TEST_STORY_ID_0 import org.oppia.android.domain.topic.TEST_TOPIC_ID_0 import org.oppia.android.util.data.AsyncResult -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject private const val INTERNAL_PROFILE_ID = 0 @@ -25,7 +25,7 @@ private const val TAG_EXPLORATION_TEST_ACTIVITY = "ExplorationTestActivity" class ExplorationTestActivityPresenter @Inject constructor( private val activity: AppCompatActivity, private val explorationDataController: ExplorationDataController, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) { private val routeToExplorationListener = activity as RouteToExplorationListener @@ -45,14 +45,14 @@ class ExplorationTestActivityPresenter @Inject constructor( activity, Observer> { result -> when { - result.isPending() -> logger.d(TAG_EXPLORATION_TEST_ACTIVITY, "Loading exploration") - result.isFailure() -> logger.e( + result.isPending() -> oppiaLogger.d(TAG_EXPLORATION_TEST_ACTIVITY, "Loading exploration") + result.isFailure() -> oppiaLogger.e( TAG_EXPLORATION_TEST_ACTIVITY, "Failed to load exploration", result.getErrorOrNull()!! ) else -> { - logger.d(TAG_EXPLORATION_TEST_ACTIVITY, "Successfully loaded exploration") + oppiaLogger.d(TAG_EXPLORATION_TEST_ACTIVITY, "Successfully loaded exploration") routeToExplorationListener.routeToExploration( INTERNAL_PROFILE_ID, TOPIC_ID, diff --git a/app/src/main/java/org/oppia/android/app/topic/TopicViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/TopicViewModel.kt index c62be25f06e..8b20690bcb4 100644 --- a/app/src/main/java/org/oppia/android/app/topic/TopicViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/topic/TopicViewModel.kt @@ -6,17 +6,17 @@ import org.oppia.android.app.fragment.FragmentScope import org.oppia.android.app.model.ProfileId import org.oppia.android.app.model.Topic import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The ObservableViewModel for [TopicFragment]. */ @FragmentScope class TopicViewModel @Inject constructor( private val topicController: TopicController, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) : ObservableViewModel() { private var internalProfileId: Int = -1 private lateinit var topicId: String @@ -46,7 +46,7 @@ class TopicViewModel @Inject constructor( private fun processTopicResult(topicResult: AsyncResult): Topic { if (topicResult.isFailure()) { - logger.e( + oppiaLogger.e( "TopicFragment", "Failed to retrieve Topic: ", topicResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardViewModel.kt index 8e7402c7b79..217db3f5ff6 100644 --- a/app/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardViewModel.kt @@ -5,16 +5,16 @@ import androidx.lifecycle.Transformations import org.oppia.android.app.fragment.FragmentScope import org.oppia.android.app.model.ConceptCard import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** [ObservableViewModel] for concept card, providing rich text and worked examples */ @FragmentScope class ConceptCardViewModel @Inject constructor( private val topicController: TopicController, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) : ObservableViewModel() { private lateinit var skillId: String @@ -36,7 +36,7 @@ class ConceptCardViewModel @Inject constructor( private fun processConceptCardResult(conceptCardResult: AsyncResult): ConceptCard { if (conceptCardResult.isFailure()) { - logger.e( + oppiaLogger.e( "ConceptCardFragment", "Failed to retrieve Concept Card", conceptCardResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/topic/info/TopicInfoFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/topic/info/TopicInfoFragmentPresenter.kt index d905c6103ad..aff985c771c 100644 --- a/app/src/main/java/org/oppia/android/app/topic/info/TopicInfoFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/topic/info/TopicInfoFragmentPresenter.kt @@ -13,11 +13,11 @@ import org.oppia.android.app.model.ProfileId import org.oppia.android.app.model.Topic import org.oppia.android.app.viewmodel.ViewModelProvider import org.oppia.android.databinding.TopicInfoFragmentBinding +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData import org.oppia.android.util.gcsresource.DefaultResourceBucketName -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.HtmlParser import javax.inject.Inject @@ -26,7 +26,7 @@ import javax.inject.Inject class TopicInfoFragmentPresenter @Inject constructor( private val fragment: Fragment, private val viewModelProvider: ViewModelProvider, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val topicController: TopicController, private val htmlParserFactory: HtmlParser.Factory, @DefaultResourceBucketName private val resourceBucketName: String @@ -97,7 +97,7 @@ class TopicInfoFragmentPresenter @Inject constructor( private fun processTopicResult(topic: AsyncResult): Topic { if (topic.isFailure()) { - logger.e("TopicInfoFragment", "Failed to retrieve topic", topic.getErrorOrNull()!!) + oppiaLogger.e("TopicInfoFragment", "Failed to retrieve topic", topic.getErrorOrNull()!!) } return topic.getOrDefault(Topic.getDefaultInstance()) } diff --git a/app/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentPresenter.kt index 01550443c56..86825af3282 100644 --- a/app/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentPresenter.kt @@ -16,10 +16,10 @@ import org.oppia.android.app.model.Topic import org.oppia.android.app.topic.RouteToStoryListener import org.oppia.android.databinding.TopicLessonsFragmentBinding import org.oppia.android.domain.exploration.ExplorationDataController +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The presenter for [TopicLessonsFragment]. */ @@ -27,7 +27,7 @@ import javax.inject.Inject class TopicLessonsFragmentPresenter @Inject constructor( activity: AppCompatActivity, private val fragment: Fragment, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val explorationDataController: ExplorationDataController, private val topicController: TopicController ) : StorySummarySelector, ChapterSummarySelector { @@ -126,7 +126,7 @@ class TopicLessonsFragmentPresenter @Inject constructor( private fun processTopicResult(topic: AsyncResult): Topic { if (topic.isFailure()) { - logger.e( + oppiaLogger.e( "TopicLessonsFragment", "Failed to retrieve topic", topic.getErrorOrNull()!! @@ -162,14 +162,14 @@ class TopicLessonsFragmentPresenter @Inject constructor( fragment, Observer> { result -> when { - result.isPending() -> logger.d("TopicLessonsFragment", "Loading exploration") - result.isFailure() -> logger.e( + result.isPending() -> oppiaLogger.d("TopicLessonsFragment", "Loading exploration") + result.isFailure() -> oppiaLogger.e( "TopicLessonsFragment", "Failed to load exploration", result.getErrorOrNull()!! ) else -> { - logger.d("TopicLessonsFragment", "Successfully loaded exploration") + oppiaLogger.d("TopicLessonsFragment", "Successfully loaded exploration") routeToExplorationListener.routeToExploration( internalProfileId, topicId, diff --git a/app/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeFragmentPresenter.kt index cb28f8b774c..edee0861394 100644 --- a/app/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeFragmentPresenter.kt @@ -18,7 +18,7 @@ import org.oppia.android.databinding.TopicPracticeFooterViewBinding import org.oppia.android.databinding.TopicPracticeFragmentBinding import org.oppia.android.databinding.TopicPracticeHeaderViewBinding import org.oppia.android.databinding.TopicPracticeSubtopicBinding -import org.oppia.android.util.logging.ConsoleLogger +import org.oppia.android.domain.oppialogger.OppiaLogger import javax.inject.Inject /** The presenter for [TopicPracticeFragment]. */ @@ -26,7 +26,7 @@ import javax.inject.Inject class TopicPracticeFragmentPresenter @Inject constructor( private val activity: AppCompatActivity, private val fragment: Fragment, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val viewModelProvider: ViewModelProvider ) : SubtopicSelector { private lateinit var binding: TopicPracticeFragmentBinding @@ -127,7 +127,7 @@ class TopicPracticeFragmentPresenter @Inject constructor( binding.isSubmitButtonActive = selectedSubtopicIdList.isNotEmpty() binding.topicPracticeStartButton.setOnClickListener { val skillIdList = ArrayList(skillIdHashMap.values) - logger.d("TopicPracticeFragmentPresenter", "Skill Ids = " + skillIdList.flatten()) + oppiaLogger.d("TopicPracticeFragmentPresenter", "Skill Ids = " + skillIdList.flatten()) routeToQuestionPlayerListener.routeToQuestionPlayer( skillIdList.flatten() as ArrayList ) diff --git a/app/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeViewModel.kt index e908e37cba8..1cb085fcf87 100644 --- a/app/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/topic/practice/TopicPracticeViewModel.kt @@ -10,16 +10,16 @@ import org.oppia.android.app.topic.practice.practiceitemviewmodel.TopicPracticeH import org.oppia.android.app.topic.practice.practiceitemviewmodel.TopicPracticeItemViewModel import org.oppia.android.app.topic.practice.practiceitemviewmodel.TopicPracticeSubtopicViewModel import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** [ObservableViewModel] for [TopicPracticeFragment]. */ @FragmentScope class TopicPracticeViewModel @Inject constructor( - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val topicController: TopicController ) : ObservableViewModel() { private val itemViewModelList: MutableList = ArrayList() @@ -53,7 +53,7 @@ class TopicPracticeViewModel @Inject constructor( private fun processTopicResult(topic: AsyncResult): Topic { if (topic.isFailure()) { - logger.e( + oppiaLogger.e( "TopicPracticeFragment", "Failed to retrieve topic", topic.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/topic/questionplayer/HintsAndSolutionQuestionManagerFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/topic/questionplayer/HintsAndSolutionQuestionManagerFragmentPresenter.kt index b75aadfd0a9..a11f1809887 100644 --- a/app/src/main/java/org/oppia/android/app/topic/questionplayer/HintsAndSolutionQuestionManagerFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/topic/questionplayer/HintsAndSolutionQuestionManagerFragmentPresenter.kt @@ -6,17 +6,17 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.Observer import org.oppia.android.app.fragment.FragmentScope import org.oppia.android.app.model.EphemeralQuestion +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.question.QuestionAssessmentProgressController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The presenter for [HintsAndSolutionQuestionManagerFragment]. */ @FragmentScope class HintsAndSolutionQuestionManagerFragmentPresenter @Inject constructor( private val activity: AppCompatActivity, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val questionProgressController: QuestionAssessmentProgressController ) { @@ -41,7 +41,7 @@ class HintsAndSolutionQuestionManagerFragmentPresenter @Inject constructor( private fun processEphemeralStateResult(result: AsyncResult) { if (result.isFailure()) { - logger.e( + oppiaLogger.e( "HintsAndSolutionQuestionManagerFragmentPresenter", "Failed to retrieve ephemeral state", result.getErrorOrNull()!! ) diff --git a/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityPresenter.kt index a4f927c79f4..286a363222d 100644 --- a/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityPresenter.kt @@ -7,9 +7,9 @@ import androidx.lifecycle.Observer import org.oppia.android.R import org.oppia.android.app.activity.ActivityScope import org.oppia.android.databinding.QuestionPlayerActivityBinding +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.question.QuestionTrainingController import org.oppia.android.util.data.AsyncResult -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject const val TAG_QUESTION_PLAYER_FRAGMENT = "TAG_QUESTION_PLAYER_FRAGMENT" @@ -20,7 +20,7 @@ private const val TAG_HINTS_AND_SOLUTION_QUESTION_MANAGER = "HINTS_AND_SOLUTION_ class QuestionPlayerActivityPresenter @Inject constructor( private val activity: AppCompatActivity, private val questionTrainingController: QuestionTrainingController, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) { fun handleOnCreate() { val binding = DataBindingUtil.setContentView( @@ -91,12 +91,12 @@ class QuestionPlayerActivityPresenter @Inject constructor( activity, Observer { when { - it.isPending() -> logger.d( + it.isPending() -> oppiaLogger.d( "QuestionPlayerActivity", "Starting training session" ) it.isFailure() -> { - logger.e( + oppiaLogger.e( "QuestionPlayerActivity", "Failed to start training session", it.getErrorOrNull()!! @@ -104,7 +104,7 @@ class QuestionPlayerActivityPresenter @Inject constructor( activity.finish() // Can't recover from the session failing to start. } else -> { - logger.d("QuestionPlayerActivity", "Successfully started training session") + oppiaLogger.d("QuestionPlayerActivity", "Successfully started training session") callback() } } @@ -117,12 +117,12 @@ class QuestionPlayerActivityPresenter @Inject constructor( activity, Observer> { when { - it.isPending() -> logger.d( + it.isPending() -> oppiaLogger.d( "QuestionPlayerActivity", "Stopping training session" ) it.isFailure() -> { - logger.e( + oppiaLogger.e( "QuestionPlayerActivity", "Failed to stop training session", it.getErrorOrNull()!! @@ -130,7 +130,7 @@ class QuestionPlayerActivityPresenter @Inject constructor( activity.finish() // Can't recover from the session failing to stop. } else -> { - logger.d("QuestionPlayerActivity", "Successfully stopped training session") + oppiaLogger.d("QuestionPlayerActivity", "Successfully stopped training session") callback() } } diff --git a/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerFragmentPresenter.kt index 462815348c5..1783ae49bd8 100644 --- a/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerFragmentPresenter.kt @@ -36,7 +36,6 @@ import org.oppia.android.domain.question.QuestionAssessmentProgressController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData import org.oppia.android.util.gcsresource.QuestionResourceBucketName -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.system.OppiaClock import javax.inject.Inject @@ -48,9 +47,8 @@ class QuestionPlayerFragmentPresenter @Inject constructor( private val context: Context, private val viewModelProvider: ViewModelProvider, private val questionAssessmentProgressController: QuestionAssessmentProgressController, - private val oppiaLogger: OppiaLogger, private val oppiaClock: OppiaClock, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, @QuestionResourceBucketName private val resourceBucketName: String, private val assemblerBuilderFactory: StatePlayerRecyclerViewAssembler.Builder.Factory, private val splitScreenManager: SplitScreenManager @@ -213,7 +211,7 @@ class QuestionPlayerFragmentPresenter @Inject constructor( private fun processEphemeralQuestionResult(result: AsyncResult) { if (result.isFailure()) { - logger.e( + oppiaLogger.e( "QuestionPlayerFragment", "Failed to retrieve ephemeral question", result.getErrorOrNull()!! @@ -351,7 +349,7 @@ class QuestionPlayerFragmentPresenter @Inject constructor( /** Helper for [subscribeToHint]. */ private fun processHint(hintResult: AsyncResult): Hint { if (hintResult.isFailure()) { - logger.e( + oppiaLogger.e( "QuestionPlayerFragment", "Failed to retrieve Hint", hintResult.getErrorOrNull()!! @@ -363,7 +361,7 @@ class QuestionPlayerFragmentPresenter @Inject constructor( /** Helper for [subscribeToSolution]. */ private fun processSolution(solutionResult: AsyncResult): Solution { if (solutionResult.isFailure()) { - logger.e( + oppiaLogger.e( "QuestionPlayerFragment", "Failed to retrieve Solution", solutionResult.getErrorOrNull()!! @@ -377,7 +375,7 @@ class QuestionPlayerFragmentPresenter @Inject constructor( answeredQuestionOutcomeResult: AsyncResult ): AnsweredQuestionOutcome { if (answeredQuestionOutcomeResult.isFailure()) { - logger.e( + oppiaLogger.e( "QuestionPlayerFragment", "Failed to retrieve answer outcome", answeredQuestionOutcomeResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionViewModel.kt index d895d117696..0849e5f4f7f 100755 --- a/app/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/topic/revision/TopicRevisionViewModel.kt @@ -8,10 +8,10 @@ import org.oppia.android.app.model.ProfileId import org.oppia.android.app.model.Topic import org.oppia.android.app.topic.revision.revisionitemviewmodel.TopicRevisionItemViewModel import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.TopicHtmlParserEntityType import javax.inject.Inject @@ -19,7 +19,7 @@ import javax.inject.Inject @FragmentScope class TopicRevisionViewModel @Inject constructor( private val topicController: TopicController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, val fragment: Fragment, @TopicHtmlParserEntityType private val entityType: String ) : ObservableViewModel() { @@ -55,7 +55,7 @@ class TopicRevisionViewModel @Inject constructor( private fun processTopicResult(topic: AsyncResult): Topic { if (topic.isFailure()) { - logger.e( + oppiaLogger.e( "TopicRevisionFragment", "Failed to retrieve topic", topic.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityPresenter.kt index ef2dae9e071..8fde49846eb 100644 --- a/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityPresenter.kt @@ -14,16 +14,16 @@ import org.oppia.android.app.help.HelpActivity import org.oppia.android.app.model.RevisionCard import org.oppia.android.app.options.OptionsActivity import org.oppia.android.databinding.RevisionCardActivityBinding +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The presenter for [RevisionCardActivity]. */ @ActivityScope class RevisionCardActivityPresenter @Inject constructor( private val activity: AppCompatActivity, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val topicController: TopicController ) { @@ -120,7 +120,7 @@ class RevisionCardActivityPresenter @Inject constructor( revisionCardResult: AsyncResult ): String { if (revisionCardResult.isFailure()) { - logger.e( + oppiaLogger.e( "RevisionCardActivity", "Failed to retrieve Revision Card", revisionCardResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardViewModel.kt index 342afeba466..bf4e2db00d7 100755 --- a/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardViewModel.kt @@ -7,9 +7,9 @@ import androidx.lifecycle.Transformations import org.oppia.android.app.fragment.FragmentScope import org.oppia.android.app.model.RevisionCard import org.oppia.android.app.viewmodel.ObservableViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** [ObservableViewModel] for revision card, providing rich text and worked examples */ @@ -17,7 +17,7 @@ import javax.inject.Inject class RevisionCardViewModel @Inject constructor( activity: AppCompatActivity, private val topicController: TopicController, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) : ObservableViewModel() { private lateinit var topicId: String private var subtopicId: Int = 0 @@ -54,7 +54,7 @@ class RevisionCardViewModel @Inject constructor( revisionCardResult: AsyncResult ): RevisionCard { if (revisionCardResult.isFailure()) { - logger.e( + oppiaLogger.e( "RevisionCardFragment", "Failed to retrieve Revision Card", revisionCardResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentPresenter.kt index 2a0189200c4..9ffc15d0465 100644 --- a/app/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentPresenter.kt @@ -14,10 +14,10 @@ import org.oppia.android.app.model.ProfileId import org.oppia.android.app.model.Topic import org.oppia.android.app.walkthrough.WalkthroughActivity import org.oppia.android.databinding.WalkthroughFinalFragmentBinding +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The presenter for [WalkthroughFinalFragment]. */ @@ -25,7 +25,7 @@ import javax.inject.Inject class WalkthroughFinalFragmentPresenter @Inject constructor( private val activity: AppCompatActivity, private val fragment: Fragment, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val topicController: TopicController ) : WalkthroughEndPageChanger { private lateinit var binding: WalkthroughFinalFragmentBinding @@ -92,7 +92,7 @@ class WalkthroughFinalFragmentPresenter @Inject constructor( private fun processTopicResult(topic: AsyncResult): Topic { if (topic.isFailure()) { - logger.e( + oppiaLogger.e( "WalkthroughFinalFragment", "Failed to retrieve topic", topic.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/walkthrough/topiclist/WalkthroughTopicViewModel.kt b/app/src/main/java/org/oppia/android/app/walkthrough/topiclist/WalkthroughTopicViewModel.kt index 37c1076721a..490e3971b75 100644 --- a/app/src/main/java/org/oppia/android/app/walkthrough/topiclist/WalkthroughTopicViewModel.kt +++ b/app/src/main/java/org/oppia/android/app/walkthrough/topiclist/WalkthroughTopicViewModel.kt @@ -8,10 +8,10 @@ import org.oppia.android.app.model.TopicList import org.oppia.android.app.viewmodel.ObservableViewModel import org.oppia.android.app.walkthrough.topiclist.topiclistviewmodel.WalkthroughTopicHeaderViewModel import org.oppia.android.app.walkthrough.topiclist.topiclistviewmodel.WalkthroughTopicSummaryViewModel +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.topic.TopicListController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.TopicHtmlParserEntityType import javax.inject.Inject @@ -19,7 +19,7 @@ import javax.inject.Inject class WalkthroughTopicViewModel @Inject constructor( private val fragment: Fragment, private val topicListController: TopicListController, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, @TopicHtmlParserEntityType private val topicEntityType: String ) : ObservableViewModel() { val walkthroughTopicViewModelLiveData: LiveData> by lazy { @@ -36,7 +36,7 @@ class WalkthroughTopicViewModel @Inject constructor( private fun processTopicListResult(topicSummaryListResult: AsyncResult): TopicList { if (topicSummaryListResult.isFailure()) { - logger.e( + oppiaLogger.e( "WalkthroughTopicSummaryListFragment", "Failed to retrieve TopicSummary list: ", topicSummaryListResult.getErrorOrNull()!! diff --git a/app/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentPresenter.kt index 33ce14f16df..069a6a5b16e 100644 --- a/app/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentPresenter.kt +++ b/app/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentPresenter.kt @@ -17,10 +17,10 @@ import org.oppia.android.app.walkthrough.WalkthroughFragmentChangeListener import org.oppia.android.app.walkthrough.WalkthroughPageChanger import org.oppia.android.app.walkthrough.WalkthroughPages import org.oppia.android.databinding.WalkthroughWelcomeFragmentBinding +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.profile.ProfileManagementController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProviders.Companion.toLiveData -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** The presenter for [WalkthroughWelcomeFragment]. */ @@ -29,7 +29,7 @@ class WalkthroughWelcomeFragmentPresenter @Inject constructor( private val activity: AppCompatActivity, private val fragment: Fragment, private val profileManagementController: ProfileManagementController, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) : WalkthroughPageChanger { private lateinit var binding: WalkthroughWelcomeFragmentBinding private val routeToNextPage = activity as WalkthroughFragmentChangeListener @@ -86,7 +86,7 @@ class WalkthroughWelcomeFragmentPresenter @Inject constructor( private fun processGetProfileResult(profileResult: AsyncResult): Profile { if (profileResult.isFailure()) { - logger.e( + oppiaLogger.e( "WalkthroughWelcomeFragment", "Failed to retrieve profile", profileResult.getErrorOrNull()!! diff --git a/domain/src/main/java/org/oppia/android/domain/audio/AudioPlayerController.kt b/domain/src/main/java/org/oppia/android/domain/audio/AudioPlayerController.kt index 59b9d220c48..8e4e8c14f67 100644 --- a/domain/src/main/java/org/oppia/android/domain/audio/AudioPlayerController.kt +++ b/domain/src/main/java/org/oppia/android/domain/audio/AudioPlayerController.kt @@ -11,11 +11,11 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Job import kotlinx.coroutines.delay import kotlinx.coroutines.launch +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.oppialogger.exceptions.ExceptionsController import org.oppia.android.util.caching.AssetRepository import org.oppia.android.util.caching.CacheAssetsLocally import org.oppia.android.util.data.AsyncResult -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.threading.BackgroundDispatcher import java.io.IOException import java.util.concurrent.TimeUnit @@ -32,7 +32,7 @@ import kotlin.concurrent.withLock */ @Singleton class AudioPlayerController @Inject constructor( - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val assetRepository: AssetRepository, private val exceptionsController: ExceptionsController, @BackgroundDispatcher private val backgroundDispatcher: CoroutineDispatcher, @@ -184,7 +184,7 @@ class AudioPlayerController @Inject constructor( mediaPlayer.prepareAsync() } catch (e: IOException) { exceptionsController.logNonFatalException(e) - logger.e("AudioPlayerController", "Failed to set data source for media player", e) + oppiaLogger.e("AudioPlayerController", "Failed to set data source for media player", e) } playProgress?.value = AsyncResult.pending() } diff --git a/domain/src/main/java/org/oppia/android/domain/audio/CellularAudioDialogController.kt b/domain/src/main/java/org/oppia/android/domain/audio/CellularAudioDialogController.kt index eb34410f16b..6aafbc4e30c 100644 --- a/domain/src/main/java/org/oppia/android/domain/audio/CellularAudioDialogController.kt +++ b/domain/src/main/java/org/oppia/android/domain/audio/CellularAudioDialogController.kt @@ -2,8 +2,8 @@ package org.oppia.android.domain.audio import org.oppia.android.app.model.CellularDataPreference import org.oppia.android.data.persistence.PersistentCacheStore +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.util.data.DataProvider -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject import javax.inject.Singleton @@ -11,7 +11,7 @@ import javax.inject.Singleton @Singleton class CellularAudioDialogController @Inject constructor( cacheStoreFactory: PersistentCacheStore.Factory, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) { private val cellularDataStore = cacheStoreFactory.create( "cellular_data_preference", @@ -34,7 +34,7 @@ class CellularAudioDialogController @Inject constructor( it.toBuilder().setHideDialog(hideDialog).build() }.invokeOnCompletion { it?.let { - logger.e( + oppiaLogger.e( "DOMAIN", "Failed when storing the user's preference to hide cellular data dialog.", it @@ -49,7 +49,7 @@ class CellularAudioDialogController @Inject constructor( it.toBuilder().setUseCellularData(useData).build() }.invokeOnCompletion { it?.let { - logger.e( + oppiaLogger.e( "DOMAIN", "Failed when storing the user's preference to use cellular data.", it diff --git a/domain/src/main/java/org/oppia/android/domain/onboarding/AppStartupStateController.kt b/domain/src/main/java/org/oppia/android/domain/onboarding/AppStartupStateController.kt index 06063a5f889..99121402a4a 100644 --- a/domain/src/main/java/org/oppia/android/domain/onboarding/AppStartupStateController.kt +++ b/domain/src/main/java/org/oppia/android/domain/onboarding/AppStartupStateController.kt @@ -4,9 +4,9 @@ import org.oppia.android.app.model.AppStartupState import org.oppia.android.app.model.AppStartupState.StartupMode import org.oppia.android.app.model.OnboardingState import org.oppia.android.data.persistence.PersistentCacheStore +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.util.data.DataProvider import org.oppia.android.util.data.DataProviders.Companion.transform -import org.oppia.android.util.logging.ConsoleLogger import java.text.ParseException import java.text.SimpleDateFormat import java.util.Date @@ -20,7 +20,7 @@ private const val APP_STARTUP_STATE_DATA_PROVIDER_ID = "app_startup_state_data_p @Singleton class AppStartupStateController @Inject constructor( cacheStoreFactory: PersistentCacheStore.Factory, - private val consoleLogger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val expirationMetaDataRetriever: ExpirationMetaDataRetriever ) { private val expirationDateFormat by lazy { SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()) } @@ -39,7 +39,7 @@ class AppStartupStateController @Inject constructor( // markOnboardingFlowCompleted(). onboardingFlowStore.primeCacheAsync().invokeOnCompletion { it?.let { - consoleLogger.e( + oppiaLogger.e( "DOMAIN", "Failed to prime cache ahead of LiveData conversion for user onboarding data.", it @@ -58,7 +58,7 @@ class AppStartupStateController @Inject constructor( it.toBuilder().setAlreadyOnboardedApp(true).build() }.invokeOnCompletion { it?.let { - consoleLogger.e( + oppiaLogger.e( "DOMAIN", "Failed when storing that the user already onboarded the app.", it ) } @@ -97,7 +97,7 @@ class AppStartupStateController @Inject constructor( return try { expirationDateFormat.parse(dateString) } catch (e: ParseException) { - consoleLogger.e("DOMAIN", "Failed to parse date string: $dateString", e) + oppiaLogger.e("DOMAIN", "Failed to parse date string: $dateString", e) null } } diff --git a/domain/src/main/java/org/oppia/android/domain/oppialogger/OppiaLogger.kt b/domain/src/main/java/org/oppia/android/domain/oppialogger/OppiaLogger.kt index 065a904ac09..36e9ba2e875 100644 --- a/domain/src/main/java/org/oppia/android/domain/oppialogger/OppiaLogger.kt +++ b/domain/src/main/java/org/oppia/android/domain/oppialogger/OppiaLogger.kt @@ -3,11 +3,13 @@ package org.oppia.android.domain.oppialogger import org.oppia.android.app.model.EventLog import org.oppia.android.app.model.EventLog.EventAction import org.oppia.android.domain.oppialogger.analytics.AnalyticsController +import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject /** Logger that handles event logging. */ class OppiaLogger @Inject constructor( - private val analyticsController: AnalyticsController + private val analyticsController: AnalyticsController, + private val consoleLogger: ConsoleLogger ) { /** Logs transition events. See [AnalyticsController.logTransitionEvent] for more context. */ fun logTransitionEvent( @@ -27,6 +29,71 @@ class OppiaLogger @Inject constructor( analyticsController.logClickEvent(timestamp, eventAction, eventContext) } + /** Logs a verbose message with the specified tag. See [ConsoleLogger.v] for more context */ + fun v(tag: String, msg: String) { + consoleLogger.v(tag, msg) + } + + /** + * Logs a verbose message with the specified tag, message and exception. See [ConsoleLogger.v] + * for more context + */ + fun v(tag: String, msg: String, tr: Throwable) { + consoleLogger.v(tag, msg, tr) + } + + /** Logs a debug message with the specified tag. See [ConsoleLogger.d] for more context */ + fun d(tag: String, msg: String) { + consoleLogger.d(tag, msg) + } + + /** + * Logs a debug message with the specified tag, message and exception. See [ConsoleLogger.d] for + * more context + */ + fun d(tag: String, msg: String, tr: Throwable) { + consoleLogger.d(tag, msg, tr) + } + + /** Logs an info message with the specified tag. See [ConsoleLogger.i] for more context */ + fun i(tag: String, msg: String) { + consoleLogger.i(tag, msg) + } + + /** + * Logs an info message with the specified tag, message and exception. See [ConsoleLogger.i] for + * more context + */ + fun i(tag: String, msg: String, tr: Throwable) { + consoleLogger.i(tag, msg, tr) + } + + /** Logs a warn message with the specified tag. See [ConsoleLogger.w] for more context */ + fun w(tag: String, msg: String) { + consoleLogger.w(tag, msg) + } + + /** + * Logs a warn message with the specified tag, message and exception. See [ConsoleLogger.w] for + * more context + */ + fun w(tag: String, msg: String, tr: Throwable) { + consoleLogger.w(tag, msg, tr) + } + + /** Logs an error message with the specified tag. See [ConsoleLogger.e] for more context */ + fun e(tag: String, msg: String) { + consoleLogger.e(tag, msg) + } + + /** + * Logs an error message with the specified tag, message and exception. See [ConsoleLogger.e] for + * more context + */ + fun e(tag: String, msg: String, tr: Throwable?) { + consoleLogger.e(tag, msg, tr) + } + /** Returns the context of an event related to exploration. */ fun createExplorationContext( topicId: String, diff --git a/domain/src/main/java/org/oppia/android/domain/profile/ProfileManagementController.kt b/domain/src/main/java/org/oppia/android/domain/profile/ProfileManagementController.kt index 81d6e747cd7..ce4761cfba4 100644 --- a/domain/src/main/java/org/oppia/android/domain/profile/ProfileManagementController.kt +++ b/domain/src/main/java/org/oppia/android/domain/profile/ProfileManagementController.kt @@ -17,13 +17,13 @@ import org.oppia.android.app.model.ProfileDatabase import org.oppia.android.app.model.ProfileId import org.oppia.android.app.model.ReadingTextSize import org.oppia.android.data.persistence.PersistentCacheStore +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.oppialogger.exceptions.ExceptionsController import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProvider import org.oppia.android.util.data.DataProviders import org.oppia.android.util.data.DataProviders.Companion.transform import org.oppia.android.util.data.DataProviders.Companion.transformAsync -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.profile.DirectoryManagementUtil import org.oppia.android.util.system.OppiaClock import java.io.File @@ -61,7 +61,7 @@ private const val UPDATE_AUDIO_LANGUAGE_PROVIDER_ID = /** Controller for retrieving, adding, updating, and deleting profiles. */ @Singleton class ProfileManagementController @Inject constructor( - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, cacheStoreFactory: PersistentCacheStore.Factory, private val dataProviders: DataProviders, private val context: Context, @@ -122,7 +122,7 @@ class ProfileManagementController @Inject constructor( init { profileDataStore.primeCacheAsync().invokeOnCompletion { it?.let { - logger.e( + oppiaLogger.e( "DOMAIN", "Failed to prime cache ahead of LiveData conversion for ProfileManagementController.", it @@ -710,7 +710,7 @@ class ProfileManagementController @Inject constructor( } } catch (e: Exception) { exceptionsController.logNonFatalException(e) - logger.e( + oppiaLogger.e( "ProfileManagementController", "Failed to store user submitted avatar image", e diff --git a/domain/src/main/java/org/oppia/android/domain/topic/PrimeTopicAssetsControllerImpl.kt b/domain/src/main/java/org/oppia/android/domain/topic/PrimeTopicAssetsControllerImpl.kt index 0d916bc592c..a356b026cee 100644 --- a/domain/src/main/java/org/oppia/android/domain/topic/PrimeTopicAssetsControllerImpl.kt +++ b/domain/src/main/java/org/oppia/android/domain/topic/PrimeTopicAssetsControllerImpl.kt @@ -41,13 +41,13 @@ import org.oppia.android.app.model.SubtitledHtml import org.oppia.android.app.model.Subtopic import org.oppia.android.app.model.Topic import org.oppia.android.domain.exploration.ExplorationRetriever +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.domain.question.QuestionRetriever import org.oppia.android.domain.util.JsonAssetRetriever import org.oppia.android.util.caching.AssetRepository import org.oppia.android.util.caching.TopicListToCache import org.oppia.android.util.gcsresource.DefaultResourceBucketName import org.oppia.android.util.gcsresource.QuestionResourceBucketName -import org.oppia.android.util.logging.ConsoleLogger import org.oppia.android.util.parser.html.ConceptCardHtmlParserEntityType import org.oppia.android.util.parser.html.ExplorationHtmlParserEntityType import org.oppia.android.util.parser.html.StoryHtmlParserEntityType @@ -73,7 +73,7 @@ private const val REPLACE_IMG_FILE_PATH_ATTRIBUTE = "src" @Singleton class PrimeTopicAssetsControllerImpl @Inject constructor( private val context: Context, - private val logger: ConsoleLogger, + private val oppiaLogger: OppiaLogger, private val assetRepository: AssetRepository, private val topicController: TopicController, private val jsonAssetRetriever: JsonAssetRetriever, @@ -158,7 +158,7 @@ class PrimeTopicAssetsControllerImpl @Inject constructor( conceptCardImageUrls + revisionCardImageUrls ).toSet() - logger.d("AssetRepo", "Downloading up to ${imageUrls.size} images") + oppiaLogger.d("AssetRepo", "Downloading up to ${imageUrls.size} images") val startTime = SystemClock.elapsedRealtime() val downloadUrls = imageUrls.filterNot(assetRepository::isRemoteBinaryAssetDownloaded) val assetDownloadCount = downloadUrls.size @@ -171,7 +171,7 @@ class PrimeTopicAssetsControllerImpl @Inject constructor( assetRepository.primeRemoteBinaryAsset(url) } catch (e: Exception) { failedDownloadCount.incrementAndGet() - logger.w("AssetRepo", "Failed to download $url because $e") + oppiaLogger.w("AssetRepo", "Failed to download $url because $e") } primeDownloadStatus.postValue( PrimeAssetsStatus( @@ -181,7 +181,7 @@ class PrimeTopicAssetsControllerImpl @Inject constructor( } }.forEach { it.await() } val endTime = SystemClock.elapsedRealtime() - logger.d( + oppiaLogger.d( "AssetRepo", "Finished downloading voiceovers and images in ${endTime - startTime}ms" ) diff --git a/domain/src/main/java/org/oppia/android/domain/topic/StoryProgressController.kt b/domain/src/main/java/org/oppia/android/domain/topic/StoryProgressController.kt index 91e60b0672c..796edc817d1 100644 --- a/domain/src/main/java/org/oppia/android/domain/topic/StoryProgressController.kt +++ b/domain/src/main/java/org/oppia/android/domain/topic/StoryProgressController.kt @@ -8,11 +8,11 @@ import org.oppia.android.app.model.StoryProgress import org.oppia.android.app.model.TopicProgress import org.oppia.android.app.model.TopicProgressDatabase import org.oppia.android.data.persistence.PersistentCacheStore +import org.oppia.android.domain.oppialogger.OppiaLogger import org.oppia.android.util.data.AsyncResult import org.oppia.android.util.data.DataProvider import org.oppia.android.util.data.DataProviders import org.oppia.android.util.data.DataProviders.Companion.transformAsync -import org.oppia.android.util.logging.ConsoleLogger import javax.inject.Inject import javax.inject.Singleton @@ -51,7 +51,7 @@ private const val RECORD_RECENTLY_PLAYED_CHAPTER_PROVIDER_ID = class StoryProgressController @Inject constructor( private val cacheStoreFactory: PersistentCacheStore.Factory, private val dataProviders: DataProviders, - private val logger: ConsoleLogger + private val oppiaLogger: OppiaLogger ) { // TODO(#21): Determine whether chapters can have missing prerequisites in the initial prototype, // or if that just indicates that they can't be started due to previous chapter not yet being @@ -268,7 +268,7 @@ class StoryProgressController @Inject constructor( cacheStore.primeCacheAsync().invokeOnCompletion { it?.let { it -> - logger.e( + oppiaLogger.e( "StoryProgressController", "Failed to prime cache ahead of LiveData conversion for StoryProgressController.", it diff --git a/domain/src/test/java/org/oppia/android/domain/audio/CellularAudioDialogControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/audio/CellularAudioDialogControllerTest.kt index 673896321a4..bbeff96fa1e 100644 --- a/domain/src/test/java/org/oppia/android/domain/audio/CellularAudioDialogControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/audio/CellularAudioDialogControllerTest.kt @@ -22,6 +22,7 @@ import org.mockito.Mockito.verify import org.mockito.junit.MockitoJUnit import org.mockito.junit.MockitoRule import org.oppia.android.app.model.CellularDataPreference +import org.oppia.android.domain.oppialogger.LogStorageModule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestCoroutineDispatchers @@ -173,6 +174,7 @@ class CellularAudioDialogControllerTest { @Singleton @Component( modules = [ + LogStorageModule::class, RobolectricModule::class, TestDispatcherModule::class, TestModule::class, diff --git a/domain/src/test/java/org/oppia/android/domain/onboarding/AppStartupStateControllerTest.kt b/domain/src/test/java/org/oppia/android/domain/onboarding/AppStartupStateControllerTest.kt index 5edce7db5e2..4ddec92b5ab 100644 --- a/domain/src/test/java/org/oppia/android/domain/onboarding/AppStartupStateControllerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/onboarding/AppStartupStateControllerTest.kt @@ -31,6 +31,7 @@ import org.oppia.android.app.model.AppStartupState.StartupMode.USER_IS_ONBOARDED import org.oppia.android.app.model.AppStartupState.StartupMode.USER_NOT_YET_ONBOARDED import org.oppia.android.app.model.OnboardingState import org.oppia.android.data.persistence.PersistentCacheStore +import org.oppia.android.domain.oppialogger.LogStorageModule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.robolectric.RobolectricModule import org.oppia.android.testing.threading.TestCoroutineDispatchers @@ -426,7 +427,7 @@ class AppStartupStateControllerTest { @Singleton @Component( modules = [ - RobolectricModule::class, + LogStorageModule::class, RobolectricModule::class, TestModule::class, TestDispatcherModule::class, TestLogReportingModule::class, ExpirationMetaDataRetrieverModule::class // Use real implementation to test closer to prod. ] diff --git a/domain/src/test/java/org/oppia/android/domain/oppialogger/OppiaLoggerTest.kt b/domain/src/test/java/org/oppia/android/domain/oppialogger/OppiaLoggerTest.kt index a078c4bc356..83b1fd1b929 100644 --- a/domain/src/test/java/org/oppia/android/domain/oppialogger/OppiaLoggerTest.kt +++ b/domain/src/test/java/org/oppia/android/domain/oppialogger/OppiaLoggerTest.kt @@ -2,6 +2,7 @@ package org.oppia.android.domain.oppialogger import android.app.Application import android.content.Context +import android.util.Log import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.google.common.truth.Truth.assertThat @@ -23,6 +24,7 @@ import org.oppia.android.util.logging.GlobalLogLevel import org.oppia.android.util.logging.LogLevel import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode +import org.robolectric.shadows.ShadowLog import javax.inject.Inject import javax.inject.Singleton @@ -34,6 +36,26 @@ private const val TEST_SKILL_ID = "test_skillId" private const val TEST_SKILL_LIST_ID = "test_skillListId" private const val TEST_SUB_TOPIC_ID = 1 +private const val TEST_VERBOSE_LOG_TAG = "test_verbose_log_tag" +private const val TEST_VERBOSE_LOG_MSG = "test_verbose_log_msg" +private const val TEST_VERBOSE_LOG_EXCEPTION = "test_verbose_log_exception" + +private const val TEST_DEBUG_LOG_TAG = "test_debug_log_tag" +private const val TEST_DEBUG_LOG_MSG = "test_debug_log_msg" +private const val TEST_DEBUG_LOG_EXCEPTION = "test_debug_log_exception" + +private const val TEST_INFO_LOG_TAG = "test_info_log_tag" +private const val TEST_INFO_LOG_MSG = "test_info_log_msg" +private const val TEST_INFO_LOG_EXCEPTION = "test_info_log_exception" + +private const val TEST_WARN_LOG_TAG = "test_warn_log_tag" +private const val TEST_WARN_LOG_MSG = "test_warn_log_msg" +private const val TEST_WARN_LOG_EXCEPTION = "test_warn_log_exception" + +private const val TEST_ERROR_LOG_TAG = "test_error_log_tag" +private const val TEST_ERROR_LOG_MSG = "test_error_log_msg" +private const val TEST_ERROR_LOG_EXCEPTION = "test_error_log_exception" + @RunWith(AndroidJUnit4::class) @LooperMode(LooperMode.Mode.PAUSED) @Config(manifest = Config.NONE) @@ -41,11 +63,113 @@ class OppiaLoggerTest { @Before fun setUp() { setUpTestApplicationComponent() + ShadowLog.reset() } @Inject lateinit var oppiaLogger: OppiaLogger + private val TEST_VERBOSE_EXCEPTION = Throwable(TEST_VERBOSE_LOG_EXCEPTION) + private val TEST_DEBUG_EXCEPTION = Throwable(TEST_DEBUG_LOG_EXCEPTION) + private val TEST_INFO_EXCEPTION = Throwable(TEST_INFO_LOG_EXCEPTION) + private val TEST_WARN_EXCEPTION = Throwable(TEST_WARN_LOG_EXCEPTION) + private val TEST_ERROR_EXCEPTION = Throwable(TEST_ERROR_LOG_EXCEPTION) + + @Test + fun testConsoleLogger_logVerboseMessage_checkLoggedMessageIsCorrect() { + oppiaLogger.v(TEST_VERBOSE_LOG_TAG, TEST_VERBOSE_LOG_MSG) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_VERBOSE_LOG_TAG) + assertThat(log.msg).isEqualTo(TEST_VERBOSE_LOG_MSG) + assertThat(log.type).isEqualTo(Log.VERBOSE) + } + + @Test + fun testConsoleLogger_logVerboseMessageWithException_checkLoggedMessageIsCorrect() { + oppiaLogger.v(TEST_VERBOSE_LOG_TAG, TEST_VERBOSE_LOG_MSG, TEST_VERBOSE_EXCEPTION) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_VERBOSE_LOG_TAG) + assertThat(log.msg).contains(TEST_VERBOSE_LOG_MSG) + assertThat(log.msg).contains(Log.getStackTraceString(TEST_VERBOSE_EXCEPTION)) + assertThat(log.type).isEqualTo(Log.VERBOSE) + } + + @Test + fun testConsoleLogger_logDebugMessage_checkLoggedMessageIsCorrect() { + oppiaLogger.d(TEST_DEBUG_LOG_TAG, TEST_DEBUG_LOG_MSG) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_DEBUG_LOG_TAG) + assertThat(log.msg).isEqualTo(TEST_DEBUG_LOG_MSG) + assertThat(log.type).isEqualTo(Log.DEBUG) + } + + @Test + fun testConsoleLogger_logDebugMessageWithException_checkLoggedMessageIsCorrect() { + oppiaLogger.d(TEST_DEBUG_LOG_TAG, TEST_DEBUG_LOG_MSG, TEST_DEBUG_EXCEPTION) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_DEBUG_LOG_TAG) + assertThat(log.msg).contains(TEST_DEBUG_LOG_MSG) + assertThat(log.msg).contains(Log.getStackTraceString(TEST_DEBUG_EXCEPTION)) + assertThat(log.type).isEqualTo(Log.DEBUG) + } + + @Test + fun testConsoleLogger_logInfoMessage_checkLoggedMessageIsCorrect() { + oppiaLogger.i(TEST_INFO_LOG_TAG, TEST_INFO_LOG_MSG) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_INFO_LOG_TAG) + assertThat(log.msg).isEqualTo(TEST_INFO_LOG_MSG) + assertThat(log.type).isEqualTo(Log.INFO) + } + + @Test + fun testConsoleLogger_logInfoMessageWithException_checkLoggedMessageIsCorrect() { + oppiaLogger.i(TEST_INFO_LOG_TAG, TEST_INFO_LOG_MSG, TEST_INFO_EXCEPTION) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_INFO_LOG_TAG) + assertThat(log.msg).contains(TEST_INFO_LOG_MSG) + assertThat(log.msg).contains(Log.getStackTraceString(TEST_INFO_EXCEPTION)) + assertThat(log.type).isEqualTo(Log.INFO) + } + + @Test + fun testConsoleLogger_logWarnMessage_checkLoggedMessageIsCorrect() { + oppiaLogger.w(TEST_WARN_LOG_TAG, TEST_WARN_LOG_MSG) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_WARN_LOG_TAG) + assertThat(log.msg).isEqualTo(TEST_WARN_LOG_MSG) + assertThat(log.type).isEqualTo(Log.WARN) + } + + @Test + fun testConsoleLogger_logWarnMessageWithException_checkLoggedMessageIsCorrect() { + oppiaLogger.w(TEST_WARN_LOG_TAG, TEST_WARN_LOG_MSG, TEST_WARN_EXCEPTION) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_WARN_LOG_TAG) + assertThat(log.msg).contains(TEST_WARN_LOG_MSG) + assertThat(log.msg).contains(Log.getStackTraceString(TEST_WARN_EXCEPTION)) + assertThat(log.type).isEqualTo(Log.WARN) + } + + @Test + fun testConsoleLogger_logErrorMessage_checkLoggedMessageIsCorrect() { + oppiaLogger.e(TEST_ERROR_LOG_TAG, TEST_ERROR_LOG_MSG) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_ERROR_LOG_TAG) + assertThat(log.msg).isEqualTo(TEST_ERROR_LOG_MSG) + assertThat(log.type).isEqualTo(Log.ERROR) + } + + @Test + fun testConsoleLogger_logErrorMessageWithException_checkLoggedMessageIsCorrect() { + oppiaLogger.e(TEST_ERROR_LOG_TAG, TEST_ERROR_LOG_MSG, TEST_ERROR_EXCEPTION) + val log = ShadowLog.getLogs().last() + assertThat(log.tag).isEqualTo(TEST_ERROR_LOG_TAG) + assertThat(log.msg).contains(TEST_ERROR_LOG_MSG) + assertThat(log.msg).contains(Log.getStackTraceString(TEST_ERROR_EXCEPTION)) + assertThat(log.type).isEqualTo(Log.ERROR) + } + @Test fun testController_createExplorationContext_returnsCorrectExplorationContext() { val eventContext = oppiaLogger.createExplorationContext( diff --git a/utility/src/main/java/org/oppia/android/util/logging/ConsoleLogger.kt b/utility/src/main/java/org/oppia/android/util/logging/ConsoleLogger.kt index 43ca580b1c1..f7f904e47f0 100644 --- a/utility/src/main/java/org/oppia/android/util/logging/ConsoleLogger.kt +++ b/utility/src/main/java/org/oppia/android/util/logging/ConsoleLogger.kt @@ -74,7 +74,7 @@ class ConsoleLogger @Inject constructor( } private fun isLogEnable(logLevel: LogLevel): Boolean { - return globalLogLevel.logLevel < logLevel.logLevel + return globalLogLevel.logLevel <= logLevel.logLevel } private fun writeLog(logLevel: LogLevel, tag: String, log: String) {