Mercury-IM/app/src/main/java/org/mercury_im/messenger/di/component/AppComponent.java

78 lines
2.0 KiB
Java

package org.mercury_im.messenger.di.component;
import dagger.Component;
import org.mercury_im.messenger.MercuryImApplication;
import org.mercury_im.messenger.core.stores.PlainMessageStore;
import org.mercury_im.messenger.di.module.AppModule;
import org.mercury_im.messenger.persistence.room.RoomModule;
import org.mercury_im.messenger.service.XmppConnectionService;
import org.mercury_im.messenger.ui.MainActivity;
import org.mercury_im.messenger.ui.chat.ChatActivity;
import org.mercury_im.messenger.ui.chat.ChatInputFragment;
import org.mercury_im.messenger.ui.chat.ChatInputViewModel;
import org.mercury_im.messenger.ui.chat.ChatViewModel;
import org.mercury_im.messenger.ui.chatlist.ChatListViewModel;
import org.mercury_im.messenger.ui.login.AccountsActivity;
import org.mercury_im.messenger.ui.login.AccountsViewModel;
import org.mercury_im.messenger.ui.login.LoginActivity;
import org.mercury_im.messenger.ui.login.LoginViewModel;
import org.mercury_im.messenger.ui.roster.RosterViewModel;
import javax.inject.Singleton;
/**
* Main Application Component that binds together all the modules needed for the Android
* application.
*/
@Singleton
@Component(modules = {
AppModule.class,
RoomModule.class
})
public interface AppComponent {
// Application
void inject(MercuryImApplication mercuryImApplication);
// Views
void inject(MainActivity mainActivity);
void inject(LoginActivity loginActivity);
void inject(ChatActivity chatActivity);
void inject(AccountsActivity accountsActivity);
void inject(ChatInputFragment chatInputFragment);
void inject(ChatListViewModel chatListViewModel);
// ViewModels
void inject(RosterViewModel rosterViewModel);
void inject(ChatViewModel chatViewModel);
void inject(ChatInputViewModel chatInputViewModel);
void inject(LoginViewModel loginViewModel);
void inject(AccountsViewModel accountsViewModel);
// Services
void inject(XmppConnectionService service);
// Connectors
void inject(PlainMessageStore messageHandler);
}