package com.markjmind.uni; import com.markjmind.uni.thread.CancelAdapter; import com.markjmind.uni.thread.CancelObservable; /** * <br>捲土重來<br> * * @author 오재웅(JaeWoong-Oh) * @email markjmind@gmail.com * @since 2016-04-29 */ public abstract class UniAsyncTask implements UniInterface{ private UniInterface uniInterface; private TaskController taskController; private CancelObservable cancelObservable; public UniAsyncTask(){ taskController = new TaskController(this); taskController.init(null, cancelObservable); } public UniAsyncTask(UniLayout uniLayout){ inheritFault(uniLayout.getUniTask()); } public UniAsyncTask(UniFragment uniFragment){ this(uniFragment.getUniLayout()); } public UniAsyncTask(UniDialog uniDialog){ this(uniDialog.getUniLayout()); } public UniAsyncTask(UniTask uniTask){ inheritFault(uniTask); } void inheritFault(UniTask uniTask){ taskController = new TaskController(this); this.uniInterface = uniTask.getUniInterface(); cancelObservable = uniTask.getCancelObservable(); taskController.init(null, cancelObservable); taskController.setUniUncaughtException(uniTask.getTask().getUniUncaughtException()); taskController.setProgressBuilder(uniTask.progressBuilder); } @Override public void onBind() { } @Override public void onPre() { } @Override public void onUpdate(Object value, CancelAdapter cancelAdapter) { } @Override public void onPost() { } @Override public void onPostFail(String message, Object arg) { } @Override public void onException(Exception e) { if(uniInterface!=null){ uniInterface.onException(e); } } @Override public void onCancelled(boolean attached) { if(uniInterface!=null){ uniInterface.onCancelled(attached); } } /*************************************************** CancelObserver Interface 관련 *********************************************/ // public void cancel() { // if(taskController!=null) { // getTask().cancel(); // } // } // // public void cancelAll() { // if(taskController!=null) { // getTask().cancelAll(); // } // } // // public void setTaskAutoCanceled(boolean autoCanceled) { // if(taskController!=null) { // getTask().setTaskAutoCanceled(autoCanceled); // } // } // // public boolean isRunning(){ // if(taskController==null) { // return false; // } // return getTask().isRunning(); // } /*************************************************** 실행 관련 *********************************************/ public String excute(){ return getTask().execute(); } public TaskController getTask(){ return taskController; } }