Skip to content

Commit

Permalink
APPS-3293: send catalog language analytics
Browse files Browse the repository at this point in the history
  • Loading branch information
eadm committed Apr 27, 2021
1 parent c2523f6 commit 119647d
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package org.stepik.android.domain.filter.analytic

import org.stepik.android.domain.base.analytic.AnalyticEvent

class ContenLanguageChangedAnalyticEvent(
language: String,
source: Source
) : AnalyticEvent {
companion object {
private const val PARAM_LANGUAGE = "language"
private const val PARAM_SOURCE = "source"
}

override val name: String =
"Content language changed"

override val params: Map<String, Any> =
mapOf(
PARAM_LANGUAGE to language,
PARAM_SOURCE to source.value
)

enum class Source(val value: String) {
CATALOG("catalog"),
SETTINGS("settings")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,12 @@ import io.reactivex.Scheduler
import io.reactivex.Single
import io.reactivex.rxkotlin.plusAssign
import io.reactivex.rxkotlin.subscribeBy
import org.stepic.droid.analytic.Analytic
import org.stepic.droid.di.qualifiers.BackgroundScheduler
import org.stepic.droid.di.qualifiers.MainScheduler
import org.stepic.droid.model.StepikFilter
import org.stepic.droid.preferences.SharedPreferenceHelper
import org.stepik.android.domain.filter.analytic.ContenLanguageChangedAnalyticEvent
import org.stepik.android.presentation.filter.FiltersFeature
import org.stepik.android.view.injection.catalog.FiltersBus
import ru.nobird.android.domain.rx.emptyOnErrorStub
Expand All @@ -20,6 +22,7 @@ import javax.inject.Inject
class FiltersActionDispatcher
@Inject
constructor(
private val analytic: Analytic,
private val sharedPreferenceHelper: SharedPreferenceHelper,
@FiltersBus
private val filtersObservable: Observable<EnumSet<StepikFilter>>,
Expand Down Expand Up @@ -48,14 +51,20 @@ constructor(
onError = { onNewMessage(FiltersFeature.Message.LoadFiltersError) }
)

is FiltersFeature.Action.ChangeFilters ->
is FiltersFeature.Action.ChangeFilters -> {
val newLanguage = action.filters.firstOrNull()?.language
if (newLanguage != null) {
analytic.report(ContenLanguageChangedAnalyticEvent(newLanguage, ContenLanguageChangedAnalyticEvent.Source.CATALOG))
}

compositeDisposable += Completable.fromCallable { sharedPreferenceHelper.saveFilterForFeatured(action.filters) }
.subscribeOn(backgroundScheduler)
.observeOn(mainScheduler)
.subscribeBy(
onComplete = { onNewMessage(FiltersFeature.Message.LoadFiltersSuccess(action.filters)) },
onError = emptyOnErrorStub
)
}
}
}
}

0 comments on commit 119647d

Please sign in to comment.