/*
* AndFHEM - Open Source Android application to control a FHEM home automation
* server.
*
* Copyright (c) 2011, Matthias Klass or third-party contributors as
* indicated by the @author tags or express copyright attribution
* statements applied by the authors. All third-party contributions are
* distributed under license by Red Hat Inc.
*
* This copyrighted material is made available to anyone wishing to use, modify,
* copy, or redistribute it subject to the terms and conditions of the GNU GENERAL PUBLIC LICENSE, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU GENERAL PUBLIC LICENSE
* for more details.
*
* You should have received a copy of the GNU GENERAL PUBLIC LICENSE
* along with this distribution; if not, write to:
* Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor
* Boston, MA 02110-1301 USA
*/
package li.klass.fhem.dagger;
import javax.inject.Singleton;
import dagger.Component;
import li.klass.fhem.AndFHEMApplication;
import li.klass.fhem.activities.AndFHEMMainActivity;
import li.klass.fhem.activities.PreferencesActivity;
import li.klass.fhem.activities.PremiumActivity;
import li.klass.fhem.activities.StartupActivity;
import li.klass.fhem.activities.graph.ChartingActivity;
import li.klass.fhem.activities.locale.ConditionQueryLocaleReceiver;
import li.klass.fhem.adapter.devices.DmxAdapter;
import li.klass.fhem.adapter.devices.DummyAdapter;
import li.klass.fhem.adapter.devices.EnOceanAdapter;
import li.klass.fhem.adapter.devices.EnigmaDeviceAdapter;
import li.klass.fhem.adapter.devices.FS20ZDRDeviceAdapter;
import li.klass.fhem.adapter.devices.FloorplanAdapter;
import li.klass.fhem.adapter.devices.GCMSendDeviceAdapter;
import li.klass.fhem.adapter.devices.HarmonyDeviceAdapter;
import li.klass.fhem.adapter.devices.LightSceneAdapter;
import li.klass.fhem.adapter.devices.MiLightDeviceAdapter;
import li.klass.fhem.adapter.devices.PCA9532DeviceAdapter;
import li.klass.fhem.adapter.devices.PCF8574DeviceAdapter;
import li.klass.fhem.adapter.devices.PIDDeviceAdapter;
import li.klass.fhem.adapter.devices.PioneerAvrDeviceAdapter;
import li.klass.fhem.adapter.devices.PioneerAvrZoneDeviceAdapter;
import li.klass.fhem.adapter.devices.ReadingsProxyDeviceAdapter;
import li.klass.fhem.adapter.devices.RemoteControlAdapter;
import li.klass.fhem.adapter.devices.SBPlayerDeviceAdapter;
import li.klass.fhem.adapter.devices.STVDeviceAdapter;
import li.klass.fhem.adapter.devices.SonosPlayerAdapter;
import li.klass.fhem.adapter.devices.SwapDeviceAdapter;
import li.klass.fhem.adapter.devices.ThresholdAdapter;
import li.klass.fhem.adapter.devices.WeatherAdapter;
import li.klass.fhem.adapter.devices.WebLinkAdapter;
import li.klass.fhem.adapter.devices.WifiLightDeviceAdapter;
import li.klass.fhem.adapter.devices.core.DimmableAdapter;
import li.klass.fhem.adapter.devices.core.ExplicitOverviewDetailDeviceAdapterWithSwitchActionRow;
import li.klass.fhem.adapter.devices.core.GenericOverviewDetailDeviceAdapter;
import li.klass.fhem.adapter.devices.core.ToggleableAdapter;
import li.klass.fhem.adapter.devices.strategy.ToggleableStrategy;
import li.klass.fhem.adapter.devices.strategy.WebcmdStrategy;
import li.klass.fhem.adapter.devices.toggle.OnOffBehavior;
import li.klass.fhem.appwidget.AppWidgetDataHolder;
import li.klass.fhem.appwidget.service.AppWidgetListViewUpdateRemoteViewsService;
import li.klass.fhem.appwidget.service.AppWidgetUpdateService;
import li.klass.fhem.appwidget.type.big.BigAppWidgetProvider;
import li.klass.fhem.appwidget.type.big.BigWidgetSelectionActivity;
import li.klass.fhem.appwidget.type.medium.MediumAppWidgetProvider;
import li.klass.fhem.appwidget.type.medium.MediumWidgetSelectionActivity;
import li.klass.fhem.appwidget.type.small.SmallAppWidgetProvider;
import li.klass.fhem.appwidget.type.small.SmallWidgetSelectionActivity;
import li.klass.fhem.appwidget.view.widget.base.otherWidgets.OtherWidgetsFragment;
import li.klass.fhem.appwidget.view.widget.big.BigWeatherForecastWidget;
import li.klass.fhem.appwidget.view.widget.medium.DimWidgetView;
import li.klass.fhem.appwidget.view.widget.medium.HeatingWidgetView;
import li.klass.fhem.appwidget.view.widget.medium.MediumInformationWidgetView;
import li.klass.fhem.appwidget.view.widget.medium.MediumWeatherForecastWidget;
import li.klass.fhem.appwidget.view.widget.medium.OnOffWidgetView;
import li.klass.fhem.appwidget.view.widget.medium.RoomDetailLinkWidget;
import li.klass.fhem.appwidget.view.widget.medium.StatusWidgetView;
import li.klass.fhem.appwidget.view.widget.medium.TargetStateWidgetView;
import li.klass.fhem.appwidget.view.widget.medium.TemperatureWidgetView;
import li.klass.fhem.appwidget.view.widget.medium.ToggleWidgetView;
import li.klass.fhem.appwidget.view.widget.small.AllDevicesLinkWidget;
import li.klass.fhem.appwidget.view.widget.small.ConversionLinkWidget;
import li.klass.fhem.appwidget.view.widget.small.DeviceListUpdateWidget;
import li.klass.fhem.appwidget.view.widget.small.FavoritesLinkWidget;
import li.klass.fhem.appwidget.view.widget.small.RoomsLinkWidget;
import li.klass.fhem.appwidget.view.widget.small.SendCommandLinkWidget;
import li.klass.fhem.appwidget.view.widget.small.SmallToggleWidget;
import li.klass.fhem.appwidget.view.widget.small.TimersLinkWidget;
import li.klass.fhem.fragments.AllDevicesFragment;
import li.klass.fhem.fragments.ConnectionDetailFragment;
import li.klass.fhem.fragments.ConnectionListFragment;
import li.klass.fhem.fragments.ConversionFragment;
import li.klass.fhem.fragments.FavoritesFragment;
import li.klass.fhem.fragments.FloorplanFragment;
import li.klass.fhem.fragments.RoomDetailFragment;
import li.klass.fhem.fragments.RoomListFragment;
import li.klass.fhem.fragments.SendCommandFragment;
import li.klass.fhem.fragments.TimerDetailFragment;
import li.klass.fhem.fragments.TimerListFragment;
import li.klass.fhem.fragments.WebViewFragment;
import li.klass.fhem.fragments.core.DeviceDetailFragment;
import li.klass.fhem.fragments.device.DeviceNameListFragment;
import li.klass.fhem.fragments.device.DeviceNameListNavigationFragment;
import li.klass.fhem.fragments.device.DeviceNameSelectionFragment;
import li.klass.fhem.fragments.device.DeviceNameSelectionNavigationFragment;
import li.klass.fhem.fragments.weekprofile.FromToWeekProfileFragment;
import li.klass.fhem.fragments.weekprofile.IntervalWeekProfileFragment;
import li.klass.fhem.gcm.GCMIntentService;
import li.klass.fhem.service.deviceConfiguration.DeviceConfigurationProvider;
import li.klass.fhem.service.graph.gplot.GPlotHolder;
import li.klass.fhem.service.importexport.ImportExportService;
import li.klass.fhem.service.intent.AppActionsIntentService;
import li.klass.fhem.service.intent.ConnectionsIntentService;
import li.klass.fhem.service.intent.DeviceIntentService;
import li.klass.fhem.service.intent.ExternalApiService;
import li.klass.fhem.service.intent.FavoritesIntentService;
import li.klass.fhem.service.intent.ImageIntentService;
import li.klass.fhem.service.intent.LicenseIntentService;
import li.klass.fhem.service.intent.NotificationIntentService;
import li.klass.fhem.service.intent.RoomListIntentService;
import li.klass.fhem.service.intent.RoomListUpdateIntentService;
import li.klass.fhem.service.intent.SendCommandIntentService;
import li.klass.fhem.service.intent.VoiceCommandIntentService;
import li.klass.fhem.service.room.RoomListUpdateService;
import li.klass.fhem.service.room.group.GroupProvider;
import li.klass.fhem.service.room.xmllist.XmlListParser;
import li.klass.fhem.widget.deviceFunctionality.DeviceFunctionalityOrderPreference;
@Singleton
@Component(modules = {ApplicationModule.class, DetailActionsModule.class, DeviceGroupProviderModule.class})
public interface ApplicationComponent {
void inject(DeviceFunctionalityOrderPreference object);
void inject(AndFHEMMainActivity object);
void inject(ChartingActivity object);
void inject(StartupActivity object);
void inject(PreferencesActivity object);
void inject(SmallWidgetSelectionActivity object);
void inject(MediumWidgetSelectionActivity object);
void inject(BigWidgetSelectionActivity object);
void inject(PremiumActivity object);
void inject(DmxAdapter object);
void inject(DummyAdapter object);
void inject(EnOceanAdapter object);
void inject(FloorplanAdapter object);
void inject(FS20ZDRDeviceAdapter object);
void inject(GCMSendDeviceAdapter object);
void inject(LightSceneAdapter object);
void inject(PCA9532DeviceAdapter object);
void inject(PCF8574DeviceAdapter object);
void inject(PIDDeviceAdapter object);
void inject(ReadingsProxyDeviceAdapter object);
void inject(RemoteControlAdapter object);
void inject(SonosPlayerAdapter object);
void inject(SwapDeviceAdapter object);
void inject(ThresholdAdapter object);
void inject(ToggleableAdapter object);
void inject(WeatherAdapter object);
void inject(WebLinkAdapter object);
void inject(WifiLightDeviceAdapter object);
void inject(EnigmaDeviceAdapter object);
void inject(PioneerAvrDeviceAdapter object);
void inject(MiLightDeviceAdapter object);
void inject(STVDeviceAdapter object);
void inject(PioneerAvrZoneDeviceAdapter object);
void inject(SBPlayerDeviceAdapter object);
void inject(HarmonyDeviceAdapter object);
void inject(GenericOverviewDetailDeviceAdapter object);
void inject(DimmableAdapter object);
void inject(ExplicitOverviewDetailDeviceAdapterWithSwitchActionRow object);
void inject(TemperatureWidgetView object);
void inject(ToggleWidgetView object);
void inject(SmallToggleWidget object);
void inject(StatusWidgetView object);
void inject(MediumInformationWidgetView object);
void inject(HeatingWidgetView object);
void inject(MediumWeatherForecastWidget object);
void inject(BigWeatherForecastWidget object);
void inject(DimWidgetView object);
void inject(TargetStateWidgetView object);
void inject(RoomDetailLinkWidget object);
void inject(FavoritesLinkWidget object);
void inject(RoomsLinkWidget object);
void inject(AllDevicesLinkWidget object);
void inject(ConversionLinkWidget object);
void inject(TimersLinkWidget object);
void inject(SendCommandLinkWidget object);
void inject(DeviceListUpdateWidget object);
void inject(OnOffWidgetView object);
void inject(AppWidgetListViewUpdateRemoteViewsService object);
void inject(AppWidgetDataHolder object);
void inject(SmallAppWidgetProvider object);
void inject(MediumAppWidgetProvider object);
void inject(BigAppWidgetProvider object);
void inject(FavoritesFragment object);
void inject(RoomListFragment object);
void inject(AllDevicesFragment object);
void inject(ConversionFragment object);
void inject(DeviceDetailFragment object);
void inject(FromToWeekProfileFragment object);
void inject(IntervalWeekProfileFragment object);
void inject(FloorplanFragment object);
void inject(RoomDetailFragment object);
void inject(SendCommandFragment object);
void inject(DeviceNameListFragment object);
void inject(DeviceNameSelectionFragment object);
void inject(DeviceNameListNavigationFragment object);
void inject(TimerListFragment object);
void inject(TimerDetailFragment object);
void inject(ConnectionListFragment object);
void inject(ConnectionDetailFragment object);
void inject(WebViewFragment object);
void inject(OtherWidgetsFragment object);
void inject(DeviceNameSelectionNavigationFragment object);
void inject(RoomListUpdateService object);
void inject(GCMIntentService object);
void inject(ConnectionsIntentService object);
void inject(SendCommandIntentService object);
void inject(RoomListIntentService object);
void inject(RoomListUpdateIntentService object);
void inject(NotificationIntentService object);
void inject(ImageIntentService object);
void inject(FavoritesIntentService object);
void inject(ExternalApiService object);
void inject(DeviceIntentService object);
void inject(AppWidgetUpdateService object);
void inject(LicenseIntentService object);
void inject(AppActionsIntentService object);
void inject(VoiceCommandIntentService object);
void inject(ImportExportService object);
void inject(AndFHEMApplication object);
void inject(ConditionQueryLocaleReceiver object);
void inject(OnOffBehavior object);
void inject(ToggleableStrategy object);
void inject(WebcmdStrategy object);
XmlListParser getXmlListParser();
GPlotHolder getGPlotHolder();
DeviceConfigurationProvider getDeviceConfigurationProvider();
GroupProvider getGroupProvider();
}