diff --git a/app/build.gradle b/app/build.gradle
index 7f83f0bf..415b38c7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -20,7 +20,7 @@ android {
minSdkVersion 16
targetSdkVersion 29
versionCode 53
- versionName "4.18-alpha2"
+ versionName "4.18"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true
vectorDrawables.useSupportLibrary = true
diff --git a/app/src/main/java/xyz/quaver/pupil/adapters/ReaderAdapter.kt b/app/src/main/java/xyz/quaver/pupil/adapters/ReaderAdapter.kt
index 5869043e..7baadcac 100644
--- a/app/src/main/java/xyz/quaver/pupil/adapters/ReaderAdapter.kt
+++ b/app/src/main/java/xyz/quaver/pupil/adapters/ReaderAdapter.kt
@@ -25,7 +25,9 @@ import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.RequestManager
import com.bumptech.glide.load.engine.DiskCacheStrategy
+import com.google.android.material.snackbar.Snackbar
import com.google.firebase.crashlytics.FirebaseCrashlytics
+import kotlinx.android.synthetic.main.activity_reader.view.*
import kotlinx.android.synthetic.main.item_reader.view.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -116,6 +118,14 @@ class ReaderAdapter(private val glide: RequestManager,
.load(R.drawable.image_broken_variant)
.into(holder.view.image)
+ Snackbar.make(holder.view.reader_layout, R.string.reader_error_retry, Snackbar.LENGTH_INDEFINITE).apply {
+ setAction(android.R.string.no) { }
+ setAction(android.R.string.yes) {
+ downloadWorker!!.cancel(galleryID)
+ downloadWorker!!.queue.add(galleryID)
+ }
+ }.show()
+
return
} else {
holder.view.reader_item_progressbar.progress =
diff --git a/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt b/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt
index 14306eea..7681698f 100644
--- a/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt
+++ b/app/src/main/java/xyz/quaver/pupil/ui/ReaderActivity.kt
@@ -337,6 +337,16 @@ class ReaderActivity : AppCompatActivity() {
}
}
+ with(reader_fab_retry) {
+ setImageResource(R.drawable.refresh)
+ setOnClickListener {
+ DownloadWorker.getInstance(context).let {
+ it.cancel(galleryID)
+ it.queue.add(galleryID)
+ }
+ }
+ }
+
with(reader_fab_fullscreen) {
setImageResource(R.drawable.ic_fullscreen)
setOnClickListener {
diff --git a/app/src/main/res/drawable/refresh.xml b/app/src/main/res/drawable/refresh.xml
new file mode 100644
index 00000000..cfa890d9
--- /dev/null
+++ b/app/src/main/res/drawable/refresh.xml
@@ -0,0 +1,8 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_reader.xml b/app/src/main/res/layout/activity_reader.xml
index 303eb3bc..dba09170 100644
--- a/app/src/main/res/layout/activity_reader.xml
+++ b/app/src/main/res/layout/activity_reader.xml
@@ -75,6 +75,13 @@
app:fab_label="@string/reader_fab_download"
app:fab_size="mini"/>
+
+
(Korean only)
ユーザーID
ユーザーIDをクリップボードにコピーしました
+ ダウンロードエラーが発生しました。リトライしますか?
+ リトライ
\ No newline at end of file
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index d036521d..4db9f32a 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -150,4 +150,6 @@
경찰서 정모 확률을 줄여보고자 캐시 비활성화/태그 필터를 추가하였습니다. 적용하시겠습니까?
유저 ID
유저 ID를 클립보드에 복사했습니다
+ 다운로드 에러가 발생했습니다. 재시도 하시겠습니까?
+ 재시도
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 7a2109f6..3028ed1a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -116,13 +116,16 @@
Loading
Go to page
- Fullscreen
+ Fullscreen>
+ Retry
Background download
Cancel background download
Downloading…
Download complete
Download error
+ Download Error occurred. Retry?
+
Help