1
1
package com.aliucord.manager.patcher.steps.base
2
2
3
- import android.app.DownloadManager
4
3
import android.content.Context
5
- import android.util.Log
6
4
import android.widget.Toast
7
5
import androidx.annotation.CallSuper
8
6
import androidx.compose.runtime.Stable
9
- import com.aliucord.manager.BuildConfig
10
7
import com.aliucord.manager.R
11
- import com.aliucord.manager.di.DownloadManagerProvider
12
- import com.aliucord.manager.di.DownloaderSetting
13
- import com.aliucord.manager.manager.OverlayManager
14
- import com.aliucord.manager.manager.PreferencesManager
15
- import com.aliucord.manager.manager.download.AndroidDownloadManager
16
8
import com.aliucord.manager.manager.download.IDownloadManager
9
+ import com.aliucord.manager.manager.download.KtorDownloadManager
17
10
import com.aliucord.manager.patcher.StepRunner
18
11
import com.aliucord.manager.patcher.steps.StepGroup
19
- import com.aliucord.manager.ui.components.dialogs.AlternativeDownloaderDialog
20
12
import com.aliucord.manager.util.showToast
21
13
import kotlinx.coroutines.Dispatchers
22
14
import kotlinx.coroutines.withContext
@@ -27,9 +19,7 @@ import java.io.File
27
19
@Stable
28
20
abstract class DownloadStep : Step (), KoinComponent {
29
21
private val context: Context by inject()
30
- private val overlays: OverlayManager by inject()
31
- private val prefs: PreferencesManager by inject()
32
- private val downloaders: DownloadManagerProvider by inject()
22
+ private val downloader: KtorDownloadManager by inject()
33
23
34
24
/* *
35
25
* The remote url to download
@@ -67,7 +57,7 @@ abstract class DownloadStep : Step(), KoinComponent {
67
57
targetFile.delete()
68
58
}
69
59
70
- val result = downloaders.getActiveDownloader() .download(targetUrl, targetFile) { newProgress ->
60
+ val result = downloader .download(targetUrl, targetFile) { newProgress ->
71
61
progress = newProgress ? : - 1f
72
62
}
73
63
@@ -96,29 +86,6 @@ abstract class DownloadStep : Step(), KoinComponent {
96
86
Toast .makeText(context, toastText, Toast .LENGTH_LONG ).show()
97
87
}
98
88
99
- // If this is a specific Android DownloadManager error, then prompt to use a different downloader
100
- if (result is AndroidDownloadManager .Error
101
- && result.reason in arrayOf(DownloadManager .ERROR_HTTP_DATA_ERROR , DownloadManager .ERROR_CANNOT_RESUME )
102
- && prefs.downloader != DownloaderSetting .Ktor
103
- ) {
104
- state = StepState .Error
105
-
106
- val confirmed = overlays.startComposableForResult { callback ->
107
- AlternativeDownloaderDialog (
108
- onConfirm = { callback(true ) },
109
- onDismiss = { callback(false ) },
110
- )
111
- }
112
-
113
- if (confirmed) {
114
- Log .i(BuildConfig .TAG , " Changing to alternative downloader after failure" )
115
- prefs.downloader = DownloaderSetting .Ktor
116
- state = StepState .Running
117
-
118
- return execute(container)
119
- }
120
- }
121
-
122
89
throw Error (" Failed to download: $result " )
123
90
}
124
91
}
0 commit comments