diff --git a/res/drawable-hdpi/ic_action_start.png b/res/drawable-hdpi/ic_action_start.png index b1fc0acac..7d7afdbf2 100644 Binary files a/res/drawable-hdpi/ic_action_start.png and b/res/drawable-hdpi/ic_action_start.png differ diff --git a/res/drawable-hdpi/ic_action_stop.png b/res/drawable-hdpi/ic_action_stop.png new file mode 100644 index 000000000..b0eea7354 Binary files /dev/null and b/res/drawable-hdpi/ic_action_stop.png differ diff --git a/res/drawable-hdpi/ic_setting_download.png b/res/drawable-hdpi/ic_setting_download.png index 457b585c1..d696afec3 100644 Binary files a/res/drawable-hdpi/ic_setting_download.png and b/res/drawable-hdpi/ic_setting_download.png differ diff --git a/res/drawable-hdpi/ic_setting_download_dark.png b/res/drawable-hdpi/ic_setting_download_dark.png index 912af630c..7c4400683 100644 Binary files a/res/drawable-hdpi/ic_setting_download_dark.png and b/res/drawable-hdpi/ic_setting_download_dark.png differ diff --git a/res/drawable-mdpi/ic_action_start.png b/res/drawable-mdpi/ic_action_start.png index 01327a705..630e24fef 100644 Binary files a/res/drawable-mdpi/ic_action_start.png and b/res/drawable-mdpi/ic_action_start.png differ diff --git a/res/drawable-mdpi/ic_action_stop.png b/res/drawable-mdpi/ic_action_stop.png new file mode 100644 index 000000000..3106ade64 Binary files /dev/null and b/res/drawable-mdpi/ic_action_stop.png differ diff --git a/res/drawable-mdpi/ic_setting_download.png b/res/drawable-mdpi/ic_setting_download.png index f971890b9..baeaedea1 100644 Binary files a/res/drawable-mdpi/ic_setting_download.png and b/res/drawable-mdpi/ic_setting_download.png differ diff --git a/res/drawable-mdpi/ic_setting_download_dark.png b/res/drawable-mdpi/ic_setting_download_dark.png index 1f725d143..951695493 100644 Binary files a/res/drawable-mdpi/ic_setting_download_dark.png and b/res/drawable-mdpi/ic_setting_download_dark.png differ diff --git a/res/drawable-xhdpi/ic_action_start.png b/res/drawable-xhdpi/ic_action_start.png index a203bc1bd..ca4c5496e 100644 Binary files a/res/drawable-xhdpi/ic_action_start.png and b/res/drawable-xhdpi/ic_action_start.png differ diff --git a/res/drawable-xhdpi/ic_action_stop.png b/res/drawable-xhdpi/ic_action_stop.png new file mode 100644 index 000000000..68b9d76ee Binary files /dev/null and b/res/drawable-xhdpi/ic_action_stop.png differ diff --git a/res/drawable-xhdpi/ic_setting_download.png b/res/drawable-xhdpi/ic_setting_download.png index 0cb1f554d..9f92c8799 100644 Binary files a/res/drawable-xhdpi/ic_setting_download.png and b/res/drawable-xhdpi/ic_setting_download.png differ diff --git a/res/drawable-xhdpi/ic_setting_download_dark.png b/res/drawable-xhdpi/ic_setting_download_dark.png index fdb149a49..d9cb1175c 100644 Binary files a/res/drawable-xhdpi/ic_setting_download_dark.png and b/res/drawable-xhdpi/ic_setting_download_dark.png differ diff --git a/res/drawable-xxhdpi/ic_action_start.png b/res/drawable-xxhdpi/ic_action_start.png index 6f2d568af..18e07460b 100644 Binary files a/res/drawable-xxhdpi/ic_action_start.png and b/res/drawable-xxhdpi/ic_action_start.png differ diff --git a/res/drawable-xxhdpi/ic_action_stop.png b/res/drawable-xxhdpi/ic_action_stop.png new file mode 100644 index 000000000..90c6ff6fe Binary files /dev/null and b/res/drawable-xxhdpi/ic_action_stop.png differ diff --git a/res/drawable-xxhdpi/ic_setting_download.png b/res/drawable-xxhdpi/ic_setting_download.png index 5ffd52523..0a6c55935 100644 Binary files a/res/drawable-xxhdpi/ic_setting_download.png and b/res/drawable-xxhdpi/ic_setting_download.png differ diff --git a/res/drawable-xxhdpi/ic_setting_download_dark.png b/res/drawable-xxhdpi/ic_setting_download_dark.png index 055b77743..c0003215a 100644 Binary files a/res/drawable-xxhdpi/ic_setting_download_dark.png and b/res/drawable-xxhdpi/ic_setting_download_dark.png differ diff --git a/res/menu/download.xml b/res/menu/download.xml new file mode 100644 index 000000000..d6aaafebb --- /dev/null +++ b/res/menu/download.xml @@ -0,0 +1,30 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/com/hippo/ehviewer/service/DownloadService.java b/src/com/hippo/ehviewer/service/DownloadService.java index f8551fc8e..193e8e7a7 100644 --- a/src/com/hippo/ehviewer/service/DownloadService.java +++ b/src/com/hippo/ehviewer/service/DownloadService.java @@ -156,6 +156,43 @@ public class DownloadService extends Service } } + public void startAll() { + for (DownloadInfo di : mData.getAllDownloads()) { + if (di.state == DownloadInfo.STATE_NONE || + (di.state == DownloadInfo.STATE_FINISH && di.legacy != 0)) + di.state = DownloadInfo.STATE_WAIT; + } + notifyDownloadInfoChanged(); + notifyUpdate(); + } + + public void stopAll() { + for (DownloadInfo di : mData.getAllDownloads()) { + if (di.state == DownloadInfo.STATE_WAIT || + di.state == DownloadInfo.STATE_DOWNLOAD) { + if (mCurDownloadInfo == di) { + // Cancel download notification + mNotifyManager.cancel(DOWNLOAD_NOTIFY_ID); + + // Target downloadinfo is downloading + mCurDownloadInfo.state = DownloadInfo.STATE_NONE; + mData.addDownload(mCurDownloadInfo); + mCurDownloadInfo = null; + + mCurExDownloader.setListenerDownload(null); + mCurExDownloader.setDownloadMode(false); + mEdManager.freeExDownloader(mCurExDownloader); + mCurExDownloader = null; + } else { + di.state = DownloadInfo.STATE_NONE; + } + } + } + + notifyDownloadInfoChanged(); + notifyUpdate(); + } + public void delete(DownloadInfo di) { stop(di); mData.deleteDownload(di.galleryInfo.gid); diff --git a/src/com/hippo/ehviewer/ui/DownloadActivity.java b/src/com/hippo/ehviewer/ui/DownloadActivity.java index 4bcb0fa21..427dc91f0 100644 --- a/src/com/hippo/ehviewer/ui/DownloadActivity.java +++ b/src/com/hippo/ehviewer/ui/DownloadActivity.java @@ -28,6 +28,7 @@ import android.graphics.drawable.ColorDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; +import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -130,13 +131,33 @@ public class DownloadActivity extends AbsActivity implements AbsListView.OnItemC mWindowsAnimate.free(); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + getMenuInflater().inflate(R.menu.download, menu); + return true; + } + @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection + Intent it; switch (item.getItemId()) { case android.R.id.home: finish(); return true; + + case R.id.action_start: + it = new Intent(DownloadActivity.this, DownloadService.class); + startService(it); + mServiceConn.getService().startAll(); + return true; + + case R.id.action_stop: + it = new Intent(DownloadActivity.this, DownloadService.class); + startService(it); + mServiceConn.getService().stopAll(); + return true; + default: return super.onOptionsItemSelected(item); }