From a52338c5d3d79270858ae14b6f3909e6803355c2 Mon Sep 17 00:00:00 2001 From: lyy <511455842@qq.com> Date: Wed, 19 Oct 2016 18:19:33 +0800 Subject: [PATCH] fix bug --- .../simple/activity/MultiTaskActivity.java | 7 +- .../simple/activity/SingleTaskActivity.java | 2 +- .../simple/adapter/DownloadAdapter.java | 73 +++++--- .../arialyy/simple/module/DownloadModule.java | 12 +- app/src/main/res/color/bt_selector_cancel.xml | 5 + app/src/main/res/layout/item_download.xml | 35 +++- app/src/main/res/values/colors.xml | 1 + .../{util => core}/DownLoadUtil.java | 48 +++--- .../{entity => core}/DownloadEntity.java | 107 +++++++----- .../downloadutil/core/DownloadManager.java | 6 +- .../downloadutil/core/DownloadTarget.java | 2 - .../{util => core}/IDownloadListener.java | 6 +- .../downloadutil/core/IDownloadTarget.java | 2 - .../downloadutil/{util => core}/Task.java | 44 ++--- .../downloadutil/core/TaskFactory.java | 2 - .../downloadutil/core/command/AddCommand.java | 4 +- .../core/command/CancelCommand.java | 4 +- .../core/command/CommandFactory.java | 2 +- .../core/command/IDownloadCommand.java | 2 +- .../core/command/StartCommand.java | 4 +- .../core/command/StateCommand.java | 2 +- .../core/command/StopCommand.java | 4 +- .../downloadutil/core/inf/IDownloader.java | 2 +- .../arialyy/downloadutil/core/inf/IPool.java | 2 +- .../arialyy/downloadutil/core/inf/ITask.java | 6 +- .../downloadutil/core/pool/CachePool.java | 2 +- .../downloadutil/core/pool/ExecutePool.java | 2 +- .../arialyy/downloadutil/help/CheckHelp.java | 2 +- .../arialyy/downloadutil/orm/DbEntity.java | 2 +- .../arialyy/downloadutil/util/SQLHelper.java | 163 ------------------ .../com/arialyy/downloadutil/util/Util.java | 11 +- 31 files changed, 239 insertions(+), 327 deletions(-) create mode 100644 app/src/main/res/color/bt_selector_cancel.xml rename downloadutil/src/main/java/com/arialyy/downloadutil/{util => core}/DownLoadUtil.java (88%) rename downloadutil/src/main/java/com/arialyy/downloadutil/{entity => core}/DownloadEntity.java (80%) rename downloadutil/src/main/java/com/arialyy/downloadutil/{util => core}/IDownloadListener.java (85%) rename downloadutil/src/main/java/com/arialyy/downloadutil/{util => core}/Task.java (85%) delete mode 100644 downloadutil/src/main/java/com/arialyy/downloadutil/util/SQLHelper.java diff --git a/app/src/main/java/com/arialyy/simple/activity/MultiTaskActivity.java b/app/src/main/java/com/arialyy/simple/activity/MultiTaskActivity.java index 96073554..40343682 100644 --- a/app/src/main/java/com/arialyy/simple/activity/MultiTaskActivity.java +++ b/app/src/main/java/com/arialyy/simple/activity/MultiTaskActivity.java @@ -8,8 +8,8 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import butterknife.Bind; +import com.arialyy.downloadutil.core.DownloadEntity; import com.arialyy.downloadutil.core.DownloadManager; -import com.arialyy.downloadutil.entity.DownloadEntity; import com.arialyy.frame.util.show.L; import com.arialyy.simple.R; import com.arialyy.simple.adapter.DownloadAdapter; @@ -59,7 +59,9 @@ public class MultiTaskActivity extends BaseActivity { break; case DownloadManager.ACTION_RUNNING: long current = intent.getLongExtra(DownloadManager.CURRENT_LOCATION, 0); - mAdapter.setProgress(entity.getDownloadUrl(), current); + long speed = intent.getLongExtra(DownloadManager.CURRENT_SPEED, 0); + //mAdapter.setProgress(entity.getDownloadUrl(), current, speed); + mAdapter.setProgress(entity); break; case DownloadManager.ACTION_STOP: L.d(TAG, "download stop"); @@ -71,6 +73,7 @@ public class MultiTaskActivity extends BaseActivity { break; case DownloadManager.ACTION_CANCEL: L.d(TAG, "download cancel"); + mAdapter.updateState(entity); break; case DownloadManager.ACTION_FAIL: L.d(TAG, "download fail"); diff --git a/app/src/main/java/com/arialyy/simple/activity/SingleTaskActivity.java b/app/src/main/java/com/arialyy/simple/activity/SingleTaskActivity.java index 5cd18592..15d358d1 100644 --- a/app/src/main/java/com/arialyy/simple/activity/SingleTaskActivity.java +++ b/app/src/main/java/com/arialyy/simple/activity/SingleTaskActivity.java @@ -17,7 +17,7 @@ import butterknife.Bind; import com.arialyy.downloadutil.core.DownloadManager; import com.arialyy.downloadutil.core.command.CommandFactory; import com.arialyy.downloadutil.core.command.IDownloadCommand; -import com.arialyy.downloadutil.entity.DownloadEntity; +import com.arialyy.downloadutil.core.DownloadEntity; import com.arialyy.downloadutil.orm.DbEntity; import com.arialyy.downloadutil.util.Util; import com.arialyy.frame.util.show.L; diff --git a/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java b/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java index 87fa84e5..9305a87c 100644 --- a/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java +++ b/app/src/main/java/com/arialyy/simple/adapter/DownloadAdapter.java @@ -4,14 +4,15 @@ import android.content.Context; import android.content.res.Resources; import android.view.View; import android.widget.Button; +import android.widget.TextView; import butterknife.Bind; import com.arialyy.absadapter.common.AbsHolder; import com.arialyy.absadapter.recycler_view.AbsRVAdapter; +import com.arialyy.downloadutil.core.DownloadEntity; import com.arialyy.downloadutil.core.DownloadManager; import com.arialyy.downloadutil.core.command.CommandFactory; import com.arialyy.downloadutil.core.command.IDownloadCommand; -import com.arialyy.downloadutil.entity.DownloadEntity; -import com.arialyy.frame.util.show.L; +import com.arialyy.downloadutil.util.Util; import com.arialyy.simple.R; import com.arialyy.simple.widget.HorizontalProgressBarWithNumber; import java.util.ArrayList; @@ -28,14 +29,12 @@ public class DownloadAdapter extends AbsRVAdapter mProgress = new HashMap<>(); private Map mPositions = new HashMap<>(); public DownloadAdapter(Context context, List data) { super(context, data); int i = 0; for (DownloadEntity entity : data) { - mProgress.put(entity.getDownloadUrl(), entity.getCurrentProgress()); mPositions.put(entity.getDownloadUrl(), i); i++; } @@ -52,15 +51,26 @@ public class DownloadAdapter extends AbsRVAdapter " + index); - // notifyItemChanged(index); - notifyItemChanged(indexItem(url)); + public synchronized void setProgress(DownloadEntity entity) { + String url = entity.getDownloadUrl(); + int position = indexItem(url); + mData.set(position, entity); + notifyItemChanged(position); } private synchronized int indexItem(String url) { @@ -74,14 +84,12 @@ public class DownloadAdapter extends AbsRVAdapter " + position); switch (entity.getState()) { case DownloadEntity.STATE_WAIT: case DownloadEntity.STATE_OTHER: @@ -140,7 +163,6 @@ public class DownloadAdapter extends AbsRVAdapter commands = new ArrayList<>(); IDownloadCommand addCommand = mFactory.createCommand(getContext(), entity, CommandFactory.TASK_CREATE); @@ -156,17 +178,14 @@ public class DownloadAdapter extends AbsRVAdapter getDownloadData() { List list = DownloadEntity.findAllData(DownloadEntity.class); - List newDownload = createNewDownload(); - if (list == null) { - list = newDownload; - } else { - list = filter(list, newDownload); + if (list == null || list.size() == 0) { + list = createNewDownload(); } return list; } @@ -53,7 +50,7 @@ public class DownloadModule extends BaseModule { break; } count++; - if (count == sqlEntity.size()) { + if (count == createdEntity.size()) { list.add(cEntity); } } @@ -74,6 +71,7 @@ public class DownloadModule extends BaseModule { entity.setDownloadUrl(url); entity.setDownloadPath(getDownloadPath(url)); entity.setFileName(fileName); + entity.save(); list.add(entity); } return list; diff --git a/app/src/main/res/color/bt_selector_cancel.xml b/app/src/main/res/color/bt_selector_cancel.xml new file mode 100644 index 00000000..284a614c --- /dev/null +++ b/app/src/main/res/color/bt_selector_cancel.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_download.xml b/app/src/main/res/layout/item_download.xml index 830dde58..29ec955d 100644 --- a/app/src/main/res/layout/item_download.xml +++ b/app/src/main/res/layout/item_download.xml @@ -9,19 +9,50 @@ android:id="@+id/progressBar" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_centerVertical="true" android:layout_marginRight="16dp" + android:layout_marginTop="16dp" android:layout_toLeftOf="@+id/bt" android:max="100" /> + +