package com.taobao.atlas.dexmerge;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.os.RemoteException;
import java.util.List;
import java.util.concurrent.ExecutionException;
/**
* @author zhayu.ll
*/
public class DexMergeService extends Service {
IDexMergeCallback mCallback = null;
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
private final IDexMergeBinder.Stub mBinder = new IDexMergeBinder.Stub() {
@Override
public void dexMerge(String patchFilePath,List<MergeObject> list, boolean b) throws RemoteException {
MergeExcutorServices mergeExcutorServices = new MergeExcutorServices(mCallback);
try {
mergeExcutorServices.excute(patchFilePath,list, b);
} catch (ExecutionException e) {
e.printStackTrace();
if (mCallback!= null){
mCallback.onMergeAllFinish(false,"ExecutionException");
}
} catch (InterruptedException e) {
e.printStackTrace();
if (mCallback!= null){
mCallback.onMergeAllFinish(false,"InterruptedException");
}
}
}
public void registerListener(IDexMergeCallback cb) {
if (cb != null) {
mCallback = cb;
}
}
};
}