// Path: app/src/main/java/eu/se_bastiaan/tvnl/AppInjectionComponent.java
// @Singleton
// @Component(
//         modules = {
//                 AppModule.class,
//                 NetworkModule.class
//         }
// )
// public interface AppInjectionComponent {
// 
//     void inject(@NonNull MainActivity activity);
//     void inject(@NonNull DetailsActivity activity);
//     void inject(@NonNull SearchActivity activity);
//     void inject(@NonNull VideoPlayerActivity activity);
// 
//     void inject(@NonNull BrowseFragPresenter presenter);
//     void inject(@NonNull VideoPlayerFragPresenter presenter);
//     void inject(@NonNull PlaybackOverlayFragPresenter presenter);
//     void inject(@NonNull PlaybackOverlayFragment presenter);
//     void inject(@NonNull SearchFragPresenter presenter);
//     void inject(@NonNull DetailsFragPresenter presenter);
// 
//     void inject(@NonNull OkHttpGlideModule module);
// 
//     void inject(@NonNull RecommendationContentProvider contentProvider);
//     void inject(@NonNull RecommendationService service);
// 
//     final class Initializer {
//         private Initializer() {
//             /* No instances. */
//         }
// 
//         public static AppInjectionComponent init(TVNLApplication application) {
//             return DaggerAppInjectionComponent
//                     .builder()
//                     .appModule(new AppModule(application))
//                     .networkModule(new NetworkModule())
//                     .build();
//         }
//     }
// 
// }
// 
// Path: app/src/main/java/eu/se_bastiaan/tvnl/event/UpdateBackgroundEvent.java
// public class UpdateBackgroundEvent {
// 
//     private Drawable drawable;
//     private String url;
//     @DrawableRes
//     private Integer res = -1;
// 
//     public UpdateBackgroundEvent() {
//         drawable = null;
//         url = null;
//     }
// 
//     public UpdateBackgroundEvent(Drawable drawable) {
//         this.drawable = drawable;
//     }
// 
//     public UpdateBackgroundEvent(String url) {
//         this.url = url;
//     }
// 
//     public UpdateBackgroundEvent(@DrawableRes Integer res) {
//         this.res = res;
//     }
// 
//     public Drawable getDrawable() {
//         return drawable;
//     }
// 
//     public String getUrl() {
//         return url;
//     }
// 
//     public Integer getResource() {
//         return res;
//     }
// 
//     public Boolean isDrawable() {
//         return drawable != null;
//     }
// 
//     public Boolean isUrl() {
//         return url != null;
//     }
// 
//     public Boolean isResource() {
//         return res != -1;
//     }
// 
// }
// 
// Path: app/src/main/java/eu/se_bastiaan/tvnl/ui/activity/base/BaseActivity.java
// public abstract class BaseActivity extends FragmentActivity {
// 
//     private static final int PERMISSIONS_REQUEST = 1;
// 
//     @Inject
//     protected EventBus eventBus;
// 
//     BackgroundUpdater backgroundManager;
// 
//     public void onCreate(Bundle savedInstanceState, @LayoutRes int layoutRes) {
//         super.onCreate(savedInstanceState);
//         setContentView(layoutRes);
//         ButterKnife.bind(this);
// 
//         injectComponent(TVNLApplication.get().appComponent());
// 
//         backgroundManager = BackgroundUpdater.init(this, R.drawable.default_background);
//     }
// 
//     @Override
//     protected void attachBaseContext(Context newBase) {
//         super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
//     }
// 
//     @Override
//     public boolean onSearchRequested() {
//         if(ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
//             SearchActivity.startActivity(this);
//         } else {
//             ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, PERMISSIONS_REQUEST);
//         }
//         return true;
//     }
// 
//     @Override
//     protected void onDestroy() {
//         super.onDestroy();
//         backgroundManager.destroy();
//     }
// 
//     @Subscribe
//     public void updateBackground(UpdateBackgroundEvent updateBackgroundEvent) {
//         if(updateBackgroundEvent.isDrawable()) {
//             Drawable drawable = updateBackgroundEvent.getDrawable();
//             backgroundManager.updateBackground(drawable);
//         } else if(updateBackgroundEvent.isResource()) {
//             backgroundManager.updateBackground(updateBackgroundEvent.getResource());
//         } else if(updateBackgroundEvent.isUrl()){
//             backgroundManager.updateBackgroundAsync(updateBackgroundEvent.getUrl());
//         } else {
//             backgroundManager.clearBackground();
//         }
//     }
// 
//     protected abstract void injectComponent(AppInjectionComponent component);
// 
//     @Override
//     public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
//         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//         if(PERMISSIONS_REQUEST == requestCode) {
//             boolean success = true;
//             for (int result : grantResults) {
//                 if (result == PackageManager.PERMISSION_DENIED) {
//                     success = false;
//                     break;
//                 }
//             }
// 
//             if (success)
//                 SearchActivity.startActivity(this);
//         }
//     }
// }


