Skip to content

Commit

Permalink
Add Errorprone. Fixes artem-zinnatullin#67 (artem-zinnatullin#89)
Browse files Browse the repository at this point in the history
  • Loading branch information
vanniktech authored and artem-zinnatullin committed Jun 7, 2016
1 parent ee6e26d commit bb0faa2
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@
import com.artemzin.qualitymatters.api.ApiModule;
import com.artemzin.qualitymatters.api.ChangeableBaseUrl;
import com.artemzin.qualitymatters.api.QualityMattersRestApi;
import com.artemzin.qualitymatters.developer_settings.DevMetricsProxy;
import com.artemzin.qualitymatters.developer_settings.DeveloperSettingsComponent;
import com.artemzin.qualitymatters.developer_settings.DeveloperSettingsModel;
import com.artemzin.qualitymatters.developer_settings.DeveloperSettingsModule;
import com.artemzin.qualitymatters.developer_settings.LeakCanaryProxy;
import com.artemzin.qualitymatters.models.AnalyticsModel;
import com.artemzin.qualitymatters.models.ModelsModule;
import com.artemzin.qualitymatters.network.NetworkModule;
import com.artemzin.qualitymatters.network.OkHttpInterceptorsModule;
Expand Down Expand Up @@ -48,7 +51,7 @@ public interface ApplicationComponent {
@NonNull
AsyncJobsObserver asyncJobsObserver();

// Provide LeakCanary without injection to leave
// Provide LeakCanary without injection to leave.
@NonNull
LeakCanaryProxy leakCanaryProxy();

Expand All @@ -58,7 +61,12 @@ public interface ApplicationComponent {
@NonNull
DeveloperSettingsComponent plusDeveloperSettingsComponent();

void inject(@NonNull QualityMattersApp qualityMattersApp);
@NonNull
AnalyticsModel analyticsModel();

DeveloperSettingsModel developerSettingModel();

DevMetricsProxy devMetricsProxy();

void inject(@NonNull MainActivity mainActivity);
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,11 @@
import com.artemzin.qualitymatters.developer_settings.DeveloperSettingsModel;
import com.artemzin.qualitymatters.models.AnalyticsModel;

import javax.inject.Inject;

import dagger.Lazy;
import timber.log.Timber;

public class QualityMattersApp extends Application {
private ApplicationComponent applicationComponent;

@Inject
AnalyticsModel analyticsModel;

@Inject
Lazy<DeveloperSettingsModel> developerSettingModel;

@Inject
Lazy<DevMetricsProxy> devMetricsProxy;

// Prevent need in a singleton (global) reference to the application object.
@NonNull
public static QualityMattersApp get(@NonNull Context context) {
Expand All @@ -36,14 +24,19 @@ public static QualityMattersApp get(@NonNull Context context) {
public void onCreate() {
super.onCreate();
applicationComponent = prepareApplicationComponent().build();
applicationComponent.inject(this);

AnalyticsModel analyticsModel = applicationComponent.analyticsModel();

analyticsModel.init();

if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
developerSettingModel.get().apply();
devMetricsProxy.get().apply();

DeveloperSettingsModel developerSettingModel = applicationComponent.developerSettingModel();
developerSettingModel.apply();

DevMetricsProxy devMetricsProxy = applicationComponent.devMetricsProxy();
devMetricsProxy.apply();
}
}

Expand Down
11 changes: 11 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ buildscript {

repositories {
jcenter()
maven { url 'https://plugins.gradle.org/m2/' }
}
dependencies {
// See dependencies.gradle for declaration of plugins.
Expand All @@ -31,6 +32,9 @@ buildscript {

// Performance metrics library for Android development.
classpath gradlePlugins.androidDevMetrics

// Catches common Java mistakes as compile-time errors.
classpath gradlePlugins.errorProne
}

// Part of workaround for Lint + Retrolambda.
Expand Down Expand Up @@ -61,6 +65,13 @@ subprojects {
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
}
}

project.plugins.apply('net.ltgt.errorprone')

configurations.errorprone {
resolutionStrategy.force "com.google.errorprone:error_prone_core:${versions.errorProneCoreVersion}"
}

afterEvaluate {
tasks.findByName('pmd').dependsOn('assemble')
tasks.findByName('findbugs').dependsOn('assemble')
Expand Down
3 changes: 3 additions & 0 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ ext.versions = [
paperworkGradlePlugin : '1.2.7',
jacocoGradlePlugin : '0.7.6.201602180812',
androidDevMetricsGradlePlugin: '0.4',
errorProneVersion : '0.0.8',
errorProneCoreVersion : '2.0.9',

dagger : '2.4',

Expand Down Expand Up @@ -53,6 +55,7 @@ ext.gradlePlugins = [
paperwork : "hu.supercluster:paperwork-plugin:$versions.paperworkGradlePlugin",
jacoco : "org.jacoco:org.jacoco.core:$versions.jacocoGradlePlugin",
androidDevMetrics: "com.frogermcs.androiddevmetrics:androiddevmetrics-plugin:$versions.androidDevMetricsGradlePlugin",
errorProne : "net.ltgt.gradle:gradle-errorprone-plugin:$versions.errorProneVersion",
]

ext.libraries = [
Expand Down

0 comments on commit bb0faa2

Please sign in to comment.