diff --git a/base/src/main/java/butter/droid/base/BaseApplicationComponent.java b/base/src/main/java/butter/droid/base/BaseApplicationComponent.java
index 1c4f53e0a..83ed822db 100644
--- a/base/src/main/java/butter/droid/base/BaseApplicationComponent.java
+++ b/base/src/main/java/butter/droid/base/BaseApplicationComponent.java
@@ -17,13 +17,37 @@
package butter.droid.base;
-import butter.droid.base.manager.beaming.BeamPlayerNotificationService;
-import butter.droid.base.torrent.TorrentService;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.content.res.Resources;
+import android.net.ConnectivityManager;
+import android.net.wifi.WifiManager;
+import android.telephony.TelephonyManager;
+import butter.droid.base.manager.network.NetworkManager;
+import butter.droid.base.manager.prefs.PrefManager;
+import com.google.gson.Gson;
+import okhttp3.OkHttpClient;
public interface BaseApplicationComponent {
- void inject(BeamPlayerNotificationService service);
+ Context context();
- void inject(TorrentService service);
+ OkHttpClient okHttpClient();
+
+ Gson gson();
+
+ SharedPreferences sharedPreferences();
+
+ Resources resources();
+
+ ConnectivityManager connectivityManager();
+
+ WifiManager wifiManager();
+
+ NetworkManager networkManager();
+
+ PrefManager prefManager();
+
+ TelephonyManager telephonyManager();
}
diff --git a/base/src/main/java/butter/droid/base/BaseApplicationModule.java b/base/src/main/java/butter/droid/base/BaseApplicationModule.java
index d7a0249b8..876fbb029 100644
--- a/base/src/main/java/butter/droid/base/BaseApplicationModule.java
+++ b/base/src/main/java/butter/droid/base/BaseApplicationModule.java
@@ -20,22 +20,18 @@
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 dagger.Module;
import dagger.Provides;
+import javax.inject.Singleton;
@Module(
includes = {
- DataModule.class,
- ManagerModule.class,
- ProviderModule.class,
AndroidModule.class,
+ ManagerModule.class,
+ DataModule.class
}
)
public class BaseApplicationModule {
diff --git a/base/src/main/java/butter/droid/base/BaseInternalComponent.java b/base/src/main/java/butter/droid/base/BaseInternalComponent.java
new file mode 100644
index 000000000..2d6e2fd96
--- /dev/null
+++ b/base/src/main/java/butter/droid/base/BaseInternalComponent.java
@@ -0,0 +1,59 @@
+/*
+ * 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.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 BaseInternalComponent {
+
+ void inject(BeamPlayerNotificationService service);
+
+ void inject(TorrentService service);
+
+ Context context();
+
+ Picasso picasso();
+
+ VodoProvider vodoProvider();
+
+ OkHttpClient okHttpClient();
+
+ Gson gson();
+
+ PlayerManager playerManager();
+
+ SharedPreferences sharedPreferences();
+
+ Resources resources();
+
+ ConnectivityManager connectivityManager();
+
+ WifiManager wifiManager();
+
+}
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 d60ee9b0c..d98c54672 100644
--- a/base/src/main/java/butter/droid/base/ButterApplication.java
+++ b/base/src/main/java/butter/droid/base/ButterApplication.java
@@ -29,23 +29,19 @@
import android.net.Uri;
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.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 +65,8 @@ public void onCreate() {
super.onCreate();
sThis = this;
+ inject();
+
sDefSystemLanguage = LocaleUtils.getCurrentAsString();
LeakCanary.install(this);
@@ -150,7 +148,9 @@ public void updateAvailable(String updateFile) {
}
}
- public abstract BaseApplicationComponent getComponent();
+ public abstract BaseInternalComponent getComponent();
+
+ protected abstract void inject();
public static ButterApplication getAppContext() {
return sThis;
diff --git a/base/src/main/java/butter/droid/base/Internal.java b/base/src/main/java/butter/droid/base/Internal.java
new file mode 100644
index 000000000..c78b61cf6
--- /dev/null
+++ b/base/src/main/java/butter/droid/base/Internal.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 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/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/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/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..db691112a
--- /dev/null
+++ b/base/src/main/java/butter/droid/base/manager/internal/InternalManagerModule.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.manager.internal;
+
+import android.content.Context;
+import android.support.annotation.Nullable;
+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;
+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 @Internal ProviderManager provideProviderManager(VodoProvider moviesProvider) {
+ return new ProviderManager(moviesProvider, null);
+ }
+
+ @Provides @Internal @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..f342e3c9a 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.Internal;
+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
+@Internal
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 c37a9c369..fb7cbb1ce 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 static butter.droid.base.ButterApplication.getAppContext;
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/phone/PhoneManager.java b/base/src/main/java/butter/droid/base/manager/internal/phone/PhoneManager.java
similarity index 91%
rename from base/src/main/java/butter/droid/base/manager/phone/PhoneManager.java
rename to base/src/main/java/butter/droid/base/manager/internal/phone/PhoneManager.java
index fc2119773..558a9a10d 100644
--- a/base/src/main/java/butter/droid/base/manager/phone/PhoneManager.java
+++ b/base/src/main/java/butter/droid/base/manager/internal/phone/PhoneManager.java
@@ -1,10 +1,10 @@
-package butter.droid.base.manager.phone;
+package butter.droid.base.manager.internal.phone;
import android.telephony.TelephonyManager;
+import butter.droid.base.Internal;
import javax.inject.Inject;
-import javax.inject.Singleton;
-@Singleton
+@Internal
public class PhoneManager {
private final TelephonyManager telephonyManager;
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 548a89b02..2cbaf2747 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..35b0c80c1 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.Internal;
+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
+@Internal
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 1ee2e105a..b7b10d65b 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,13 +19,11 @@
* 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 static java.lang.annotation.RetentionPolicy.SOURCE;
import android.support.annotation.IntDef;
-import butter.droid.base.manager.youtube.model.Format;
-import butter.droid.base.manager.youtube.model.VideoStream;
import java.io.IOException;
import java.lang.annotation.Retention;
import java.net.URLDecoder;
@@ -36,6 +34,9 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.inject.Inject;
+
+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 91%
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..2a2fabc8d 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;
@@ -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/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..ff8fe1ad1
--- /dev/null
+++ b/base/src/main/java/butter/droid/base/providers/ProviderComponent.java
@@ -0,0 +1,63 @@
+/*
+ * 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 android.telephony.TelephonyManager;
+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 dagger.Component;
+import okhttp3.OkHttpClient;
+
+@Component(
+ dependencies = BaseApplicationComponent.class,
+ modules = ProviderModule.class
+)
+@ProviderScope
+public interface ProviderComponent {
+
+ Context context();
+
+ OkHttpClient okHttpClient();
+
+ VodoProvider vodoProvider();
+
+ Gson gson();
+
+ SharedPreferences sharedPreferences();
+
+ Resources resources();
+
+ ConnectivityManager connectivityManager();
+
+ WifiManager wifiManager();
+
+ NetworkManager networkManager();
+
+ PrefManager prefManager();
+
+ TelephonyManager telephonyManager();
+
+}
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..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
@@ -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 {
@@ -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/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..32f3f4243 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;
@@ -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/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/ui/trailer/BaseTrailerPlayerPresenterImpl.java b/base/src/main/java/butter/droid/base/ui/trailer/BaseTrailerPlayerPresenterImpl.java
index 59416472b..3b10e73e7 100644
--- a/base/src/main/java/butter/droid/base/ui/trailer/BaseTrailerPlayerPresenterImpl.java
+++ b/base/src/main/java/butter/droid/base/ui/trailer/BaseTrailerPlayerPresenterImpl.java
@@ -4,9 +4,9 @@
import android.net.Uri;
import android.os.AsyncTask;
import butter.droid.base.R;
+import butter.droid.base.manager.internal.youtube.YouTubeManager;
import butter.droid.base.manager.network.NetworkManager;
-import butter.droid.base.manager.phone.PhoneManager;
-import butter.droid.base.manager.youtube.YouTubeManager;
+import butter.droid.base.manager.internal.phone.PhoneManager;
import butter.droid.base.providers.media.models.Media;
import butter.droid.base.torrent.StreamInfo;
import java.net.URLDecoder;
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/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/AndroidManifest.xml b/mobile/src/main/AndroidManifest.xml
index a348408b2..895d0cfb9 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 5a279a349..192c928c0 100644
--- a/mobile/src/main/java/butter/droid/ApplicationComponent.java
+++ b/mobile/src/main/java/butter/droid/ApplicationComponent.java
@@ -17,63 +17,12 @@
package butter.droid;
-import butter.droid.activities.SearchActivity;
-import butter.droid.activities.VideoPlayerActivity;
import butter.droid.base.BaseApplicationComponent;
-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.beam.BeamPlayerActivityComponent;
-import butter.droid.ui.loading.StreamLoadingComponent;
-import butter.droid.ui.main.MainComponent;
-import butter.droid.ui.media.detail.MediaDetailComponent;
-import butter.droid.ui.preferences.PreferencesComponent;
-import butter.droid.ui.search.SearchComponent;
-import butter.droid.ui.terms.TermsComponent;
-import butter.droid.ui.trailer.TrailerPlayerComponent;
+import butter.droid.base.BaseApplicationModule;
import dagger.Component;
import javax.inject.Singleton;
-@Singleton @Component(
- modules = ApplicationModule.class
-)
+@Singleton @Component(modules = BaseApplicationModule.class)
public interface ApplicationComponent extends BaseApplicationComponent {
- void inject(MobileButterApplication application);
-
- void inject(AboutActivity activity);
-
- void inject(SearchActivity activity);
-
- void inject(VideoPlayerActivity activity);
-
- void inject(LoadingDetailDialogFragment fragment);
-
- void inject(EpisodeDialogFragment fragment);
-
- void inject(VideoPlayerFragment fragment);
-
- void inject(BeamDeviceSelectorDialogFragment fragment);
-
- MainComponent.Builder mainComponentBuilder();
-
- PreferencesComponent.Builder preferencesComponentBuilder();
-
- TermsComponent.Builder termsComponentBuilder();
-
- MediaDetailComponent.Builder mediaDetailsComponentBuilder();
-
- AboutComponent.Builder aboutComponentBuilder();
-
- StreamLoadingComponent.Builder streamLoadingComponentBuilder();
-
- BeamPlayerActivityComponent.Builder beamPlayerActivityComponentBuilder();
-
- TrailerPlayerComponent.Builder trailerComponentBuilder();
-
- 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..f75b33141
--- /dev/null
+++ b/mobile/src/main/java/butter/droid/InternalComponent.java
@@ -0,0 +1,83 @@
+/*
+ * 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.SearchActivity;
+import butter.droid.activities.VideoPlayerActivity;
+import butter.droid.base.BaseInternalComponent;
+import butter.droid.base.Internal;
+import butter.droid.base.providers.ProviderComponent;
+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.beam.BeamPlayerActivityComponent;
+import butter.droid.ui.loading.StreamLoadingComponent;
+import butter.droid.ui.main.MainComponent;
+import butter.droid.ui.media.detail.MediaDetailComponent;
+import butter.droid.ui.preferences.PreferencesComponent;
+import butter.droid.ui.search.SearchComponent;
+import butter.droid.ui.terms.TermsComponent;
+import butter.droid.ui.trailer.TrailerPlayerComponent;
+import dagger.Component;
+
+@Internal @Component(
+ dependencies = {
+ ProviderComponent.class
+ },
+ modules = InternalModule.class
+)
+public interface InternalComponent extends BaseInternalComponent {
+
+ void inject(MobileButterApplication application);
+
+ void inject(AboutActivity activity);
+
+ void inject(SearchActivity activity);
+
+ void inject(VideoPlayerActivity activity);
+
+ void inject(LoadingDetailDialogFragment fragment);
+
+ void inject(EpisodeDialogFragment fragment);
+
+ void inject(VideoPlayerFragment fragment);
+
+ void inject(BeamDeviceSelectorDialogFragment fragment);
+
+ MainComponent.Builder mainComponentBuilder();
+
+ PreferencesComponent.Builder preferencesComponentBuilder();
+
+ TermsComponent.Builder termsComponentBuilder();
+
+ MediaDetailComponent.Builder mediaDetailsComponentBuilder();
+
+ AboutComponent.Builder aboutComponentBuilder();
+
+ StreamLoadingComponent.Builder streamLoadingComponentBuilder();
+
+ SearchComponent.Builder searchComponentBuilder();
+
+ TrailerPlayerComponent.Builder trailerComponentBuilder();
+
+ BeamPlayerActivityComponent.Builder beamPlayerActivityComponentBuilder();
+
+}
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 81b0abc1d..499909b63 100644
--- a/mobile/src/main/java/butter/droid/MobileButterApplication.java
+++ b/mobile/src/main/java/butter/droid/MobileButterApplication.java
@@ -19,22 +19,32 @@
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;
- @Override public void onCreate() {
- component = DaggerApplicationComponent.builder()
+ public InternalComponent getComponent() {
+ return component;
+ }
+
+ @Override protected void inject() {
+
+ ApplicationComponent applicationComponent = DaggerApplicationComponent.builder()
.baseApplicationModule(new BaseApplicationModule(this))
.build();
- component.inject(this);
- super.onCreate();
- }
+ ProviderComponent providerComponent = DaggerProviderComponent.builder()
+ .baseApplicationComponent(applicationComponent)
+ .build();
- public ApplicationComponent getComponent() {
- return component;
+ component = DaggerInternalComponent.builder()
+ .providerComponent(providerComponent)
+ .build();
+
+ component.inject(this);
}
public static MobileButterApplication getAppContext() {
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/beam/BeamPlayerActivity.java b/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivity.java
index dcc00db8f..8dff4e7b1 100644
--- a/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivity.java
+++ b/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivity.java
@@ -26,7 +26,7 @@
import butter.droid.MobileButterApplication;
import butter.droid.R;
import butter.droid.activities.VideoPlayerActivity;
-import butter.droid.base.manager.beaming.server.BeamServerService;
+import butter.droid.base.manager.internal.beaming.server.BeamServerService;
import butter.droid.base.torrent.StreamInfo;
import butter.droid.fragments.dialog.OptionDialogFragment;
import butter.droid.ui.ButterBaseActivity;
diff --git a/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivityModule.java b/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivityModule.java
index 1e3fdd73c..39f1af96c 100644
--- a/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivityModule.java
+++ b/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivityModule.java
@@ -17,7 +17,7 @@
package butter.droid.ui.beam;
-import butter.droid.base.manager.beaming.BeamManager;
+import butter.droid.base.manager.internal.beaming.BeamManager;
import butter.droid.base.ui.ActivityScope;
import dagger.Module;
import dagger.Provides;
diff --git a/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivityPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivityPresenterImpl.java
index af13d9f60..c01e94747 100644
--- a/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivityPresenterImpl.java
+++ b/mobile/src/main/java/butter/droid/ui/beam/BeamPlayerActivityPresenterImpl.java
@@ -17,7 +17,7 @@
package butter.droid.ui.beam;
-import butter.droid.base.manager.beaming.BeamManager;
+import butter.droid.base.manager.internal.beaming.BeamManager;
import butter.droid.base.torrent.StreamInfo;
public class BeamPlayerActivityPresenterImpl implements BeamPlayerActivityPresenter {
diff --git a/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerFragment.java b/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerFragment.java
index 76361cf02..49b775e4f 100644
--- a/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerFragment.java
+++ b/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerFragment.java
@@ -40,7 +40,7 @@
import android.widget.ImageButton;
import android.widget.ImageView;
import butter.droid.R;
-import butter.droid.base.manager.beaming.BeamPlayerNotificationService;
+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.PixelUtils;
diff --git a/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerModule.java b/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerModule.java
index bbba3d75c..8111805df 100644
--- a/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerModule.java
+++ b/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerModule.java
@@ -17,7 +17,7 @@
package butter.droid.ui.beam.fragment;
-import butter.droid.base.manager.beaming.BeamManager;
+import butter.droid.base.manager.internal.beaming.BeamManager;
import butter.droid.base.ui.FragmentScope;
import butter.droid.ui.beam.BeamPlayerActivityPresenter;
import dagger.Module;
diff --git a/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerPresenterImpl.java
index 908832af5..ff200d8c9 100644
--- a/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerPresenterImpl.java
+++ b/mobile/src/main/java/butter/droid/ui/beam/fragment/BeamPlayerPresenterImpl.java
@@ -19,8 +19,8 @@
import android.support.annotation.Nullable;
import butter.droid.R;
-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.torrent.StreamInfo;
import butter.droid.base.utils.StringUtils;
import butter.droid.ui.beam.BeamPlayerActivityPresenter;
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 becab5d07..cc57d3468 100644
--- a/mobile/src/main/java/butter/droid/ui/main/MainActivity.java
+++ b/mobile/src/main/java/butter/droid/ui/main/MainActivity.java
@@ -54,10 +54,10 @@
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.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.ProviderType;
import butter.droid.base.providers.media.MediaProvider.NavInfo;
import butter.droid.base.providers.media.models.Movie;
import butter.droid.base.torrent.StreamInfo;
@@ -72,9 +72,6 @@
import butter.droid.utils.ToolbarUtils;
import butter.droid.widget.ScrimInsetsFrameLayout;
import butterknife.BindView;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import javax.inject.Inject;
import timber.log.Timber;
/**
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 51afca4e7..c5522b54e 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;
import butter.droid.ui.main.MainPresenterImpl.OnGenreChangeListener;
import butter.droid.ui.main.genre.list.model.UiGenre;
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 12654aa18..2ae917def 100644
--- a/mobile/src/main/java/butter/droid/ui/main/MainPresenterImpl.java
+++ b/mobile/src/main/java/butter/droid/ui/main/MainPresenterImpl.java
@@ -31,11 +31,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.MediaProvider;
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/MainView.java b/mobile/src/main/java/butter/droid/ui/main/MainView.java
index 67a7b78e6..ea0f453f1 100644
--- a/mobile/src/main/java/butter/droid/ui/main/MainView.java
+++ b/mobile/src/main/java/butter/droid/ui/main/MainView.java
@@ -22,7 +22,7 @@
import java.util.List;
-import butter.droid.base.manager.provider.ProviderManager.ProviderType;
+import butter.droid.base.manager.internal.provider.ProviderManager.ProviderType;
import butter.droid.base.providers.media.MediaProvider.NavInfo;
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/genre/GenreSelectionModule.java b/mobile/src/main/java/butter/droid/ui/main/genre/GenreSelectionModule.java
index 0f256b778..4bb70624b 100644
--- a/mobile/src/main/java/butter/droid/ui/main/genre/GenreSelectionModule.java
+++ b/mobile/src/main/java/butter/droid/ui/main/genre/GenreSelectionModule.java
@@ -17,7 +17,7 @@
package butter.droid.ui.main.genre;
-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/genre/GenreSelectionPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/main/genre/GenreSelectionPresenterImpl.java
index a2dfe00e5..e2ed1e94f 100644
--- a/mobile/src/main/java/butter/droid/ui/main/genre/GenreSelectionPresenterImpl.java
+++ b/mobile/src/main/java/butter/droid/ui/main/genre/GenreSelectionPresenterImpl.java
@@ -17,13 +17,12 @@
package butter.droid.ui.main.genre;
-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.models.Genre;
import butter.droid.ui.main.MainPresenter;
import butter.droid.ui.main.genre.list.model.UiGenre;
+import java.util.ArrayList;
+import java.util.List;
public class GenreSelectionPresenterImpl implements GenreSelectionPresenter {
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 7f7b5f1d5..104df91f9 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 ee418af3f..e5cf102dd 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.MobileButterApplication;
import butter.droid.R;
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 898a924eb..a47d689c8 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 butter.droid.ui.main.MainPresenter;
import dagger.Module;
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 bb46a7895..74c46c698 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.main.MainPresenter;
import butter.droid.ui.main.MainPresenterImpl.OnGenreChangeListener;
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 8dd144fb6..3901fad2f 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
@@ -21,7 +21,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/main/java/butter/droid/ui/trailer/TrailerPlayerModule.java b/mobile/src/main/java/butter/droid/ui/trailer/TrailerPlayerModule.java
index 6fd16f299..b4d49fa99 100644
--- a/mobile/src/main/java/butter/droid/ui/trailer/TrailerPlayerModule.java
+++ b/mobile/src/main/java/butter/droid/ui/trailer/TrailerPlayerModule.java
@@ -18,9 +18,9 @@
package butter.droid.ui.trailer;
import android.content.Context;
+import butter.droid.base.manager.internal.youtube.YouTubeManager;
import butter.droid.base.manager.network.NetworkManager;
-import butter.droid.base.manager.phone.PhoneManager;
-import butter.droid.base.manager.youtube.YouTubeManager;
+import butter.droid.base.manager.internal.phone.PhoneManager;
import butter.droid.base.ui.ActivityScope;
import dagger.Module;
import dagger.Provides;
diff --git a/mobile/src/main/java/butter/droid/ui/trailer/TrailerPlayerPresenterImpl.java b/mobile/src/main/java/butter/droid/ui/trailer/TrailerPlayerPresenterImpl.java
index a9b18a16f..0feaf1889 100644
--- a/mobile/src/main/java/butter/droid/ui/trailer/TrailerPlayerPresenterImpl.java
+++ b/mobile/src/main/java/butter/droid/ui/trailer/TrailerPlayerPresenterImpl.java
@@ -18,9 +18,9 @@
package butter.droid.ui.trailer;
import android.content.Context;
+import butter.droid.base.manager.internal.youtube.YouTubeManager;
import butter.droid.base.manager.network.NetworkManager;
-import butter.droid.base.manager.phone.PhoneManager;
-import butter.droid.base.manager.youtube.YouTubeManager;
+import butter.droid.base.manager.internal.phone.PhoneManager;
import butter.droid.base.ui.trailer.BaseTrailerPlayerPresenterImpl;
import butter.droid.base.ui.trailer.BaseTrailerPlayerView;
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 5e34dd7ce..5f7061a28 100644
--- a/tv/src/main/java/butter/droid/tv/ApplicationComponent.java
+++ b/tv/src/main/java/butter/droid/tv/ApplicationComponent.java
@@ -18,84 +18,11 @@
package butter.droid.tv;
import butter.droid.base.BaseApplicationComponent;
-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.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.tv.ui.trailer.TVTrailerPlayerComponent;
+import butter.droid.base.BaseApplicationModule;
import dagger.Component;
import javax.inject.Singleton;
-@Singleton @Component(modules = ApplicationModule.class)
+@Singleton @Component(modules = BaseApplicationModule.class)
public interface ApplicationComponent extends BaseApplicationComponent {
- void inject(TVButterApplication application);
-
- void inject(TVMainActivity 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();
-
- TVTrailerPlayerComponent.Builder tvTrailerPlayerComponentBuilder();
-
- 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..5c911f8b0
--- /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.BaseInternalComponent;
+import butter.droid.base.Internal;
+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.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.tv.ui.trailer.TVTrailerPlayerComponent;
+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(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();
+
+ TVTrailerPlayerComponent.Builder tvTrailerPlayerComponentBuilder();
+
+}
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 7f82521f5..295c2a011 100644
--- a/tv/src/main/java/butter/droid/tv/TVButterApplication.java
+++ b/tv/src/main/java/butter/droid/tv/TVButterApplication.java
@@ -18,29 +18,20 @@
package butter.droid.tv;
import android.content.Context;
-
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);
}
- @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()) {
@@ -48,10 +39,27 @@ public void updateAvailable(String filePath) {
}
}
- @Override public ApplicationComponent getComponent() {
+ @Override public InternalComponent getComponent() {
return component;
}
+ @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();
+
+ 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/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 ec1a210f4..0c9f495cc 100644
--- a/tv/src/main/java/butter/droid/tv/fragments/TVMovieDetailsFragment.java
+++ b/tv/src/main/java/butter/droid/tv/fragments/TVMovieDetailsFragment.java
@@ -25,8 +25,8 @@
import android.support.v17.leanback.widget.OnActionClickedListener;
import android.widget.Toast;
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 ccbe27c3f..29341b1df 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/TVSearchModule.java b/tv/src/main/java/butter/droid/tv/ui/search/TVSearchModule.java
index b97d3cb0b..c17d2b763 100644
--- a/tv/src/main/java/butter/droid/tv/ui/search/TVSearchModule.java
+++ b/tv/src/main/java/butter/droid/tv/ui/search/TVSearchModule.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 {
diff --git a/tv/src/main/java/butter/droid/tv/ui/trailer/TVTrailerPlayerModule.java b/tv/src/main/java/butter/droid/tv/ui/trailer/TVTrailerPlayerModule.java
index e3798c0c0..c49134a45 100644
--- a/tv/src/main/java/butter/droid/tv/ui/trailer/TVTrailerPlayerModule.java
+++ b/tv/src/main/java/butter/droid/tv/ui/trailer/TVTrailerPlayerModule.java
@@ -18,9 +18,9 @@
package butter.droid.tv.ui.trailer;
import android.content.Context;
+import butter.droid.base.manager.internal.phone.PhoneManager;
+import butter.droid.base.manager.internal.youtube.YouTubeManager;
import butter.droid.base.manager.network.NetworkManager;
-import butter.droid.base.manager.phone.PhoneManager;
-import butter.droid.base.manager.youtube.YouTubeManager;
import butter.droid.base.ui.ActivityScope;
import dagger.Module;
import dagger.Provides;
diff --git a/tv/src/main/java/butter/droid/tv/ui/trailer/TVTrailerPlayerPresenterImpl.java b/tv/src/main/java/butter/droid/tv/ui/trailer/TVTrailerPlayerPresenterImpl.java
index ae458c9db..33801266c 100644
--- a/tv/src/main/java/butter/droid/tv/ui/trailer/TVTrailerPlayerPresenterImpl.java
+++ b/tv/src/main/java/butter/droid/tv/ui/trailer/TVTrailerPlayerPresenterImpl.java
@@ -18,9 +18,9 @@
package butter.droid.tv.ui.trailer;
import android.content.Context;
+import butter.droid.base.manager.internal.phone.PhoneManager;
+import butter.droid.base.manager.internal.youtube.YouTubeManager;
import butter.droid.base.manager.network.NetworkManager;
-import butter.droid.base.manager.phone.PhoneManager;
-import butter.droid.base.manager.youtube.YouTubeManager;
import butter.droid.base.ui.trailer.BaseTrailerPlayerPresenterImpl;
import butter.droid.base.ui.trailer.BaseTrailerPlayerView;