import android.annotation.SuppressLint;
import android.os.Bundle;
import com.squareup.otto.Subscribe;
import eu.se_bastiaan.tvnl.AppInjectionComponent;
import eu.se_bastiaan.tvnl.R;
import eu.se_bastiaan.tvnl.event.UpdateBackgroundEvent;
import eu.se_bastiaan.tvnl.ui.activity.base.BaseActivity;
package eu.se_bastiaan.tvnl.ui.activity;




public class MainActivity extends BaseActivity {

    @SuppressLint("MissingSuperCall")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState, R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();
        eventBus.register(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        eventBus.unregister(this);
    }

    @Subscribe
    @Override
    public void updateBackground(UpdateBackgroundEvent updateBackgroundEvent) {
        super.updateBackground(updateBackgroundEvent);
    }

    @Override
// Path: app/src/main/java/eu/se_bastiaan/tvnl/AppInjectionComponent.java
// @Singleton
// @Component(
//         modules = {
//                 AppModule.class,
//                 NetworkModule.class
//         }
// )
// public interface AppInjectionComponent {
// 
//     void inject(@NonNull MainActivity activity);
//     void inject(@NonNull DetailsActivity activity);
//     void inject(@NonNull SearchActivity activity);
//     void inject(@NonNull VideoPlayerActivity activity);
// 
//     void inject(@NonNull BrowseFragPresenter presenter);
//     void inject(@NonNull VideoPlayerFragPresenter presenter);
//     void inject(@NonNull PlaybackOverlayFragPresenter presenter);
//     void inject(@NonNull PlaybackOverlayFragment presenter);
//     void inject(@NonNull SearchFragPresenter presenter);
//     void inject(@NonNull DetailsFragPresenter presenter);
// 
//     void inject(@NonNull OkHttpGlideModule module);
// 
//     void inject(@NonNull RecommendationContentProvider contentProvider);
//     void inject(@NonNull RecommendationService service);
// 
//     final class Initializer {
//         private Initializer() {
//             /* No instances. */
//         }
// 
//         public static AppInjectionComponent init(TVNLApplication application) {
//             return DaggerAppInjectionComponent
//                     .builder()
//                     .appModule(new AppModule(application))
//                     .networkModule(new NetworkModule())
//                     .build();
//         }
//     }
// 
// }
// 
// Path: app/src/main/java/eu/se_bastiaan/tvnl/event/UpdateBackgroundEvent.java
// public class UpdateBackgroundEvent {
// 
//     private Drawable drawable;
//     private String url;
//     @DrawableRes
//     private Integer res = -1;
// 
//     public UpdateBackgroundEvent() {
//         drawable = null;
//         url = null;
//     }
// 
//     public UpdateBackgroundEvent(Drawable drawable) {
//         this.drawable = drawable;
//     }
// 
//     public UpdateBackgroundEvent(String url) {
//         this.url = url;
//     }
// 
//     public UpdateBackgroundEvent(@DrawableRes Integer res) {
//         this.res = res;
//     }
// 
//     public Drawable getDrawable() {
//         return drawable;
//     }
// 
//     public String getUrl() {
//         return url;
//     }
// 
//     public Integer getResource() {
//         return res;
//     }
// 
//     public Boolean isDrawable() {
//         return drawable != null;
//     }
// 
//     public Boolean isUrl() {
//         return url != null;
//     }
// 
//     public Boolean isResource() {
//         return res != -1;
//     }
// 
// }
// 
// Path: app/src/main/java/eu/se_bastiaan/tvnl/ui/activity/base/BaseActivity.java
// public abstract class BaseActivity extends FragmentActivity {
// 
//     private static final int PERMISSIONS_REQUEST = 1;
// 
//     @Inject
//     protected EventBus eventBus;
// 
//     BackgroundUpdater backgroundManager;
// 
//     public void onCreate(Bundle savedInstanceState, @LayoutRes int layoutRes) {
//         super.onCreate(savedInstanceState);
//         setContentView(layoutRes);
//         ButterKnife.bind(this);
// 
//         injectComponent(TVNLApplication.get().appComponent());
// 
//         backgroundManager = BackgroundUpdater.init(this, R.drawable.default_background);
//     }
// 
//     @Override
//     protected void attachBaseContext(Context newBase) {
//         super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase));
//     }
// 
//     @Override
//     public boolean onSearchRequested() {
//         if(ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) == PackageManager.PERMISSION_GRANTED) {
//             SearchActivity.startActivity(this);
//         } else {
//             ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.RECORD_AUDIO}, PERMISSIONS_REQUEST);
//         }
//         return true;
//     }
// 
//     @Override
//     protected void onDestroy() {
//         super.onDestroy();
//         backgroundManager.destroy();
//     }
// 
//     @Subscribe
//     public void updateBackground(UpdateBackgroundEvent updateBackgroundEvent) {
//         if(updateBackgroundEvent.isDrawable()) {
//             Drawable drawable = updateBackgroundEvent.getDrawable();
//             backgroundManager.updateBackground(drawable);
//         } else if(updateBackgroundEvent.isResource()) {
//             backgroundManager.updateBackground(updateBackgroundEvent.getResource());
//         } else if(updateBackgroundEvent.isUrl()){
//             backgroundManager.updateBackgroundAsync(updateBackgroundEvent.getUrl());
//         } else {
//             backgroundManager.clearBackground();
//         }
//     }
// 
//     protected abstract void injectComponent(AppInjectionComponent component);
// 
//     @Override
//     public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
//         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//         if(PERMISSIONS_REQUEST == requestCode) {
//             boolean success = true;
//             for (int result : grantResults) {
//                 if (result == PackageManager.PERMISSION_DENIED) {
//                     success = false;
//                     break;
//                 }
//             }
// 
//             if (success)
//                 SearchActivity.startActivity(this);
//         }
//     }
// }


// Path: app/src/main/java/eu/se_bastiaan/tvnl/ui/activity/MainActivity.java
import android.annotation.SuppressLint;
import android.os.Bundle;
import com.squareup.otto.Subscribe;
import eu.se_bastiaan.tvnl.AppInjectionComponent;
import eu.se_bastiaan.tvnl.R;
import eu.se_bastiaan.tvnl.event.UpdateBackgroundEvent;
import eu.se_bastiaan.tvnl.ui.activity.base.BaseActivity;

package eu.se_bastiaan.tvnl.ui.activity;




public class MainActivity extends BaseActivity {

    @SuppressLint("MissingSuperCall")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState, R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();
        eventBus.register(this);
    }

    @Override
    protected void onPause() {
        super.onPause();
        eventBus.unregister(this);
    }

    @Subscribe
    @Override
    public void updateBackground(UpdateBackgroundEvent updateBackgroundEvent) {
        super.updateBackground(updateBackgroundEvent);
    }

    @Override
    protected void injectComponent(AppInjectionComponent component) {