// Path: app/src/main/java/org/estgroup/phphub/common/internal/di/component/ApiComponent.java
// @Singleton
// @Component(modules = ApiModule.class)
// public interface ApiComponent {
//         void inject(TopicPresenter topicPresenter);
// 
//         void inject(RecommendedPresenter recommendedPresenter);
// 
//         void inject(WikiPresenter wikiPresenter);
// 
//         void inject(TopicDetailPresenter topicDetailPresenter);
// 
//         void inject(UserSpacePresenter userSpacePresenter);
// 
//         void inject(LoginActivity loginActivity);
// 
//         void inject(TopicPublishPresenter publishTopicPresenter);
// 
//         void inject(TopicReplyPresenter topicReplyPresenter);
// 
//         void inject(UserTopicsPresenter userTopicsPresenter);
// 
//         void inject(EditUserProfilePresenter editUserProfilePresenter);
// 
//         void inject(NotificationService notificationService);
// 
//         void inject(UserNotificationsPresenter userNotificationsPresenter);
// }
// 
// Path: app/src/main/java/org/estgroup/phphub/common/internal/di/component/AppComponent.java
// @Singleton
// @Component(modules = AppModule.class)
// public interface AppComponent {
//     void inject(SettingsFragment settingsFragment);
// 
//     void inject(RecommendedFragment recommendedFragment);
// 
//     void inject(UserSpaceActivity userSpaceActivity);
// 
//     Navigator navigator();
// }
// 
// Path: app/src/main/java/org/estgroup/phphub/common/internal/di/module/AppModule.java
// @Module
// public class AppModule {
//     private final App app;
// 
//     public AppModule(App app) {
//         this.app = app;
//     }
// 
//     @Provides
//     @Singleton
//     @ForApplication
//     Context provideAppContext() {
//         return app;
//     }
// 
//     @Provides
//     @Singleton
//     Prefser providePrefser(@ForApplication Context context) {
//         return new Prefser(context);
//     }
// 
//     @Provides
//     @Singleton
//     AccountManager provideAccountManager(@ForApplication Context context) {
//         return AccountManager.get(context);
//     }
// 
//     @Provides
//     @Singleton
//     AuthAccountManager provideAuthAccountManager(@ForApplication Context context) {
//         return new AuthAccountManager(context);
//     }
// }


import android.app.Application;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.github.pwittchen.prefser.library.Prefser;
import com.joanzapata.iconify.Iconify;
import com.joanzapata.iconify.fonts.FontAwesomeModule;
import com.squareup.leakcanary.LeakCanary;
import org.estgroup.phphub.BuildConfig;
import org.estgroup.phphub.common.internal.di.component.ApiComponent;
import org.estgroup.phphub.common.internal.di.component.AppComponent;
import org.estgroup.phphub.common.internal.di.component.DaggerApiComponent;
import org.estgroup.phphub.common.internal.di.component.DaggerAppComponent;
import org.estgroup.phphub.common.internal.di.module.AppModule;
import javax.inject.Inject;
import cn.jpush.android.api.JPushInterface;
package org.estgroup.phphub.common;






public class App extends Application {
    private AppComponent appComponent;

    private ApiComponent apiComponent;

    @Inject
    Prefser prefser;

    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
        LeakCanary.install(this);
        JPushInterface.setDebugMode(BuildConfig.DEBUG);
        JPushInterface.init(this);

        initializeInjector();
        initializeInjectorApi();

        Iconify.with(new FontAwesomeModule());
    }

    private void initializeInjector() {
        appComponent = DaggerAppComponent.builder()
                .appModule(new AppModule(this))
                .build();
    }

    private void initializeInjectorApi() {
        apiComponent = DaggerApiComponent.builder()
// Path: app/src/main/java/org/estgroup/phphub/common/internal/di/component/ApiComponent.java
// @Singleton
// @Component(modules = ApiModule.class)
// public interface ApiComponent {
//         void inject(TopicPresenter topicPresenter);
// 
//         void inject(RecommendedPresenter recommendedPresenter);
// 
//         void inject(WikiPresenter wikiPresenter);
// 
//         void inject(TopicDetailPresenter topicDetailPresenter);
// 
//         void inject(UserSpacePresenter userSpacePresenter);
// 
//         void inject(LoginActivity loginActivity);
// 
//         void inject(TopicPublishPresenter publishTopicPresenter);
// 
//         void inject(TopicReplyPresenter topicReplyPresenter);
// 
//         void inject(UserTopicsPresenter userTopicsPresenter);
// 
//         void inject(EditUserProfilePresenter editUserProfilePresenter);
// 
//         void inject(NotificationService notificationService);
// 
//         void inject(UserNotificationsPresenter userNotificationsPresenter);
// }
// 
// Path: app/src/main/java/org/estgroup/phphub/common/internal/di/component/AppComponent.java
// @Singleton
// @Component(modules = AppModule.class)
// public interface AppComponent {
//     void inject(SettingsFragment settingsFragment);
// 
//     void inject(RecommendedFragment recommendedFragment);
// 
//     void inject(UserSpaceActivity userSpaceActivity);
// 
//     Navigator navigator();
// }
// 
// Path: app/src/main/java/org/estgroup/phphub/common/internal/di/module/AppModule.java
// @Module
// public class AppModule {
//     private final App app;
// 
//     public AppModule(App app) {
//         this.app = app;
//     }
// 
//     @Provides
//     @Singleton
//     @ForApplication
//     Context provideAppContext() {
//         return app;
//     }
// 
//     @Provides
//     @Singleton
//     Prefser providePrefser(@ForApplication Context context) {
//         return new Prefser(context);
//     }
// 
//     @Provides
//     @Singleton
//     AccountManager provideAccountManager(@ForApplication Context context) {
//         return AccountManager.get(context);
//     }
// 
//     @Provides
//     @Singleton
//     AuthAccountManager provideAuthAccountManager(@ForApplication Context context) {
//         return new AuthAccountManager(context);
//     }
// }


// Path: app/src/main/java/org/estgroup/phphub/common/App.java
import android.app.Application;
import com.facebook.drawee.backends.pipeline.Fresco;
import com.github.pwittchen.prefser.library.Prefser;
import com.joanzapata.iconify.Iconify;
import com.joanzapata.iconify.fonts.FontAwesomeModule;
import com.squareup.leakcanary.LeakCanary;
import org.estgroup.phphub.BuildConfig;
import org.estgroup.phphub.common.internal.di.component.ApiComponent;
import org.estgroup.phphub.common.internal.di.component.AppComponent;
import org.estgroup.phphub.common.internal.di.component.DaggerApiComponent;
import org.estgroup.phphub.common.internal.di.component.DaggerAppComponent;
import org.estgroup.phphub.common.internal.di.module.AppModule;
import javax.inject.Inject;
import cn.jpush.android.api.JPushInterface;

package org.estgroup.phphub.common;






public class App extends Application {
    private AppComponent appComponent;

    private ApiComponent apiComponent;

    @Inject
    Prefser prefser;

    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
        LeakCanary.install(this);
        JPushInterface.setDebugMode(BuildConfig.DEBUG);
        JPushInterface.init(this);

        initializeInjector();
        initializeInjectorApi();

        Iconify.with(new FontAwesomeModule());
    }

    private void initializeInjector() {
        appComponent = DaggerAppComponent.builder()
                .appModule(new AppModule(this))
                .build();
    }

    private void initializeInjectorApi() {
        apiComponent = DaggerApiComponent.builder()
                .appModule(new AppModule(this))