/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package io.neocdtv.simpleplayer.worker; import io.neocdtv.simpleplayer.player.Player; import io.neocdtv.simpleplayer.player.PlayerException; import io.neocdtv.simpleplayer.player.PlayerFactory; import io.neocdtv.simpleplayer.player.PlayerState; import io.neocdtv.simpleplayer.ui.ButtonsFactory; import java.util.logging.Level; /** * * @author xix */ public abstract class AbstractPlayWorker extends AbstractWorker{ private boolean enableButtonsInDone = true; @Override protected Void doInBackground() { try { ButtonsFactory.enableButtons(false); final String url = getUrl(); final Player currentPlayer = PlayerFactory.getCurrentPlayer(); currentPlayer.play(url); PlayerState.getInstance().setToStatePlaying(); return null; } catch (PlayerException ex) { enableButtonsInDone = false; new PlayNextWorker().execute(); getLogger().log(Level.SEVERE, null, ex); } return null; } @Override protected void additionalAction() { ButtonsFactory.enableButtons(enableButtonsInDone); } protected abstract String getUrl(); }