// Path: app/src/main/java/com/autonomousapps/LifecycleLoggingApplication.java
// public abstract class LifecycleLoggingApplication extends Application {
// 
//     private static final String TAG = LifecycleLoggingApplication.class.getSimpleName();
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         log("onCreate()");
//     }
// 
//     @Override
//     public void onTrimMemory(int level) {
//         super.onTrimMemory(level);
//         log("onTrimMemory(%d)", level);
//     }
// 
//     private static void log(@NonNull String msg, @Nullable Object... args) {
//         LogUtil.v(TAG, msg, args);
//     }
// }
// 
// Path: app/src/main/java/com/autonomousapps/reactivestopwatch/di/ContextModule.java
// @Module
// public class ContextModule {
// 
//     // Application Context
//     private final Context appContext;
// 
//     public ContextModule(@NonNull Context context) {
//         appContext = context;
//     }
// 
//     @Provides
//     @Singleton
//     Context provideContext() {
//         return appContext;
//     }
// }
// 
// Path: app/src/main/java/com/autonomousapps/reactivestopwatch/di/DaggerUtil.java
// public enum DaggerUtil {
//     INSTANCE;
// 
//     private StopwatchComponent stopwatchComponent;
// 
//     @NonNull
//     public StopwatchComponent getStopwatchComponent() {
//         checkNotNull();
//         return stopwatchComponent;
//     }
// 
//     private void checkNotNull() {
//         if (stopwatchComponent == null) {
//             throw new IllegalStateException("StopwatchComponent is null. setComponent() must be called first!");
//         }
//     }
// 
//     public void setComponent(@NonNull StopwatchComponent component) {
//         stopwatchComponent = component;
//     }
// }
// 
// Path: app/src/main/java/com/autonomousapps/reactivestopwatch/di/StopwatchComponent.java
// @Singleton
// @Component(modules = {
//         PresenterModule.class
// })
// public interface StopwatchComponent {
// 
//     void inject(StopwatchFragment stopwatchFragment);
// 
//     void inject(StopwatchService service);
// }


import com.autonomousapps.LifecycleLoggingApplication;
import com.autonomousapps.reactivestopwatch.di.ContextModule;
import com.autonomousapps.reactivestopwatch.di.DaggerStopwatchComponent;
import com.autonomousapps.reactivestopwatch.di.DaggerUtil;
import com.autonomousapps.reactivestopwatch.di.StopwatchComponent;
package com.autonomousapps.reactivestopwatch;


public class StopwatchApplication extends LifecycleLoggingApplication {

    @Override
    public void onCreate() {
// Path: app/src/main/java/com/autonomousapps/LifecycleLoggingApplication.java
// public abstract class LifecycleLoggingApplication extends Application {
// 
//     private static final String TAG = LifecycleLoggingApplication.class.getSimpleName();
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         log("onCreate()");
//     }
// 
//     @Override
//     public void onTrimMemory(int level) {
//         super.onTrimMemory(level);
//         log("onTrimMemory(%d)", level);
//     }
// 
//     private static void log(@NonNull String msg, @Nullable Object... args) {
//         LogUtil.v(TAG, msg, args);
//     }
// }
// 
// Path: app/src/main/java/com/autonomousapps/reactivestopwatch/di/ContextModule.java
// @Module
// public class ContextModule {
// 
//     // Application Context
//     private final Context appContext;
// 
//     public ContextModule(@NonNull Context context) {
//         appContext = context;
//     }
// 
//     @Provides
//     @Singleton
//     Context provideContext() {
//         return appContext;
//     }
// }
// 
// Path: app/src/main/java/com/autonomousapps/reactivestopwatch/di/DaggerUtil.java
// public enum DaggerUtil {
//     INSTANCE;
// 
//     private StopwatchComponent stopwatchComponent;
// 
//     @NonNull
//     public StopwatchComponent getStopwatchComponent() {
//         checkNotNull();
//         return stopwatchComponent;
//     }
// 
//     private void checkNotNull() {
//         if (stopwatchComponent == null) {
//             throw new IllegalStateException("StopwatchComponent is null. setComponent() must be called first!");
//         }
//     }
// 
//     public void setComponent(@NonNull StopwatchComponent component) {
//         stopwatchComponent = component;
//     }
// }
// 
// Path: app/src/main/java/com/autonomousapps/reactivestopwatch/di/StopwatchComponent.java
// @Singleton
// @Component(modules = {
//         PresenterModule.class
// })
// public interface StopwatchComponent {
// 
//     void inject(StopwatchFragment stopwatchFragment);
// 
//     void inject(StopwatchService service);
// }


// Path: app/src/main/java/com/autonomousapps/reactivestopwatch/StopwatchApplication.java
import com.autonomousapps.LifecycleLoggingApplication;
import com.autonomousapps.reactivestopwatch.di.ContextModule;
import com.autonomousapps.reactivestopwatch.di.DaggerStopwatchComponent;
import com.autonomousapps.reactivestopwatch.di.DaggerUtil;
import com.autonomousapps.reactivestopwatch.di.StopwatchComponent;

package com.autonomousapps.reactivestopwatch;


public class StopwatchApplication extends LifecycleLoggingApplication {

    @Override
    public void onCreate() {
        super.onCreate();