content: package rabbitescape.ui.android.sound;
  
  import android.content.res.Resources;
  import android.media.SoundPool;
  
  class SoundEffectsLoadingThread extends Thread
  {
      private final Resources resources;
      private final SoundPool soundPool;
      private final LoadedClips clips;
  
      private boolean running = false;
      private boolean stopping = false;
  
      public SoundEffectsLoadingThread(
          SoundPool soundPool, Resources resources, LoadedClips clips )
      {
          this.soundPool = soundPool;
          this.resources = resources;
          this.clips = clips;
      }
  
      @Override
      public void run()
      {
          running = true;
  
          try
          {
              String[] sounds = resources.getAssets().list( "sounds" );
              for ( String sound : sounds )
              {
                  if ( stopping )
                  {
                      break;
                  }
  
                  if ( sound.endsWith( ".ogg" ) )
                  {
                      String resourcePath = "sounds/" + sound;
                      int clipId = soundPool.load( resources.getAssets().openFd( resourcePath ), 1 );
                      clips.put( resourcePath, clipId );
                  }
              }
          }
          catch ( Throwable t )
          {
              // Ignore failures caused by sound problems
              t.printStackTrace();
          }
          finally
          {
              running = false;
          }
      }
  
      public void pleaseStop()
      {
          stopping = true;
      }
  
      public boolean isRunning()
      {
          return running;
      }
  }
  