diff --git a/demo/build.gradle b/demo/build.gradle index 6aaedf05c5..593796bda5 100644 --- a/demo/build.gradle +++ b/demo/build.gradle @@ -39,14 +39,14 @@ android { productFlavors { demo - demo_ext + demoExt } } dependencies { compile project(':library') - demo_extCompile project(path: ':extension-ffmpeg') - demo_extCompile project(path: ':extension-flac') - demo_extCompile project(path: ':extension-opus') - demo_extCompile project(path: ':extension-vp9') + demoExtCompile project(path: ':extension-ffmpeg') + demoExtCompile project(path: ':extension-flac') + demoExtCompile project(path: ':extension-opus') + demoExtCompile project(path: ':extension-vp9') } diff --git a/demo/src/main/java/com/google/android/exoplayer2/demo/DemoApplication.java b/demo/src/main/java/com/google/android/exoplayer2/demo/DemoApplication.java index 9e927488a7..92dc08597f 100644 --- a/demo/src/main/java/com/google/android/exoplayer2/demo/DemoApplication.java +++ b/demo/src/main/java/com/google/android/exoplayer2/demo/DemoApplication.java @@ -16,9 +16,33 @@ package com.google.android.exoplayer2.demo; import android.app.Application; +import com.google.android.exoplayer2.upstream.DataSource; +import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter; +import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; +import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; +import com.google.android.exoplayer2.upstream.HttpDataSource; +import com.google.android.exoplayer2.util.Util; /** * Placeholder application to facilitate overriding Application methods for debugging and testing. */ public class DemoApplication extends Application { + + protected String userAgent; + + @Override + public void onCreate() { + super.onCreate(); + userAgent = Util.getUserAgent(this, "ExoPlayerDemo"); + } + + DataSource.Factory buildDataSourceFactory(DefaultBandwidthMeter bandwidthMeter) { + return new DefaultDataSourceFactory(this, bandwidthMeter, + buildHttpDataSourceFactory(bandwidthMeter)); + } + + HttpDataSource.Factory buildHttpDataSourceFactory(DefaultBandwidthMeter bandwidthMeter) { + return new DefaultHttpDataSourceFactory(userAgent, bandwidthMeter); + } + } diff --git a/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java b/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java index 481db5b71c..667ccd5bab 100644 --- a/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java +++ b/demo/src/main/java/com/google/android/exoplayer2/demo/PlayerActivity.java @@ -65,8 +65,6 @@ import com.google.android.exoplayer2.ui.PlaybackControlView; import com.google.android.exoplayer2.ui.SimpleExoPlayerView; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter; -import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory; -import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; import com.google.android.exoplayer2.upstream.HttpDataSource; import com.google.android.exoplayer2.util.Util; import java.net.CookieHandler; @@ -109,7 +107,6 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay private TextView debugTextView; private Button retryButton; - private String userAgent; private DataSource.Factory mediaDataSourceFactory; private SimpleExoPlayer player; private MappingTrackSelector trackSelector; @@ -128,7 +125,6 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); shouldAutoPlay = true; - userAgent = Util.getUserAgent(this, "ExoPlayerDemo"); mediaDataSourceFactory = buildDataSourceFactory(true); mainHandler = new Handler(); if (CookieHandler.getDefault() != DEFAULT_COOKIE_MANAGER) { @@ -378,8 +374,8 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay * @return A new DataSource factory. */ private DataSource.Factory buildDataSourceFactory(boolean useBandwidthMeter) { - return new DefaultDataSourceFactory(this, useBandwidthMeter ? BANDWIDTH_METER : null, - buildHttpDataSourceFactory(useBandwidthMeter)); + return ((DemoApplication) getApplication()) + .buildDataSourceFactory(useBandwidthMeter ? BANDWIDTH_METER : null); } /** @@ -390,7 +386,8 @@ public class PlayerActivity extends Activity implements OnClickListener, ExoPlay * @return A new HttpDataSource factory. */ private HttpDataSource.Factory buildHttpDataSourceFactory(boolean useBandwidthMeter) { - return new DefaultHttpDataSourceFactory(userAgent, useBandwidthMeter ? BANDWIDTH_METER : null); + return ((DemoApplication) getApplication()) + .buildHttpDataSourceFactory(useBandwidthMeter ? BANDWIDTH_METER : null); } // ExoPlayer.EventListener implementation