package com.artemzin.qualitymatters.models; import android.app.Application; import android.support.annotation.NonNull; import com.artemzin.qualitymatters.api.QualityMattersRestApi; import com.yandex.metrica.YandexMetrica; import javax.inject.Singleton; import dagger.Module; import dagger.Provides; @Module public class ModelsModule { @Provides @NonNull @Singleton public AnalyticsModel provideAnalyticsModel(@NonNull Application app) { return new YandexAppMetricaAnalytics(app); } @Provides @NonNull public ItemsModel provideItemsModel(@NonNull QualityMattersRestApi qualityMattersRestApi) { return new ItemsModel(qualityMattersRestApi); } static class YandexAppMetricaAnalytics implements AnalyticsModel { @NonNull private final Application app; YandexAppMetricaAnalytics(@NonNull Application app) { this.app = app; } @Override public void init() { YandexMetrica.activate(app, "afbc9acd-7955-4df3-a059-c486e38664e8"); YandexMetrica.enableActivityAutoTracking(app); } @Override public void sendEvent(@NonNull String eventName) { YandexMetrica.reportEvent(eventName); } @Override public void sendError(@NonNull String message, @NonNull Throwable error) { YandexMetrica.reportError(message, error); } } }