123 lines
4.9 KiB
Java
123 lines
4.9 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.android.ui.account.detail.AndroidAccountDetailsViewModel;
|
|
import org.mercury_im.messenger.android.ui.account.login.AndroidIkeyInfoViewModel;
|
|
import org.mercury_im.messenger.android.ui.account.login.EnterAccountDetailsFragment;
|
|
import org.mercury_im.messenger.android.ui.account.login.AndroidIkeySetupViewModel;
|
|
import org.mercury_im.messenger.android.ui.contacts.AndroidContactListViewModel;
|
|
import org.mercury_im.messenger.android.crypto.ikey.AndroidIkeyBackupCreationViewModel;
|
|
import org.mercury_im.messenger.android.ui.contacts.detail.AndroidContactDetailViewModel;
|
|
import org.mercury_im.messenger.core.di.module.IkeyModule;
|
|
import org.mercury_im.messenger.core.di.module.OpenPgpModule;
|
|
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.StanzaIdSourceFactoryModule;
|
|
import org.mercury_im.messenger.core.di.module.XmppTcpConnectionFactoryModule;
|
|
import org.mercury_im.messenger.core.viewmodel.account.detail.AccountDetailsViewModel;
|
|
import org.mercury_im.messenger.core.viewmodel.account.list.AccountListViewModel;
|
|
import org.mercury_im.messenger.core.viewmodel.chat.ChatViewModel;
|
|
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.MercuryForegroundService;
|
|
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.list.AndroidAccountListViewModel;
|
|
import org.mercury_im.messenger.android.ui.account.login.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.AndroidChatListViewModel;
|
|
import org.mercury_im.messenger.android.ui.contacts.detail.ContactDetailActivity;
|
|
import org.mercury_im.messenger.core.viewmodel.account.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,
|
|
OpenPgpModule.class,
|
|
IkeyModule.class,
|
|
RxMercuryRosterStoreFactoryModule.class,
|
|
StanzaIdSourceFactoryModule.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);
|
|
|
|
void inject(EnterAccountDetailsFragment enterAccountDetailsFragment);
|
|
|
|
// ViewModels
|
|
|
|
void inject(AndroidContactListViewModel contactListViewModel);
|
|
|
|
void inject(AndroidChatViewModel androidChatViewModel);
|
|
|
|
void inject(ChatViewModel chatViewModel);
|
|
|
|
void inject(ChatInputViewModel chatInputViewModel);
|
|
|
|
void inject(AndroidLoginViewModel androidLoginViewModel);
|
|
|
|
void inject(AndroidAccountListViewModel androidAccountsViewModel);
|
|
|
|
void inject(AndroidChatListViewModel chatListViewModel);
|
|
|
|
void inject(AndroidContactDetailViewModel contactDetailViewModel);
|
|
|
|
void inject(AccountDetailsViewModel accountDetailsViewModel);
|
|
|
|
void inject(AndroidAccountDetailsViewModel accountDetailsViewModel);
|
|
|
|
void inject(AndroidIkeyBackupCreationViewModel androidIkeyBackupCreationViewModel);
|
|
|
|
void inject(AndroidIkeySetupViewModel androidIkeySetupViewModel);
|
|
// void inject(AndroidOxSecretKeyBackupRestoreViewModel androidOxSecretKeyBackupRestoreViewModel);
|
|
|
|
void inject(AndroidIkeyInfoViewModel androidIkeyInfoViewModel);
|
|
|
|
|
|
// Common VMs
|
|
void inject(LoginViewModel loginViewModel);
|
|
|
|
void inject(AccountListViewModel accountsViewModel);
|
|
|
|
|
|
// Services
|
|
|
|
void inject(MercuryForegroundService service);
|
|
|
|
void inject(MercuryEntityCapsStore store);
|
|
|
|
}
|