From e0e9cdfe6356336760f5b20a0d680f061ffde9d3 Mon Sep 17 00:00:00 2001 From: Blaz Solar Date: Thu, 30 Mar 2017 09:28:13 +0200 Subject: [PATCH 1/2] --wip-- [skip ci] --- .../butter/droid/base/ApplicationScope.java | 44 ++++++++++++ .../droid/base/BaseApplicationComponent.java | 23 ++++++- .../droid/base/BaseApplicationModule.java | 36 +--------- .../butter/droid/base/ButterApplication.java | 33 ++++++--- .../butter/droid/base/ExposedComponent.java | 51 ++++++++++++++ .../java/butter/droid/base/ExposedModule.java | 58 ++++++++++++++++ .../preferences/PreferencesHandler.java | 29 ++++---- .../fragments/BaseVideoPlayerFragment.java | 10 +-- .../droid/base/manager/ManagerModule.java | 31 --------- .../internal/InternalManagerModule.java | 68 +++++++++++++++++++ .../beaming/BeamDeviceAdapter.java | 2 +- .../beaming/BeamDeviceListener.java | 2 +- .../{ => internal}/beaming/BeamManager.java | 20 +++--- .../BeamPlayerNotificationService.java | 2 +- .../beaming/server/BeamServer.java | 2 +- .../beaming/server/BeamServerService.java | 2 +- .../provider/ProviderManager.java | 2 +- .../updater/ButterUpdateManager.java | 24 +++---- .../updater/model/UpdaterData.java | 2 +- .../{ => internal}/vlc/PlayerManager.java | 6 +- .../{ => internal}/vlc/VLCManager.java | 2 +- .../{ => internal}/vlc/VLCOptions.java | 2 +- .../youtube/YouTubeManager.java | 6 +- .../{ => internal}/youtube/model/Format.java | 2 +- .../youtube/model/VideoStream.java | 2 +- .../droid/base/manager/prefs/PrefManager.java | 4 +- .../base/providers/ProviderComponent.java | 55 +++++++++++++++ .../droid/base/providers/ProviderModule.java | 11 ++- .../droid/base/providers/ProviderScope.java | 28 ++++++++ .../base/providers/media/models/Episode.java | 2 +- .../base/providers/media/models/Media.java | 2 +- .../base/providers/media/models/Movie.java | 2 +- .../base/providers/media/models/Show.java | 2 +- .../base/providers/subs/SubsProvider.java | 2 +- .../base/providers/subs/YSubsProvider.java | 2 +- .../providers/subs/open/OpenSubsProvider.java | 2 +- .../droid/base/subs/SubtitleDownloader.java | 2 +- ...aseStreamLoadingFragmentPresenterImpl.java | 8 +-- .../BasePreferencesPresenterImpl.java | 4 +- .../droid/base/utils/ProviderUtils.java | 4 +- mobile/src/main/AndroidManifest.xml | 4 +- .../butter/droid/ApplicationComponent.java | 9 ++- .../butter/droid/MobileButterApplication.java | 18 ++--- .../droid/activities/BeamPlayerActivity.java | 4 +- .../activities/TrailerPlayerActivity.java | 3 +- .../droid/fragments/BeamPlayerFragment.java | 6 +- .../fragments/MediaContainerFragment.java | 2 +- .../MediaGenreSelectionFragment.java | 2 +- .../BeamDeviceSelectorDialogFragment.java | 4 +- .../dialog/EpisodeDialogFragment.java | 4 +- .../dialog/LoadingDetailDialogFragment.java | 2 +- .../butter/droid/ui/ButterBaseActivity.java | 4 +- .../fragment/StreamLoadingFragmentModule.java | 6 +- .../StreamLoadingFragmentPresenterImpl.java | 6 +- .../butter/droid/ui/main/MainActivity.java | 10 +-- .../java/butter/droid/ui/main/MainModule.java | 6 +- .../butter/droid/ui/main/MainPresenter.java | 2 +- .../droid/ui/main/MainPresenterImpl.java | 8 +-- .../java/butter/droid/ui/main/MainView.java | 2 +- .../navigation/NavigationDrawerFragment.java | 2 +- .../navigation/NavigationDrawerModule.java | 2 +- .../navigation/NavigationDrawerPresenter.java | 2 +- .../NavigationDrawerPresenterImpl.java | 4 +- .../ui/media/detail/MediaDetailActivity.java | 4 +- .../media/detail/movie/MovieDetailModule.java | 6 +- .../movie/MovieDetailPresenterImpl.java | 6 +- .../droid/ui/media/list/MediaListModule.java | 2 +- .../ui/media/list/MediaListPresenterImpl.java | 2 +- .../list/base/BaseMediaListPresenterImpl.java | 2 +- .../ui/preferences/PreferencesActivity.java | 2 +- .../ui/preferences/PreferencesModule.java | 4 +- .../preferences/PreferencesPresenterImpl.java | 4 +- .../butter/droid/ui/search/SearchModule.java | 2 +- .../droid/ui/search/SearchPresenterImpl.java | 2 +- .../ui/main/MainPresenterImplUnitTest.java | 6 +- .../butter/droid/tv/ApplicationComponent.java | 9 ++- .../butter/droid/tv/TVButterApplication.java | 22 +++--- .../droid/tv/activities/TVMainActivity.java | 2 +- .../activities/TVTrailerPlayerActivity.java | 2 +- .../tv/activities/base/TVBaseActivity.java | 2 +- .../tv/fragments/TVMediaGridFragment.java | 2 +- .../tv/fragments/TVMovieDetailsFragment.java | 4 +- .../tv/fragments/TVOverviewFragment.java | 2 +- .../droid/tv/fragments/TVUpdateFragment.java | 2 +- .../tv/service/RecommendationService.java | 2 +- .../TVStreamLoadingFragmentModule.java | 4 +- .../TVStreamLoadingFragmentPresenterImpl.java | 4 +- .../ui/preferences/TVPreferencesFragment.java | 2 +- .../ui/preferences/TVPreferencesModule.java | 4 +- .../TVPreferencesPresenterImpl.java | 4 +- .../droid/tv/ui/search/TVSearchModue.java | 2 +- .../tv/ui/search/TVSearchPresenterImpl.java | 3 +- 92 files changed, 538 insertions(+), 279 deletions(-) create mode 100644 base/src/main/java/butter/droid/base/ApplicationScope.java create mode 100644 base/src/main/java/butter/droid/base/ExposedComponent.java create mode 100644 base/src/main/java/butter/droid/base/ExposedModule.java create mode 100644 base/src/main/java/butter/droid/base/manager/internal/InternalManagerModule.java rename base/src/main/java/butter/droid/base/manager/{ => internal}/beaming/BeamDeviceAdapter.java (99%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/beaming/BeamDeviceListener.java (96%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/beaming/BeamManager.java (98%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/beaming/BeamPlayerNotificationService.java (99%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/beaming/server/BeamServer.java (99%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/beaming/server/BeamServerService.java (96%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/provider/ProviderManager.java (98%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/updater/ButterUpdateManager.java (98%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/updater/model/UpdaterData.java (94%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/vlc/PlayerManager.java (97%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/vlc/VLCManager.java (95%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/vlc/VLCOptions.java (99%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/youtube/YouTubeManager.java (97%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/youtube/model/Format.java (96%) rename base/src/main/java/butter/droid/base/manager/{ => internal}/youtube/model/VideoStream.java (96%) create mode 100644 base/src/main/java/butter/droid/base/providers/ProviderComponent.java create mode 100644 base/src/main/java/butter/droid/base/providers/ProviderScope.java diff --git a/base/src/main/java/butter/droid/base/ApplicationScope.java b/base/src/main/java/butter/droid/base/ApplicationScope.java new file mode 100644 index 000000000..c703a561a --- /dev/null +++ b/base/src/main/java/butter/droid/base/ApplicationScope.java @@ -0,0 +1,44 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid.base; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import javax.inject.Scope; + +@Scope +@Retention(RetentionPolicy.RUNTIME) +public @interface ApplicationScope { +} diff --git a/base/src/main/java/butter/droid/base/BaseApplicationComponent.java b/base/src/main/java/butter/droid/base/BaseApplicationComponent.java index 1c4f53e0a..80fc9b264 100644 --- a/base/src/main/java/butter/droid/base/BaseApplicationComponent.java +++ b/base/src/main/java/butter/droid/base/BaseApplicationComponent.java @@ -17,8 +17,18 @@ package butter.droid.base; -import butter.droid.base.manager.beaming.BeamPlayerNotificationService; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Resources; +import android.net.ConnectivityManager; +import android.net.wifi.WifiManager; +import butter.droid.base.manager.internal.beaming.BeamPlayerNotificationService; +import butter.droid.base.manager.internal.vlc.PlayerManager; +import butter.droid.base.providers.media.VodoProvider; import butter.droid.base.torrent.TorrentService; +import com.google.gson.Gson; +import com.squareup.picasso.Picasso; +import okhttp3.OkHttpClient; public interface BaseApplicationComponent { @@ -26,4 +36,15 @@ public interface BaseApplicationComponent { void inject(TorrentService service); + Context context(); + Picasso picasso(); + VodoProvider codoProvider(); + OkHttpClient okHttpClient(); + Gson gson(); + PlayerManager playerManager(); + SharedPreferences sharedPreferences(); + Resources resources(); + ConnectivityManager connectivityManager(); + WifiManager wifiManager(); + } diff --git a/base/src/main/java/butter/droid/base/BaseApplicationModule.java b/base/src/main/java/butter/droid/base/BaseApplicationModule.java index d7a0249b8..87ee9c0cc 100644 --- a/base/src/main/java/butter/droid/base/BaseApplicationModule.java +++ b/base/src/main/java/butter/droid/base/BaseApplicationModule.java @@ -17,46 +17,14 @@ package butter.droid.base; -import android.content.Context; -import android.content.SharedPreferences; -import android.content.res.Resources; - -import javax.inject.Singleton; - -import butter.droid.base.content.ObscuredSharedPreferences; -import butter.droid.base.data.DataModule; -import butter.droid.base.manager.ManagerModule; -import butter.droid.base.providers.ProviderModule; +import butter.droid.base.manager.internal.InternalManagerModule; import dagger.Module; -import dagger.Provides; @Module( includes = { - DataModule.class, - ManagerModule.class, - ProviderModule.class, - AndroidModule.class, + InternalManagerModule.class, } ) public class BaseApplicationModule { - private final ButterApplication application; - - public BaseApplicationModule(ButterApplication application) { - this.application = application; - } - - @Provides @Singleton public Context provideContext() { - return application; - } - - @Provides @Singleton public SharedPreferences provideSharedPreferences(Context context) { - return new ObscuredSharedPreferences(context, - context.getSharedPreferences(Constants.PREFS_FILE, Context.MODE_PRIVATE)); - } - - @Provides @Singleton public Resources provideResources(Context context) { - return context.getResources(); - } - } diff --git a/base/src/main/java/butter/droid/base/ButterApplication.java b/base/src/main/java/butter/droid/base/ButterApplication.java index d60ee9b0c..480d97723 100644 --- a/base/src/main/java/butter/droid/base/ButterApplication.java +++ b/base/src/main/java/butter/droid/base/ButterApplication.java @@ -27,25 +27,24 @@ import android.content.pm.PackageManager; import android.content.res.Configuration; import android.net.Uri; +import android.support.annotation.NonNull; import android.support.multidex.MultiDex; import android.support.v4.app.NotificationCompat; - -import com.sjl.foreground.Foreground; -import com.squareup.leakcanary.LeakCanary; -import com.squareup.picasso.Picasso; - -import java.io.File; - -import javax.inject.Inject; - import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.beaming.BeamManager; -import butter.droid.base.manager.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.beaming.BeamManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; +import butter.droid.base.providers.DaggerProviderComponent; +import butter.droid.base.providers.ProviderComponent; import butter.droid.base.torrent.TorrentService; import butter.droid.base.utils.FileUtils; import butter.droid.base.utils.LocaleUtils; import butter.droid.base.utils.StorageUtils; import butter.droid.base.utils.VersionUtils; +import com.sjl.foreground.Foreground; +import com.squareup.leakcanary.LeakCanary; +import com.squareup.picasso.Picasso; +import java.io.File; +import javax.inject.Inject; import timber.log.Timber; public abstract class ButterApplication extends Application implements ButterUpdateManager.Listener { @@ -69,6 +68,16 @@ public void onCreate() { super.onCreate(); sThis = this; + ExposedComponent exposedComponent = DaggerExposedComponent.builder() + .exposedModule(new ExposedModule(this)) + .build(); + + ProviderComponent providerComponent = DaggerProviderComponent.builder() + .exposedComponent(exposedComponent) + .build(); + + inject(providerComponent); + sDefSystemLanguage = LocaleUtils.getCurrentAsString(); LeakCanary.install(this); @@ -152,6 +161,8 @@ public void updateAvailable(String updateFile) { public abstract BaseApplicationComponent getComponent(); + protected abstract void inject(@NonNull ProviderComponent providerComponent); + public static ButterApplication getAppContext() { return sThis; } diff --git a/base/src/main/java/butter/droid/base/ExposedComponent.java b/base/src/main/java/butter/droid/base/ExposedComponent.java new file mode 100644 index 000000000..597fad7b7 --- /dev/null +++ b/base/src/main/java/butter/droid/base/ExposedComponent.java @@ -0,0 +1,51 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid.base; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Resources; +import android.net.ConnectivityManager; +import android.net.wifi.WifiManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; +import butter.droid.base.manager.network.NetworkManager; +import butter.droid.base.manager.prefs.PrefManager; +import com.google.gson.Gson; +import com.squareup.picasso.Picasso; +import dagger.Component; +import javax.inject.Singleton; +import okhttp3.OkHttpClient; + +@Singleton @Component( + modules = ExposedModule.class +) +public interface ExposedComponent { + + OkHttpClient okHttpClient(); + Gson gson(); + PlayerManager playerManager(); + Context context(); + Picasso picasso(); + SharedPreferences sharedPreferences(); + Resources resources(); + ConnectivityManager connectivityManager(); + WifiManager wifiManager(); + NetworkManager networkManager(); + PrefManager prefManager(); + +} diff --git a/base/src/main/java/butter/droid/base/ExposedModule.java b/base/src/main/java/butter/droid/base/ExposedModule.java new file mode 100644 index 000000000..6b5036d8c --- /dev/null +++ b/base/src/main/java/butter/droid/base/ExposedModule.java @@ -0,0 +1,58 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid.base; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Resources; +import butter.droid.base.content.ObscuredSharedPreferences; +import butter.droid.base.data.DataModule; +import butter.droid.base.manager.ManagerModule; +import dagger.Module; +import dagger.Provides; +import javax.inject.Singleton; + +@Module( + includes = { + DataModule.class, + AndroidModule.class, + ManagerModule.class + } +) +public class ExposedModule { + + private final ButterApplication application; + + public ExposedModule(ButterApplication application) { + this.application = application; + } + + @Provides @Singleton public Context provideContext() { + return application; + } + + @Provides @Singleton public SharedPreferences provideSharedPreferences(Context context) { + return new ObscuredSharedPreferences(context, + context.getSharedPreferences(Constants.PREFS_FILE, Context.MODE_PRIVATE)); + } + + @Provides @Singleton public Resources provideResources(Context context) { + return context.getResources(); + } + +} diff --git a/base/src/main/java/butter/droid/base/content/preferences/PreferencesHandler.java b/base/src/main/java/butter/droid/base/content/preferences/PreferencesHandler.java index 38854c974..ce17456a1 100644 --- a/base/src/main/java/butter/droid/base/content/preferences/PreferencesHandler.java +++ b/base/src/main/java/butter/droid/base/content/preferences/PreferencesHandler.java @@ -1,5 +1,7 @@ package butter.droid.base.content.preferences; +import static butter.droid.base.content.preferences.Prefs.DEFAULT_PROVIDER; + import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; @@ -11,32 +13,27 @@ import android.support.annotation.Nullable; import android.support.annotation.StringRes; import android.text.format.DateFormat; - -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; - -import javax.inject.Inject; - import butter.droid.base.ButterApplication; import butter.droid.base.Constants; import butter.droid.base.R; import butter.droid.base.content.preferences.PrefItem.SubtitleGenerator; import butter.droid.base.content.preferences.Prefs.PrefKey; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.vlc.VLCOptions; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.updater.ButterUpdateManager; -import butter.droid.base.manager.vlc.VLCOptions; import butter.droid.base.providers.subs.SubsProvider; import butter.droid.base.utils.LocaleUtils; import butter.droid.base.utils.StorageUtils; import dagger.Reusable; - -import static butter.droid.base.content.preferences.Prefs.DEFAULT_PROVIDER; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import javax.inject.Inject; @Reusable public class PreferencesHandler { diff --git a/base/src/main/java/butter/droid/base/fragments/BaseVideoPlayerFragment.java b/base/src/main/java/butter/droid/base/fragments/BaseVideoPlayerFragment.java index af9f72e1c..098f5f6a8 100644 --- a/base/src/main/java/butter/droid/base/fragments/BaseVideoPlayerFragment.java +++ b/base/src/main/java/butter/droid/base/fragments/BaseVideoPlayerFragment.java @@ -61,12 +61,12 @@ import butter.droid.base.fragments.dialog.FileSelectorDialogFragment; import butter.droid.base.fragments.dialog.NumberPickerDialogFragment; import butter.droid.base.fragments.dialog.StringArraySelectorDialogFragment; -import butter.droid.base.manager.beaming.BeamDeviceListener; -import butter.droid.base.manager.beaming.BeamManager; +import butter.droid.base.manager.internal.beaming.BeamDeviceListener; +import butter.droid.base.manager.internal.beaming.BeamManager; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.vlc.PlayerManager; -import butter.droid.base.manager.vlc.VLCOptions; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; +import butter.droid.base.manager.internal.vlc.VLCOptions; import butter.droid.base.providers.media.models.Media; import butter.droid.base.providers.subs.SubsProvider; import butter.droid.base.subs.Caption; diff --git a/base/src/main/java/butter/droid/base/manager/ManagerModule.java b/base/src/main/java/butter/droid/base/manager/ManagerModule.java index 777e2cdb3..1d05222ef 100644 --- a/base/src/main/java/butter/droid/base/manager/ManagerModule.java +++ b/base/src/main/java/butter/droid/base/manager/ManagerModule.java @@ -17,40 +17,9 @@ package butter.droid.base.manager; -import android.content.Context; -import android.support.annotation.Nullable; - -import org.videolan.libvlc.LibVLC; -import org.videolan.libvlc.util.VLCUtil; - -import javax.inject.Singleton; - -import butter.droid.base.Constants; -import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.providers.media.VodoProvider; -import butter.droid.base.providers.subs.SubsProvider; -import butter.droid.base.manager.vlc.VLCOptions; import dagger.Module; -import dagger.Provides; -import timber.log.Timber; @Module public class ManagerModule { - @Provides @Singleton public ProviderManager provideProviderManager(VodoProvider moviesProvider, - SubsProvider subsProvider) { - return new ProviderManager(moviesProvider, null); - } - - @Provides @Singleton @Nullable LibVLC provideLibVLC(Context context, PreferencesHandler preferencesHandler) { - if(!VLCUtil.hasCompatibleCPU(context)) { - Timber.e(VLCUtil.getErrorMsg()); - return null; - } else { - String chroma = preferencesHandler.getPixelFormat(); - return new LibVLC(VLCOptions.getLibOptions(context, true, "UTF-8", true, chroma, Constants.DEBUG_ENABLED)); - } - } - } diff --git a/base/src/main/java/butter/droid/base/manager/internal/InternalManagerModule.java b/base/src/main/java/butter/droid/base/manager/internal/InternalManagerModule.java new file mode 100644 index 000000000..fa2c19fa7 --- /dev/null +++ b/base/src/main/java/butter/droid/base/manager/internal/InternalManagerModule.java @@ -0,0 +1,68 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid.base.manager.internal; + +import android.content.Context; +import android.support.annotation.Nullable; +import butter.droid.base.ApplicationScope; +import butter.droid.base.Constants; +import butter.droid.base.content.preferences.PreferencesHandler; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.VLCOptions; +import butter.droid.base.providers.media.VodoProvider; +import dagger.Module; +import dagger.Provides; +import org.videolan.libvlc.LibVLC; +import org.videolan.libvlc.util.VLCUtil; +import timber.log.Timber; + +@Module +public class InternalManagerModule { + + @Provides @ApplicationScope ProviderManager provideProviderManager(VodoProvider moviesProvider) { + return new ProviderManager(moviesProvider, null); + } + + @Provides @ApplicationScope @Nullable LibVLC provideLibVLC(Context context, PreferencesHandler preferencesHandler) { + if(!VLCUtil.hasCompatibleCPU(context)) { + Timber.e(VLCUtil.getErrorMsg()); + return null; + } else { + String chroma = preferencesHandler.getPixelFormat(); + return new LibVLC(VLCOptions.getLibOptions(context, true, "UTF-8", true, chroma, Constants.DEBUG_ENABLED)); + } + } + +} diff --git a/base/src/main/java/butter/droid/base/manager/beaming/BeamDeviceAdapter.java b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamDeviceAdapter.java similarity index 99% rename from base/src/main/java/butter/droid/base/manager/beaming/BeamDeviceAdapter.java rename to base/src/main/java/butter/droid/base/manager/internal/beaming/BeamDeviceAdapter.java index 5321dde85..b549ebe36 100644 --- a/base/src/main/java/butter/droid/base/manager/beaming/BeamDeviceAdapter.java +++ b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamDeviceAdapter.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.beaming; +package butter.droid.base.manager.internal.beaming; import android.content.Context; import android.support.v7.widget.AppCompatImageView; diff --git a/base/src/main/java/butter/droid/base/manager/beaming/BeamDeviceListener.java b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamDeviceListener.java similarity index 96% rename from base/src/main/java/butter/droid/base/manager/beaming/BeamDeviceListener.java rename to base/src/main/java/butter/droid/base/manager/internal/beaming/BeamDeviceListener.java index 01ce41aa6..ea16fbc74 100644 --- a/base/src/main/java/butter/droid/base/manager/beaming/BeamDeviceListener.java +++ b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamDeviceListener.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.beaming; +package butter.droid.base.manager.internal.beaming; import com.connectsdk.device.ConnectableDevice; import com.connectsdk.device.ConnectableDeviceListener; diff --git a/base/src/main/java/butter/droid/base/manager/beaming/BeamManager.java b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamManager.java similarity index 98% rename from base/src/main/java/butter/droid/base/manager/beaming/BeamManager.java rename to base/src/main/java/butter/droid/base/manager/internal/beaming/BeamManager.java index ffeb3cd07..0c4e1d820 100644 --- a/base/src/main/java/butter/droid/base/manager/beaming/BeamManager.java +++ b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamManager.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.beaming; +package butter.droid.base.manager.internal.beaming; import android.app.AlertDialog; import android.content.Context; @@ -25,7 +25,12 @@ import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.Toast; - +import butter.droid.base.ApplicationScope; +import butter.droid.base.R; +import butter.droid.base.manager.internal.beaming.server.BeamServer; +import butter.droid.base.manager.internal.beaming.server.BeamServerService; +import butter.droid.base.manager.internal.vlc.PlayerManager; +import butter.droid.base.torrent.StreamInfo; import com.connectsdk.core.ImageInfo; import com.connectsdk.core.MediaInfo; import com.connectsdk.device.ConnectableDevice; @@ -51,7 +56,6 @@ import com.connectsdk.service.capability.VolumeControl; import com.connectsdk.service.command.ServiceCommandError; import com.connectsdk.service.sessions.LaunchSession; - import java.io.File; import java.net.MalformedURLException; import java.net.URI; @@ -60,15 +64,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; - import javax.inject.Inject; -import javax.inject.Singleton; - -import butter.droid.base.R; -import butter.droid.base.manager.beaming.server.BeamServer; -import butter.droid.base.manager.beaming.server.BeamServerService; -import butter.droid.base.manager.vlc.PlayerManager; -import butter.droid.base.torrent.StreamInfo; import timber.log.Timber; /** @@ -76,7 +72,7 @@ *

* Wrapper for ConnectSDK */ -@Singleton +@ApplicationScope public class BeamManager implements ConnectableDeviceListener, DiscoveryManagerListener { private final Context context; diff --git a/base/src/main/java/butter/droid/base/manager/beaming/BeamPlayerNotificationService.java b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamPlayerNotificationService.java similarity index 99% rename from base/src/main/java/butter/droid/base/manager/beaming/BeamPlayerNotificationService.java rename to base/src/main/java/butter/droid/base/manager/internal/beaming/BeamPlayerNotificationService.java index 90fcb19a3..f74a183d0 100644 --- a/base/src/main/java/butter/droid/base/manager/beaming/BeamPlayerNotificationService.java +++ b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamPlayerNotificationService.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.beaming; +package butter.droid.base.manager.internal.beaming; import android.app.Notification; import android.app.NotificationManager; diff --git a/base/src/main/java/butter/droid/base/manager/beaming/server/BeamServer.java b/base/src/main/java/butter/droid/base/manager/internal/beaming/server/BeamServer.java similarity index 99% rename from base/src/main/java/butter/droid/base/manager/beaming/server/BeamServer.java rename to base/src/main/java/butter/droid/base/manager/internal/beaming/server/BeamServer.java index 456c2388e..015b69c95 100644 --- a/base/src/main/java/butter/droid/base/manager/beaming/server/BeamServer.java +++ b/base/src/main/java/butter/droid/base/manager/internal/beaming/server/BeamServer.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.beaming.server; +package butter.droid.base.manager.internal.beaming.server; import android.content.Context; import android.net.wifi.WifiManager; diff --git a/base/src/main/java/butter/droid/base/manager/beaming/server/BeamServerService.java b/base/src/main/java/butter/droid/base/manager/internal/beaming/server/BeamServerService.java similarity index 96% rename from base/src/main/java/butter/droid/base/manager/beaming/server/BeamServerService.java rename to base/src/main/java/butter/droid/base/manager/internal/beaming/server/BeamServerService.java index 871598717..97ec64c9d 100755 --- a/base/src/main/java/butter/droid/base/manager/beaming/server/BeamServerService.java +++ b/base/src/main/java/butter/droid/base/manager/internal/beaming/server/BeamServerService.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.beaming.server; +package butter.droid.base.manager.internal.beaming.server; import android.app.Service; import android.content.Intent; diff --git a/base/src/main/java/butter/droid/base/manager/provider/ProviderManager.java b/base/src/main/java/butter/droid/base/manager/internal/provider/ProviderManager.java similarity index 98% rename from base/src/main/java/butter/droid/base/manager/provider/ProviderManager.java rename to base/src/main/java/butter/droid/base/manager/internal/provider/ProviderManager.java index b3968a0ac..cf989ea05 100644 --- a/base/src/main/java/butter/droid/base/manager/provider/ProviderManager.java +++ b/base/src/main/java/butter/droid/base/manager/internal/provider/ProviderManager.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.provider; +package butter.droid.base.manager.internal.provider; import android.support.annotation.IntDef; import android.support.annotation.MainThread; diff --git a/base/src/main/java/butter/droid/base/manager/updater/ButterUpdateManager.java b/base/src/main/java/butter/droid/base/manager/internal/updater/ButterUpdateManager.java similarity index 98% rename from base/src/main/java/butter/droid/base/manager/updater/ButterUpdateManager.java rename to base/src/main/java/butter/droid/base/manager/internal/updater/ButterUpdateManager.java index 7644bc01e..3cb5b615e 100644 --- a/base/src/main/java/butter/droid/base/manager/updater/ButterUpdateManager.java +++ b/base/src/main/java/butter/droid/base/manager/internal/updater/ButterUpdateManager.java @@ -32,7 +32,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.updater; +package butter.droid.base.manager.internal.updater; import android.annotation.TargetApi; import android.content.BroadcastReceiver; @@ -46,9 +46,15 @@ import android.os.Build; import android.os.Environment; import android.os.Handler; - +import butter.droid.base.ApplicationScope; +import butter.droid.base.BuildConfig; +import butter.droid.base.Constants; +import butter.droid.base.content.preferences.PreferencesHandler; +import butter.droid.base.manager.prefs.PrefManager; +import butter.droid.base.manager.internal.updater.model.UpdaterData; +import butter.droid.base.utils.NetworkUtils; +import butter.droid.base.utils.VersionUtils; import com.google.gson.Gson; - import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; @@ -59,17 +65,7 @@ import java.util.Observable; import java.util.zip.CRC32; import java.util.zip.Checksum; - import javax.inject.Inject; -import javax.inject.Singleton; - -import butter.droid.base.BuildConfig; -import butter.droid.base.Constants; -import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.updater.model.UpdaterData; -import butter.droid.base.utils.NetworkUtils; -import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.utils.VersionUtils; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; @@ -78,7 +74,7 @@ import okio.BufferedSink; import okio.Okio; -@Singleton +@ApplicationScope public class ButterUpdateManager extends Observable { public static int NOTIFICATION_ID = 0x808C049; diff --git a/base/src/main/java/butter/droid/base/manager/updater/model/UpdaterData.java b/base/src/main/java/butter/droid/base/manager/internal/updater/model/UpdaterData.java similarity index 94% rename from base/src/main/java/butter/droid/base/manager/updater/model/UpdaterData.java rename to base/src/main/java/butter/droid/base/manager/internal/updater/model/UpdaterData.java index 226404304..97bcdc9f5 100644 --- a/base/src/main/java/butter/droid/base/manager/updater/model/UpdaterData.java +++ b/base/src/main/java/butter/droid/base/manager/internal/updater/model/UpdaterData.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.updater.model; +package butter.droid.base.manager.internal.updater.model; import java.util.Map; diff --git a/base/src/main/java/butter/droid/base/manager/vlc/PlayerManager.java b/base/src/main/java/butter/droid/base/manager/internal/vlc/PlayerManager.java similarity index 97% rename from base/src/main/java/butter/droid/base/manager/vlc/PlayerManager.java rename to base/src/main/java/butter/droid/base/manager/internal/vlc/PlayerManager.java index 368d2c975..09d3f0e13 100644 --- a/base/src/main/java/butter/droid/base/manager/vlc/PlayerManager.java +++ b/base/src/main/java/butter/droid/base/manager/internal/vlc/PlayerManager.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.vlc; +package butter.droid.base.manager.internal.vlc; import android.content.Context; import android.content.Intent; @@ -36,8 +36,8 @@ import butter.droid.base.ButterApplication; import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.content.preferences.Prefs; -import butter.droid.base.manager.beaming.server.BeamServer; -import butter.droid.base.manager.beaming.server.BeamServerService; +import butter.droid.base.manager.internal.beaming.server.BeamServer; +import butter.droid.base.manager.internal.beaming.server.BeamServerService; import butter.droid.base.manager.prefs.PrefManager; import butter.droid.base.providers.media.models.Episode; import butter.droid.base.providers.media.models.Media; diff --git a/base/src/main/java/butter/droid/base/manager/vlc/VLCManager.java b/base/src/main/java/butter/droid/base/manager/internal/vlc/VLCManager.java similarity index 95% rename from base/src/main/java/butter/droid/base/manager/vlc/VLCManager.java rename to base/src/main/java/butter/droid/base/manager/internal/vlc/VLCManager.java index f165c8e60..70facd17a 100644 --- a/base/src/main/java/butter/droid/base/manager/vlc/VLCManager.java +++ b/base/src/main/java/butter/droid/base/manager/internal/vlc/VLCManager.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.vlc; +package butter.droid.base.manager.internal.vlc; import android.support.annotation.Nullable; diff --git a/base/src/main/java/butter/droid/base/manager/vlc/VLCOptions.java b/base/src/main/java/butter/droid/base/manager/internal/vlc/VLCOptions.java similarity index 99% rename from base/src/main/java/butter/droid/base/manager/vlc/VLCOptions.java rename to base/src/main/java/butter/droid/base/manager/internal/vlc/VLCOptions.java index 8bf582bc4..69b59faa9 100644 --- a/base/src/main/java/butter/droid/base/manager/vlc/VLCOptions.java +++ b/base/src/main/java/butter/droid/base/manager/internal/vlc/VLCOptions.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.vlc; +package butter.droid.base.manager.internal.vlc; import android.content.Context; import android.content.SharedPreferences; diff --git a/base/src/main/java/butter/droid/base/manager/youtube/YouTubeManager.java b/base/src/main/java/butter/droid/base/manager/internal/youtube/YouTubeManager.java similarity index 97% rename from base/src/main/java/butter/droid/base/manager/youtube/YouTubeManager.java rename to base/src/main/java/butter/droid/base/manager/internal/youtube/YouTubeManager.java index 1b193dcfd..2cfc90703 100755 --- a/base/src/main/java/butter/droid/base/manager/youtube/YouTubeManager.java +++ b/base/src/main/java/butter/droid/base/manager/internal/youtube/YouTubeManager.java @@ -19,7 +19,7 @@ * The pct.droid.base.youtube package contains code that is based on https://code.google.com/p/android-youtube-player/ */ -package butter.droid.base.manager.youtube; +package butter.droid.base.manager.internal.youtube; import java.io.IOException; import java.net.URLDecoder; @@ -31,8 +31,8 @@ import javax.inject.Inject; -import butter.droid.base.manager.youtube.model.Format; -import butter.droid.base.manager.youtube.model.VideoStream; +import butter.droid.base.manager.internal.youtube.model.Format; +import butter.droid.base.manager.internal.youtube.model.VideoStream; import okhttp3.Call; import okhttp3.OkHttpClient; import okhttp3.Request; diff --git a/base/src/main/java/butter/droid/base/manager/youtube/model/Format.java b/base/src/main/java/butter/droid/base/manager/internal/youtube/model/Format.java similarity index 96% rename from base/src/main/java/butter/droid/base/manager/youtube/model/Format.java rename to base/src/main/java/butter/droid/base/manager/internal/youtube/model/Format.java index 8933b8e51..369eb2cdd 100755 --- a/base/src/main/java/butter/droid/base/manager/youtube/model/Format.java +++ b/base/src/main/java/butter/droid/base/manager/internal/youtube/model/Format.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.youtube.model; +package butter.droid.base.manager.internal.youtube.model; /** * Represents a format in the "fmt_list" parameter diff --git a/base/src/main/java/butter/droid/base/manager/youtube/model/VideoStream.java b/base/src/main/java/butter/droid/base/manager/internal/youtube/model/VideoStream.java similarity index 96% rename from base/src/main/java/butter/droid/base/manager/youtube/model/VideoStream.java rename to base/src/main/java/butter/droid/base/manager/internal/youtube/model/VideoStream.java index fa777f8da..69615426d 100755 --- a/base/src/main/java/butter/droid/base/manager/youtube/model/VideoStream.java +++ b/base/src/main/java/butter/droid/base/manager/internal/youtube/model/VideoStream.java @@ -15,7 +15,7 @@ * along with Butter. If not, see . */ -package butter.droid.base.manager.youtube.model; +package butter.droid.base.manager.internal.youtube.model; import java.util.HashMap; import java.util.Map; diff --git a/base/src/main/java/butter/droid/base/manager/prefs/PrefManager.java b/base/src/main/java/butter/droid/base/manager/prefs/PrefManager.java index b8561cab1..e93e261f0 100644 --- a/base/src/main/java/butter/droid/base/manager/prefs/PrefManager.java +++ b/base/src/main/java/butter/droid/base/manager/prefs/PrefManager.java @@ -19,12 +19,10 @@ import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; - +import butter.droid.base.content.ObscuredSharedPreferences; import javax.inject.Inject; import javax.inject.Singleton; -import butter.droid.base.content.ObscuredSharedPreferences; - @Singleton public class PrefManager { diff --git a/base/src/main/java/butter/droid/base/providers/ProviderComponent.java b/base/src/main/java/butter/droid/base/providers/ProviderComponent.java new file mode 100644 index 000000000..bbc63a414 --- /dev/null +++ b/base/src/main/java/butter/droid/base/providers/ProviderComponent.java @@ -0,0 +1,55 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid.base.providers; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Resources; +import android.net.ConnectivityManager; +import android.net.wifi.WifiManager; +import butter.droid.base.ExposedComponent; +import butter.droid.base.manager.internal.vlc.PlayerManager; +import butter.droid.base.manager.network.NetworkManager; +import butter.droid.base.manager.prefs.PrefManager; +import butter.droid.base.providers.media.VodoProvider; +import com.google.gson.Gson; +import com.squareup.picasso.Picasso; +import dagger.Component; +import okhttp3.OkHttpClient; + +@Component( + dependencies = ExposedComponent.class, + modules = ProviderModule.class +) +@ProviderScope +public interface ProviderComponent { + + Context context(); + Picasso picasso(); + VodoProvider codoProvider(); + OkHttpClient okHttpClient(); + Gson gson(); + PlayerManager playerManager(); + SharedPreferences sharedPreferences(); + Resources resources(); + ConnectivityManager connectivityManager(); + WifiManager wifiManager(); + NetworkManager networkManager(); + PrefManager prefManager(); + +} diff --git a/base/src/main/java/butter/droid/base/providers/ProviderModule.java b/base/src/main/java/butter/droid/base/providers/ProviderModule.java index 4402092ee..00a1becff 100644 --- a/base/src/main/java/butter/droid/base/providers/ProviderModule.java +++ b/base/src/main/java/butter/droid/base/providers/ProviderModule.java @@ -17,14 +17,11 @@ package butter.droid.base.providers; -import com.google.gson.Gson; - -import javax.inject.Singleton; - -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.providers.media.VodoProvider; import butter.droid.base.providers.subs.SubsProvider; import butter.droid.base.providers.subs.YSubsProvider; +import com.google.gson.Gson; import dagger.Module; import dagger.Provides; import okhttp3.OkHttpClient; @@ -32,12 +29,12 @@ @Module public class ProviderModule { - @Provides @Singleton + @Provides @ProviderScope public SubsProvider provideSubsProvider(OkHttpClient client, Gson gson, PlayerManager playerManager) { return new YSubsProvider(client, gson, playerManager); } - @Provides @Singleton + @Provides @ProviderScope public VodoProvider provideVodoProvider(OkHttpClient client, Gson gson, SubsProvider subsProvider) { return new VodoProvider(client, gson, subsProvider); } diff --git a/base/src/main/java/butter/droid/base/providers/ProviderScope.java b/base/src/main/java/butter/droid/base/providers/ProviderScope.java new file mode 100644 index 000000000..71287a174 --- /dev/null +++ b/base/src/main/java/butter/droid/base/providers/ProviderScope.java @@ -0,0 +1,28 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid.base.providers; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +import javax.inject.Scope; + +@Scope +@Retention(RetentionPolicy.RUNTIME) +public @interface ProviderScope { +} diff --git a/base/src/main/java/butter/droid/base/providers/media/models/Episode.java b/base/src/main/java/butter/droid/base/providers/media/models/Episode.java index d12219efb..9e8c16c4c 100644 --- a/base/src/main/java/butter/droid/base/providers/media/models/Episode.java +++ b/base/src/main/java/butter/droid/base/providers/media/models/Episode.java @@ -23,7 +23,7 @@ import java.util.HashMap; import java.util.Map; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.providers.meta.MetaProvider; public class Episode extends Media implements Parcelable { diff --git a/base/src/main/java/butter/droid/base/providers/media/models/Media.java b/base/src/main/java/butter/droid/base/providers/media/models/Media.java index 39a9ae349..ba3228843 100644 --- a/base/src/main/java/butter/droid/base/providers/media/models/Media.java +++ b/base/src/main/java/butter/droid/base/providers/media/models/Media.java @@ -24,7 +24,7 @@ import java.util.HashMap; import java.util.Map; -import butter.droid.base.manager.provider.ProviderManager.ProviderType; +import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType; public abstract class Media implements Parcelable { public String videoId; diff --git a/base/src/main/java/butter/droid/base/providers/media/models/Movie.java b/base/src/main/java/butter/droid/base/providers/media/models/Movie.java index 9b540aeff..61b3c8691 100644 --- a/base/src/main/java/butter/droid/base/providers/media/models/Movie.java +++ b/base/src/main/java/butter/droid/base/providers/media/models/Movie.java @@ -23,7 +23,7 @@ import java.util.HashMap; import java.util.Map; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; public class Movie extends Media implements Parcelable { public String type = "movie"; diff --git a/base/src/main/java/butter/droid/base/providers/media/models/Show.java b/base/src/main/java/butter/droid/base/providers/media/models/Show.java index 3aae68c80..f83fa92b7 100644 --- a/base/src/main/java/butter/droid/base/providers/media/models/Show.java +++ b/base/src/main/java/butter/droid/base/providers/media/models/Show.java @@ -22,7 +22,7 @@ import java.util.LinkedList; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; public class Show extends Media implements Parcelable { public enum Status {CONTINUING, ENDED, CANCELED, NOT_AIRED_YET, UNKNOWN} diff --git a/base/src/main/java/butter/droid/base/providers/subs/SubsProvider.java b/base/src/main/java/butter/droid/base/providers/subs/SubsProvider.java index f575e5ec4..46a09769e 100755 --- a/base/src/main/java/butter/droid/base/providers/subs/SubsProvider.java +++ b/base/src/main/java/butter/droid/base/providers/subs/SubsProvider.java @@ -30,7 +30,7 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.providers.BaseProvider; import butter.droid.base.providers.media.models.Episode; import butter.droid.base.providers.media.models.Media; diff --git a/base/src/main/java/butter/droid/base/providers/subs/YSubsProvider.java b/base/src/main/java/butter/droid/base/providers/subs/YSubsProvider.java index 4301d998c..6f2806246 100755 --- a/base/src/main/java/butter/droid/base/providers/subs/YSubsProvider.java +++ b/base/src/main/java/butter/droid/base/providers/subs/YSubsProvider.java @@ -24,7 +24,7 @@ import java.util.HashMap; import java.util.Map; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.providers.media.models.Episode; import butter.droid.base.providers.media.models.Movie; import okhttp3.Call; diff --git a/base/src/main/java/butter/droid/base/providers/subs/open/OpenSubsProvider.java b/base/src/main/java/butter/droid/base/providers/subs/open/OpenSubsProvider.java index 199568591..b718f928d 100755 --- a/base/src/main/java/butter/droid/base/providers/subs/open/OpenSubsProvider.java +++ b/base/src/main/java/butter/droid/base/providers/subs/open/OpenSubsProvider.java @@ -24,7 +24,7 @@ import java.util.Locale; import java.util.Map; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.providers.media.models.Episode; import butter.droid.base.providers.media.models.Movie; import butter.droid.base.providers.subs.SubsProvider; diff --git a/base/src/main/java/butter/droid/base/subs/SubtitleDownloader.java b/base/src/main/java/butter/droid/base/subs/SubtitleDownloader.java index 3133d75c0..046134025 100644 --- a/base/src/main/java/butter/droid/base/subs/SubtitleDownloader.java +++ b/base/src/main/java/butter/droid/base/subs/SubtitleDownloader.java @@ -9,7 +9,7 @@ import java.io.IOException; import java.lang.ref.WeakReference; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.providers.media.models.Media; import butter.droid.base.providers.subs.SubsProvider; import butter.droid.base.torrent.StreamInfo; diff --git a/base/src/main/java/butter/droid/base/ui/loading/fragment/BaseStreamLoadingFragmentPresenterImpl.java b/base/src/main/java/butter/droid/base/ui/loading/fragment/BaseStreamLoadingFragmentPresenterImpl.java index ef7b7cf0d..4b443f7eb 100644 --- a/base/src/main/java/butter/droid/base/ui/loading/fragment/BaseStreamLoadingFragmentPresenterImpl.java +++ b/base/src/main/java/butter/droid/base/ui/loading/fragment/BaseStreamLoadingFragmentPresenterImpl.java @@ -29,10 +29,10 @@ import butter.droid.base.R; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.beaming.server.BeamServer; -import butter.droid.base.manager.beaming.server.BeamServerService; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.beaming.server.BeamServer; +import butter.droid.base.manager.internal.beaming.server.BeamServerService; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.providers.media.models.Episode; import butter.droid.base.providers.media.models.Media; import butter.droid.base.providers.media.models.Movie; diff --git a/base/src/main/java/butter/droid/base/ui/preferences/BasePreferencesPresenterImpl.java b/base/src/main/java/butter/droid/base/ui/preferences/BasePreferencesPresenterImpl.java index 9af2fb4f2..681ce0524 100644 --- a/base/src/main/java/butter/droid/base/ui/preferences/BasePreferencesPresenterImpl.java +++ b/base/src/main/java/butter/droid/base/ui/preferences/BasePreferencesPresenterImpl.java @@ -37,8 +37,8 @@ import butter.droid.base.content.preferences.Prefs; import butter.droid.base.content.preferences.Prefs.PrefKey; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.updater.ButterUpdateManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.utils.LocaleUtils; import timber.log.Timber; diff --git a/base/src/main/java/butter/droid/base/utils/ProviderUtils.java b/base/src/main/java/butter/droid/base/utils/ProviderUtils.java index 1bee7cd7b..264a024c1 100644 --- a/base/src/main/java/butter/droid/base/utils/ProviderUtils.java +++ b/base/src/main/java/butter/droid/base/utils/ProviderUtils.java @@ -21,8 +21,8 @@ import android.support.annotation.StringRes; import butter.droid.base.R; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.provider.ProviderManager.ProviderType; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType; public final class ProviderUtils { diff --git a/mobile/src/main/AndroidManifest.xml b/mobile/src/main/AndroidManifest.xml index f64401bf1..97bb41f1c 100644 --- a/mobile/src/main/AndroidManifest.xml +++ b/mobile/src/main/AndroidManifest.xml @@ -439,8 +439,8 @@ android:screenOrientation="sensorLandscape" /> - - + + diff --git a/mobile/src/main/java/butter/droid/ApplicationComponent.java b/mobile/src/main/java/butter/droid/ApplicationComponent.java index 56f7bb684..33fb65dac 100644 --- a/mobile/src/main/java/butter/droid/ApplicationComponent.java +++ b/mobile/src/main/java/butter/droid/ApplicationComponent.java @@ -17,13 +17,13 @@ package butter.droid; -import javax.inject.Singleton; - import butter.droid.activities.BeamPlayerActivity; import butter.droid.activities.SearchActivity; import butter.droid.activities.TrailerPlayerActivity; import butter.droid.activities.VideoPlayerActivity; +import butter.droid.base.ApplicationScope; import butter.droid.base.BaseApplicationComponent; +import butter.droid.base.providers.ProviderComponent; import butter.droid.fragments.BeamPlayerFragment; import butter.droid.fragments.MediaContainerFragment; import butter.droid.fragments.MediaGenreSelectionFragment; @@ -42,7 +42,10 @@ import butter.droid.ui.terms.TermsComponent; import dagger.Component; -@Singleton @Component( +@ApplicationScope @Component( + dependencies = { + ProviderComponent.class + }, modules = ApplicationModule.class ) public interface ApplicationComponent extends BaseApplicationComponent { diff --git a/mobile/src/main/java/butter/droid/MobileButterApplication.java b/mobile/src/main/java/butter/droid/MobileButterApplication.java index 81b0abc1d..573f13639 100644 --- a/mobile/src/main/java/butter/droid/MobileButterApplication.java +++ b/mobile/src/main/java/butter/droid/MobileButterApplication.java @@ -17,24 +17,24 @@ package butter.droid; -import butter.droid.base.BaseApplicationModule; +import android.support.annotation.NonNull; import butter.droid.base.ButterApplication; +import butter.droid.base.providers.ProviderComponent; public class MobileButterApplication extends ButterApplication { private ApplicationComponent component; - @Override public void onCreate() { + public ApplicationComponent getComponent() { + return component; + } + + @Override protected void inject(@NonNull final ProviderComponent providerComponent) { component = DaggerApplicationComponent.builder() - .baseApplicationModule(new BaseApplicationModule(this)) + .providerComponent(providerComponent) .build(); - component.inject(this); - super.onCreate(); - } - - public ApplicationComponent getComponent() { - return component; + component.inject(this); } public static MobileButterApplication getAppContext() { diff --git a/mobile/src/main/java/butter/droid/activities/BeamPlayerActivity.java b/mobile/src/main/java/butter/droid/activities/BeamPlayerActivity.java index 6cdefb881..9c1901389 100644 --- a/mobile/src/main/java/butter/droid/activities/BeamPlayerActivity.java +++ b/mobile/src/main/java/butter/droid/activities/BeamPlayerActivity.java @@ -31,8 +31,8 @@ import butter.droid.MobileButterApplication; import butter.droid.R; import butter.droid.ui.ButterBaseActivity; -import butter.droid.base.manager.beaming.BeamManager; -import butter.droid.base.manager.beaming.server.BeamServerService; +import butter.droid.base.manager.internal.beaming.BeamManager; +import butter.droid.base.manager.internal.beaming.server.BeamServerService; import butter.droid.base.torrent.StreamInfo; import butter.droid.base.torrent.TorrentService; import butter.droid.fragments.dialog.OptionDialogFragment; diff --git a/mobile/src/main/java/butter/droid/activities/TrailerPlayerActivity.java b/mobile/src/main/java/butter/droid/activities/TrailerPlayerActivity.java index ea14c45a5..25cb08f03 100644 --- a/mobile/src/main/java/butter/droid/activities/TrailerPlayerActivity.java +++ b/mobile/src/main/java/butter/droid/activities/TrailerPlayerActivity.java @@ -37,9 +37,8 @@ import butter.droid.MobileButterApplication; import butter.droid.R; import butter.droid.ui.ButterBaseActivity; -import butter.droid.base.manager.youtube.YouTubeManager; +import butter.droid.base.manager.internal.youtube.YouTubeManager; import butter.droid.base.providers.media.models.Media; -import butter.droid.base.providers.media.models.Movie; import butter.droid.base.torrent.StreamInfo; import butter.droid.base.torrent.TorrentService; import butter.droid.fragments.VideoPlayerFragment; diff --git a/mobile/src/main/java/butter/droid/fragments/BeamPlayerFragment.java b/mobile/src/main/java/butter/droid/fragments/BeamPlayerFragment.java index 28e62c4bc..c86e33f0f 100644 --- a/mobile/src/main/java/butter/droid/fragments/BeamPlayerFragment.java +++ b/mobile/src/main/java/butter/droid/fragments/BeamPlayerFragment.java @@ -58,9 +58,9 @@ import butter.droid.R; import butter.droid.activities.BeamPlayerActivity; import butter.droid.activities.VideoPlayerActivity; -import butter.droid.base.manager.beaming.BeamDeviceListener; -import butter.droid.base.manager.beaming.BeamManager; -import butter.droid.base.manager.beaming.BeamPlayerNotificationService; +import butter.droid.base.manager.internal.beaming.BeamDeviceListener; +import butter.droid.base.manager.internal.beaming.BeamManager; +import butter.droid.base.manager.internal.beaming.BeamPlayerNotificationService; import butter.droid.base.torrent.StreamInfo; import butter.droid.base.utils.AnimUtils; import butter.droid.base.utils.FragmentUtil; diff --git a/mobile/src/main/java/butter/droid/fragments/MediaContainerFragment.java b/mobile/src/main/java/butter/droid/fragments/MediaContainerFragment.java index c50c05e6d..9c2c86944 100644 --- a/mobile/src/main/java/butter/droid/fragments/MediaContainerFragment.java +++ b/mobile/src/main/java/butter/droid/fragments/MediaContainerFragment.java @@ -14,7 +14,7 @@ import butter.droid.R; import butter.droid.ui.main.MainActivity; import butter.droid.ui.media.list.list.MediaPagerAdapter; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.providers.media.MediaProvider; import butter.droid.ui.media.list.base.BaseMediaListFragment; import butterknife.BindView; diff --git a/mobile/src/main/java/butter/droid/fragments/MediaGenreSelectionFragment.java b/mobile/src/main/java/butter/droid/fragments/MediaGenreSelectionFragment.java index 636c24ecd..6b65c9a28 100644 --- a/mobile/src/main/java/butter/droid/fragments/MediaGenreSelectionFragment.java +++ b/mobile/src/main/java/butter/droid/fragments/MediaGenreSelectionFragment.java @@ -37,7 +37,7 @@ import butter.droid.R; import butter.droid.adapters.GenreAdapter; import butter.droid.adapters.decorators.DividerItemDecoration; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.providers.media.models.Genre; import butterknife.BindView; import butterknife.ButterKnife; diff --git a/mobile/src/main/java/butter/droid/fragments/dialog/BeamDeviceSelectorDialogFragment.java b/mobile/src/main/java/butter/droid/fragments/dialog/BeamDeviceSelectorDialogFragment.java index 0b343f22f..9fdf788ae 100644 --- a/mobile/src/main/java/butter/droid/fragments/dialog/BeamDeviceSelectorDialogFragment.java +++ b/mobile/src/main/java/butter/droid/fragments/dialog/BeamDeviceSelectorDialogFragment.java @@ -30,8 +30,8 @@ import butter.droid.MobileButterApplication; import butter.droid.R; -import butter.droid.base.manager.beaming.BeamDeviceAdapter; -import butter.droid.base.manager.beaming.BeamManager; +import butter.droid.base.manager.internal.beaming.BeamDeviceAdapter; +import butter.droid.base.manager.internal.beaming.BeamManager; public class BeamDeviceSelectorDialogFragment extends DialogFragment { diff --git a/mobile/src/main/java/butter/droid/fragments/dialog/EpisodeDialogFragment.java b/mobile/src/main/java/butter/droid/fragments/dialog/EpisodeDialogFragment.java index 5dade17ac..87fe7de21 100644 --- a/mobile/src/main/java/butter/droid/fragments/dialog/EpisodeDialogFragment.java +++ b/mobile/src/main/java/butter/droid/fragments/dialog/EpisodeDialogFragment.java @@ -39,8 +39,8 @@ import butter.droid.MobileButterApplication; import butter.droid.R; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.providers.media.models.Episode; import butter.droid.base.providers.media.models.Media; import butter.droid.base.providers.media.models.Show; diff --git a/mobile/src/main/java/butter/droid/fragments/dialog/LoadingDetailDialogFragment.java b/mobile/src/main/java/butter/droid/fragments/dialog/LoadingDetailDialogFragment.java index 0e12875aa..002a47d51 100644 --- a/mobile/src/main/java/butter/droid/fragments/dialog/LoadingDetailDialogFragment.java +++ b/mobile/src/main/java/butter/droid/fragments/dialog/LoadingDetailDialogFragment.java @@ -32,7 +32,7 @@ import butter.droid.MobileButterApplication; import butter.droid.R; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.providers.media.MediaProvider; import butter.droid.base.providers.media.models.Media; import butter.droid.base.utils.ThreadUtils; diff --git a/mobile/src/main/java/butter/droid/ui/ButterBaseActivity.java b/mobile/src/main/java/butter/droid/ui/ButterBaseActivity.java index 9b737cad3..fb9cf4ddb 100644 --- a/mobile/src/main/java/butter/droid/ui/ButterBaseActivity.java +++ b/mobile/src/main/java/butter/droid/ui/ButterBaseActivity.java @@ -31,8 +31,8 @@ import butter.droid.R; import butter.droid.activities.base.TorrentBaseActivity; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.beaming.BeamManager; -import butter.droid.base.manager.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.beaming.BeamManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; import butter.droid.base.utils.LocaleUtils; import butter.droid.base.utils.VersionUtils; import butter.droid.fragments.dialog.BeamDeviceSelectorDialogFragment; diff --git a/mobile/src/main/java/butter/droid/ui/loading/fragment/StreamLoadingFragmentModule.java b/mobile/src/main/java/butter/droid/ui/loading/fragment/StreamLoadingFragmentModule.java index 7ffad2b9d..1f8b92a52 100644 --- a/mobile/src/main/java/butter/droid/ui/loading/fragment/StreamLoadingFragmentModule.java +++ b/mobile/src/main/java/butter/droid/ui/loading/fragment/StreamLoadingFragmentModule.java @@ -20,9 +20,9 @@ import android.content.Context; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.beaming.BeamManager; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.beaming.BeamManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.ui.FragmentScope; import dagger.Module; import dagger.Provides; diff --git a/mobile/src/main/java/butter/droid/ui/loading/fragment/StreamLoadingFragmentPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/loading/fragment/StreamLoadingFragmentPresenterImpl.java index f56a07626..79f717165 100644 --- a/mobile/src/main/java/butter/droid/ui/loading/fragment/StreamLoadingFragmentPresenterImpl.java +++ b/mobile/src/main/java/butter/droid/ui/loading/fragment/StreamLoadingFragmentPresenterImpl.java @@ -24,9 +24,9 @@ import com.github.sv244.torrentstream.Torrent; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.beaming.BeamManager; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.beaming.BeamManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.ui.loading.fragment.BaseStreamLoadingFragment.State; import butter.droid.base.ui.loading.fragment.BaseStreamLoadingFragmentPresenterImpl; import butter.droid.base.utils.PixelUtils; diff --git a/mobile/src/main/java/butter/droid/ui/main/MainActivity.java b/mobile/src/main/java/butter/droid/ui/main/MainActivity.java index 1609aab7a..29e0a9845 100644 --- a/mobile/src/main/java/butter/droid/ui/main/MainActivity.java +++ b/mobile/src/main/java/butter/droid/ui/main/MainActivity.java @@ -55,11 +55,11 @@ import butter.droid.activities.VideoPlayerActivity; import butter.droid.base.Constants; import butter.droid.base.PlayerTestConstants; -import butter.droid.base.manager.beaming.BeamPlayerNotificationService; -import butter.droid.base.manager.beaming.server.BeamServerService; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.provider.ProviderManager.OnProviderChangeListener; -import butter.droid.base.manager.provider.ProviderManager.ProviderType; +import butter.droid.base.manager.internal.beaming.BeamPlayerNotificationService; +import butter.droid.base.manager.internal.beaming.server.BeamServerService; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager.OnProviderChangeListener; +import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType; import butter.droid.base.providers.media.models.Movie; import butter.droid.base.torrent.StreamInfo; import butter.droid.base.utils.ProviderUtils; diff --git a/mobile/src/main/java/butter/droid/ui/main/MainModule.java b/mobile/src/main/java/butter/droid/ui/main/MainModule.java index 37bb46cd3..467850a61 100644 --- a/mobile/src/main/java/butter/droid/ui/main/MainModule.java +++ b/mobile/src/main/java/butter/droid/ui/main/MainModule.java @@ -20,10 +20,10 @@ import android.content.Context; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.beaming.BeamManager; +import butter.droid.base.manager.internal.beaming.BeamManager; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.youtube.YouTubeManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.youtube.YouTubeManager; import butter.droid.base.ui.ActivityScope; import dagger.Module; import dagger.Provides; diff --git a/mobile/src/main/java/butter/droid/ui/main/MainPresenter.java b/mobile/src/main/java/butter/droid/ui/main/MainPresenter.java index b379ba63c..889d0d013 100644 --- a/mobile/src/main/java/butter/droid/ui/main/MainPresenter.java +++ b/mobile/src/main/java/butter/droid/ui/main/MainPresenter.java @@ -19,7 +19,7 @@ import android.app.Activity; -import butter.droid.base.manager.provider.ProviderManager.ProviderType; +import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType; public interface MainPresenter { diff --git a/mobile/src/main/java/butter/droid/ui/main/MainPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/main/MainPresenterImpl.java index 89e5d4481..f2ba0142a 100644 --- a/mobile/src/main/java/butter/droid/ui/main/MainPresenterImpl.java +++ b/mobile/src/main/java/butter/droid/ui/main/MainPresenterImpl.java @@ -29,11 +29,11 @@ import butter.droid.base.PlayerTestConstants; import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.content.preferences.Prefs; -import butter.droid.base.manager.beaming.BeamManager; +import butter.droid.base.manager.internal.beaming.BeamManager; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.provider.ProviderManager.ProviderType; -import butter.droid.base.manager.youtube.YouTubeManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType; +import butter.droid.base.manager.internal.youtube.YouTubeManager; import butter.droid.base.providers.media.models.Movie; import butter.droid.base.torrent.StreamInfo; import butter.droid.ui.preferences.PreferencesActivity; diff --git a/mobile/src/main/java/butter/droid/ui/main/MainView.java b/mobile/src/main/java/butter/droid/ui/main/MainView.java index 0efde275a..bc6349d59 100644 --- a/mobile/src/main/java/butter/droid/ui/main/MainView.java +++ b/mobile/src/main/java/butter/droid/ui/main/MainView.java @@ -19,7 +19,7 @@ import android.support.annotation.NonNull; -import butter.droid.base.manager.provider.ProviderManager.ProviderType; +import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType; import butter.droid.base.providers.media.models.Movie; import butter.droid.base.torrent.StreamInfo; diff --git a/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerFragment.java b/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerFragment.java index df420ca8e..8312bc338 100644 --- a/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerFragment.java +++ b/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerFragment.java @@ -38,7 +38,7 @@ import butter.droid.R; import butter.droid.adapters.decorators.OneShotDividerDecorator; -import butter.droid.base.manager.provider.ProviderManager.ProviderType; +import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType; import butter.droid.base.widget.recycler.RecyclerClickListener; import butter.droid.base.widget.recycler.RecyclerItemClickListener; import butter.droid.ui.main.MainActivity; diff --git a/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerModule.java b/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerModule.java index e97ed74fc..e96a5bbe7 100644 --- a/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerModule.java +++ b/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerModule.java @@ -17,7 +17,7 @@ package butter.droid.ui.main.navigation; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.ui.FragmentScope; import butter.droid.ui.main.MainPresenter; import dagger.Module; diff --git a/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerPresenter.java b/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerPresenter.java index 742a2cbe8..e05f173e4 100644 --- a/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerPresenter.java +++ b/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerPresenter.java @@ -19,7 +19,7 @@ import android.os.Bundle; -import butter.droid.base.manager.provider.ProviderManager.ProviderType; +import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType; import butter.droid.ui.main.navigation.NavigationDrawerFragment.AbsNavDrawerItem; public interface NavigationDrawerPresenter { diff --git a/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerPresenterImpl.java index 16856f905..84560e4d6 100644 --- a/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerPresenterImpl.java +++ b/mobile/src/main/java/butter/droid/ui/main/navigation/NavigationDrawerPresenterImpl.java @@ -23,8 +23,8 @@ import java.util.List; import butter.droid.R; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.provider.ProviderManager.ProviderType; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType; import butter.droid.base.utils.ProviderUtils; import butter.droid.ui.main.MainPresenter; import butter.droid.ui.main.navigation.NavigationDrawerFragment.AbsNavDrawerItem; diff --git a/mobile/src/main/java/butter/droid/ui/media/detail/MediaDetailActivity.java b/mobile/src/main/java/butter/droid/ui/media/detail/MediaDetailActivity.java index f1b356af0..cdd2c932c 100644 --- a/mobile/src/main/java/butter/droid/ui/media/detail/MediaDetailActivity.java +++ b/mobile/src/main/java/butter/droid/ui/media/detail/MediaDetailActivity.java @@ -49,8 +49,8 @@ import butter.droid.R; import butter.droid.activities.TrailerPlayerActivity; import butter.droid.activities.VideoPlayerActivity; -import butter.droid.base.manager.beaming.BeamPlayerNotificationService; -import butter.droid.base.manager.beaming.server.BeamServerService; +import butter.droid.base.manager.internal.beaming.BeamPlayerNotificationService; +import butter.droid.base.manager.internal.beaming.server.BeamServerService; import butter.droid.base.providers.media.models.Media; import butter.droid.base.providers.media.models.Movie; import butter.droid.base.providers.media.models.Show; diff --git a/mobile/src/main/java/butter/droid/ui/media/detail/movie/MovieDetailModule.java b/mobile/src/main/java/butter/droid/ui/media/detail/movie/MovieDetailModule.java index b0ced14e7..325407f29 100644 --- a/mobile/src/main/java/butter/droid/ui/media/detail/movie/MovieDetailModule.java +++ b/mobile/src/main/java/butter/droid/ui/media/detail/movie/MovieDetailModule.java @@ -20,9 +20,9 @@ import android.content.res.Resources; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.vlc.PlayerManager; -import butter.droid.base.manager.youtube.YouTubeManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; +import butter.droid.base.manager.internal.youtube.YouTubeManager; import butter.droid.base.ui.FragmentScope; import butter.droid.ui.media.detail.MediaDetailPresenter; import dagger.Module; diff --git a/mobile/src/main/java/butter/droid/ui/media/detail/movie/MovieDetailPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/media/detail/movie/MovieDetailPresenterImpl.java index 92186ab80..88962f620 100644 --- a/mobile/src/main/java/butter/droid/ui/media/detail/movie/MovieDetailPresenterImpl.java +++ b/mobile/src/main/java/butter/droid/ui/media/detail/movie/MovieDetailPresenterImpl.java @@ -26,9 +26,9 @@ import butter.droid.R; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.vlc.PlayerManager; -import butter.droid.base.manager.youtube.YouTubeManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; +import butter.droid.base.manager.internal.youtube.YouTubeManager; import butter.droid.base.providers.media.models.Movie; import butter.droid.base.providers.subs.SubsProvider; import butter.droid.base.torrent.StreamInfo; diff --git a/mobile/src/main/java/butter/droid/ui/media/list/MediaListModule.java b/mobile/src/main/java/butter/droid/ui/media/list/MediaListModule.java index 596cbc285..986b36b54 100644 --- a/mobile/src/main/java/butter/droid/ui/media/list/MediaListModule.java +++ b/mobile/src/main/java/butter/droid/ui/media/list/MediaListModule.java @@ -18,7 +18,7 @@ package butter.droid.ui.media.list; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.ui.FragmentScope; import dagger.Module; import dagger.Provides; diff --git a/mobile/src/main/java/butter/droid/ui/media/list/MediaListPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/media/list/MediaListPresenterImpl.java index d441784db..88bd9cdba 100644 --- a/mobile/src/main/java/butter/droid/ui/media/list/MediaListPresenterImpl.java +++ b/mobile/src/main/java/butter/droid/ui/media/list/MediaListPresenterImpl.java @@ -18,7 +18,7 @@ package butter.droid.ui.media.list; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.utils.ProviderUtils; import butter.droid.ui.media.list.base.BaseMediaListPresenterImpl; import okhttp3.OkHttpClient; diff --git a/mobile/src/main/java/butter/droid/ui/media/list/base/BaseMediaListPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/media/list/base/BaseMediaListPresenterImpl.java index 01d11ce73..ca4ffd306 100644 --- a/mobile/src/main/java/butter/droid/ui/media/list/base/BaseMediaListPresenterImpl.java +++ b/mobile/src/main/java/butter/droid/ui/media/list/base/BaseMediaListPresenterImpl.java @@ -24,7 +24,7 @@ import butter.droid.R; import butter.droid.base.ButterApplication; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.providers.media.MediaProvider; import butter.droid.base.providers.media.MediaProvider.Filters.Order; import butter.droid.base.providers.media.MediaProvider.Filters.Sort; diff --git a/mobile/src/main/java/butter/droid/ui/preferences/PreferencesActivity.java b/mobile/src/main/java/butter/droid/ui/preferences/PreferencesActivity.java index 78a9dd62c..f6ef5a984 100644 --- a/mobile/src/main/java/butter/droid/ui/preferences/PreferencesActivity.java +++ b/mobile/src/main/java/butter/droid/ui/preferences/PreferencesActivity.java @@ -47,7 +47,7 @@ import butter.droid.base.fragments.dialog.ChangeLogDialogFragment; import butter.droid.base.fragments.dialog.NumberPickerDialogFragment; import butter.droid.base.fragments.dialog.StringArraySelectorDialogFragment; -import butter.droid.base.manager.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; import butter.droid.base.utils.ResourceUtils; import butter.droid.base.widget.recycler.RecyclerClickListener; import butter.droid.base.widget.recycler.RecyclerItemClickListener; diff --git a/mobile/src/main/java/butter/droid/ui/preferences/PreferencesModule.java b/mobile/src/main/java/butter/droid/ui/preferences/PreferencesModule.java index 936dbd812..5b8ddb02f 100644 --- a/mobile/src/main/java/butter/droid/ui/preferences/PreferencesModule.java +++ b/mobile/src/main/java/butter/droid/ui/preferences/PreferencesModule.java @@ -21,8 +21,8 @@ import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.updater.ButterUpdateManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.ui.ActivityScope; import dagger.Module; import dagger.Provides; diff --git a/mobile/src/main/java/butter/droid/ui/preferences/PreferencesPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/preferences/PreferencesPresenterImpl.java index 37cca37bf..9c665c768 100644 --- a/mobile/src/main/java/butter/droid/ui/preferences/PreferencesPresenterImpl.java +++ b/mobile/src/main/java/butter/droid/ui/preferences/PreferencesPresenterImpl.java @@ -24,8 +24,8 @@ import butter.droid.base.content.preferences.PrefItem; import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.updater.ButterUpdateManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.ui.preferences.BasePreferencesPresenterImpl; public class PreferencesPresenterImpl extends BasePreferencesPresenterImpl implements PreferencesPresenter { diff --git a/mobile/src/main/java/butter/droid/ui/search/SearchModule.java b/mobile/src/main/java/butter/droid/ui/search/SearchModule.java index 1a6522eca..b99b0544b 100644 --- a/mobile/src/main/java/butter/droid/ui/search/SearchModule.java +++ b/mobile/src/main/java/butter/droid/ui/search/SearchModule.java @@ -19,7 +19,7 @@ import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.manager.network.NetworkManager; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.ui.FragmentScope; import dagger.Module; import dagger.Provides; diff --git a/mobile/src/main/java/butter/droid/ui/search/SearchPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/search/SearchPresenterImpl.java index 6d6941d1f..afba38535 100644 --- a/mobile/src/main/java/butter/droid/ui/search/SearchPresenterImpl.java +++ b/mobile/src/main/java/butter/droid/ui/search/SearchPresenterImpl.java @@ -20,7 +20,7 @@ import butter.droid.R; import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.manager.network.NetworkManager; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.utils.StringUtils; import butter.droid.ui.media.list.base.BaseMediaListPresenterImpl; import okhttp3.OkHttpClient; diff --git a/mobile/src/test/java/butter/droid/ui/main/MainPresenterImplUnitTest.java b/mobile/src/test/java/butter/droid/ui/main/MainPresenterImplUnitTest.java index d08632b94..f768a5927 100644 --- a/mobile/src/test/java/butter/droid/ui/main/MainPresenterImplUnitTest.java +++ b/mobile/src/test/java/butter/droid/ui/main/MainPresenterImplUnitTest.java @@ -26,10 +26,10 @@ import org.mockito.junit.MockitoJUnitRunner; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.beaming.BeamManager; +import butter.droid.base.manager.internal.beaming.BeamManager; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.youtube.YouTubeManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.youtube.YouTubeManager; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; diff --git a/tv/src/main/java/butter/droid/tv/ApplicationComponent.java b/tv/src/main/java/butter/droid/tv/ApplicationComponent.java index df865254d..7e4da04b3 100644 --- a/tv/src/main/java/butter/droid/tv/ApplicationComponent.java +++ b/tv/src/main/java/butter/droid/tv/ApplicationComponent.java @@ -17,9 +17,9 @@ package butter.droid.tv; -import javax.inject.Singleton; - +import butter.droid.base.ApplicationScope; import butter.droid.base.BaseApplicationComponent; +import butter.droid.base.providers.ProviderComponent; import butter.droid.tv.activities.TVLaunchActivity; import butter.droid.tv.activities.TVMainActivity; import butter.droid.tv.activities.TVMediaDetailActivity; @@ -46,7 +46,10 @@ import butter.droid.tv.ui.terms.TVTermsComponent; import dagger.Component; -@Singleton @Component( +@ApplicationScope @Component( + dependencies = { + ProviderComponent.class + }, modules = ApplicationModule.class ) public interface ApplicationComponent extends BaseApplicationComponent { diff --git a/tv/src/main/java/butter/droid/tv/TVButterApplication.java b/tv/src/main/java/butter/droid/tv/TVButterApplication.java index 7f82521f5..364c9828e 100644 --- a/tv/src/main/java/butter/droid/tv/TVButterApplication.java +++ b/tv/src/main/java/butter/droid/tv/TVButterApplication.java @@ -18,9 +18,9 @@ package butter.droid.tv; import android.content.Context; - -import butter.droid.base.BaseApplicationModule; +import android.support.annotation.NonNull; import butter.droid.base.ButterApplication; +import butter.droid.base.providers.ProviderComponent; import butter.droid.base.utils.VersionUtils; public class TVButterApplication extends ButterApplication { @@ -31,16 +31,6 @@ public class TVButterApplication extends ButterApplication { super.attachBaseContext(base); } - @Override - public void onCreate() { - component = DaggerApplicationComponent.builder() - .baseApplicationModule(new BaseApplicationModule(this)) - .build(); - component.inject(this); - - super.onCreate(); - } - @Override public void updateAvailable(String filePath) { if(!VersionUtils.isAndroidTV()) { @@ -52,6 +42,14 @@ public void updateAvailable(String filePath) { return component; } + @Override protected void inject(@NonNull final ProviderComponent providerComponent) { + component = DaggerApplicationComponent.builder() + .providerComponent(providerComponent) + .build(); + + component.inject(this); + } + public static TVButterApplication getAppContext() { return (TVButterApplication) ButterApplication.getAppContext(); } diff --git a/tv/src/main/java/butter/droid/tv/activities/TVMainActivity.java b/tv/src/main/java/butter/droid/tv/activities/TVMainActivity.java index 48bbcdaf7..8bb05e0df 100644 --- a/tv/src/main/java/butter/droid/tv/activities/TVMainActivity.java +++ b/tv/src/main/java/butter/droid/tv/activities/TVMainActivity.java @@ -23,7 +23,7 @@ import javax.inject.Inject; -import butter.droid.base.manager.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; import butter.droid.tv.R; import butter.droid.tv.TVButterApplication; import butter.droid.tv.activities.base.TVBaseActivity; diff --git a/tv/src/main/java/butter/droid/tv/activities/TVTrailerPlayerActivity.java b/tv/src/main/java/butter/droid/tv/activities/TVTrailerPlayerActivity.java index 467b81416..ed9d97563 100644 --- a/tv/src/main/java/butter/droid/tv/activities/TVTrailerPlayerActivity.java +++ b/tv/src/main/java/butter/droid/tv/activities/TVTrailerPlayerActivity.java @@ -33,7 +33,7 @@ import javax.inject.Inject; -import butter.droid.base.manager.youtube.YouTubeManager; +import butter.droid.base.manager.internal.youtube.YouTubeManager; import butter.droid.base.providers.media.models.Media; import butter.droid.base.torrent.StreamInfo; import butter.droid.base.torrent.TorrentService; diff --git a/tv/src/main/java/butter/droid/tv/activities/base/TVBaseActivity.java b/tv/src/main/java/butter/droid/tv/activities/base/TVBaseActivity.java index eb6279126..15eef7f8a 100644 --- a/tv/src/main/java/butter/droid/tv/activities/base/TVBaseActivity.java +++ b/tv/src/main/java/butter/droid/tv/activities/base/TVBaseActivity.java @@ -24,7 +24,7 @@ import javax.inject.Inject; -import butter.droid.base.manager.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; import butter.droid.base.utils.VersionUtils; import butter.droid.tv.ui.search.TVSearchActivity; diff --git a/tv/src/main/java/butter/droid/tv/fragments/TVMediaGridFragment.java b/tv/src/main/java/butter/droid/tv/fragments/TVMediaGridFragment.java index d5b5e10b0..2dad7ccf9 100644 --- a/tv/src/main/java/butter/droid/tv/fragments/TVMediaGridFragment.java +++ b/tv/src/main/java/butter/droid/tv/fragments/TVMediaGridFragment.java @@ -37,7 +37,7 @@ import javax.inject.Inject; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.providers.media.MediaProvider; import butter.droid.base.providers.media.models.Media; import butter.droid.base.providers.media.models.Movie; diff --git a/tv/src/main/java/butter/droid/tv/fragments/TVMovieDetailsFragment.java b/tv/src/main/java/butter/droid/tv/fragments/TVMovieDetailsFragment.java index ffde44776..704be2754 100644 --- a/tv/src/main/java/butter/droid/tv/fragments/TVMovieDetailsFragment.java +++ b/tv/src/main/java/butter/droid/tv/fragments/TVMovieDetailsFragment.java @@ -31,8 +31,8 @@ import javax.inject.Inject; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.youtube.YouTubeManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.youtube.YouTubeManager; import butter.droid.base.providers.media.MediaProvider; import butter.droid.base.providers.media.models.Media; import butter.droid.base.providers.media.models.Movie; diff --git a/tv/src/main/java/butter/droid/tv/fragments/TVOverviewFragment.java b/tv/src/main/java/butter/droid/tv/fragments/TVOverviewFragment.java index 9f57f48eb..768644f5e 100644 --- a/tv/src/main/java/butter/droid/tv/fragments/TVOverviewFragment.java +++ b/tv/src/main/java/butter/droid/tv/fragments/TVOverviewFragment.java @@ -44,7 +44,7 @@ import javax.inject.Inject; import butter.droid.base.PlayerTestConstants; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.providers.media.MediaProvider; import butter.droid.base.providers.media.models.Media; import butter.droid.base.providers.media.models.Movie; diff --git a/tv/src/main/java/butter/droid/tv/fragments/TVUpdateFragment.java b/tv/src/main/java/butter/droid/tv/fragments/TVUpdateFragment.java index b51045fc0..77fe869da 100644 --- a/tv/src/main/java/butter/droid/tv/fragments/TVUpdateFragment.java +++ b/tv/src/main/java/butter/droid/tv/fragments/TVUpdateFragment.java @@ -30,7 +30,7 @@ import javax.inject.Inject; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; import butter.droid.tv.R; import butter.droid.tv.TVButterApplication; diff --git a/tv/src/main/java/butter/droid/tv/service/RecommendationService.java b/tv/src/main/java/butter/droid/tv/service/RecommendationService.java index 184a866a9..d12e4ca53 100644 --- a/tv/src/main/java/butter/droid/tv/service/RecommendationService.java +++ b/tv/src/main/java/butter/droid/tv/service/RecommendationService.java @@ -30,7 +30,7 @@ import javax.inject.Inject; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.providers.media.MediaProvider; import butter.droid.base.providers.media.models.Episode; import butter.droid.base.providers.media.models.Media; diff --git a/tv/src/main/java/butter/droid/tv/ui/loading/fragment/TVStreamLoadingFragmentModule.java b/tv/src/main/java/butter/droid/tv/ui/loading/fragment/TVStreamLoadingFragmentModule.java index 659b51c89..205f1b5e4 100644 --- a/tv/src/main/java/butter/droid/tv/ui/loading/fragment/TVStreamLoadingFragmentModule.java +++ b/tv/src/main/java/butter/droid/tv/ui/loading/fragment/TVStreamLoadingFragmentModule.java @@ -20,8 +20,8 @@ import android.content.Context; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.ui.FragmentScope; import dagger.Module; import dagger.Provides; diff --git a/tv/src/main/java/butter/droid/tv/ui/loading/fragment/TVStreamLoadingFragmentPresenterImpl.java b/tv/src/main/java/butter/droid/tv/ui/loading/fragment/TVStreamLoadingFragmentPresenterImpl.java index 70e4a78de..835371113 100644 --- a/tv/src/main/java/butter/droid/tv/ui/loading/fragment/TVStreamLoadingFragmentPresenterImpl.java +++ b/tv/src/main/java/butter/droid/tv/ui/loading/fragment/TVStreamLoadingFragmentPresenterImpl.java @@ -21,8 +21,8 @@ import android.support.annotation.Nullable; import butter.droid.base.content.preferences.PreferencesHandler; -import butter.droid.base.manager.provider.ProviderManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.provider.ProviderManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.providers.media.models.Show; import butter.droid.base.torrent.StreamInfo; import butter.droid.base.ui.loading.fragment.BaseStreamLoadingFragmentPresenterImpl; diff --git a/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesFragment.java b/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesFragment.java index 08c19417e..c195870c5 100644 --- a/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesFragment.java +++ b/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesFragment.java @@ -35,7 +35,7 @@ import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.content.preferences.Prefs.PrefKey; -import butter.droid.base.manager.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; import butter.droid.tv.R; import butter.droid.tv.TVButterApplication; import butter.droid.tv.activities.TVUpdateActivity; diff --git a/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesModule.java b/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesModule.java index cb0ae1a49..e4d527339 100644 --- a/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesModule.java +++ b/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesModule.java @@ -22,8 +22,8 @@ import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.updater.ButterUpdateManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.ui.FragmentScope; import dagger.Module; import dagger.Provides; diff --git a/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesPresenterImpl.java b/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesPresenterImpl.java index 0b7681bf6..d6129e44a 100644 --- a/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesPresenterImpl.java +++ b/tv/src/main/java/butter/droid/tv/ui/preferences/TVPreferencesPresenterImpl.java @@ -27,8 +27,8 @@ import butter.droid.base.content.preferences.PrefItem; import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.manager.prefs.PrefManager; -import butter.droid.base.manager.updater.ButterUpdateManager; -import butter.droid.base.manager.vlc.PlayerManager; +import butter.droid.base.manager.internal.updater.ButterUpdateManager; +import butter.droid.base.manager.internal.vlc.PlayerManager; import butter.droid.base.ui.preferences.BasePreferencesPresenterImpl; public class TVPreferencesPresenterImpl extends BasePreferencesPresenterImpl implements TVPreferencesPresenter { diff --git a/tv/src/main/java/butter/droid/tv/ui/search/TVSearchModue.java b/tv/src/main/java/butter/droid/tv/ui/search/TVSearchModue.java index 739c342cd..9b3204735 100644 --- a/tv/src/main/java/butter/droid/tv/ui/search/TVSearchModue.java +++ b/tv/src/main/java/butter/droid/tv/ui/search/TVSearchModue.java @@ -17,7 +17,7 @@ package butter.droid.tv.ui.search; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.ui.ActivityScope; import dagger.Module; import dagger.Provides; diff --git a/tv/src/main/java/butter/droid/tv/ui/search/TVSearchPresenterImpl.java b/tv/src/main/java/butter/droid/tv/ui/search/TVSearchPresenterImpl.java index cdd33d4e6..8671f18c4 100644 --- a/tv/src/main/java/butter/droid/tv/ui/search/TVSearchPresenterImpl.java +++ b/tv/src/main/java/butter/droid/tv/ui/search/TVSearchPresenterImpl.java @@ -24,14 +24,13 @@ import java.util.ArrayList; import java.util.List; -import butter.droid.base.manager.provider.ProviderManager; +import butter.droid.base.manager.internal.provider.ProviderManager; import butter.droid.base.providers.media.MediaProvider; import butter.droid.base.providers.media.models.Media; import butter.droid.base.utils.ThreadUtils; import butter.droid.tv.R; import butter.droid.tv.presenters.MediaCardPresenter; import butter.droid.tv.presenters.MediaCardPresenter.MediaCardItem; -import timber.log.Timber; public class TVSearchPresenterImpl implements TVSearchPresenter { From 6423f8978a9f81108e9ff26d2f827218b6514032 Mon Sep 17 00:00:00 2001 From: Blaz Solar Date: Sun, 2 Apr 2017 19:56:51 +0200 Subject: [PATCH 2/2] Implementaing internal scope for DI --- .../droid/base/BaseApplicationComponent.java | 24 ++-- .../droid/base/BaseApplicationModule.java | 32 +++++- ...ponent.java => BaseInternalComponent.java} | 32 ++++-- .../butter/droid/base/BaseInternalModule.java | 30 +++++ .../butter/droid/base/ButterApplication.java | 17 +-- .../java/butter/droid/base/ExposedModule.java | 58 ---------- .../{ApplicationScope.java => Internal.java} | 2 +- .../droid/base/PlayerTestConstants.java | 2 +- .../butter/droid/base/data/DataModule.java | 23 +--- .../data/internal/InternalDataModule.java | 41 +++++++ .../internal/InternalManagerModule.java | 25 +--- .../manager/internal/beaming/BeamManager.java | 4 +- .../internal/updater/ButterUpdateManager.java | 4 +- .../internal/youtube/model/VideoStream.java | 6 +- .../base/providers/ProviderComponent.java | 19 ++-- .../base/providers/media/models/Episode.java | 12 +- .../droid/base/subs/SubtitleDownloader.java | 41 +++++-- .../butter/droid/base/utils/SignUtils.java | 2 +- .../butter/droid/ApplicationComponent.java | 57 +--------- .../java/butter/droid/InternalComponent.java | 95 ++++++++++++++++ ...icationModule.java => InternalModule.java} | 6 +- .../butter/droid/MobileButterApplication.java | 20 +++- .../butter/droid/tv/ApplicationComponent.java | 67 +---------- .../butter/droid/tv/InternalComponent.java | 107 ++++++++++++++++++ ...icationModule.java => InternalModule.java} | 9 +- .../butter/droid/tv/TVButterApplication.java | 20 +++- 26 files changed, 448 insertions(+), 307 deletions(-) rename base/src/main/java/butter/droid/base/{ExposedComponent.java => BaseInternalComponent.java} (78%) create mode 100644 base/src/main/java/butter/droid/base/BaseInternalModule.java delete mode 100644 base/src/main/java/butter/droid/base/ExposedModule.java rename base/src/main/java/butter/droid/base/{ApplicationScope.java => Internal.java} (97%) create mode 100644 base/src/main/java/butter/droid/base/data/internal/InternalDataModule.java create mode 100644 mobile/src/main/java/butter/droid/InternalComponent.java rename mobile/src/main/java/butter/droid/{ApplicationModule.java => InternalModule.java} (85%) create mode 100644 tv/src/main/java/butter/droid/tv/InternalComponent.java rename tv/src/main/java/butter/droid/tv/{ApplicationModule.java => InternalModule.java} (83%) diff --git a/base/src/main/java/butter/droid/base/BaseApplicationComponent.java b/base/src/main/java/butter/droid/base/BaseApplicationComponent.java index 80fc9b264..b5e9fa86c 100644 --- a/base/src/main/java/butter/droid/base/BaseApplicationComponent.java +++ b/base/src/main/java/butter/droid/base/BaseApplicationComponent.java @@ -22,29 +22,29 @@ import android.content.res.Resources; import android.net.ConnectivityManager; import android.net.wifi.WifiManager; -import butter.droid.base.manager.internal.beaming.BeamPlayerNotificationService; -import butter.droid.base.manager.internal.vlc.PlayerManager; -import butter.droid.base.providers.media.VodoProvider; -import butter.droid.base.torrent.TorrentService; +import butter.droid.base.manager.network.NetworkManager; +import butter.droid.base.manager.prefs.PrefManager; import com.google.gson.Gson; -import com.squareup.picasso.Picasso; import okhttp3.OkHttpClient; public interface BaseApplicationComponent { - void inject(BeamPlayerNotificationService service); - - void inject(TorrentService service); - Context context(); - Picasso picasso(); - VodoProvider codoProvider(); + OkHttpClient okHttpClient(); + Gson gson(); - PlayerManager playerManager(); + SharedPreferences sharedPreferences(); + Resources resources(); + ConnectivityManager connectivityManager(); + WifiManager wifiManager(); + NetworkManager networkManager(); + + PrefManager prefManager(); + } diff --git a/base/src/main/java/butter/droid/base/BaseApplicationModule.java b/base/src/main/java/butter/droid/base/BaseApplicationModule.java index 87ee9c0cc..876fbb029 100644 --- a/base/src/main/java/butter/droid/base/BaseApplicationModule.java +++ b/base/src/main/java/butter/droid/base/BaseApplicationModule.java @@ -17,14 +17,42 @@ package butter.droid.base; -import butter.droid.base.manager.internal.InternalManagerModule; +import android.content.Context; +import android.content.SharedPreferences; +import android.content.res.Resources; +import butter.droid.base.content.ObscuredSharedPreferences; +import butter.droid.base.data.DataModule; +import butter.droid.base.manager.ManagerModule; import dagger.Module; +import dagger.Provides; +import javax.inject.Singleton; @Module( includes = { - InternalManagerModule.class, + AndroidModule.class, + ManagerModule.class, + DataModule.class } ) public class BaseApplicationModule { + private final ButterApplication application; + + public BaseApplicationModule(ButterApplication application) { + this.application = application; + } + + @Provides @Singleton public Context provideContext() { + return application; + } + + @Provides @Singleton public SharedPreferences provideSharedPreferences(Context context) { + return new ObscuredSharedPreferences(context, + context.getSharedPreferences(Constants.PREFS_FILE, Context.MODE_PRIVATE)); + } + + @Provides @Singleton public Resources provideResources(Context context) { + return context.getResources(); + } + } diff --git a/base/src/main/java/butter/droid/base/ExposedComponent.java b/base/src/main/java/butter/droid/base/BaseInternalComponent.java similarity index 78% rename from base/src/main/java/butter/droid/base/ExposedComponent.java rename to base/src/main/java/butter/droid/base/BaseInternalComponent.java index 597fad7b7..2d6e2fd96 100644 --- a/base/src/main/java/butter/droid/base/ExposedComponent.java +++ b/base/src/main/java/butter/droid/base/BaseInternalComponent.java @@ -22,30 +22,38 @@ import android.content.res.Resources; import android.net.ConnectivityManager; import android.net.wifi.WifiManager; +import butter.droid.base.manager.internal.beaming.BeamPlayerNotificationService; import butter.droid.base.manager.internal.vlc.PlayerManager; -import butter.droid.base.manager.network.NetworkManager; -import butter.droid.base.manager.prefs.PrefManager; +import butter.droid.base.providers.media.VodoProvider; +import butter.droid.base.torrent.TorrentService; import com.google.gson.Gson; import com.squareup.picasso.Picasso; -import dagger.Component; -import javax.inject.Singleton; import okhttp3.OkHttpClient; -@Singleton @Component( - modules = ExposedModule.class -) -public interface ExposedComponent { +public interface BaseInternalComponent { + + void inject(BeamPlayerNotificationService service); + + void inject(TorrentService service); + + Context context(); + + Picasso picasso(); + + VodoProvider vodoProvider(); OkHttpClient okHttpClient(); + Gson gson(); + PlayerManager playerManager(); - Context context(); - Picasso picasso(); + SharedPreferences sharedPreferences(); + Resources resources(); + ConnectivityManager connectivityManager(); + WifiManager wifiManager(); - NetworkManager networkManager(); - PrefManager prefManager(); } diff --git a/base/src/main/java/butter/droid/base/BaseInternalModule.java b/base/src/main/java/butter/droid/base/BaseInternalModule.java new file mode 100644 index 000000000..90efe9571 --- /dev/null +++ b/base/src/main/java/butter/droid/base/BaseInternalModule.java @@ -0,0 +1,30 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid.base; + +import butter.droid.base.data.internal.InternalDataModule; +import butter.droid.base.manager.internal.InternalManagerModule; +import dagger.Module; + +@Module(includes = { + InternalDataModule.class, + InternalManagerModule.class, +}) +public class BaseInternalModule { + +} diff --git a/base/src/main/java/butter/droid/base/ButterApplication.java b/base/src/main/java/butter/droid/base/ButterApplication.java index 480d97723..d98c54672 100644 --- a/base/src/main/java/butter/droid/base/ButterApplication.java +++ b/base/src/main/java/butter/droid/base/ButterApplication.java @@ -27,14 +27,11 @@ import android.content.pm.PackageManager; import android.content.res.Configuration; import android.net.Uri; -import android.support.annotation.NonNull; import android.support.multidex.MultiDex; import android.support.v4.app.NotificationCompat; import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.manager.internal.beaming.BeamManager; import butter.droid.base.manager.internal.updater.ButterUpdateManager; -import butter.droid.base.providers.DaggerProviderComponent; -import butter.droid.base.providers.ProviderComponent; import butter.droid.base.torrent.TorrentService; import butter.droid.base.utils.FileUtils; import butter.droid.base.utils.LocaleUtils; @@ -68,15 +65,7 @@ public void onCreate() { super.onCreate(); sThis = this; - ExposedComponent exposedComponent = DaggerExposedComponent.builder() - .exposedModule(new ExposedModule(this)) - .build(); - - ProviderComponent providerComponent = DaggerProviderComponent.builder() - .exposedComponent(exposedComponent) - .build(); - - inject(providerComponent); + inject(); sDefSystemLanguage = LocaleUtils.getCurrentAsString(); @@ -159,9 +148,9 @@ public void updateAvailable(String updateFile) { } } - public abstract BaseApplicationComponent getComponent(); + public abstract BaseInternalComponent getComponent(); - protected abstract void inject(@NonNull ProviderComponent providerComponent); + protected abstract void inject(); public static ButterApplication getAppContext() { return sThis; diff --git a/base/src/main/java/butter/droid/base/ExposedModule.java b/base/src/main/java/butter/droid/base/ExposedModule.java deleted file mode 100644 index 6b5036d8c..000000000 --- a/base/src/main/java/butter/droid/base/ExposedModule.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * This file is part of Butter. - * - * Butter is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Butter 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 Butter. If not, see . - */ - -package butter.droid.base; - -import android.content.Context; -import android.content.SharedPreferences; -import android.content.res.Resources; -import butter.droid.base.content.ObscuredSharedPreferences; -import butter.droid.base.data.DataModule; -import butter.droid.base.manager.ManagerModule; -import dagger.Module; -import dagger.Provides; -import javax.inject.Singleton; - -@Module( - includes = { - DataModule.class, - AndroidModule.class, - ManagerModule.class - } -) -public class ExposedModule { - - private final ButterApplication application; - - public ExposedModule(ButterApplication application) { - this.application = application; - } - - @Provides @Singleton public Context provideContext() { - return application; - } - - @Provides @Singleton public SharedPreferences provideSharedPreferences(Context context) { - return new ObscuredSharedPreferences(context, - context.getSharedPreferences(Constants.PREFS_FILE, Context.MODE_PRIVATE)); - } - - @Provides @Singleton public Resources provideResources(Context context) { - return context.getResources(); - } - -} diff --git a/base/src/main/java/butter/droid/base/ApplicationScope.java b/base/src/main/java/butter/droid/base/Internal.java similarity index 97% rename from base/src/main/java/butter/droid/base/ApplicationScope.java rename to base/src/main/java/butter/droid/base/Internal.java index c703a561a..c78b61cf6 100644 --- a/base/src/main/java/butter/droid/base/ApplicationScope.java +++ b/base/src/main/java/butter/droid/base/Internal.java @@ -40,5 +40,5 @@ @Scope @Retention(RetentionPolicy.RUNTIME) -public @interface ApplicationScope { +public @interface Internal { } diff --git a/base/src/main/java/butter/droid/base/PlayerTestConstants.java b/base/src/main/java/butter/droid/base/PlayerTestConstants.java index a4e82952d..fa6b35766 100644 --- a/base/src/main/java/butter/droid/base/PlayerTestConstants.java +++ b/base/src/main/java/butter/droid/base/PlayerTestConstants.java @@ -52,7 +52,7 @@ public final class PlayerTestConstants { "Open dialog" }; - public final static String[] FILES = new String[]{ + public final static String[] FILES = new String[] { "https://get.butterproject.org/nwtests/Spider-Man_2_720p_24fps_surround_ac3.mp4", "https://get.butterproject.org/nwtests/Spider-Man_2_720p_24fps_mp3.mp4", "https://get.butterproject.org/nwtests/Spider-Man_2_1080p_24fps_surround_ac3.mp4", diff --git a/base/src/main/java/butter/droid/base/data/DataModule.java b/base/src/main/java/butter/droid/base/data/DataModule.java index 82995eb65..06578a6d0 100644 --- a/base/src/main/java/butter/droid/base/data/DataModule.java +++ b/base/src/main/java/butter/droid/base/data/DataModule.java @@ -17,20 +17,13 @@ package butter.droid.base.data; -import android.content.Context; - +import butter.droid.base.content.preferences.PreferencesHandler; import com.google.gson.Gson; -import com.jakewharton.picasso.OkHttp3Downloader; -import com.squareup.picasso.Picasso; - +import dagger.Module; +import dagger.Provides; import java.io.File; import java.util.concurrent.TimeUnit; - import javax.inject.Singleton; - -import butter.droid.base.content.preferences.PreferencesHandler; -import dagger.Module; -import dagger.Provides; import okhttp3.Cache; import okhttp3.OkHttpClient; import okhttp3.OkHttpClient.Builder; @@ -54,16 +47,6 @@ public class DataModule { .build(); } - @Provides @Singleton public OkHttp3Downloader provideOkHttpDownloader(OkHttpClient client) { - return new OkHttp3Downloader(client); - } - - @Provides @Singleton public Picasso providePicasso(Context context, OkHttp3Downloader okHttpDownloader) { - return new Picasso.Builder(context) - .downloader(okHttpDownloader) - .build(); - } - @Provides @Singleton public Gson provideGson() { return new Gson(); } diff --git a/base/src/main/java/butter/droid/base/data/internal/InternalDataModule.java b/base/src/main/java/butter/droid/base/data/internal/InternalDataModule.java new file mode 100644 index 000000000..3fc9bd78b --- /dev/null +++ b/base/src/main/java/butter/droid/base/data/internal/InternalDataModule.java @@ -0,0 +1,41 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid.base.data.internal; + +import android.content.Context; +import butter.droid.base.Internal; +import com.jakewharton.picasso.OkHttp3Downloader; +import com.squareup.picasso.Picasso; +import dagger.Module; +import dagger.Provides; +import okhttp3.OkHttpClient; + +@Module +public class InternalDataModule { + + @Provides @Internal public OkHttp3Downloader provideOkHttpDownloader(OkHttpClient client) { + return new OkHttp3Downloader(client); + } + + @Provides @Internal public Picasso providePicasso(Context context, OkHttp3Downloader okHttpDownloader) { + return new Picasso.Builder(context) + .downloader(okHttpDownloader) + .build(); + } + +} diff --git a/base/src/main/java/butter/droid/base/manager/internal/InternalManagerModule.java b/base/src/main/java/butter/droid/base/manager/internal/InternalManagerModule.java index fa2c19fa7..db691112a 100644 --- a/base/src/main/java/butter/droid/base/manager/internal/InternalManagerModule.java +++ b/base/src/main/java/butter/droid/base/manager/internal/InternalManagerModule.java @@ -15,28 +15,11 @@ * along with Butter. If not, see . */ -/* - * This file is part of Butter. - * - * Butter is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * Butter 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 Butter. If not, see . - */ - package butter.droid.base.manager.internal; import android.content.Context; import android.support.annotation.Nullable; -import butter.droid.base.ApplicationScope; +import butter.droid.base.Internal; import butter.droid.base.Constants; import butter.droid.base.content.preferences.PreferencesHandler; import butter.droid.base.manager.internal.provider.ProviderManager; @@ -51,12 +34,12 @@ @Module public class InternalManagerModule { - @Provides @ApplicationScope ProviderManager provideProviderManager(VodoProvider moviesProvider) { + @Provides @Internal ProviderManager provideProviderManager(VodoProvider moviesProvider) { return new ProviderManager(moviesProvider, null); } - @Provides @ApplicationScope @Nullable LibVLC provideLibVLC(Context context, PreferencesHandler preferencesHandler) { - if(!VLCUtil.hasCompatibleCPU(context)) { + @Provides @Internal @Nullable LibVLC provideLibVLC(Context context, PreferencesHandler preferencesHandler) { + if (!VLCUtil.hasCompatibleCPU(context)) { Timber.e(VLCUtil.getErrorMsg()); return null; } else { diff --git a/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamManager.java b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamManager.java index 0c4e1d820..f342e3c9a 100644 --- a/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamManager.java +++ b/base/src/main/java/butter/droid/base/manager/internal/beaming/BeamManager.java @@ -25,7 +25,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import android.widget.Toast; -import butter.droid.base.ApplicationScope; +import butter.droid.base.Internal; import butter.droid.base.R; import butter.droid.base.manager.internal.beaming.server.BeamServer; import butter.droid.base.manager.internal.beaming.server.BeamServerService; @@ -72,7 +72,7 @@ *

* Wrapper for ConnectSDK */ -@ApplicationScope +@Internal public class BeamManager implements ConnectableDeviceListener, DiscoveryManagerListener { private final Context context; diff --git a/base/src/main/java/butter/droid/base/manager/internal/updater/ButterUpdateManager.java b/base/src/main/java/butter/droid/base/manager/internal/updater/ButterUpdateManager.java index 3cb5b615e..35b0c80c1 100644 --- a/base/src/main/java/butter/droid/base/manager/internal/updater/ButterUpdateManager.java +++ b/base/src/main/java/butter/droid/base/manager/internal/updater/ButterUpdateManager.java @@ -46,7 +46,7 @@ import android.os.Build; import android.os.Environment; import android.os.Handler; -import butter.droid.base.ApplicationScope; +import butter.droid.base.Internal; import butter.droid.base.BuildConfig; import butter.droid.base.Constants; import butter.droid.base.content.preferences.PreferencesHandler; @@ -74,7 +74,7 @@ import okio.BufferedSink; import okio.Okio; -@ApplicationScope +@Internal public class ButterUpdateManager extends Observable { public static int NOTIFICATION_ID = 0x808C049; diff --git a/base/src/main/java/butter/droid/base/manager/internal/youtube/model/VideoStream.java b/base/src/main/java/butter/droid/base/manager/internal/youtube/model/VideoStream.java index 69615426d..2a2fabc8d 100755 --- a/base/src/main/java/butter/droid/base/manager/internal/youtube/model/VideoStream.java +++ b/base/src/main/java/butter/droid/base/manager/internal/youtube/model/VideoStream.java @@ -25,7 +25,7 @@ */ public class VideoStream { - protected String mUrl; + protected String url; /** * Construct a video stream from one of the strings obtained @@ -44,11 +44,11 @@ public VideoStream(String streamStr) { } } } - mUrl = argMap.get("url"); + url = argMap.get("url"); } public String getUrl() { - return mUrl; + return url; } } diff --git a/base/src/main/java/butter/droid/base/providers/ProviderComponent.java b/base/src/main/java/butter/droid/base/providers/ProviderComponent.java index bbc63a414..99095ebf7 100644 --- a/base/src/main/java/butter/droid/base/providers/ProviderComponent.java +++ b/base/src/main/java/butter/droid/base/providers/ProviderComponent.java @@ -22,34 +22,39 @@ import android.content.res.Resources; import android.net.ConnectivityManager; import android.net.wifi.WifiManager; -import butter.droid.base.ExposedComponent; -import butter.droid.base.manager.internal.vlc.PlayerManager; +import butter.droid.base.BaseApplicationComponent; import butter.droid.base.manager.network.NetworkManager; import butter.droid.base.manager.prefs.PrefManager; import butter.droid.base.providers.media.VodoProvider; import com.google.gson.Gson; -import com.squareup.picasso.Picasso; import dagger.Component; import okhttp3.OkHttpClient; @Component( - dependencies = ExposedComponent.class, + dependencies = BaseApplicationComponent.class, modules = ProviderModule.class ) @ProviderScope public interface ProviderComponent { Context context(); - Picasso picasso(); - VodoProvider codoProvider(); + OkHttpClient okHttpClient(); + + VodoProvider vodoProvider(); + Gson gson(); - PlayerManager playerManager(); + SharedPreferences sharedPreferences(); + Resources resources(); + ConnectivityManager connectivityManager(); + WifiManager wifiManager(); + NetworkManager networkManager(); + PrefManager prefManager(); } diff --git a/base/src/main/java/butter/droid/base/providers/media/models/Episode.java b/base/src/main/java/butter/droid/base/providers/media/models/Episode.java index 9e8c16c4c..0c22eeffc 100644 --- a/base/src/main/java/butter/droid/base/providers/media/models/Episode.java +++ b/base/src/main/java/butter/droid/base/providers/media/models/Episode.java @@ -36,11 +36,11 @@ public class Episode extends Media implements Parcelable { public boolean dateBased; public Map torrents = new HashMap<>(); - protected MetaProvider mMetaProvider; + protected MetaProvider metaProvider; public Episode(MetaProvider metaProvider) { super(); - mMetaProvider = metaProvider; + this.metaProvider = metaProvider; } protected Episode(Parcel in) { @@ -55,10 +55,10 @@ protected Episode(Parcel in) { dateBased = in.readInt() == 1; String className = in.readString(); - mMetaProvider = null; + metaProvider = null; try { Class clazz = Class.forName(className); - mMetaProvider = (MetaProvider) clazz.newInstance(); + metaProvider = (MetaProvider) clazz.newInstance(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (InstantiationException e) { @@ -95,7 +95,7 @@ public void writeToParcel(Parcel dest, int flags) { dest.writeString(tvdbId); dest.writeString(showName); dest.writeInt(dateBased ? 1 : 0); - dest.writeString(mMetaProvider != null ? mMetaProvider.getClass().getCanonicalName() : ""); + dest.writeString(metaProvider != null ? metaProvider.getClass().getCanonicalName() : ""); if (torrents != null) { dest.writeInt(torrents.size()); for (String s : torrents.keySet()) { @@ -121,7 +121,7 @@ public Episode[] newArray(int size) { }; public MetaProvider getMetaProvider() { - return mMetaProvider; + return metaProvider; } } diff --git a/base/src/main/java/butter/droid/base/subs/SubtitleDownloader.java b/base/src/main/java/butter/droid/base/subs/SubtitleDownloader.java index 046134025..32f3f4243 100644 --- a/base/src/main/java/butter/droid/base/subs/SubtitleDownloader.java +++ b/base/src/main/java/butter/droid/base/subs/SubtitleDownloader.java @@ -30,20 +30,25 @@ public class SubtitleDownloader { public SubtitleDownloader(@NonNull SubsProvider subsProvider, @NonNull StreamInfo streamInfo, PlayerManager playerManager, @NonNull String language) { - if (language.equals(SubsProvider.SUBTITLE_LANGUAGE_NONE)) + if (language.equals(SubsProvider.SUBTITLE_LANGUAGE_NONE)) { throw new IllegalArgumentException("language must be specified"); + } this.subsProvider = subsProvider; subtitleLanguage = language; this.playerManager = playerManager; media = streamInfo.getMedia(); - if (media == null) throw new IllegalArgumentException("media from StreamInfo must not null"); + if (media == null) { + throw new IllegalArgumentException("media from StreamInfo must not null"); + } } public void downloadSubtitle() { - if (listenerReference == null) throw new IllegalArgumentException( - "listener must not null. Call setSubtitleDownloaderListener() to sets one"); + if (listenerReference == null) { + throw new IllegalArgumentException( + "listener must not null. Call setSubtitleDownloaderListener() to sets one"); + } subsProvider.download(media, subtitleLanguage, new Callback() { @Override public void onFailure(Call call, IOException e) { onSubtitleDownloadFailed(); @@ -56,16 +61,22 @@ public void downloadSubtitle() { } public void parseSubtitle(@NonNull File subtitleFile) { - if (listenerReference == null) throw new IllegalArgumentException( - "listener must not null. Call setSubtitleDownloaderListener() to sets one"); - if (listenerReference.get() == null) return; + if (listenerReference == null) { + throw new IllegalArgumentException( + "listener must not null. Call setSubtitleDownloaderListener() to sets one"); + } + if (listenerReference.get() == null) { + return; + } ISubtitleDownloaderListener listener = listenerReference.get(); SubtitleParseTask task = new SubtitleParseTask(subtitleLanguage, listener); task.execute(subtitleFile); } public void setSubtitleDownloaderListener(ISubtitleDownloaderListener listener) { - if (listener == null) throw new IllegalArgumentException("listener must not null"); + if (listener == null) { + throw new IllegalArgumentException("listener must not null"); + } listenerReference = new WeakReference<>(listener); } @@ -73,7 +84,9 @@ public void setSubtitleDownloaderListener(ISubtitleDownloaderListener listener) * Invoked when subtitle download finished successfully. */ private void onSubtitleDownloadSuccess() { - if (listenerReference.get() == null) return; + if (listenerReference.get() == null) { + return; + } ISubtitleDownloaderListener listener = listenerReference.get(); @@ -92,12 +105,15 @@ private void onSubtitleDownloadSuccess() { */ private void onSubtitleDownloadFailed() { subtitleLanguage = SubsProvider.SUBTITLE_LANGUAGE_NONE; - if (listenerReference.get() == null) return; + if (listenerReference.get() == null) { + return; + } ISubtitleDownloaderListener listener = listenerReference.get(); listener.onSubtitleDownloadCompleted(false, null); } private class SubtitleParseTask extends AsyncTask { + String subtitleLanguage; WeakReference listenerReference; @@ -135,7 +151,9 @@ protected TimedTextObject doInBackground(File... files) { protected void onProgressUpdate(TimedTextObject... values) { super.onProgressUpdate(values); for (TimedTextObject timedTextObject : values) { - if (listenerReference.get() == null) break; + if (listenerReference.get() == null) { + break; + } listenerReference.get().onSubtitleDownloadCompleted(true, timedTextObject); } } @@ -153,6 +171,7 @@ private TimedTextObject parseAsTimedTextObject(File file) throws IOException { } public interface ISubtitleDownloaderListener { + void onSubtitleDownloadCompleted(boolean isSuccessful, TimedTextObject subtitleFile); } } diff --git a/base/src/main/java/butter/droid/base/utils/SignUtils.java b/base/src/main/java/butter/droid/base/utils/SignUtils.java index 783decbc0..c8ee2229a 100644 --- a/base/src/main/java/butter/droid/base/utils/SignUtils.java +++ b/base/src/main/java/butter/droid/base/utils/SignUtils.java @@ -34,7 +34,7 @@ public static int checkAppSignature(Context context) { Timber.d("Detected signature: %s", currentSignature); //compare signatures - if (SIGNATURE.equals(currentSignature) || SIGNATURE_DEV.equals(currentSignature)){ + if (SIGNATURE.equals(currentSignature) || SIGNATURE_DEV.equals(currentSignature)) { return VALID; } } diff --git a/mobile/src/main/java/butter/droid/ApplicationComponent.java b/mobile/src/main/java/butter/droid/ApplicationComponent.java index 33fb65dac..76f021e1e 100644 --- a/mobile/src/main/java/butter/droid/ApplicationComponent.java +++ b/mobile/src/main/java/butter/droid/ApplicationComponent.java @@ -17,63 +17,14 @@ package butter.droid; -import butter.droid.activities.BeamPlayerActivity; -import butter.droid.activities.SearchActivity; -import butter.droid.activities.TrailerPlayerActivity; -import butter.droid.activities.VideoPlayerActivity; -import butter.droid.base.ApplicationScope; import butter.droid.base.BaseApplicationComponent; -import butter.droid.base.providers.ProviderComponent; -import butter.droid.fragments.BeamPlayerFragment; -import butter.droid.fragments.MediaContainerFragment; -import butter.droid.fragments.MediaGenreSelectionFragment; -import butter.droid.fragments.VideoPlayerFragment; -import butter.droid.fragments.dialog.BeamDeviceSelectorDialogFragment; -import butter.droid.fragments.dialog.EpisodeDialogFragment; -import butter.droid.fragments.dialog.LoadingDetailDialogFragment; -import butter.droid.ui.about.AboutActivity; -import butter.droid.ui.about.AboutComponent; -import butter.droid.ui.loading.StreamLoadingComponent; -import butter.droid.ui.main.MainComponent; -import butter.droid.ui.media.detail.MediaDetailComponent; -import butter.droid.ui.media.list.MediaListComponent; -import butter.droid.ui.preferences.PreferencesComponent; -import butter.droid.ui.search.SearchComponent; -import butter.droid.ui.terms.TermsComponent; +import butter.droid.base.BaseApplicationModule; import dagger.Component; +import javax.inject.Singleton; -@ApplicationScope @Component( - dependencies = { - ProviderComponent.class - }, - modules = ApplicationModule.class +@Singleton @Component( + modules = BaseApplicationModule.class ) public interface ApplicationComponent extends BaseApplicationComponent { - void inject(MobileButterApplication application); - - void inject(TrailerPlayerActivity activity); - void inject(AboutActivity activity); - void inject(BeamPlayerActivity activity); - void inject(SearchActivity activity); - void inject(VideoPlayerActivity activity); - - void inject(MediaContainerFragment fragment); - void inject(MediaGenreSelectionFragment fragment); - void inject(LoadingDetailDialogFragment fragment); - void inject(EpisodeDialogFragment fragment); - void inject(VideoPlayerFragment fragment); - void inject(BeamPlayerFragment fragment); - void inject(BeamDeviceSelectorDialogFragment fragment); - - MainComponent.Builder mainComponentBuilder(); - PreferencesComponent.Builder preferencesComponentBuilder(); - TermsComponent.Builder termsComponentBuilder(); - MediaDetailComponent.Builder mediaDetailsComponentBuilder(); - AboutComponent.Builder aboutComponentBuilder(); - StreamLoadingComponent.Builder streamLoadingComponentBuilder(); - - MediaListComponent.Builder mediaListComponentBuilder(); - SearchComponent.Builder searchComponentBuilder(); - } diff --git a/mobile/src/main/java/butter/droid/InternalComponent.java b/mobile/src/main/java/butter/droid/InternalComponent.java new file mode 100644 index 000000000..5378ccb6c --- /dev/null +++ b/mobile/src/main/java/butter/droid/InternalComponent.java @@ -0,0 +1,95 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid; + +import butter.droid.activities.BeamPlayerActivity; +import butter.droid.activities.SearchActivity; +import butter.droid.activities.TrailerPlayerActivity; +import butter.droid.activities.VideoPlayerActivity; +import butter.droid.base.Internal; +import butter.droid.base.BaseInternalComponent; +import butter.droid.base.providers.ProviderComponent; +import butter.droid.fragments.BeamPlayerFragment; +import butter.droid.fragments.MediaContainerFragment; +import butter.droid.fragments.MediaGenreSelectionFragment; +import butter.droid.fragments.VideoPlayerFragment; +import butter.droid.fragments.dialog.BeamDeviceSelectorDialogFragment; +import butter.droid.fragments.dialog.EpisodeDialogFragment; +import butter.droid.fragments.dialog.LoadingDetailDialogFragment; +import butter.droid.ui.about.AboutActivity; +import butter.droid.ui.about.AboutComponent; +import butter.droid.ui.loading.StreamLoadingComponent; +import butter.droid.ui.main.MainComponent; +import butter.droid.ui.media.detail.MediaDetailComponent; +import butter.droid.ui.media.list.MediaListComponent; +import butter.droid.ui.preferences.PreferencesComponent; +import butter.droid.ui.search.SearchComponent; +import butter.droid.ui.terms.TermsComponent; +import dagger.Component; + +@Internal @Component( + dependencies = { + ProviderComponent.class + }, + modules = InternalModule.class +) +public interface InternalComponent extends BaseInternalComponent { + + void inject(MobileButterApplication application); + + void inject(TrailerPlayerActivity activity); + + void inject(AboutActivity activity); + + void inject(BeamPlayerActivity activity); + + void inject(SearchActivity activity); + + void inject(VideoPlayerActivity activity); + + void inject(MediaContainerFragment fragment); + + void inject(MediaGenreSelectionFragment fragment); + + void inject(LoadingDetailDialogFragment fragment); + + void inject(EpisodeDialogFragment fragment); + + void inject(VideoPlayerFragment fragment); + + void inject(BeamPlayerFragment fragment); + + void inject(BeamDeviceSelectorDialogFragment fragment); + + MainComponent.Builder mainComponentBuilder(); + + PreferencesComponent.Builder preferencesComponentBuilder(); + + TermsComponent.Builder termsComponentBuilder(); + + MediaDetailComponent.Builder mediaDetailsComponentBuilder(); + + AboutComponent.Builder aboutComponentBuilder(); + + StreamLoadingComponent.Builder streamLoadingComponentBuilder(); + + MediaListComponent.Builder mediaListComponentBuilder(); + + SearchComponent.Builder searchComponentBuilder(); + +} diff --git a/mobile/src/main/java/butter/droid/ApplicationModule.java b/mobile/src/main/java/butter/droid/InternalModule.java similarity index 85% rename from mobile/src/main/java/butter/droid/ApplicationModule.java rename to mobile/src/main/java/butter/droid/InternalModule.java index ddb3e868a..e7edf45e3 100644 --- a/mobile/src/main/java/butter/droid/ApplicationModule.java +++ b/mobile/src/main/java/butter/droid/InternalModule.java @@ -17,12 +17,12 @@ package butter.droid; -import butter.droid.base.BaseApplicationModule; +import butter.droid.base.BaseInternalModule; import dagger.Module; @Module( - includes = BaseApplicationModule.class + includes = BaseInternalModule.class ) -public class ApplicationModule { +public class InternalModule { } diff --git a/mobile/src/main/java/butter/droid/MobileButterApplication.java b/mobile/src/main/java/butter/droid/MobileButterApplication.java index 573f13639..499909b63 100644 --- a/mobile/src/main/java/butter/droid/MobileButterApplication.java +++ b/mobile/src/main/java/butter/droid/MobileButterApplication.java @@ -17,20 +17,30 @@ package butter.droid; -import android.support.annotation.NonNull; +import butter.droid.base.BaseApplicationModule; import butter.droid.base.ButterApplication; +import butter.droid.base.providers.DaggerProviderComponent; import butter.droid.base.providers.ProviderComponent; public class MobileButterApplication extends ButterApplication { - private ApplicationComponent component; + private InternalComponent component; - public ApplicationComponent getComponent() { + public InternalComponent getComponent() { return component; } - @Override protected void inject(@NonNull final ProviderComponent providerComponent) { - component = DaggerApplicationComponent.builder() + @Override protected void inject() { + + ApplicationComponent applicationComponent = DaggerApplicationComponent.builder() + .baseApplicationModule(new BaseApplicationModule(this)) + .build(); + + ProviderComponent providerComponent = DaggerProviderComponent.builder() + .baseApplicationComponent(applicationComponent) + .build(); + + component = DaggerInternalComponent.builder() .providerComponent(providerComponent) .build(); diff --git a/tv/src/main/java/butter/droid/tv/ApplicationComponent.java b/tv/src/main/java/butter/droid/tv/ApplicationComponent.java index 7e4da04b3..7375983b6 100644 --- a/tv/src/main/java/butter/droid/tv/ApplicationComponent.java +++ b/tv/src/main/java/butter/droid/tv/ApplicationComponent.java @@ -17,73 +17,14 @@ package butter.droid.tv; -import butter.droid.base.ApplicationScope; import butter.droid.base.BaseApplicationComponent; -import butter.droid.base.providers.ProviderComponent; -import butter.droid.tv.activities.TVLaunchActivity; -import butter.droid.tv.activities.TVMainActivity; -import butter.droid.tv.activities.TVMediaDetailActivity; -import butter.droid.tv.activities.TVMediaGridActivity; -import butter.droid.tv.activities.TVPreferencesActivity; -import butter.droid.tv.activities.TVTrailerPlayerActivity; -import butter.droid.tv.activities.TVUpdateActivity; -import butter.droid.tv.activities.TVVideoPlayerActivity; -import butter.droid.tv.fragments.TVMediaGridFragment; -import butter.droid.tv.fragments.TVMovieDetailsFragment; -import butter.droid.tv.fragments.TVOverviewFragment; -import butter.droid.tv.fragments.TVPlaybackOverlayFragment; -import butter.droid.tv.fragments.TVShowDetailsFragment; -import butter.droid.tv.fragments.TVUpdateFragment; -import butter.droid.tv.fragments.TVVideoPlayerFragment; -import butter.droid.tv.service.RecommendationService; -import butter.droid.tv.service.recommendation.RecommendationContentProvider; -import butter.droid.tv.ui.about.TvAboutComponent; -import butter.droid.tv.ui.loading.TVStreamLoadingComponent; -import butter.droid.tv.ui.preferences.TVPreferencesComponent; -import butter.droid.tv.ui.search.TVSearchActivity; -import butter.droid.tv.ui.search.TVSearchComponent; -import butter.droid.tv.ui.terms.TVTermsActivity; -import butter.droid.tv.ui.terms.TVTermsComponent; +import butter.droid.base.BaseApplicationModule; import dagger.Component; +import javax.inject.Singleton; -@ApplicationScope @Component( - dependencies = { - ProviderComponent.class - }, - modules = ApplicationModule.class +@Singleton @Component( + modules = BaseApplicationModule.class ) public interface ApplicationComponent extends BaseApplicationComponent { - void inject(TVButterApplication application); - - void inject(TVMainActivity activity); - void inject(TVTrailerPlayerActivity activity); - void inject(TVMediaDetailActivity activity); - void inject(TVMediaGridActivity activity); - void inject(TVPreferencesActivity activity); - void inject(TVSearchActivity activity); - void inject(TVUpdateActivity activity); - void inject(TVVideoPlayerActivity activity); - void inject(TVTermsActivity activity); - void inject(TVLaunchActivity activity); - - void inject(RecommendationService service); - - void inject(TVOverviewFragment fragment); - void inject(TVMovieDetailsFragment fragment); - void inject(TVMediaGridFragment fragment); - void inject(TVVideoPlayerFragment fragment); - void inject(TVPlaybackOverlayFragment fragment); - void inject(TVShowDetailsFragment fragment); - void inject(TVUpdateFragment fragment); - - void inject(RecommendationContentProvider contentProvider); - - TVPreferencesComponent.Builder preferencesComponentBuilder(); - TVTermsComponent.Builder termsComponentBuilder(); - TvAboutComponent.Builder aboutComponentBuilder(); - TVStreamLoadingComponent.Builder streamLoadingComponentBuilder(); - - TVSearchComponent.Builder searchComponentBuilder(); - } diff --git a/tv/src/main/java/butter/droid/tv/InternalComponent.java b/tv/src/main/java/butter/droid/tv/InternalComponent.java new file mode 100644 index 000000000..d52e4cad5 --- /dev/null +++ b/tv/src/main/java/butter/droid/tv/InternalComponent.java @@ -0,0 +1,107 @@ +/* + * This file is part of Butter. + * + * Butter is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Butter 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 Butter. If not, see . + */ + +package butter.droid.tv; + +import butter.droid.base.Internal; +import butter.droid.base.BaseInternalComponent; +import butter.droid.base.providers.ProviderComponent; +import butter.droid.tv.activities.TVLaunchActivity; +import butter.droid.tv.activities.TVMainActivity; +import butter.droid.tv.activities.TVMediaDetailActivity; +import butter.droid.tv.activities.TVMediaGridActivity; +import butter.droid.tv.activities.TVPreferencesActivity; +import butter.droid.tv.activities.TVTrailerPlayerActivity; +import butter.droid.tv.activities.TVUpdateActivity; +import butter.droid.tv.activities.TVVideoPlayerActivity; +import butter.droid.tv.fragments.TVMediaGridFragment; +import butter.droid.tv.fragments.TVMovieDetailsFragment; +import butter.droid.tv.fragments.TVOverviewFragment; +import butter.droid.tv.fragments.TVPlaybackOverlayFragment; +import butter.droid.tv.fragments.TVShowDetailsFragment; +import butter.droid.tv.fragments.TVUpdateFragment; +import butter.droid.tv.fragments.TVVideoPlayerFragment; +import butter.droid.tv.service.RecommendationService; +import butter.droid.tv.service.recommendation.RecommendationContentProvider; +import butter.droid.tv.ui.about.TvAboutComponent; +import butter.droid.tv.ui.loading.TVStreamLoadingComponent; +import butter.droid.tv.ui.preferences.TVPreferencesComponent; +import butter.droid.tv.ui.search.TVSearchActivity; +import butter.droid.tv.ui.search.TVSearchComponent; +import butter.droid.tv.ui.terms.TVTermsActivity; +import butter.droid.tv.ui.terms.TVTermsComponent; +import dagger.Component; + +@Internal @Component( + dependencies = { + ProviderComponent.class + }, + modules = InternalModule.class +) +public interface InternalComponent extends BaseInternalComponent { + + void inject(TVButterApplication application); + + void inject(TVMainActivity activity); + + void inject(TVTrailerPlayerActivity activity); + + void inject(TVMediaDetailActivity activity); + + void inject(TVMediaGridActivity activity); + + void inject(TVPreferencesActivity activity); + + void inject(TVSearchActivity activity); + + void inject(TVUpdateActivity activity); + + void inject(TVVideoPlayerActivity activity); + + void inject(TVTermsActivity activity); + + void inject(TVLaunchActivity activity); + + void inject(RecommendationService service); + + void inject(TVOverviewFragment fragment); + + void inject(TVMovieDetailsFragment fragment); + + void inject(TVMediaGridFragment fragment); + + void inject(TVVideoPlayerFragment fragment); + + void inject(TVPlaybackOverlayFragment fragment); + + void inject(TVShowDetailsFragment fragment); + + void inject(TVUpdateFragment fragment); + + void inject(RecommendationContentProvider contentProvider); + + TVPreferencesComponent.Builder preferencesComponentBuilder(); + + TVTermsComponent.Builder termsComponentBuilder(); + + TvAboutComponent.Builder aboutComponentBuilder(); + + TVStreamLoadingComponent.Builder streamLoadingComponentBuilder(); + + TVSearchComponent.Builder searchComponentBuilder(); + +} diff --git a/tv/src/main/java/butter/droid/tv/ApplicationModule.java b/tv/src/main/java/butter/droid/tv/InternalModule.java similarity index 83% rename from tv/src/main/java/butter/droid/tv/ApplicationModule.java rename to tv/src/main/java/butter/droid/tv/InternalModule.java index f97320046..7551b2bc2 100644 --- a/tv/src/main/java/butter/droid/tv/ApplicationModule.java +++ b/tv/src/main/java/butter/droid/tv/InternalModule.java @@ -17,11 +17,10 @@ package butter.droid.tv; -import butter.droid.base.BaseApplicationModule; +import butter.droid.base.BaseInternalModule; import dagger.Module; -@Module( - includes = BaseApplicationModule.class -) -public class ApplicationModule { +@Module(includes = BaseInternalModule.class) +public class InternalModule { + } diff --git a/tv/src/main/java/butter/droid/tv/TVButterApplication.java b/tv/src/main/java/butter/droid/tv/TVButterApplication.java index 364c9828e..295c2a011 100644 --- a/tv/src/main/java/butter/droid/tv/TVButterApplication.java +++ b/tv/src/main/java/butter/droid/tv/TVButterApplication.java @@ -18,14 +18,15 @@ package butter.droid.tv; import android.content.Context; -import android.support.annotation.NonNull; +import butter.droid.base.BaseApplicationModule; import butter.droid.base.ButterApplication; +import butter.droid.base.providers.DaggerProviderComponent; import butter.droid.base.providers.ProviderComponent; import butter.droid.base.utils.VersionUtils; public class TVButterApplication extends ButterApplication { - private ApplicationComponent component; + private InternalComponent component; @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); @@ -38,12 +39,21 @@ public void updateAvailable(String filePath) { } } - @Override public ApplicationComponent getComponent() { + @Override public InternalComponent getComponent() { return component; } - @Override protected void inject(@NonNull final ProviderComponent providerComponent) { - component = DaggerApplicationComponent.builder() + @Override protected void inject() { + + ApplicationComponent applicationComponent = DaggerApplicationComponent.builder() + .baseApplicationModule(new BaseApplicationModule(this)) + .build(); + + ProviderComponent providerComponent = DaggerProviderComponent.builder() + .baseApplicationComponent(applicationComponent) + .build(); + + component = DaggerInternalComponent.builder() .providerComponent(providerComponent) .build();