-
-
Notifications
You must be signed in to change notification settings - Fork 302
/
IOperation.kt
259 lines (219 loc) · 5.94 KB
/
IOperation.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
package dev.http.progress.operation
import android.os.Handler
import dev.http.progress.Progress
import okhttp3.OkHttpClient
/**
* detail: Progress Operation 通用方法定义接口
* @author Ttt
*/
interface IOperation {
// ============
// = 初始化方法 =
// ============
/**
* 进行拦截器包装 ( 必须调用 )
* @param builder Builder
* @return Builder
*/
fun wrap(builder: OkHttpClient.Builder): OkHttpClient.Builder
// =============
// = 对外公开方法 =
// =============
/**
* 是否已调用 wrap 方法
* @return `true` yes, `false` no
*/
fun isUseWrap(): Boolean
/**
* 是否废弃不使用状态
* @return `true` yes, `false` no
*/
fun isDeprecated(): Boolean
/**
* 是否全局默认操作对象
* @return `true` yes, `false` no
*/
fun isDefault(): Boolean
/**
* 是否监听上下行
* @return `true` yes, `false` no
*/
fun isTypeAll(): Boolean
/**
* 是否监听上行
* @return `true` yes, `false` no
*/
fun isTypeRequest(): Boolean
/**
* 是否监听下行
* @return `true` yes, `false` no
*/
fun isTypeResponse(): Boolean
// ===========
// = get/set =
// ===========
/**
* 获取 Progress Operation 实现方式类型
* @return 实现方式类型
*/
fun getPlanType(): Int
// =
/**
* 获取回调刷新时间 ( 毫秒 )
* @return 回调刷新时间 ( 毫秒 )
*/
fun getRefreshTime(): Long
/**
* 设置回调刷新时间 ( 毫秒 )
* @param refreshTime 回调刷新时间 ( 毫秒 )
* @return IOperation
*/
fun setRefreshTime(refreshTime: Long): IOperation
/**
* 重置回调刷新时间 ( 毫秒 )
* @return IOperation
*/
fun resetRefreshTime(): IOperation
// =
/**
* 获取全局 Progress Callback
* @return Progress Callback
*/
fun getCallback(): Progress.Callback?
/**
* 设置全局 Progress Callback
* @param callback Progress Callback
* @return IOperation
*/
fun setCallback(callback: Progress.Callback?): IOperation
/**
* 移除全局 Progress Callback
* @return IOperation
*/
fun removeCallback(): IOperation
// =
/**
* 获取回调 UI 线程通知 Handler
* @return 回调 UI 线程通知 Handler
*/
fun getHandler(): Handler?
/**
* 设置回调 UI 线程通知 Handler
* @param handler 回调 UI 线程通知 Handler
* @return IOperation
*/
fun setHandler(handler: Handler?): IOperation
/**
* 重置回调 UI 线程通知 Handler
* @return IOperation
*/
fun resetHandler(): IOperation
// ====================
// = 操作方法 - 对外公开 =
// ====================
/**
* 移除自身在 Manager Map 中的对象值, 并且标记为废弃状态
* 会释放所有数据、监听事件且不处理任何监听
*/
fun removeSelfFromManager()
/**
* 释放指定监听事件
* @param progress Progress
* @param callback 上传、下载回调接口
* @return `true` success, `false` fail
*/
fun recycleListener(
progress: Progress,
callback: Progress.Callback
): Boolean
// ====================
// = Request Listener =
// ====================
/**
* 添加指定 url 上行监听事件
* @param url 请求 url
* @param callback 上传、下载回调接口
* @return `true` success, `false` fail
*/
fun addRequestListener(
url: String,
callback: Progress.Callback
): Boolean
/**
* 清空指定 url 上行所有监听事件
* @param url 请求 url
* @return `true` success, `false` fail
*/
fun clearRequestListener(url: String): Boolean
/**
* 清空指定 url 上行所有监听事件
* @param progress Progress
* @return `true` success, `false` fail
*/
fun clearRequestListener(progress: Progress?): Boolean
/**
* 移除指定 url 上行监听事件
* @param url 请求 url
* @param callback 上传、下载回调接口
* @return `true` success, `false` fail
*/
fun removeRequestListener(
url: String,
callback: Progress.Callback
): Boolean
/**
* 移除指定 url 上行监听事件
* @param progress Progress
* @param callback 上传、下载回调接口
* @return `true` success, `false` fail
*/
fun removeRequestListener(
progress: Progress?,
callback: Progress.Callback
): Boolean
// =====================
// = Response Listener =
// =====================
/**
* 添加指定 url 下行监听事件
* @param url 请求 url
* @param callback 上传、下载回调接口
* @return `true` success, `false` fail
*/
fun addResponseListener(
url: String,
callback: Progress.Callback
): Boolean
/**
* 清空指定 url 下行所有监听事件
* @param url 请求 url
* @return `true` success, `false` fail
*/
fun clearResponseListener(url: String): Boolean
/**
* 清空指定 url 下行所有监听事件
* @param progress Progress
* @return `true` success, `false` fail
*/
fun clearResponseListener(progress: Progress?): Boolean
/**
* 移除指定 url 下行监听事件
* @param url 请求 url
* @param callback 上传、下载回调接口
* @return `true` success, `false` fail
*/
fun removeResponseListener(
url: String,
callback: Progress.Callback
): Boolean
/**
* 移除指定 url 下行监听事件
* @param progress Progress
* @param callback 上传、下载回调接口
* @return `true` success, `false` fail
*/
fun removeResponseListener(
progress: Progress?,
callback: Progress.Callback
): Boolean
}