2020-06-06 18:45:20 +02:00
|
|
|
package org.mercury_im.messenger.android.di.component;
|
2019-05-13 03:19:17 +02:00
|
|
|
|
2020-06-06 18:45:20 +02:00
|
|
|
import org.mercury_im.messenger.android.MercuryImApplication;
|
2020-06-09 21:52:53 +02:00
|
|
|
import org.mercury_im.messenger.android.di.module.AndroidDatabaseModule;
|
|
|
|
import org.mercury_im.messenger.android.di.module.AndroidSchedulersModule;
|
2020-06-15 17:41:13 +02:00
|
|
|
import org.mercury_im.messenger.core.di.module.OpenPgpModule;
|
2020-06-09 21:52:53 +02:00
|
|
|
import org.mercury_im.messenger.core.di.module.RxMercuryMessageStoreFactoryModule;
|
|
|
|
import org.mercury_im.messenger.core.di.module.RxMercuryRosterStoreFactoryModule;
|
2020-06-06 18:54:56 +02:00
|
|
|
import org.mercury_im.messenger.core.di.module.XmppTcpConnectionFactoryModule;
|
2019-12-06 15:52:50 +01:00
|
|
|
import org.mercury_im.messenger.data.di.RepositoryModule;
|
2020-06-06 18:45:20 +02:00
|
|
|
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;
|
2020-06-09 21:52:53 +02:00
|
|
|
import org.mercury_im.messenger.core.store.caps.MercuryEntityCapsStore;
|
2020-06-06 18:45:20 +02:00
|
|
|
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;
|
2020-06-09 21:52:53 +02:00
|
|
|
import org.mercury_im.messenger.android.ui.chat.AndroidChatViewModel;
|
2020-06-06 18:45:20 +02:00
|
|
|
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;
|
2019-05-13 03:19:17 +02:00
|
|
|
|
|
|
|
import javax.inject.Singleton;
|
|
|
|
|
2019-09-23 23:20:43 +02:00
|
|
|
import dagger.Component;
|
|
|
|
|
2019-08-04 04:22:08 +02:00
|
|
|
/**
|
|
|
|
* Main Application Component that binds together all the modules needed for the Android
|
|
|
|
* application.
|
|
|
|
*/
|
2019-05-13 03:19:17 +02:00
|
|
|
@Singleton
|
2019-10-28 14:56:56 +01:00
|
|
|
@Component(
|
|
|
|
modules = {
|
|
|
|
AppModule.class,
|
2020-06-09 21:52:53 +02:00
|
|
|
AndroidDatabaseModule.class,
|
|
|
|
AndroidSchedulersModule.class,
|
2020-06-06 16:45:20 +02:00
|
|
|
RepositoryModule.class,
|
2020-06-06 18:54:56 +02:00
|
|
|
ViewModelModule.class,
|
2020-06-09 21:52:53 +02:00
|
|
|
XmppTcpConnectionFactoryModule.class,
|
|
|
|
RxMercuryMessageStoreFactoryModule.class,
|
2020-06-15 17:41:13 +02:00
|
|
|
RxMercuryRosterStoreFactoryModule.class,
|
|
|
|
OpenPgpModule.class
|
2019-10-28 14:56:56 +01:00
|
|
|
})
|
2019-05-13 03:19:17 +02:00
|
|
|
public interface AppComponent {
|
|
|
|
|
|
|
|
// Application
|
|
|
|
|
|
|
|
void inject(MercuryImApplication mercuryImApplication);
|
|
|
|
|
2019-06-03 01:16:49 +02:00
|
|
|
|
2019-05-13 03:19:17 +02:00
|
|
|
// Views
|
|
|
|
|
|
|
|
void inject(MainActivity mainActivity);
|
|
|
|
|
|
|
|
void inject(ChatActivity chatActivity);
|
|
|
|
|
|
|
|
void inject(ChatInputFragment chatInputFragment);
|
|
|
|
|
2020-06-04 23:49:03 +02:00
|
|
|
void inject(ContactDetailActivity contactDetailActivity);
|
|
|
|
|
2019-09-01 04:56:23 +02:00
|
|
|
|
2019-06-03 01:16:49 +02:00
|
|
|
|
2019-05-13 03:19:17 +02:00
|
|
|
// ViewModels
|
|
|
|
|
2019-09-23 23:20:43 +02:00
|
|
|
void inject(ContactListViewModel contactListViewModel);
|
2019-05-13 03:19:17 +02:00
|
|
|
|
2020-06-09 21:52:53 +02:00
|
|
|
void inject(AndroidChatViewModel androidChatViewModel);
|
2019-05-13 03:19:17 +02:00
|
|
|
|
|
|
|
void inject(ChatInputViewModel chatInputViewModel);
|
|
|
|
|
2020-06-06 16:45:20 +02:00
|
|
|
void inject(AndroidLoginViewModel androidLoginViewModel);
|
2019-05-13 03:19:17 +02:00
|
|
|
|
2020-06-06 16:45:20 +02:00
|
|
|
void inject(AndroidAccountsViewModel androidAccountsViewModel);
|
2019-06-03 01:16:49 +02:00
|
|
|
|
2020-06-04 23:49:03 +02:00
|
|
|
void inject(ChatListViewModel chatListViewModel);
|
|
|
|
|
|
|
|
void inject(ContactDetailViewModel contactDetailViewModel);
|
|
|
|
|
2019-06-03 01:16:49 +02:00
|
|
|
|
2020-06-06 16:45:20 +02:00
|
|
|
// Common VMs
|
|
|
|
void inject(LoginViewModel loginViewModel);
|
|
|
|
|
|
|
|
void inject(AccountsViewModel accountsViewModel);
|
|
|
|
|
|
|
|
|
2019-05-13 03:19:17 +02:00
|
|
|
// Services
|
|
|
|
|
2019-12-09 13:50:26 +01:00
|
|
|
void inject(MercuryConnectionService service);
|
2019-05-27 21:34:11 +02:00
|
|
|
|
2020-01-06 03:41:37 +01:00
|
|
|
void inject(MercuryEntityCapsStore store);
|
2019-05-13 03:19:17 +02:00
|
|
|
}
|