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" /> + +