96 lines
3.3 KiB
Java
96 lines
3.3 KiB
Java
package org.mercury_im.messenger.android.di.component;
|
|
|
|
import org.mercury_im.messenger.android.MercuryImApplication;
|
|
import org.mercury_im.messenger.android.di.module.AndroidDatabaseModule;
|
|
import org.mercury_im.messenger.android.di.module.AndroidSchedulersModule;
|
|
import org.mercury_im.messenger.core.di.module.RxMercuryMessageStoreFactoryModule;
|
|
import org.mercury_im.messenger.core.di.module.RxMercuryRosterStoreFactoryModule;
|
|
import org.mercury_im.messenger.core.di.module.XmppTcpConnectionFactoryModule;
|
|
import org.mercury_im.messenger.data.di.RepositoryModule;
|
|
import org.mercury_im.messenger.android.di.module.AppModule;
|
|
import org.mercury_im.messenger.core.di.module.ViewModelModule;
|
|
import org.mercury_im.messenger.android.service.MercuryConnectionService;
|
|
import org.mercury_im.messenger.core.store.caps.MercuryEntityCapsStore;
|
|
import org.mercury_im.messenger.android.ui.MainActivity;
|
|
import org.mercury_im.messenger.android.ui.account.AndroidAccountsViewModel;
|
|
import org.mercury_im.messenger.android.ui.account.AndroidLoginViewModel;
|
|
import org.mercury_im.messenger.android.ui.chat.ChatActivity;
|
|
import org.mercury_im.messenger.android.ui.chat.ChatInputFragment;
|
|
import org.mercury_im.messenger.android.ui.chat.ChatInputViewModel;
|
|
import org.mercury_im.messenger.android.ui.chat.AndroidChatViewModel;
|
|
import org.mercury_im.messenger.android.ui.chatlist.ChatListViewModel;
|
|
import org.mercury_im.messenger.android.ui.roster.contacts.ContactListViewModel;
|
|
import org.mercury_im.messenger.android.ui.roster.contacts.detail.ContactDetailActivity;
|
|
import org.mercury_im.messenger.android.ui.roster.contacts.detail.ContactDetailViewModel;
|
|
import org.mercury_im.messenger.core.viewmodel.accounts.AccountsViewModel;
|
|
import org.mercury_im.messenger.core.viewmodel.accounts.LoginViewModel;
|
|
|
|
import javax.inject.Singleton;
|
|
|
|
import dagger.Component;
|
|
|
|
/**
|
|
* Main Application Component that binds together all the modules needed for the Android
|
|
* application.
|
|
*/
|
|
@Singleton
|
|
@Component(
|
|
modules = {
|
|
AppModule.class,
|
|
AndroidDatabaseModule.class,
|
|
AndroidSchedulersModule.class,
|
|
RepositoryModule.class,
|
|
ViewModelModule.class,
|
|
XmppTcpConnectionFactoryModule.class,
|
|
RxMercuryMessageStoreFactoryModule.class,
|
|
RxMercuryRosterStoreFactoryModule.class
|
|
})
|
|
public interface AppComponent {
|
|
|
|
// Application
|
|
|
|
void inject(MercuryImApplication mercuryImApplication);
|
|
|
|
|
|
// Views
|
|
|
|
void inject(MainActivity mainActivity);
|
|
|
|
void inject(ChatActivity chatActivity);
|
|
|
|
void inject(ChatInputFragment chatInputFragment);
|
|
|
|
void inject(ContactDetailActivity contactDetailActivity);
|
|
|
|
|
|
|
|
// ViewModels
|
|
|
|
void inject(ContactListViewModel contactListViewModel);
|
|
|
|
void inject(AndroidChatViewModel androidChatViewModel);
|
|
|
|
void inject(ChatInputViewModel chatInputViewModel);
|
|
|
|
void inject(AndroidLoginViewModel androidLoginViewModel);
|
|
|
|
void inject(AndroidAccountsViewModel androidAccountsViewModel);
|
|
|
|
void inject(ChatListViewModel chatListViewModel);
|
|
|
|
void inject(ContactDetailViewModel contactDetailViewModel);
|
|
|
|
|
|
// Common VMs
|
|
void inject(LoginViewModel loginViewModel);
|
|
|
|
void inject(AccountsViewModel accountsViewModel);
|
|
|
|
|
|
// Services
|
|
|
|
void inject(MercuryConnectionService service);
|
|
|
|
void inject(MercuryEntityCapsStore store);
|
|
}
|