package com.github.xsavikx.androidscreencast.dagger; import com.android.ddmlib.IDevice; import com.github.xsavikx.androidscreencast.app.AndroidScreencastApplication; import com.github.xsavikx.androidscreencast.app.Application; import com.github.xsavikx.androidscreencast.app.DeviceChooserApplication; import dagger.Module; import dagger.Provides; import javax.inject.Singleton; @Singleton @Module public class AppModule { @Singleton @Provides public static Application application(AndroidScreencastApplication application) { return application; } @Singleton @Provides public static IDevice iDevice(final DeviceChooserApplication application) { try { application.init(); application.start(); IDevice device = application.getDevice(); return device; } catch (Throwable e) { application.stop(); throw e; } } }