Skip to content

Commit c35b684

Browse files
authored
Merge pull request #102 from rosuH/dev
🐛
2 parents 7a513de + d83b030 commit c35b684

File tree

4 files changed

+33
-2
lines changed

4 files changed

+33
-2
lines changed

filepicker/src/main/java/me/rosuh/filepicker/config/DefaultFileDetector.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ class DefaultFileDetector : AbstractFileDetector() {
4545
enableCustomTypes = true
4646
}
4747

48+
fun clear(){
49+
allDefaultFileType.clear()
50+
enableCustomTypes = false
51+
}
52+
4853
override fun fillFileType(itemBeanImpl: FileItemBeanImpl): FileItemBeanImpl {
4954
for (type in allDefaultFileType) {
5055
if (type.verify(itemBeanImpl.fileName)) {

filepicker/src/main/java/me/rosuh/filepicker/config/FilePickerConfig.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ class FilePickerConfig(private val pickerManager: FilePickerManager) {
250250
this.customImageEngine = ie
251251
return this
252252
}
253+
253254
/**
254255
* @author rosuh@qq.com
255256
* @date 2020/9/15
@@ -285,6 +286,15 @@ class FilePickerConfig(private val pickerManager: FilePickerManager) {
285286
}
286287
}
287288

289+
fun clear() {
290+
this.customFileTypes.clear()
291+
this.customImageEngine = null
292+
this.fileItemOnClickListener = null
293+
this.selfFilter = null
294+
this.customDetector = null
295+
this.defaultFileDetector.clear()
296+
}
297+
288298
companion object {
289299
/**
290300
* 手机内部的外置存储,也就是内置 SD 卡

filepicker/src/main/java/me/rosuh/filepicker/config/FilePickerManager.kt

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ object FilePickerManager {
5151
* 供调用者获取结果
5252
* @return List<String>
5353
*/
54-
fun obtainData(): List<String> {
54+
@JvmOverloads
55+
fun obtainData(release: Boolean = false): List<String> {
56+
if (release) {
57+
release()
58+
}
5559
return dataList
5660
}
5761

@@ -60,4 +64,15 @@ object FilePickerManager {
6064
fragmentRef?.clear()
6165
ImageLoadController.reset()
6266
}
67+
68+
/**
69+
* 释放资源与重置属性
70+
* Release resources and reset attributes
71+
*/
72+
fun release() {
73+
reset()
74+
if (this::config.isInitialized) {
75+
config.clear()
76+
}
77+
}
6378
}

sample/src/main/java/me/rosuh/sample/SampleActivity.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import android.support.v4.app.DialogFragment
99
import android.support.v4.app.FragmentManager
1010
import android.support.v7.app.AppCompatActivity
1111
import android.support.v7.widget.LinearLayoutManager
12+
import android.util.Log
1213
import android.view.LayoutInflater
1314
import android.view.View
1415
import android.view.ViewGroup
@@ -272,7 +273,7 @@ class SampleActivity : AppCompatActivity() {
272273
when (requestCode) {
273274
FilePickerManager.REQUEST_CODE -> {
274275
if (resultCode == Activity.RESULT_OK) {
275-
val list = FilePickerManager.obtainData()
276+
val list = FilePickerManager.obtainData(release = true)
276277
rv_main.adapter = SampleAdapter(layoutInflater, ArrayList(list))
277278
rv_main.layoutManager = LinearLayoutManager(this@SampleActivity)
278279
ns_root.scrollTo(0, ScreenUtils.getScreenHeightInPixel(this))

0 commit comments

Comments
 (0)