使用spi机制优化组件的加载

This commit is contained in:
laoyuyu
2020-07-12 11:29:32 +08:00
parent fed6ae55e1
commit 288dcf633e
35 changed files with 417 additions and 209 deletions

View File

@@ -16,29 +16,20 @@
package com.arialyy.aria.m3u8;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import com.arialyy.aria.core.download.DTaskWrapper;
import com.arialyy.aria.core.download.DownloadEntity;
import com.arialyy.aria.core.inf.IEntity;
import com.arialyy.aria.core.inf.TaskSchedulerType;
import com.arialyy.aria.core.listener.BaseListener;
import com.arialyy.aria.core.listener.IDLoadListener;
import com.arialyy.aria.core.listener.ISchedulers;
import com.arialyy.aria.core.task.AbsTask;
import com.arialyy.aria.core.task.DownloadTask;
import com.arialyy.aria.util.CommonUtil;
import com.arialyy.aria.util.DeleteM3u8Record;
/**
* 下载监听类
*/
public final class M3U8Listener
extends BaseListener<DownloadEntity, DTaskWrapper, AbsTask<DTaskWrapper>>
implements IDLoadListener {
public M3U8Listener(AbsTask<DTaskWrapper> task, Handler outHandler) {
super(task, outHandler);
}
public final class M3U8Listener extends BaseListener implements IDLoadListener {
@Override
public void onPostPre(long fileSize) {
@@ -88,7 +79,7 @@ public final class M3U8Listener
}
@Override protected void handleCancel() {
int sType = getTask().getSchedulerType();
int sType = getTask(DownloadTask.class).getSchedulerType();
if (sType == TaskSchedulerType.TYPE_CANCEL_AND_NOT_NOTIFY) {
mEntity.setComplete(false);
mEntity.setState(IEntity.STATE_WAIT);

View File

@@ -16,10 +16,8 @@
package com.arialyy.aria.m3u8.live;
import com.arialyy.aria.core.download.DTaskWrapper;
import com.arialyy.aria.core.listener.IEventListener;
import com.arialyy.aria.core.loader.AbsNormalLoaderUtil;
import com.arialyy.aria.core.loader.LoaderStructure;
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
import com.arialyy.aria.http.HttpTaskOption;
import com.arialyy.aria.m3u8.M3U8InfoTask;
import com.arialyy.aria.m3u8.M3U8Listener;
@@ -36,8 +34,7 @@ import com.arialyy.aria.m3u8.M3U8TaskOption;
*/
public class M3U8LiveUtil extends AbsNormalLoaderUtil {
public M3U8LiveUtil(AbsTaskWrapper wrapper, IEventListener listener) {
super(wrapper, listener);
public M3U8LiveUtil() {
}
@Override public DTaskWrapper getTaskWrapper() {
@@ -45,11 +42,12 @@ public class M3U8LiveUtil extends AbsNormalLoaderUtil {
}
@Override public M3U8LiveLoader getLoader() {
getTaskWrapper().generateM3u8Option(M3U8TaskOption.class);
getTaskWrapper().generateTaskOption(HttpTaskOption.class);
return
mLoader == null ? new M3U8LiveLoader(getTaskWrapper(), (M3U8Listener) getListener())
: (M3U8LiveLoader) mLoader;
if (mLoader == null) {
getTaskWrapper().generateM3u8Option(M3U8TaskOption.class);
getTaskWrapper().generateTaskOption(HttpTaskOption.class);
mLoader = new M3U8LiveLoader(getTaskWrapper(), (M3U8Listener) getListener());
}
return (M3U8LiveLoader) mLoader;
}
@Override public LoaderStructure BuildLoaderStructure() {

View File

@@ -16,11 +16,9 @@
package com.arialyy.aria.m3u8.vod;
import com.arialyy.aria.core.download.DTaskWrapper;
import com.arialyy.aria.core.listener.IEventListener;
import com.arialyy.aria.core.loader.AbsNormalLoader;
import com.arialyy.aria.core.loader.AbsNormalLoaderUtil;
import com.arialyy.aria.core.loader.LoaderStructure;
import com.arialyy.aria.core.wrapper.AbsTaskWrapper;
import com.arialyy.aria.http.HttpTaskOption;
import com.arialyy.aria.m3u8.M3U8InfoTask;
import com.arialyy.aria.m3u8.M3U8Listener;
@@ -36,8 +34,7 @@ import com.arialyy.aria.m3u8.M3U8TaskOption;
*/
public final class M3U8VodUtil extends AbsNormalLoaderUtil {
public M3U8VodUtil(AbsTaskWrapper wrapper, IEventListener listener) {
super(wrapper, listener);
public M3U8VodUtil() {
}
@Override public DTaskWrapper getTaskWrapper() {
@@ -45,10 +42,12 @@ public final class M3U8VodUtil extends AbsNormalLoaderUtil {
}
@Override public AbsNormalLoader getLoader() {
getTaskWrapper().generateM3u8Option(M3U8TaskOption.class);
getTaskWrapper().generateTaskOption(HttpTaskOption.class);
return mLoader == null ? new M3U8VodLoader(getTaskWrapper(), (M3U8Listener) getListener())
: mLoader;
if (mLoader == null) {
getTaskWrapper().generateM3u8Option(M3U8TaskOption.class);
getTaskWrapper().generateTaskOption(HttpTaskOption.class);
mLoader = new M3U8VodLoader(getTaskWrapper(), (M3U8Listener) getListener());
}
return mLoader;
}
@Override public LoaderStructure BuildLoaderStructure() {

View File

@@ -0,0 +1,2 @@
com.arialyy.aria.m3u8.live.M3U8LiveUtil
com.arialyy.aria.m3u8.vod.M3U8VodUtil

View File

@@ -0,0 +1 @@
com.arialyy.aria.m3u8.M3U8Listener