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-07-13 18:49:29 +02:00
|
|
|
import org.mercury_im.messenger.android.ui.account.detail.AndroidAccountDetailsViewModel;
|
2020-07-13 01:39:26 +02:00
|
|
|
import org.mercury_im.messenger.android.ui.roster.contacts.AndroidContactListViewModel;
|
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;
|
2020-07-13 18:49:29 +02:00
|
|
|
import org.mercury_im.messenger.core.viewmodel.account.detail.AccountDetailsViewModel;
|
|
|
|
import org.mercury_im.messenger.core.viewmodel.account.list.AccountListViewModel;
|
2020-07-13 01:39:26 +02:00
|
|
|
import org.mercury_im.messenger.core.viewmodel.chat.ChatViewModel;
|
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;
|
2020-07-04 19:50:10 +02:00
|
|
|
import org.mercury_im.messenger.android.service.MercuryForegroundService;
|
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;
|
2020-07-13 18:49:29 +02:00
|
|
|
import org.mercury_im.messenger.android.ui.account.list.AndroidAccountListViewModel;
|
|
|
|
import org.mercury_im.messenger.android.ui.account.login.AndroidLoginViewModel;
|
2020-06-06 18:45:20 +02:00
|
|
|
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-07-13 18:49:29 +02:00
|
|
|
import org.mercury_im.messenger.android.ui.chatlist.AndroidChatListViewModel;
|
2020-06-06 18:45:20 +02:00
|
|
|
import org.mercury_im.messenger.android.ui.roster.contacts.detail.ContactDetailActivity;
|
|
|
|
import org.mercury_im.messenger.android.ui.roster.contacts.detail.ContactDetailViewModel;
|
2020-07-13 18:49:29 +02:00
|
|
|
import org.mercury_im.messenger.core.viewmodel.account.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-18 21:52:06 +02:00
|
|
|
RxMercuryRosterStoreFactoryModule.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
|
|
|
|
|
2020-07-13 01:39:26 +02:00
|
|
|
void inject(AndroidContactListViewModel 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
|
|
|
|
2020-07-13 01:39:26 +02:00
|
|
|
void inject(ChatViewModel chatViewModel);
|
|
|
|
|
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-07-13 18:49:29 +02:00
|
|
|
void inject(AndroidAccountListViewModel androidAccountsViewModel);
|
2019-06-03 01:16:49 +02:00
|
|
|
|
2020-07-13 18:49:29 +02:00
|
|
|
void inject(AndroidChatListViewModel chatListViewModel);
|
2020-06-04 23:49:03 +02:00
|
|
|
|
|
|
|
void inject(ContactDetailViewModel contactDetailViewModel);
|
|
|
|
|
2020-07-10 14:15:58 +02:00
|
|
|
void inject(AccountDetailsViewModel accountDetailsViewModel);
|
|
|
|
|
|
|
|
void inject(AndroidAccountDetailsViewModel accountDetailsViewModel);
|
|
|
|
|
2020-07-09 02:10:47 +02:00
|
|
|
//void inject(AndroidOxSecretKeyBackupRestoreViewModel viewModel);
|
|
|
|
|
2019-06-03 01:16:49 +02:00
|
|
|
|
2020-06-06 16:45:20 +02:00
|
|
|
// Common VMs
|
|
|
|
void inject(LoginViewModel loginViewModel);
|
|
|
|
|
2020-07-13 18:49:29 +02:00
|
|
|
void inject(AccountListViewModel accountsViewModel);
|
2020-06-06 16:45:20 +02:00
|
|
|
|
|
|
|
|
2019-05-13 03:19:17 +02:00
|
|
|
// Services
|
|
|
|
|
2020-07-04 19:50:10 +02:00
|
|
|
void inject(MercuryForegroundService 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
|
|
|
}
|