package rabbitescape.render.androidutil; /** * Receive android lifecycle events, and do the right thing to a * SoundResources based on them. I.e. dispose of everything if we are leaving * the app, load everything if we are starting the app, pause if we are * being suspended, and keep playing if we're just moving between activities. */ public class Lifecycle2SoundEvents<ActivityT> { private final SoundResources<ActivityT> sound; private Object currentActivity; public Lifecycle2SoundEvents( SoundResources<ActivityT> sound ) { this.sound = sound; this.currentActivity = null; } public void onRestart( ActivityT activity ) { } public void onStart( ActivityT activity ) { } public void onCreate( ActivityT activity ) { } public void onResume( ActivityT activity ) { currentActivity = activity; sound.start( activity ); } public void onSaveInstanceState( ActivityT activity ) { } public void onPause( ActivityT activity ) { sound.pause(); } public void onStop( ActivityT activity ) { if ( activity == currentActivity ) { sound.dispose(); currentActivity = null; } } public void onDestroy( ActivityT activity ) { } }